Merge "Define QueryCallback as a functional interface" into androidx-main
diff --git a/activity/activity/api/public_plus_experimental_current.txt b/activity/activity/api/public_plus_experimental_current.txt
deleted file mode 100644
index 22ecc41..0000000
--- a/activity/activity/api/public_plus_experimental_current.txt
+++ /dev/null
@@ -1,440 +0,0 @@
-// Signature format: 4.0
-package androidx.activity {
-
-  public class ComponentActivity extends android.app.Activity implements androidx.activity.result.ActivityResultCaller androidx.activity.result.ActivityResultRegistryOwner androidx.activity.contextaware.ContextAware androidx.activity.FullyDrawnReporterOwner androidx.lifecycle.HasDefaultViewModelProviderFactory androidx.lifecycle.LifecycleOwner androidx.core.view.MenuHost androidx.activity.OnBackPressedDispatcherOwner androidx.core.content.OnConfigurationChangedProvider androidx.core.app.OnMultiWindowModeChangedProvider androidx.core.app.OnNewIntentProvider androidx.core.app.OnPictureInPictureModeChangedProvider androidx.core.content.OnTrimMemoryProvider androidx.savedstate.SavedStateRegistryOwner androidx.lifecycle.ViewModelStoreOwner {
-    ctor public ComponentActivity();
-    ctor @ContentView public ComponentActivity(@LayoutRes int);
-    method public void addMenuProvider(androidx.core.view.MenuProvider);
-    method public void addMenuProvider(androidx.core.view.MenuProvider, androidx.lifecycle.LifecycleOwner);
-    method public void addMenuProvider(androidx.core.view.MenuProvider, androidx.lifecycle.LifecycleOwner, androidx.lifecycle.Lifecycle.State);
-    method public final void addOnConfigurationChangedListener(androidx.core.util.Consumer<android.content.res.Configuration!>);
-    method public final void addOnContextAvailableListener(androidx.activity.contextaware.OnContextAvailableListener);
-    method public final void addOnMultiWindowModeChangedListener(androidx.core.util.Consumer<androidx.core.app.MultiWindowModeChangedInfo!>);
-    method public final void addOnNewIntentListener(androidx.core.util.Consumer<android.content.Intent!>);
-    method public final void addOnPictureInPictureModeChangedListener(androidx.core.util.Consumer<androidx.core.app.PictureInPictureModeChangedInfo!>);
-    method public final void addOnTrimMemoryListener(androidx.core.util.Consumer<java.lang.Integer!>);
-    method public final androidx.activity.result.ActivityResultRegistry getActivityResultRegistry();
-    method public androidx.lifecycle.ViewModelProvider.Factory getDefaultViewModelProviderFactory();
-    method public androidx.activity.FullyDrawnReporter getFullyDrawnReporter();
-    method @Deprecated public Object? getLastCustomNonConfigurationInstance();
-    method public androidx.lifecycle.Lifecycle getLifecycle();
-    method public final androidx.activity.OnBackPressedDispatcher getOnBackPressedDispatcher();
-    method public final androidx.savedstate.SavedStateRegistry getSavedStateRegistry();
-    method public androidx.lifecycle.ViewModelStore getViewModelStore();
-    method @CallSuper public void initializeViewTreeOwners();
-    method public void invalidateMenu();
-    method @Deprecated @CallSuper protected void onActivityResult(int, int, android.content.Intent?);
-    method @CallSuper public void onMultiWindowModeChanged(boolean);
-    method @CallSuper public void onPictureInPictureModeChanged(boolean);
-    method @Deprecated @CallSuper public void onRequestPermissionsResult(int, String![], int[]);
-    method @Deprecated public Object? onRetainCustomNonConfigurationInstance();
-    method public final Object? onRetainNonConfigurationInstance();
-    method public android.content.Context? peekAvailableContext();
-    method public final <I, O> androidx.activity.result.ActivityResultLauncher<I!> registerForActivityResult(androidx.activity.result.contract.ActivityResultContract<I!,O!>, androidx.activity.result.ActivityResultCallback<O!>);
-    method public final <I, O> androidx.activity.result.ActivityResultLauncher<I!> registerForActivityResult(androidx.activity.result.contract.ActivityResultContract<I!,O!>, androidx.activity.result.ActivityResultRegistry, androidx.activity.result.ActivityResultCallback<O!>);
-    method public void removeMenuProvider(androidx.core.view.MenuProvider);
-    method public final void removeOnConfigurationChangedListener(androidx.core.util.Consumer<android.content.res.Configuration!>);
-    method public final void removeOnContextAvailableListener(androidx.activity.contextaware.OnContextAvailableListener);
-    method public final void removeOnMultiWindowModeChangedListener(androidx.core.util.Consumer<androidx.core.app.MultiWindowModeChangedInfo!>);
-    method public final void removeOnNewIntentListener(androidx.core.util.Consumer<android.content.Intent!>);
-    method public final void removeOnPictureInPictureModeChangedListener(androidx.core.util.Consumer<androidx.core.app.PictureInPictureModeChangedInfo!>);
-    method public final void removeOnTrimMemoryListener(androidx.core.util.Consumer<java.lang.Integer!>);
-    method @Deprecated public void startActivityForResult(android.content.Intent, int);
-    method @Deprecated public void startActivityForResult(android.content.Intent, int, android.os.Bundle?);
-    method @Deprecated public void startIntentSenderForResult(android.content.IntentSender, int, android.content.Intent?, int, int, int) throws android.content.IntentSender.SendIntentException;
-    method @Deprecated public void startIntentSenderForResult(android.content.IntentSender, int, android.content.Intent?, int, int, int, android.os.Bundle?) throws android.content.IntentSender.SendIntentException;
-  }
-
-  public class ComponentDialog extends android.app.Dialog implements androidx.lifecycle.LifecycleOwner androidx.activity.OnBackPressedDispatcherOwner androidx.savedstate.SavedStateRegistryOwner {
-    ctor public ComponentDialog(android.content.Context context);
-    ctor public ComponentDialog(android.content.Context context, optional @StyleRes int themeResId);
-    method public androidx.lifecycle.Lifecycle getLifecycle();
-    method public final androidx.activity.OnBackPressedDispatcher getOnBackPressedDispatcher();
-    method public androidx.savedstate.SavedStateRegistry getSavedStateRegistry();
-    method @CallSuper public void initializeViewTreeOwners();
-    method @CallSuper public void onBackPressed();
-    property public androidx.lifecycle.Lifecycle lifecycle;
-    property public final androidx.activity.OnBackPressedDispatcher onBackPressedDispatcher;
-    property public androidx.savedstate.SavedStateRegistry savedStateRegistry;
-  }
-
-  public final class EdgeToEdge {
-    method public static void enable(androidx.activity.ComponentActivity);
-    method public static void enable(androidx.activity.ComponentActivity, optional androidx.activity.SystemBarStyle statusBarStyle);
-    method public static void enable(androidx.activity.ComponentActivity, optional androidx.activity.SystemBarStyle statusBarStyle, optional androidx.activity.SystemBarStyle navigationBarStyle);
-  }
-
-  public final class FullyDrawnReporter {
-    ctor public FullyDrawnReporter(java.util.concurrent.Executor executor, kotlin.jvm.functions.Function0<kotlin.Unit> reportFullyDrawn);
-    method public void addOnReportDrawnListener(kotlin.jvm.functions.Function0<kotlin.Unit> callback);
-    method public void addReporter();
-    method public boolean isFullyDrawnReported();
-    method public void removeOnReportDrawnListener(kotlin.jvm.functions.Function0<kotlin.Unit> callback);
-    method public void removeReporter();
-    property public final boolean isFullyDrawnReported;
-  }
-
-  public final class FullyDrawnReporterKt {
-    method public static suspend inline Object? reportWhenComplete(androidx.activity.FullyDrawnReporter, kotlin.jvm.functions.Function1<? super kotlin.coroutines.Continuation<? super kotlin.Unit>,?> reporter, kotlin.coroutines.Continuation<? super kotlin.Unit>);
-  }
-
-  public interface FullyDrawnReporterOwner {
-    method public androidx.activity.FullyDrawnReporter getFullyDrawnReporter();
-    property public abstract androidx.activity.FullyDrawnReporter fullyDrawnReporter;
-  }
-
-  public abstract class OnBackPressedCallback {
-    ctor public OnBackPressedCallback(boolean enabled);
-    method @MainThread public abstract void handleOnBackPressed();
-    method @MainThread public final boolean isEnabled();
-    method @MainThread public final void remove();
-    method @MainThread public final void setEnabled(boolean);
-    property @MainThread public final boolean isEnabled;
-  }
-
-  public final class OnBackPressedDispatcher {
-    ctor public OnBackPressedDispatcher();
-    ctor public OnBackPressedDispatcher(optional Runnable? fallbackOnBackPressed);
-    method @MainThread public void addCallback(androidx.activity.OnBackPressedCallback onBackPressedCallback);
-    method @MainThread public void addCallback(androidx.lifecycle.LifecycleOwner owner, androidx.activity.OnBackPressedCallback onBackPressedCallback);
-    method @MainThread public boolean hasEnabledCallbacks();
-    method @MainThread public void onBackPressed();
-    method @RequiresApi(android.os.Build.VERSION_CODES.TIRAMISU) public void setOnBackInvokedDispatcher(android.window.OnBackInvokedDispatcher invoker);
-  }
-
-  public final class OnBackPressedDispatcherKt {
-    method public static androidx.activity.OnBackPressedCallback addCallback(androidx.activity.OnBackPressedDispatcher, optional androidx.lifecycle.LifecycleOwner? owner, optional boolean enabled, kotlin.jvm.functions.Function1<? super androidx.activity.OnBackPressedCallback,kotlin.Unit> onBackPressed);
-  }
-
-  public interface OnBackPressedDispatcherOwner extends androidx.lifecycle.LifecycleOwner {
-    method public androidx.activity.OnBackPressedDispatcher getOnBackPressedDispatcher();
-    property public abstract androidx.activity.OnBackPressedDispatcher onBackPressedDispatcher;
-  }
-
-  public final class SystemBarStyle {
-    method public static androidx.activity.SystemBarStyle auto(@ColorInt int lightScrim, @ColorInt int darkScrim);
-    method public static androidx.activity.SystemBarStyle dark(@ColorInt int scrim);
-    method public static androidx.activity.SystemBarStyle light(@ColorInt int scrim, @ColorInt int darkScrim);
-    field public static final androidx.activity.SystemBarStyle.Companion Companion;
-  }
-
-  public static final class SystemBarStyle.Companion {
-    method public androidx.activity.SystemBarStyle auto(@ColorInt int lightScrim, @ColorInt int darkScrim);
-    method public androidx.activity.SystemBarStyle dark(@ColorInt int scrim);
-    method public androidx.activity.SystemBarStyle light(@ColorInt int scrim, @ColorInt int darkScrim);
-  }
-
-  public final class ViewTreeFullyDrawnReporterOwner {
-    method public static androidx.activity.FullyDrawnReporterOwner? get(android.view.View);
-    method public static void set(android.view.View, androidx.activity.FullyDrawnReporterOwner fullyDrawnReporterOwner);
-  }
-
-  public final class ViewTreeOnBackPressedDispatcherOwner {
-    method public static androidx.activity.OnBackPressedDispatcherOwner? get(android.view.View);
-    method public static void set(android.view.View, androidx.activity.OnBackPressedDispatcherOwner onBackPressedDispatcherOwner);
-  }
-
-}
-
-package androidx.activity.contextaware {
-
-  public interface ContextAware {
-    method public void addOnContextAvailableListener(androidx.activity.contextaware.OnContextAvailableListener listener);
-    method public android.content.Context? peekAvailableContext();
-    method public void removeOnContextAvailableListener(androidx.activity.contextaware.OnContextAvailableListener listener);
-  }
-
-  public final class ContextAwareHelper {
-    ctor public ContextAwareHelper();
-    method public void addOnContextAvailableListener(androidx.activity.contextaware.OnContextAvailableListener listener);
-    method public void clearAvailableContext();
-    method public void dispatchOnContextAvailable(android.content.Context context);
-    method public android.content.Context? peekAvailableContext();
-    method public void removeOnContextAvailableListener(androidx.activity.contextaware.OnContextAvailableListener listener);
-  }
-
-  public final class ContextAwareKt {
-    method public static suspend inline <R> Object? withContextAvailable(androidx.activity.contextaware.ContextAware, kotlin.jvm.functions.Function1<android.content.Context,R> onContextAvailable, kotlin.coroutines.Continuation<R>);
-  }
-
-  public fun interface OnContextAvailableListener {
-    method public void onContextAvailable(android.content.Context context);
-  }
-
-}
-
-package androidx.activity.result {
-
-  public final class ActivityResult implements android.os.Parcelable {
-    ctor public ActivityResult(int, android.content.Intent?);
-    method public int describeContents();
-    method public android.content.Intent? getData();
-    method public int getResultCode();
-    method public static String resultCodeToString(int);
-    method public void writeToParcel(android.os.Parcel, int);
-    field public static final android.os.Parcelable.Creator<androidx.activity.result.ActivityResult!> CREATOR;
-  }
-
-  public fun interface ActivityResultCallback<O> {
-    method public void onActivityResult(O result);
-  }
-
-  public interface ActivityResultCaller {
-    method public <I, O> androidx.activity.result.ActivityResultLauncher<I!> registerForActivityResult(androidx.activity.result.contract.ActivityResultContract<I!,O!>, androidx.activity.result.ActivityResultCallback<O!>);
-    method public <I, O> androidx.activity.result.ActivityResultLauncher<I!> registerForActivityResult(androidx.activity.result.contract.ActivityResultContract<I!,O!>, androidx.activity.result.ActivityResultRegistry, androidx.activity.result.ActivityResultCallback<O!>);
-  }
-
-  public abstract class ActivityResultLauncher<I> {
-    ctor public ActivityResultLauncher();
-    method public abstract androidx.activity.result.contract.ActivityResultContract<I!,?> getContract();
-    method public void launch(I!);
-    method public abstract void launch(I!, androidx.core.app.ActivityOptionsCompat?);
-    method @MainThread public abstract void unregister();
-  }
-
-  public abstract class ActivityResultRegistry {
-    ctor public ActivityResultRegistry();
-    method @MainThread public final boolean dispatchResult(int, int, android.content.Intent?);
-    method @MainThread public final <O> boolean dispatchResult(int, O!);
-    method @MainThread public abstract <I, O> void onLaunch(int, androidx.activity.result.contract.ActivityResultContract<I!,O!>, I!, androidx.core.app.ActivityOptionsCompat?);
-    method public final void onRestoreInstanceState(android.os.Bundle?);
-    method public final void onSaveInstanceState(android.os.Bundle);
-    method public final <I, O> androidx.activity.result.ActivityResultLauncher<I!> register(String, androidx.activity.result.contract.ActivityResultContract<I!,O!>, androidx.activity.result.ActivityResultCallback<O!>);
-    method public final <I, O> androidx.activity.result.ActivityResultLauncher<I!> register(String, androidx.lifecycle.LifecycleOwner, androidx.activity.result.contract.ActivityResultContract<I!,O!>, androidx.activity.result.ActivityResultCallback<O!>);
-  }
-
-  public interface ActivityResultRegistryOwner {
-    method public androidx.activity.result.ActivityResultRegistry getActivityResultRegistry();
-    property public abstract androidx.activity.result.ActivityResultRegistry activityResultRegistry;
-  }
-
-  public final class IntentSenderRequest implements android.os.Parcelable {
-    method public int describeContents();
-    method public android.content.Intent? getFillInIntent();
-    method public int getFlagsMask();
-    method public int getFlagsValues();
-    method public android.content.IntentSender getIntentSender();
-    method public void writeToParcel(android.os.Parcel dest, int flags);
-    property public final android.content.Intent? fillInIntent;
-    property public final int flagsMask;
-    property public final int flagsValues;
-    property public final android.content.IntentSender intentSender;
-    field public static final android.os.Parcelable.Creator<androidx.activity.result.IntentSenderRequest> CREATOR;
-    field public static final androidx.activity.result.IntentSenderRequest.Companion Companion;
-  }
-
-  public static final class IntentSenderRequest.Builder {
-    ctor public IntentSenderRequest.Builder(android.app.PendingIntent pendingIntent);
-    ctor public IntentSenderRequest.Builder(android.content.IntentSender intentSender);
-    method public androidx.activity.result.IntentSenderRequest build();
-    method public androidx.activity.result.IntentSenderRequest.Builder setFillInIntent(android.content.Intent? fillInIntent);
-    method public androidx.activity.result.IntentSenderRequest.Builder setFlags(int values, int mask);
-  }
-
-  public static final class IntentSenderRequest.Companion {
-  }
-
-  public final class PickVisualMediaRequest {
-    method public androidx.activity.result.contract.ActivityResultContracts.PickVisualMedia.VisualMediaType getMediaType();
-    property public final androidx.activity.result.contract.ActivityResultContracts.PickVisualMedia.VisualMediaType mediaType;
-  }
-
-  public static final class PickVisualMediaRequest.Builder {
-    ctor public PickVisualMediaRequest.Builder();
-    method public androidx.activity.result.PickVisualMediaRequest build();
-    method public androidx.activity.result.PickVisualMediaRequest.Builder setMediaType(androidx.activity.result.contract.ActivityResultContracts.PickVisualMedia.VisualMediaType mediaType);
-  }
-
-  public final class PickVisualMediaRequestKt {
-    method public static androidx.activity.result.PickVisualMediaRequest PickVisualMediaRequest(optional androidx.activity.result.contract.ActivityResultContracts.PickVisualMedia.VisualMediaType mediaType);
-  }
-
-}
-
-package androidx.activity.result.contract {
-
-  public abstract class ActivityResultContract<I, O> {
-    ctor public ActivityResultContract();
-    method public abstract android.content.Intent createIntent(android.content.Context context, I input);
-    method public androidx.activity.result.contract.ActivityResultContract.SynchronousResult<O>? getSynchronousResult(android.content.Context context, I input);
-    method public abstract O parseResult(int resultCode, android.content.Intent? intent);
-  }
-
-  public static final class ActivityResultContract.SynchronousResult<T> {
-    ctor public ActivityResultContract.SynchronousResult(T value);
-    method public T getValue();
-    property public final T value;
-  }
-
-  public final class ActivityResultContracts {
-  }
-
-  public static class ActivityResultContracts.CaptureVideo extends androidx.activity.result.contract.ActivityResultContract<android.net.Uri,java.lang.Boolean> {
-    ctor public ActivityResultContracts.CaptureVideo();
-    method @CallSuper public android.content.Intent createIntent(android.content.Context context, android.net.Uri input);
-    method public final androidx.activity.result.contract.ActivityResultContract.SynchronousResult<java.lang.Boolean>? getSynchronousResult(android.content.Context context, android.net.Uri input);
-    method public final Boolean parseResult(int resultCode, android.content.Intent? intent);
-  }
-
-  @RequiresApi(19) public static class ActivityResultContracts.CreateDocument extends androidx.activity.result.contract.ActivityResultContract<java.lang.String,android.net.Uri> {
-    ctor @Deprecated public ActivityResultContracts.CreateDocument();
-    ctor public ActivityResultContracts.CreateDocument(String mimeType);
-    method @CallSuper public android.content.Intent createIntent(android.content.Context context, String input);
-    method public final androidx.activity.result.contract.ActivityResultContract.SynchronousResult<android.net.Uri>? getSynchronousResult(android.content.Context context, String input);
-    method public final android.net.Uri? parseResult(int resultCode, android.content.Intent? intent);
-  }
-
-  public static class ActivityResultContracts.GetContent extends androidx.activity.result.contract.ActivityResultContract<java.lang.String,android.net.Uri> {
-    ctor public ActivityResultContracts.GetContent();
-    method @CallSuper public android.content.Intent createIntent(android.content.Context context, String input);
-    method public final androidx.activity.result.contract.ActivityResultContract.SynchronousResult<android.net.Uri>? getSynchronousResult(android.content.Context context, String input);
-    method public final android.net.Uri? parseResult(int resultCode, android.content.Intent? intent);
-  }
-
-  @RequiresApi(18) public static class ActivityResultContracts.GetMultipleContents extends androidx.activity.result.contract.ActivityResultContract<java.lang.String,java.util.List<android.net.Uri>> {
-    ctor public ActivityResultContracts.GetMultipleContents();
-    method @CallSuper public android.content.Intent createIntent(android.content.Context context, String input);
-    method public final androidx.activity.result.contract.ActivityResultContract.SynchronousResult<java.util.List<android.net.Uri>>? getSynchronousResult(android.content.Context context, String input);
-    method public final java.util.List<android.net.Uri> parseResult(int resultCode, android.content.Intent? intent);
-  }
-
-  @RequiresApi(19) public static class ActivityResultContracts.OpenDocument extends androidx.activity.result.contract.ActivityResultContract<java.lang.String[],android.net.Uri> {
-    ctor public ActivityResultContracts.OpenDocument();
-    method @CallSuper public android.content.Intent createIntent(android.content.Context context, String![] input);
-    method public final androidx.activity.result.contract.ActivityResultContract.SynchronousResult<android.net.Uri>? getSynchronousResult(android.content.Context context, String![] input);
-    method public final android.net.Uri? parseResult(int resultCode, android.content.Intent? intent);
-  }
-
-  @RequiresApi(21) public static class ActivityResultContracts.OpenDocumentTree extends androidx.activity.result.contract.ActivityResultContract<android.net.Uri,android.net.Uri> {
-    ctor public ActivityResultContracts.OpenDocumentTree();
-    method @CallSuper public android.content.Intent createIntent(android.content.Context context, android.net.Uri? input);
-    method public final androidx.activity.result.contract.ActivityResultContract.SynchronousResult<android.net.Uri>? getSynchronousResult(android.content.Context context, android.net.Uri? input);
-    method public final android.net.Uri? parseResult(int resultCode, android.content.Intent? intent);
-  }
-
-  @RequiresApi(19) public static class ActivityResultContracts.OpenMultipleDocuments extends androidx.activity.result.contract.ActivityResultContract<java.lang.String[],java.util.List<android.net.Uri>> {
-    ctor public ActivityResultContracts.OpenMultipleDocuments();
-    method @CallSuper public android.content.Intent createIntent(android.content.Context context, String![] input);
-    method public final androidx.activity.result.contract.ActivityResultContract.SynchronousResult<java.util.List<android.net.Uri>>? getSynchronousResult(android.content.Context context, String![] input);
-    method public final java.util.List<android.net.Uri> parseResult(int resultCode, android.content.Intent? intent);
-  }
-
-  public static final class ActivityResultContracts.PickContact extends androidx.activity.result.contract.ActivityResultContract<java.lang.Void,android.net.Uri> {
-    ctor public ActivityResultContracts.PickContact();
-    method public android.content.Intent createIntent(android.content.Context context, Void? input);
-    method public android.net.Uri? parseResult(int resultCode, android.content.Intent? intent);
-  }
-
-  @RequiresApi(19) public static class ActivityResultContracts.PickMultipleVisualMedia extends androidx.activity.result.contract.ActivityResultContract<androidx.activity.result.PickVisualMediaRequest,java.util.List<android.net.Uri>> {
-    ctor public ActivityResultContracts.PickMultipleVisualMedia(optional int maxItems);
-    method @CallSuper public android.content.Intent createIntent(android.content.Context context, androidx.activity.result.PickVisualMediaRequest input);
-    method public final androidx.activity.result.contract.ActivityResultContract.SynchronousResult<java.util.List<android.net.Uri>>? getSynchronousResult(android.content.Context context, androidx.activity.result.PickVisualMediaRequest input);
-    method public final java.util.List<android.net.Uri> parseResult(int resultCode, android.content.Intent? intent);
-  }
-
-  @RequiresApi(19) public static class ActivityResultContracts.PickVisualMedia extends androidx.activity.result.contract.ActivityResultContract<androidx.activity.result.PickVisualMediaRequest,android.net.Uri> {
-    ctor public ActivityResultContracts.PickVisualMedia();
-    method @CallSuper public android.content.Intent createIntent(android.content.Context context, androidx.activity.result.PickVisualMediaRequest input);
-    method public final androidx.activity.result.contract.ActivityResultContract.SynchronousResult<android.net.Uri>? getSynchronousResult(android.content.Context context, androidx.activity.result.PickVisualMediaRequest input);
-    method @Deprecated public static final boolean isPhotoPickerAvailable();
-    method public static final boolean isPhotoPickerAvailable(android.content.Context context);
-    method public final android.net.Uri? parseResult(int resultCode, android.content.Intent? intent);
-    field public static final String ACTION_SYSTEM_FALLBACK_PICK_IMAGES = "androidx.activity.result.contract.action.PICK_IMAGES";
-    field public static final androidx.activity.result.contract.ActivityResultContracts.PickVisualMedia.Companion Companion;
-    field public static final String EXTRA_SYSTEM_FALLBACK_PICK_IMAGES_MAX = "androidx.activity.result.contract.extra.PICK_IMAGES_MAX";
-  }
-
-  public static final class ActivityResultContracts.PickVisualMedia.Companion {
-    method @Deprecated public boolean isPhotoPickerAvailable();
-    method public boolean isPhotoPickerAvailable(android.content.Context context);
-  }
-
-  public static final class ActivityResultContracts.PickVisualMedia.ImageAndVideo implements androidx.activity.result.contract.ActivityResultContracts.PickVisualMedia.VisualMediaType {
-    field public static final androidx.activity.result.contract.ActivityResultContracts.PickVisualMedia.ImageAndVideo INSTANCE;
-  }
-
-  public static final class ActivityResultContracts.PickVisualMedia.ImageOnly implements androidx.activity.result.contract.ActivityResultContracts.PickVisualMedia.VisualMediaType {
-    field public static final androidx.activity.result.contract.ActivityResultContracts.PickVisualMedia.ImageOnly INSTANCE;
-  }
-
-  public static final class ActivityResultContracts.PickVisualMedia.SingleMimeType implements androidx.activity.result.contract.ActivityResultContracts.PickVisualMedia.VisualMediaType {
-    ctor public ActivityResultContracts.PickVisualMedia.SingleMimeType(String mimeType);
-    method public String getMimeType();
-    property public final String mimeType;
-  }
-
-  public static final class ActivityResultContracts.PickVisualMedia.VideoOnly implements androidx.activity.result.contract.ActivityResultContracts.PickVisualMedia.VisualMediaType {
-    field public static final androidx.activity.result.contract.ActivityResultContracts.PickVisualMedia.VideoOnly INSTANCE;
-  }
-
-  public static sealed interface ActivityResultContracts.PickVisualMedia.VisualMediaType {
-  }
-
-  public static final class ActivityResultContracts.RequestMultiplePermissions extends androidx.activity.result.contract.ActivityResultContract<java.lang.String[],java.util.Map<java.lang.String,java.lang.Boolean>> {
-    ctor public ActivityResultContracts.RequestMultiplePermissions();
-    method public android.content.Intent createIntent(android.content.Context context, String![] input);
-    method public androidx.activity.result.contract.ActivityResultContract.SynchronousResult<java.util.Map<java.lang.String,java.lang.Boolean>>? getSynchronousResult(android.content.Context context, String![] input);
-    method public java.util.Map<java.lang.String,java.lang.Boolean> parseResult(int resultCode, android.content.Intent? intent);
-    field public static final String ACTION_REQUEST_PERMISSIONS = "androidx.activity.result.contract.action.REQUEST_PERMISSIONS";
-    field public static final androidx.activity.result.contract.ActivityResultContracts.RequestMultiplePermissions.Companion Companion;
-    field public static final String EXTRA_PERMISSIONS = "androidx.activity.result.contract.extra.PERMISSIONS";
-    field public static final String EXTRA_PERMISSION_GRANT_RESULTS = "androidx.activity.result.contract.extra.PERMISSION_GRANT_RESULTS";
-  }
-
-  public static final class ActivityResultContracts.RequestMultiplePermissions.Companion {
-  }
-
-  public static final class ActivityResultContracts.RequestPermission extends androidx.activity.result.contract.ActivityResultContract<java.lang.String,java.lang.Boolean> {
-    ctor public ActivityResultContracts.RequestPermission();
-    method public android.content.Intent createIntent(android.content.Context context, String input);
-    method public androidx.activity.result.contract.ActivityResultContract.SynchronousResult<java.lang.Boolean>? getSynchronousResult(android.content.Context context, String input);
-    method public Boolean parseResult(int resultCode, android.content.Intent? intent);
-  }
-
-  public static final class ActivityResultContracts.StartActivityForResult extends androidx.activity.result.contract.ActivityResultContract<android.content.Intent,androidx.activity.result.ActivityResult> {
-    ctor public ActivityResultContracts.StartActivityForResult();
-    method public android.content.Intent createIntent(android.content.Context context, android.content.Intent input);
-    method public androidx.activity.result.ActivityResult parseResult(int resultCode, android.content.Intent? intent);
-    field public static final androidx.activity.result.contract.ActivityResultContracts.StartActivityForResult.Companion Companion;
-    field public static final String EXTRA_ACTIVITY_OPTIONS_BUNDLE = "androidx.activity.result.contract.extra.ACTIVITY_OPTIONS_BUNDLE";
-  }
-
-  public static final class ActivityResultContracts.StartActivityForResult.Companion {
-  }
-
-  public static final class ActivityResultContracts.StartIntentSenderForResult extends androidx.activity.result.contract.ActivityResultContract<androidx.activity.result.IntentSenderRequest,androidx.activity.result.ActivityResult> {
-    ctor public ActivityResultContracts.StartIntentSenderForResult();
-    method public android.content.Intent createIntent(android.content.Context context, androidx.activity.result.IntentSenderRequest input);
-    method public androidx.activity.result.ActivityResult parseResult(int resultCode, android.content.Intent? intent);
-    field public static final String ACTION_INTENT_SENDER_REQUEST = "androidx.activity.result.contract.action.INTENT_SENDER_REQUEST";
-    field public static final androidx.activity.result.contract.ActivityResultContracts.StartIntentSenderForResult.Companion Companion;
-    field public static final String EXTRA_INTENT_SENDER_REQUEST = "androidx.activity.result.contract.extra.INTENT_SENDER_REQUEST";
-    field public static final String EXTRA_SEND_INTENT_EXCEPTION = "androidx.activity.result.contract.extra.SEND_INTENT_EXCEPTION";
-  }
-
-  public static final class ActivityResultContracts.StartIntentSenderForResult.Companion {
-  }
-
-  public static class ActivityResultContracts.TakePicture extends androidx.activity.result.contract.ActivityResultContract<android.net.Uri,java.lang.Boolean> {
-    ctor public ActivityResultContracts.TakePicture();
-    method @CallSuper public android.content.Intent createIntent(android.content.Context context, android.net.Uri input);
-    method public final androidx.activity.result.contract.ActivityResultContract.SynchronousResult<java.lang.Boolean>? getSynchronousResult(android.content.Context context, android.net.Uri input);
-    method public final Boolean parseResult(int resultCode, android.content.Intent? intent);
-  }
-
-  public static class ActivityResultContracts.TakePicturePreview extends androidx.activity.result.contract.ActivityResultContract<java.lang.Void,android.graphics.Bitmap> {
-    ctor public ActivityResultContracts.TakePicturePreview();
-    method @CallSuper public android.content.Intent createIntent(android.content.Context context, Void? input);
-    method public final androidx.activity.result.contract.ActivityResultContract.SynchronousResult<android.graphics.Bitmap>? getSynchronousResult(android.content.Context context, Void? input);
-    method public final android.graphics.Bitmap? parseResult(int resultCode, android.content.Intent? intent);
-  }
-
-  @Deprecated public static class ActivityResultContracts.TakeVideo extends androidx.activity.result.contract.ActivityResultContract<android.net.Uri,android.graphics.Bitmap> {
-    ctor @Deprecated public ActivityResultContracts.TakeVideo();
-    method @Deprecated @CallSuper public android.content.Intent createIntent(android.content.Context context, android.net.Uri input);
-    method @Deprecated public final androidx.activity.result.contract.ActivityResultContract.SynchronousResult<android.graphics.Bitmap>? getSynchronousResult(android.content.Context context, android.net.Uri input);
-    method @Deprecated public final android.graphics.Bitmap? parseResult(int resultCode, android.content.Intent? intent);
-  }
-
-}
-
diff --git a/annotation/annotation-experimental/build.gradle b/annotation/annotation-experimental/build.gradle
index 7608693..0b75e9a 100644
--- a/annotation/annotation-experimental/build.gradle
+++ b/annotation/annotation-experimental/build.gradle
@@ -31,7 +31,6 @@
     name = "Experimental annotation"
     publish = Publish.SNAPSHOT_AND_RELEASE
     mavenVersion = LibraryVersions.ANNOTATION_EXPERIMENTAL
-    mavenMultiplatformVersion = LibraryVersions.ANNOTATION_EXPERIMENTAL_KMP
     inceptionYear = "2019"
     description = "Java annotation for use on unstable Android API surfaces. When used in " +
             "conjunction with the Experimental annotation lint checks, this annotation provides " +
diff --git a/annotation/annotation/build.gradle b/annotation/annotation/build.gradle
index 769ac65..21e996b 100644
--- a/annotation/annotation/build.gradle
+++ b/annotation/annotation/build.gradle
@@ -69,7 +69,6 @@
     name = "Annotation"
     type = LibraryType.PUBLISHED_LIBRARY
     mavenVersion = LibraryVersions.ANNOTATION
-    mavenMultiplatformVersion = LibraryVersions.ANNOTATION_KMP
     inceptionYear = "2013"
     description = "Provides source annotations for tooling and readability."
 }
diff --git a/appactions/builtintypes/builtintypes-core/api/current.txt b/appactions/builtintypes/builtintypes-core/api/current.txt
index 4033c72..09eaecb 100644
--- a/appactions/builtintypes/builtintypes-core/api/current.txt
+++ b/appactions/builtintypes/builtintypes-core/api/current.txt
@@ -164,6 +164,444 @@
 
 package androidx.appactions.builtintypes.types {
 
+  public abstract class AbstractAlarm<Self extends androidx.appactions.builtintypes.types.AbstractAlarm<Self, Builder>, Builder extends androidx.appactions.builtintypes.types.AbstractAlarm.Builder<Builder, Self>> implements androidx.appactions.builtintypes.types.Alarm {
+    ctor public AbstractAlarm(androidx.appactions.builtintypes.types.Alarm alarm);
+    method public final boolean equals(Object? other);
+    method protected abstract java.util.Map<java.lang.String,java.lang.Object> getAdditionalProperties();
+    method public final androidx.appactions.builtintypes.types.Schedule? getAlarmSchedule();
+    method public final androidx.appactions.builtintypes.properties.DisambiguatingDescription? getDisambiguatingDescription();
+    method public final String? getIdentifier();
+    method public final androidx.appactions.builtintypes.properties.Name? getName();
+    method protected abstract String getSelfTypeName();
+    method public final int hashCode();
+    method public final Builder toBuilder();
+    method protected abstract Builder toBuilderWithAdditionalPropertiesOnly();
+    method public final String toString();
+    property protected abstract java.util.Map<java.lang.String,java.lang.Object> additionalProperties;
+    property public final androidx.appactions.builtintypes.types.Schedule? alarmSchedule;
+    property public final androidx.appactions.builtintypes.properties.DisambiguatingDescription? disambiguatingDescription;
+    property public final String? identifier;
+    property public final androidx.appactions.builtintypes.properties.Name? name;
+    property protected abstract String selfTypeName;
+  }
+
+  public abstract static class AbstractAlarm.Builder<Self extends androidx.appactions.builtintypes.types.AbstractAlarm.Builder<Self, Built>, Built extends androidx.appactions.builtintypes.types.AbstractAlarm<Built, Self>> implements androidx.appactions.builtintypes.types.Alarm.Builder<Self> {
+    ctor public AbstractAlarm.Builder();
+    method public final Built build();
+    method protected abstract Built buildFromAlarm(androidx.appactions.builtintypes.types.Alarm alarm);
+    method public final boolean equals(Object? other);
+    method protected abstract java.util.Map<java.lang.String,java.lang.Object> getAdditionalProperties();
+    method protected abstract String getSelfTypeName();
+    method public final int hashCode();
+    method public final Self setAlarmSchedule(androidx.appactions.builtintypes.types.Schedule? schedule);
+    method public final Self setDisambiguatingDescription(androidx.appactions.builtintypes.properties.DisambiguatingDescription? disambiguatingDescription);
+    method public final Self setIdentifier(String? text);
+    method public final Self setName(androidx.appactions.builtintypes.properties.Name? name);
+    method public final String toString();
+    property protected abstract java.util.Map<java.lang.String,java.lang.Object> additionalProperties;
+    property protected abstract String selfTypeName;
+  }
+
+  public abstract class AbstractExecutionStatus<Self extends androidx.appactions.builtintypes.types.AbstractExecutionStatus<Self, Builder>, Builder extends androidx.appactions.builtintypes.types.AbstractExecutionStatus.Builder<Builder, Self>> implements androidx.appactions.builtintypes.types.ExecutionStatus {
+    ctor public AbstractExecutionStatus(androidx.appactions.builtintypes.types.ExecutionStatus executionStatus);
+    method public final boolean equals(Object? other);
+    method protected abstract java.util.Map<java.lang.String,java.lang.Object> getAdditionalProperties();
+    method public final androidx.appactions.builtintypes.properties.DisambiguatingDescription? getDisambiguatingDescription();
+    method public final String? getIdentifier();
+    method public final androidx.appactions.builtintypes.properties.Name? getName();
+    method protected abstract String getSelfTypeName();
+    method public final int hashCode();
+    method public final Builder toBuilder();
+    method protected abstract Builder toBuilderWithAdditionalPropertiesOnly();
+    method public final String toString();
+    property protected abstract java.util.Map<java.lang.String,java.lang.Object> additionalProperties;
+    property public final androidx.appactions.builtintypes.properties.DisambiguatingDescription? disambiguatingDescription;
+    property public final String? identifier;
+    property public final androidx.appactions.builtintypes.properties.Name? name;
+    property protected abstract String selfTypeName;
+  }
+
+  public abstract static class AbstractExecutionStatus.Builder<Self extends androidx.appactions.builtintypes.types.AbstractExecutionStatus.Builder<Self, Built>, Built extends androidx.appactions.builtintypes.types.AbstractExecutionStatus<Built, Self>> implements androidx.appactions.builtintypes.types.ExecutionStatus.Builder<Self> {
+    ctor public AbstractExecutionStatus.Builder();
+    method public final Built build();
+    method protected abstract Built buildFromExecutionStatus(androidx.appactions.builtintypes.types.ExecutionStatus executionStatus);
+    method public final boolean equals(Object? other);
+    method protected abstract java.util.Map<java.lang.String,java.lang.Object> getAdditionalProperties();
+    method protected abstract String getSelfTypeName();
+    method public final int hashCode();
+    method public final Self setDisambiguatingDescription(androidx.appactions.builtintypes.properties.DisambiguatingDescription? disambiguatingDescription);
+    method public final Self setIdentifier(String? text);
+    method public final Self setName(androidx.appactions.builtintypes.properties.Name? name);
+    method public final String toString();
+    property protected abstract java.util.Map<java.lang.String,java.lang.Object> additionalProperties;
+    property protected abstract String selfTypeName;
+  }
+
+  public abstract class AbstractGenericErrorStatus<Self extends androidx.appactions.builtintypes.types.AbstractGenericErrorStatus<Self, Builder>, Builder extends androidx.appactions.builtintypes.types.AbstractGenericErrorStatus.Builder<Builder, Self>> implements androidx.appactions.builtintypes.types.GenericErrorStatus {
+    ctor public AbstractGenericErrorStatus(androidx.appactions.builtintypes.types.GenericErrorStatus genericErrorStatus);
+    method public final boolean equals(Object? other);
+    method protected abstract java.util.Map<java.lang.String,java.lang.Object> getAdditionalProperties();
+    method public final androidx.appactions.builtintypes.properties.DisambiguatingDescription? getDisambiguatingDescription();
+    method public final String? getIdentifier();
+    method public final androidx.appactions.builtintypes.properties.Name? getName();
+    method protected abstract String getSelfTypeName();
+    method public final int hashCode();
+    method public final Builder toBuilder();
+    method protected abstract Builder toBuilderWithAdditionalPropertiesOnly();
+    method public final String toString();
+    property protected abstract java.util.Map<java.lang.String,java.lang.Object> additionalProperties;
+    property public final androidx.appactions.builtintypes.properties.DisambiguatingDescription? disambiguatingDescription;
+    property public final String? identifier;
+    property public final androidx.appactions.builtintypes.properties.Name? name;
+    property protected abstract String selfTypeName;
+  }
+
+  public abstract static class AbstractGenericErrorStatus.Builder<Self extends androidx.appactions.builtintypes.types.AbstractGenericErrorStatus.Builder<Self, Built>, Built extends androidx.appactions.builtintypes.types.AbstractGenericErrorStatus<Built, Self>> implements androidx.appactions.builtintypes.types.GenericErrorStatus.Builder<Self> {
+    ctor public AbstractGenericErrorStatus.Builder();
+    method public final Built build();
+    method protected abstract Built buildFromGenericErrorStatus(androidx.appactions.builtintypes.types.GenericErrorStatus genericErrorStatus);
+    method public final boolean equals(Object? other);
+    method protected abstract java.util.Map<java.lang.String,java.lang.Object> getAdditionalProperties();
+    method protected abstract String getSelfTypeName();
+    method public final int hashCode();
+    method public final Self setDisambiguatingDescription(androidx.appactions.builtintypes.properties.DisambiguatingDescription? disambiguatingDescription);
+    method public final Self setIdentifier(String? text);
+    method public final Self setName(androidx.appactions.builtintypes.properties.Name? name);
+    method public final String toString();
+    property protected abstract java.util.Map<java.lang.String,java.lang.Object> additionalProperties;
+    property protected abstract String selfTypeName;
+  }
+
+  public abstract class AbstractIntangible<Self extends androidx.appactions.builtintypes.types.AbstractIntangible<Self, Builder>, Builder extends androidx.appactions.builtintypes.types.AbstractIntangible.Builder<Builder, Self>> implements androidx.appactions.builtintypes.types.Intangible {
+    ctor public AbstractIntangible(androidx.appactions.builtintypes.types.Intangible intangible);
+    method public final boolean equals(Object? other);
+    method protected abstract java.util.Map<java.lang.String,java.lang.Object> getAdditionalProperties();
+    method public final androidx.appactions.builtintypes.properties.DisambiguatingDescription? getDisambiguatingDescription();
+    method public final String? getIdentifier();
+    method public final androidx.appactions.builtintypes.properties.Name? getName();
+    method protected abstract String getSelfTypeName();
+    method public final int hashCode();
+    method public final Builder toBuilder();
+    method protected abstract Builder toBuilderWithAdditionalPropertiesOnly();
+    method public final String toString();
+    property protected abstract java.util.Map<java.lang.String,java.lang.Object> additionalProperties;
+    property public final androidx.appactions.builtintypes.properties.DisambiguatingDescription? disambiguatingDescription;
+    property public final String? identifier;
+    property public final androidx.appactions.builtintypes.properties.Name? name;
+    property protected abstract String selfTypeName;
+  }
+
+  public abstract static class AbstractIntangible.Builder<Self extends androidx.appactions.builtintypes.types.AbstractIntangible.Builder<Self, Built>, Built extends androidx.appactions.builtintypes.types.AbstractIntangible<Built, Self>> implements androidx.appactions.builtintypes.types.Intangible.Builder<Self> {
+    ctor public AbstractIntangible.Builder();
+    method public final Built build();
+    method protected abstract Built buildFromIntangible(androidx.appactions.builtintypes.types.Intangible intangible);
+    method public final boolean equals(Object? other);
+    method protected abstract java.util.Map<java.lang.String,java.lang.Object> getAdditionalProperties();
+    method protected abstract String getSelfTypeName();
+    method public final int hashCode();
+    method public final Self setDisambiguatingDescription(androidx.appactions.builtintypes.properties.DisambiguatingDescription? disambiguatingDescription);
+    method public final Self setIdentifier(String? text);
+    method public final Self setName(androidx.appactions.builtintypes.properties.Name? name);
+    method public final String toString();
+    property protected abstract java.util.Map<java.lang.String,java.lang.Object> additionalProperties;
+    property protected abstract String selfTypeName;
+  }
+
+  public abstract class AbstractObjectCreationLimitReachedStatus<Self extends androidx.appactions.builtintypes.types.AbstractObjectCreationLimitReachedStatus<Self, Builder>, Builder extends androidx.appactions.builtintypes.types.AbstractObjectCreationLimitReachedStatus.Builder<Builder, Self>> implements androidx.appactions.builtintypes.types.ObjectCreationLimitReachedStatus {
+    ctor public AbstractObjectCreationLimitReachedStatus(androidx.appactions.builtintypes.types.ObjectCreationLimitReachedStatus objectCreationLimitReachedStatus);
+    method public final boolean equals(Object? other);
+    method protected abstract java.util.Map<java.lang.String,java.lang.Object> getAdditionalProperties();
+    method public final androidx.appactions.builtintypes.properties.DisambiguatingDescription? getDisambiguatingDescription();
+    method public final String? getIdentifier();
+    method public final androidx.appactions.builtintypes.properties.Name? getName();
+    method protected abstract String getSelfTypeName();
+    method public final int hashCode();
+    method public final Builder toBuilder();
+    method protected abstract Builder toBuilderWithAdditionalPropertiesOnly();
+    method public final String toString();
+    property protected abstract java.util.Map<java.lang.String,java.lang.Object> additionalProperties;
+    property public final androidx.appactions.builtintypes.properties.DisambiguatingDescription? disambiguatingDescription;
+    property public final String? identifier;
+    property public final androidx.appactions.builtintypes.properties.Name? name;
+    property protected abstract String selfTypeName;
+  }
+
+  public abstract static class AbstractObjectCreationLimitReachedStatus.Builder<Self extends androidx.appactions.builtintypes.types.AbstractObjectCreationLimitReachedStatus.Builder<Self, Built>, Built extends androidx.appactions.builtintypes.types.AbstractObjectCreationLimitReachedStatus<Built, Self>> implements androidx.appactions.builtintypes.types.ObjectCreationLimitReachedStatus.Builder<Self> {
+    ctor public AbstractObjectCreationLimitReachedStatus.Builder();
+    method public final Built build();
+    method protected abstract Built buildFromObjectCreationLimitReachedStatus(androidx.appactions.builtintypes.types.ObjectCreationLimitReachedStatus objectCreationLimitReachedStatus);
+    method public final boolean equals(Object? other);
+    method protected abstract java.util.Map<java.lang.String,java.lang.Object> getAdditionalProperties();
+    method protected abstract String getSelfTypeName();
+    method public final int hashCode();
+    method public final Self setDisambiguatingDescription(androidx.appactions.builtintypes.properties.DisambiguatingDescription? disambiguatingDescription);
+    method public final Self setIdentifier(String? text);
+    method public final Self setName(androidx.appactions.builtintypes.properties.Name? name);
+    method public final String toString();
+    property protected abstract java.util.Map<java.lang.String,java.lang.Object> additionalProperties;
+    property protected abstract String selfTypeName;
+  }
+
+  public abstract class AbstractPerson<Self extends androidx.appactions.builtintypes.types.AbstractPerson<Self, Builder>, Builder extends androidx.appactions.builtintypes.types.AbstractPerson.Builder<Builder, Self>> implements androidx.appactions.builtintypes.types.Person {
+    ctor public AbstractPerson(androidx.appactions.builtintypes.types.Person person);
+    method public final boolean equals(Object? other);
+    method protected abstract java.util.Map<java.lang.String,java.lang.Object> getAdditionalProperties();
+    method public final androidx.appactions.builtintypes.properties.DisambiguatingDescription? getDisambiguatingDescription();
+    method public final String? getEmail();
+    method public final String? getIdentifier();
+    method public final androidx.appactions.builtintypes.properties.Name? getName();
+    method protected abstract String getSelfTypeName();
+    method public final int hashCode();
+    method public final Builder toBuilder();
+    method protected abstract Builder toBuilderWithAdditionalPropertiesOnly();
+    method public final String toString();
+    property protected abstract java.util.Map<java.lang.String,java.lang.Object> additionalProperties;
+    property public final androidx.appactions.builtintypes.properties.DisambiguatingDescription? disambiguatingDescription;
+    property public final String? email;
+    property public final String? identifier;
+    property public final androidx.appactions.builtintypes.properties.Name? name;
+    property protected abstract String selfTypeName;
+  }
+
+  public abstract static class AbstractPerson.Builder<Self extends androidx.appactions.builtintypes.types.AbstractPerson.Builder<Self, Built>, Built extends androidx.appactions.builtintypes.types.AbstractPerson<Built, Self>> implements androidx.appactions.builtintypes.types.Person.Builder<Self> {
+    ctor public AbstractPerson.Builder();
+    method public final Built build();
+    method protected abstract Built buildFromPerson(androidx.appactions.builtintypes.types.Person person);
+    method public final boolean equals(Object? other);
+    method protected abstract java.util.Map<java.lang.String,java.lang.Object> getAdditionalProperties();
+    method protected abstract String getSelfTypeName();
+    method public final int hashCode();
+    method public final Self setDisambiguatingDescription(androidx.appactions.builtintypes.properties.DisambiguatingDescription? disambiguatingDescription);
+    method public final Self setEmail(String? text);
+    method public final Self setIdentifier(String? text);
+    method public final Self setName(androidx.appactions.builtintypes.properties.Name? name);
+    method public final String toString();
+    property protected abstract java.util.Map<java.lang.String,java.lang.Object> additionalProperties;
+    property protected abstract String selfTypeName;
+  }
+
+  public abstract class AbstractSchedule<Self extends androidx.appactions.builtintypes.types.AbstractSchedule<Self, Builder>, Builder extends androidx.appactions.builtintypes.types.AbstractSchedule.Builder<Builder, Self>> implements androidx.appactions.builtintypes.types.Schedule {
+    ctor public AbstractSchedule(androidx.appactions.builtintypes.types.Schedule schedule);
+    method public final boolean equals(Object? other);
+    method protected abstract java.util.Map<java.lang.String,java.lang.Object> getAdditionalProperties();
+    method public final java.util.List<androidx.appactions.builtintypes.properties.ByDay> getByDays();
+    method public final java.util.List<java.lang.Long> getByMonthDays();
+    method public final java.util.List<java.lang.Long> getByMonthWeeks();
+    method public final java.util.List<java.lang.Long> getByMonths();
+    method public final androidx.appactions.builtintypes.properties.DisambiguatingDescription? getDisambiguatingDescription();
+    method public final androidx.appactions.builtintypes.properties.EndDate? getEndDate();
+    method public final androidx.appactions.builtintypes.properties.EndTime? getEndTime();
+    method public final androidx.appactions.builtintypes.properties.ExceptDate? getExceptDate();
+    method public final String? getIdentifier();
+    method public final androidx.appactions.builtintypes.properties.Name? getName();
+    method public final Long? getRepeatCount();
+    method public final androidx.appactions.builtintypes.properties.RepeatFrequency? getRepeatFrequency();
+    method public final String? getScheduleTimezone();
+    method protected abstract String getSelfTypeName();
+    method public final androidx.appactions.builtintypes.properties.StartDate? getStartDate();
+    method public final androidx.appactions.builtintypes.properties.StartTime? getStartTime();
+    method public final int hashCode();
+    method public final Builder toBuilder();
+    method protected abstract Builder toBuilderWithAdditionalPropertiesOnly();
+    method public final String toString();
+    property protected abstract java.util.Map<java.lang.String,java.lang.Object> additionalProperties;
+    property public final java.util.List<androidx.appactions.builtintypes.properties.ByDay> byDays;
+    property public final java.util.List<java.lang.Long> byMonthDays;
+    property public final java.util.List<java.lang.Long> byMonthWeeks;
+    property public final java.util.List<java.lang.Long> byMonths;
+    property public final androidx.appactions.builtintypes.properties.DisambiguatingDescription? disambiguatingDescription;
+    property public final androidx.appactions.builtintypes.properties.EndDate? endDate;
+    property public final androidx.appactions.builtintypes.properties.EndTime? endTime;
+    property public final androidx.appactions.builtintypes.properties.ExceptDate? exceptDate;
+    property public final String? identifier;
+    property public final androidx.appactions.builtintypes.properties.Name? name;
+    property public final Long? repeatCount;
+    property public final androidx.appactions.builtintypes.properties.RepeatFrequency? repeatFrequency;
+    property public final String? scheduleTimezone;
+    property protected abstract String selfTypeName;
+    property public final androidx.appactions.builtintypes.properties.StartDate? startDate;
+    property public final androidx.appactions.builtintypes.properties.StartTime? startTime;
+  }
+
+  public abstract static class AbstractSchedule.Builder<Self extends androidx.appactions.builtintypes.types.AbstractSchedule.Builder<Self, Built>, Built extends androidx.appactions.builtintypes.types.AbstractSchedule<Built, Self>> implements androidx.appactions.builtintypes.types.Schedule.Builder<Self> {
+    ctor public AbstractSchedule.Builder();
+    method public final Self addByDay(androidx.appactions.builtintypes.properties.ByDay byDay);
+    method public final Self addByDays(Iterable<androidx.appactions.builtintypes.properties.ByDay> values);
+    method public final Self addByMonth(long integer);
+    method public final Self addByMonthDay(long integer);
+    method public final Self addByMonthDays(Iterable<java.lang.Long> values);
+    method public final Self addByMonthWeek(long integer);
+    method public final Self addByMonthWeeks(Iterable<java.lang.Long> values);
+    method public final Self addByMonths(Iterable<java.lang.Long> values);
+    method public final Built build();
+    method protected abstract Built buildFromSchedule(androidx.appactions.builtintypes.types.Schedule schedule);
+    method public final Self clearByDays();
+    method public final Self clearByMonthDays();
+    method public final Self clearByMonthWeeks();
+    method public final Self clearByMonths();
+    method public final boolean equals(Object? other);
+    method protected abstract java.util.Map<java.lang.String,java.lang.Object> getAdditionalProperties();
+    method protected abstract String getSelfTypeName();
+    method public final int hashCode();
+    method public final Self setDisambiguatingDescription(androidx.appactions.builtintypes.properties.DisambiguatingDescription? disambiguatingDescription);
+    method public final Self setEndDate(androidx.appactions.builtintypes.properties.EndDate? endDate);
+    method public final Self setEndTime(androidx.appactions.builtintypes.properties.EndTime? endTime);
+    method public final Self setExceptDate(androidx.appactions.builtintypes.properties.ExceptDate? exceptDate);
+    method public final Self setIdentifier(String? text);
+    method public final Self setName(androidx.appactions.builtintypes.properties.Name? name);
+    method public final Self setRepeatCount(Long? integer);
+    method public final Self setRepeatFrequency(androidx.appactions.builtintypes.properties.RepeatFrequency? repeatFrequency);
+    method public final Self setScheduleTimezone(String? text);
+    method public final Self setStartDate(androidx.appactions.builtintypes.properties.StartDate? startDate);
+    method public final Self setStartTime(androidx.appactions.builtintypes.properties.StartTime? startTime);
+    method public final String toString();
+    property protected abstract java.util.Map<java.lang.String,java.lang.Object> additionalProperties;
+    property protected abstract String selfTypeName;
+  }
+
+  public abstract class AbstractSuccessStatus<Self extends androidx.appactions.builtintypes.types.AbstractSuccessStatus<Self, Builder>, Builder extends androidx.appactions.builtintypes.types.AbstractSuccessStatus.Builder<Builder, Self>> implements androidx.appactions.builtintypes.types.SuccessStatus {
+    ctor public AbstractSuccessStatus(androidx.appactions.builtintypes.types.SuccessStatus successStatus);
+    method public final boolean equals(Object? other);
+    method protected abstract java.util.Map<java.lang.String,java.lang.Object> getAdditionalProperties();
+    method public final androidx.appactions.builtintypes.properties.DisambiguatingDescription? getDisambiguatingDescription();
+    method public final String? getIdentifier();
+    method public final androidx.appactions.builtintypes.properties.Name? getName();
+    method protected abstract String getSelfTypeName();
+    method public final int hashCode();
+    method public final Builder toBuilder();
+    method protected abstract Builder toBuilderWithAdditionalPropertiesOnly();
+    method public final String toString();
+    property protected abstract java.util.Map<java.lang.String,java.lang.Object> additionalProperties;
+    property public final androidx.appactions.builtintypes.properties.DisambiguatingDescription? disambiguatingDescription;
+    property public final String? identifier;
+    property public final androidx.appactions.builtintypes.properties.Name? name;
+    property protected abstract String selfTypeName;
+  }
+
+  public abstract static class AbstractSuccessStatus.Builder<Self extends androidx.appactions.builtintypes.types.AbstractSuccessStatus.Builder<Self, Built>, Built extends androidx.appactions.builtintypes.types.AbstractSuccessStatus<Built, Self>> implements androidx.appactions.builtintypes.types.SuccessStatus.Builder<Self> {
+    ctor public AbstractSuccessStatus.Builder();
+    method public final Built build();
+    method protected abstract Built buildFromSuccessStatus(androidx.appactions.builtintypes.types.SuccessStatus successStatus);
+    method public final boolean equals(Object? other);
+    method protected abstract java.util.Map<java.lang.String,java.lang.Object> getAdditionalProperties();
+    method protected abstract String getSelfTypeName();
+    method public final int hashCode();
+    method public final Self setDisambiguatingDescription(androidx.appactions.builtintypes.properties.DisambiguatingDescription? disambiguatingDescription);
+    method public final Self setIdentifier(String? text);
+    method public final Self setName(androidx.appactions.builtintypes.properties.Name? name);
+    method public final String toString();
+    property protected abstract java.util.Map<java.lang.String,java.lang.Object> additionalProperties;
+    property protected abstract String selfTypeName;
+  }
+
+  public abstract class AbstractThing<Self extends androidx.appactions.builtintypes.types.AbstractThing<Self, Builder>, Builder extends androidx.appactions.builtintypes.types.AbstractThing.Builder<Builder, Self>> implements androidx.appactions.builtintypes.types.Thing {
+    ctor public AbstractThing(androidx.appactions.builtintypes.types.Thing thing);
+    method public final boolean equals(Object? other);
+    method protected abstract java.util.Map<java.lang.String,java.lang.Object> getAdditionalProperties();
+    method public final androidx.appactions.builtintypes.properties.DisambiguatingDescription? getDisambiguatingDescription();
+    method public final String? getIdentifier();
+    method public final androidx.appactions.builtintypes.properties.Name? getName();
+    method protected abstract String getSelfTypeName();
+    method public final int hashCode();
+    method public final Builder toBuilder();
+    method protected abstract Builder toBuilderWithAdditionalPropertiesOnly();
+    method public final String toString();
+    property protected abstract java.util.Map<java.lang.String,java.lang.Object> additionalProperties;
+    property public final androidx.appactions.builtintypes.properties.DisambiguatingDescription? disambiguatingDescription;
+    property public final String? identifier;
+    property public final androidx.appactions.builtintypes.properties.Name? name;
+    property protected abstract String selfTypeName;
+  }
+
+  public abstract static class AbstractThing.Builder<Self extends androidx.appactions.builtintypes.types.AbstractThing.Builder<Self, Built>, Built extends androidx.appactions.builtintypes.types.AbstractThing<Built, Self>> implements androidx.appactions.builtintypes.types.Thing.Builder<Self> {
+    ctor public AbstractThing.Builder();
+    method public final Built build();
+    method protected abstract Built buildFromThing(androidx.appactions.builtintypes.types.Thing thing);
+    method public final boolean equals(Object? other);
+    method protected abstract java.util.Map<java.lang.String,java.lang.Object> getAdditionalProperties();
+    method protected abstract String getSelfTypeName();
+    method public final int hashCode();
+    method public final Self setDisambiguatingDescription(androidx.appactions.builtintypes.properties.DisambiguatingDescription? disambiguatingDescription);
+    method public final Self setIdentifier(String? text);
+    method public final Self setName(androidx.appactions.builtintypes.properties.Name? name);
+    method public final String toString();
+    property protected abstract java.util.Map<java.lang.String,java.lang.Object> additionalProperties;
+    property protected abstract String selfTypeName;
+  }
+
+  public abstract class AbstractTimer<Self extends androidx.appactions.builtintypes.types.AbstractTimer<Self, Builder>, Builder extends androidx.appactions.builtintypes.types.AbstractTimer.Builder<Builder, Self>> implements androidx.appactions.builtintypes.types.Timer {
+    ctor public AbstractTimer(androidx.appactions.builtintypes.types.Timer timer);
+    method public final boolean equals(Object? other);
+    method protected abstract java.util.Map<java.lang.String,java.lang.Object> getAdditionalProperties();
+    method public final androidx.appactions.builtintypes.properties.DisambiguatingDescription? getDisambiguatingDescription();
+    method public final java.time.Duration? getDuration();
+    method public final String? getIdentifier();
+    method public final androidx.appactions.builtintypes.properties.Name? getName();
+    method protected abstract String getSelfTypeName();
+    method public final int hashCode();
+    method public final Builder toBuilder();
+    method protected abstract Builder toBuilderWithAdditionalPropertiesOnly();
+    method public final String toString();
+    property protected abstract java.util.Map<java.lang.String,java.lang.Object> additionalProperties;
+    property public final androidx.appactions.builtintypes.properties.DisambiguatingDescription? disambiguatingDescription;
+    property public final java.time.Duration? duration;
+    property public final String? identifier;
+    property public final androidx.appactions.builtintypes.properties.Name? name;
+    property protected abstract String selfTypeName;
+  }
+
+  public abstract static class AbstractTimer.Builder<Self extends androidx.appactions.builtintypes.types.AbstractTimer.Builder<Self, Built>, Built extends androidx.appactions.builtintypes.types.AbstractTimer<Built, Self>> implements androidx.appactions.builtintypes.types.Timer.Builder<Self> {
+    ctor public AbstractTimer.Builder();
+    method public final Built build();
+    method protected abstract Built buildFromTimer(androidx.appactions.builtintypes.types.Timer timer);
+    method public final boolean equals(Object? other);
+    method protected abstract java.util.Map<java.lang.String,java.lang.Object> getAdditionalProperties();
+    method protected abstract String getSelfTypeName();
+    method public final int hashCode();
+    method public final Self setDisambiguatingDescription(androidx.appactions.builtintypes.properties.DisambiguatingDescription? disambiguatingDescription);
+    method public final Self setDuration(java.time.Duration? duration);
+    method public final Self setIdentifier(String? text);
+    method public final Self setName(androidx.appactions.builtintypes.properties.Name? name);
+    method public final String toString();
+    property protected abstract java.util.Map<java.lang.String,java.lang.Object> additionalProperties;
+    property protected abstract String selfTypeName;
+  }
+
+  public abstract class AbstractUnsupportedOperationStatus<Self extends androidx.appactions.builtintypes.types.AbstractUnsupportedOperationStatus<Self, Builder>, Builder extends androidx.appactions.builtintypes.types.AbstractUnsupportedOperationStatus.Builder<Builder, Self>> implements androidx.appactions.builtintypes.types.UnsupportedOperationStatus {
+    ctor public AbstractUnsupportedOperationStatus(androidx.appactions.builtintypes.types.UnsupportedOperationStatus unsupportedOperationStatus);
+    method public final boolean equals(Object? other);
+    method protected abstract java.util.Map<java.lang.String,java.lang.Object> getAdditionalProperties();
+    method public final androidx.appactions.builtintypes.properties.DisambiguatingDescription? getDisambiguatingDescription();
+    method public final String? getIdentifier();
+    method public final androidx.appactions.builtintypes.properties.Name? getName();
+    method protected abstract String getSelfTypeName();
+    method public final int hashCode();
+    method public final Builder toBuilder();
+    method protected abstract Builder toBuilderWithAdditionalPropertiesOnly();
+    method public final String toString();
+    property protected abstract java.util.Map<java.lang.String,java.lang.Object> additionalProperties;
+    property public final androidx.appactions.builtintypes.properties.DisambiguatingDescription? disambiguatingDescription;
+    property public final String? identifier;
+    property public final androidx.appactions.builtintypes.properties.Name? name;
+    property protected abstract String selfTypeName;
+  }
+
+  public abstract static class AbstractUnsupportedOperationStatus.Builder<Self extends androidx.appactions.builtintypes.types.AbstractUnsupportedOperationStatus.Builder<Self, Built>, Built extends androidx.appactions.builtintypes.types.AbstractUnsupportedOperationStatus<Built, Self>> implements androidx.appactions.builtintypes.types.UnsupportedOperationStatus.Builder<Self> {
+    ctor public AbstractUnsupportedOperationStatus.Builder();
+    method public final Built build();
+    method protected abstract Built buildFromUnsupportedOperationStatus(androidx.appactions.builtintypes.types.UnsupportedOperationStatus unsupportedOperationStatus);
+    method public final boolean equals(Object? other);
+    method protected abstract java.util.Map<java.lang.String,java.lang.Object> getAdditionalProperties();
+    method protected abstract String getSelfTypeName();
+    method public final int hashCode();
+    method public final Self setDisambiguatingDescription(androidx.appactions.builtintypes.properties.DisambiguatingDescription? disambiguatingDescription);
+    method public final Self setIdentifier(String? text);
+    method public final Self setName(androidx.appactions.builtintypes.properties.Name? name);
+    method public final String toString();
+    property protected abstract java.util.Map<java.lang.String,java.lang.Object> additionalProperties;
+    property protected abstract String selfTypeName;
+  }
+
   public interface Alarm extends androidx.appactions.builtintypes.types.Thing {
     method public default static androidx.appactions.builtintypes.types.Alarm.Builder<?> Builder();
     method public androidx.appactions.builtintypes.types.Schedule? getAlarmSchedule();
@@ -222,267 +660,32 @@
     method public default R wednesday();
   }
 
-  public abstract class GenericAlarm<Self extends androidx.appactions.builtintypes.types.GenericAlarm<Self, Builder>, Builder extends androidx.appactions.builtintypes.types.GenericAlarm.Builder<Builder, Self>> implements androidx.appactions.builtintypes.types.Alarm {
-    ctor public GenericAlarm(androidx.appactions.builtintypes.types.Alarm alarm);
-    method public final boolean equals(Object? other);
-    method protected abstract java.util.Map<java.lang.String,java.lang.Object> getAdditionalProperties();
-    method public final androidx.appactions.builtintypes.types.Schedule? getAlarmSchedule();
-    method public final androidx.appactions.builtintypes.properties.DisambiguatingDescription? getDisambiguatingDescription();
-    method public final String? getIdentifier();
-    method public final androidx.appactions.builtintypes.properties.Name? getName();
-    method protected abstract String getSelfTypeName();
-    method public final int hashCode();
-    method public final Builder toBuilder();
-    method protected abstract Builder toBuilderWithAdditionalPropertiesOnly();
-    method public final String toString();
-    property protected abstract java.util.Map<java.lang.String,java.lang.Object> additionalProperties;
-    property public final androidx.appactions.builtintypes.types.Schedule? alarmSchedule;
-    property public final androidx.appactions.builtintypes.properties.DisambiguatingDescription? disambiguatingDescription;
-    property public final String? identifier;
-    property public final androidx.appactions.builtintypes.properties.Name? name;
-    property protected abstract String selfTypeName;
+  public interface ExecutionStatus extends androidx.appactions.builtintypes.types.Intangible {
+    method public default static androidx.appactions.builtintypes.types.ExecutionStatus.Builder<?> Builder();
+    method public androidx.appactions.builtintypes.types.ExecutionStatus.Builder<?> toBuilder();
+    field public static final androidx.appactions.builtintypes.types.ExecutionStatus.Companion Companion;
   }
 
-  public abstract static class GenericAlarm.Builder<Self extends androidx.appactions.builtintypes.types.GenericAlarm.Builder<Self, Built>, Built extends androidx.appactions.builtintypes.types.GenericAlarm<Built, Self>> implements androidx.appactions.builtintypes.types.Alarm.Builder<Self> {
-    ctor public GenericAlarm.Builder();
-    method public final Built build();
-    method protected abstract Built buildFromAlarm(androidx.appactions.builtintypes.types.Alarm alarm);
-    method public final boolean equals(Object? other);
-    method protected abstract java.util.Map<java.lang.String,java.lang.Object> getAdditionalProperties();
-    method protected abstract String getSelfTypeName();
-    method public final int hashCode();
-    method public final Self setAlarmSchedule(androidx.appactions.builtintypes.types.Schedule? schedule);
-    method public final Self setDisambiguatingDescription(androidx.appactions.builtintypes.properties.DisambiguatingDescription? disambiguatingDescription);
-    method public final Self setIdentifier(String? text);
-    method public final Self setName(androidx.appactions.builtintypes.properties.Name? name);
-    method public final String toString();
-    property protected abstract java.util.Map<java.lang.String,java.lang.Object> additionalProperties;
-    property protected abstract String selfTypeName;
+  public static interface ExecutionStatus.Builder<Self extends androidx.appactions.builtintypes.types.ExecutionStatus.Builder<Self>> extends androidx.appactions.builtintypes.types.Intangible.Builder<Self> {
+    method public androidx.appactions.builtintypes.types.ExecutionStatus build();
   }
 
-  public abstract class GenericIntangible<Self extends androidx.appactions.builtintypes.types.GenericIntangible<Self, Builder>, Builder extends androidx.appactions.builtintypes.types.GenericIntangible.Builder<Builder, Self>> implements androidx.appactions.builtintypes.types.Intangible {
-    ctor public GenericIntangible(androidx.appactions.builtintypes.types.Intangible intangible);
-    method public final boolean equals(Object? other);
-    method protected abstract java.util.Map<java.lang.String,java.lang.Object> getAdditionalProperties();
-    method public final androidx.appactions.builtintypes.properties.DisambiguatingDescription? getDisambiguatingDescription();
-    method public final String? getIdentifier();
-    method public final androidx.appactions.builtintypes.properties.Name? getName();
-    method protected abstract String getSelfTypeName();
-    method public final int hashCode();
-    method public final Builder toBuilder();
-    method protected abstract Builder toBuilderWithAdditionalPropertiesOnly();
-    method public final String toString();
-    property protected abstract java.util.Map<java.lang.String,java.lang.Object> additionalProperties;
-    property public final androidx.appactions.builtintypes.properties.DisambiguatingDescription? disambiguatingDescription;
-    property public final String? identifier;
-    property public final androidx.appactions.builtintypes.properties.Name? name;
-    property protected abstract String selfTypeName;
+  public static final class ExecutionStatus.Companion {
+    method public androidx.appactions.builtintypes.types.ExecutionStatus.Builder<?> Builder();
   }
 
-  public abstract static class GenericIntangible.Builder<Self extends androidx.appactions.builtintypes.types.GenericIntangible.Builder<Self, Built>, Built extends androidx.appactions.builtintypes.types.GenericIntangible<Built, Self>> implements androidx.appactions.builtintypes.types.Intangible.Builder<Self> {
-    ctor public GenericIntangible.Builder();
-    method public final Built build();
-    method protected abstract Built buildFromIntangible(androidx.appactions.builtintypes.types.Intangible intangible);
-    method public final boolean equals(Object? other);
-    method protected abstract java.util.Map<java.lang.String,java.lang.Object> getAdditionalProperties();
-    method protected abstract String getSelfTypeName();
-    method public final int hashCode();
-    method public final Self setDisambiguatingDescription(androidx.appactions.builtintypes.properties.DisambiguatingDescription? disambiguatingDescription);
-    method public final Self setIdentifier(String? text);
-    method public final Self setName(androidx.appactions.builtintypes.properties.Name? name);
-    method public final String toString();
-    property protected abstract java.util.Map<java.lang.String,java.lang.Object> additionalProperties;
-    property protected abstract String selfTypeName;
+  public interface GenericErrorStatus extends androidx.appactions.builtintypes.types.ExecutionStatus {
+    method public default static androidx.appactions.builtintypes.types.GenericErrorStatus.Builder<?> Builder();
+    method public androidx.appactions.builtintypes.types.GenericErrorStatus.Builder<?> toBuilder();
+    field public static final androidx.appactions.builtintypes.types.GenericErrorStatus.Companion Companion;
   }
 
-  public abstract class GenericPerson<Self extends androidx.appactions.builtintypes.types.GenericPerson<Self, Builder>, Builder extends androidx.appactions.builtintypes.types.GenericPerson.Builder<Builder, Self>> implements androidx.appactions.builtintypes.types.Person {
-    ctor public GenericPerson(androidx.appactions.builtintypes.types.Person person);
-    method public final boolean equals(Object? other);
-    method protected abstract java.util.Map<java.lang.String,java.lang.Object> getAdditionalProperties();
-    method public final androidx.appactions.builtintypes.properties.DisambiguatingDescription? getDisambiguatingDescription();
-    method public final String? getEmail();
-    method public final String? getIdentifier();
-    method public final androidx.appactions.builtintypes.properties.Name? getName();
-    method protected abstract String getSelfTypeName();
-    method public final int hashCode();
-    method public final Builder toBuilder();
-    method protected abstract Builder toBuilderWithAdditionalPropertiesOnly();
-    method public final String toString();
-    property protected abstract java.util.Map<java.lang.String,java.lang.Object> additionalProperties;
-    property public final androidx.appactions.builtintypes.properties.DisambiguatingDescription? disambiguatingDescription;
-    property public final String? email;
-    property public final String? identifier;
-    property public final androidx.appactions.builtintypes.properties.Name? name;
-    property protected abstract String selfTypeName;
+  public static interface GenericErrorStatus.Builder<Self extends androidx.appactions.builtintypes.types.GenericErrorStatus.Builder<Self>> extends androidx.appactions.builtintypes.types.ExecutionStatus.Builder<Self> {
+    method public androidx.appactions.builtintypes.types.GenericErrorStatus build();
   }
 
-  public abstract static class GenericPerson.Builder<Self extends androidx.appactions.builtintypes.types.GenericPerson.Builder<Self, Built>, Built extends androidx.appactions.builtintypes.types.GenericPerson<Built, Self>> implements androidx.appactions.builtintypes.types.Person.Builder<Self> {
-    ctor public GenericPerson.Builder();
-    method public final Built build();
-    method protected abstract Built buildFromPerson(androidx.appactions.builtintypes.types.Person person);
-    method public final boolean equals(Object? other);
-    method protected abstract java.util.Map<java.lang.String,java.lang.Object> getAdditionalProperties();
-    method protected abstract String getSelfTypeName();
-    method public final int hashCode();
-    method public final Self setDisambiguatingDescription(androidx.appactions.builtintypes.properties.DisambiguatingDescription? disambiguatingDescription);
-    method public final Self setEmail(String? text);
-    method public final Self setIdentifier(String? text);
-    method public final Self setName(androidx.appactions.builtintypes.properties.Name? name);
-    method public final String toString();
-    property protected abstract java.util.Map<java.lang.String,java.lang.Object> additionalProperties;
-    property protected abstract String selfTypeName;
-  }
-
-  public abstract class GenericSchedule<Self extends androidx.appactions.builtintypes.types.GenericSchedule<Self, Builder>, Builder extends androidx.appactions.builtintypes.types.GenericSchedule.Builder<Builder, Self>> implements androidx.appactions.builtintypes.types.Schedule {
-    ctor public GenericSchedule(androidx.appactions.builtintypes.types.Schedule schedule);
-    method public final boolean equals(Object? other);
-    method protected abstract java.util.Map<java.lang.String,java.lang.Object> getAdditionalProperties();
-    method public final java.util.List<androidx.appactions.builtintypes.properties.ByDay> getByDays();
-    method public final java.util.List<java.lang.Long> getByMonthDays();
-    method public final java.util.List<java.lang.Long> getByMonthWeeks();
-    method public final java.util.List<java.lang.Long> getByMonths();
-    method public final androidx.appactions.builtintypes.properties.DisambiguatingDescription? getDisambiguatingDescription();
-    method public final androidx.appactions.builtintypes.properties.EndDate? getEndDate();
-    method public final androidx.appactions.builtintypes.properties.EndTime? getEndTime();
-    method public final androidx.appactions.builtintypes.properties.ExceptDate? getExceptDate();
-    method public final String? getIdentifier();
-    method public final androidx.appactions.builtintypes.properties.Name? getName();
-    method public final Long? getRepeatCount();
-    method public final androidx.appactions.builtintypes.properties.RepeatFrequency? getRepeatFrequency();
-    method public final String? getScheduleTimezone();
-    method protected abstract String getSelfTypeName();
-    method public final androidx.appactions.builtintypes.properties.StartDate? getStartDate();
-    method public final androidx.appactions.builtintypes.properties.StartTime? getStartTime();
-    method public final int hashCode();
-    method public final Builder toBuilder();
-    method protected abstract Builder toBuilderWithAdditionalPropertiesOnly();
-    method public final String toString();
-    property protected abstract java.util.Map<java.lang.String,java.lang.Object> additionalProperties;
-    property public final java.util.List<androidx.appactions.builtintypes.properties.ByDay> byDays;
-    property public final java.util.List<java.lang.Long> byMonthDays;
-    property public final java.util.List<java.lang.Long> byMonthWeeks;
-    property public final java.util.List<java.lang.Long> byMonths;
-    property public final androidx.appactions.builtintypes.properties.DisambiguatingDescription? disambiguatingDescription;
-    property public final androidx.appactions.builtintypes.properties.EndDate? endDate;
-    property public final androidx.appactions.builtintypes.properties.EndTime? endTime;
-    property public final androidx.appactions.builtintypes.properties.ExceptDate? exceptDate;
-    property public final String? identifier;
-    property public final androidx.appactions.builtintypes.properties.Name? name;
-    property public final Long? repeatCount;
-    property public final androidx.appactions.builtintypes.properties.RepeatFrequency? repeatFrequency;
-    property public final String? scheduleTimezone;
-    property protected abstract String selfTypeName;
-    property public final androidx.appactions.builtintypes.properties.StartDate? startDate;
-    property public final androidx.appactions.builtintypes.properties.StartTime? startTime;
-  }
-
-  public abstract static class GenericSchedule.Builder<Self extends androidx.appactions.builtintypes.types.GenericSchedule.Builder<Self, Built>, Built extends androidx.appactions.builtintypes.types.GenericSchedule<Built, Self>> implements androidx.appactions.builtintypes.types.Schedule.Builder<Self> {
-    ctor public GenericSchedule.Builder();
-    method public final Self addByDay(androidx.appactions.builtintypes.properties.ByDay byDay);
-    method public final Self addByDays(Iterable<androidx.appactions.builtintypes.properties.ByDay> values);
-    method public final Self addByMonth(long integer);
-    method public final Self addByMonthDay(long integer);
-    method public final Self addByMonthDays(Iterable<java.lang.Long> values);
-    method public final Self addByMonthWeek(long integer);
-    method public final Self addByMonthWeeks(Iterable<java.lang.Long> values);
-    method public final Self addByMonths(Iterable<java.lang.Long> values);
-    method public final Built build();
-    method protected abstract Built buildFromSchedule(androidx.appactions.builtintypes.types.Schedule schedule);
-    method public final Self clearByDays();
-    method public final Self clearByMonthDays();
-    method public final Self clearByMonthWeeks();
-    method public final Self clearByMonths();
-    method public final boolean equals(Object? other);
-    method protected abstract java.util.Map<java.lang.String,java.lang.Object> getAdditionalProperties();
-    method protected abstract String getSelfTypeName();
-    method public final int hashCode();
-    method public final Self setDisambiguatingDescription(androidx.appactions.builtintypes.properties.DisambiguatingDescription? disambiguatingDescription);
-    method public final Self setEndDate(androidx.appactions.builtintypes.properties.EndDate? endDate);
-    method public final Self setEndTime(androidx.appactions.builtintypes.properties.EndTime? endTime);
-    method public final Self setExceptDate(androidx.appactions.builtintypes.properties.ExceptDate? exceptDate);
-    method public final Self setIdentifier(String? text);
-    method public final Self setName(androidx.appactions.builtintypes.properties.Name? name);
-    method public final Self setRepeatCount(Long? integer);
-    method public final Self setRepeatFrequency(androidx.appactions.builtintypes.properties.RepeatFrequency? repeatFrequency);
-    method public final Self setScheduleTimezone(String? text);
-    method public final Self setStartDate(androidx.appactions.builtintypes.properties.StartDate? startDate);
-    method public final Self setStartTime(androidx.appactions.builtintypes.properties.StartTime? startTime);
-    method public final String toString();
-    property protected abstract java.util.Map<java.lang.String,java.lang.Object> additionalProperties;
-    property protected abstract String selfTypeName;
-  }
-
-  public abstract class GenericThing<Self extends androidx.appactions.builtintypes.types.GenericThing<Self, Builder>, Builder extends androidx.appactions.builtintypes.types.GenericThing.Builder<Builder, Self>> implements androidx.appactions.builtintypes.types.Thing {
-    ctor public GenericThing(androidx.appactions.builtintypes.types.Thing thing);
-    method public final boolean equals(Object? other);
-    method protected abstract java.util.Map<java.lang.String,java.lang.Object> getAdditionalProperties();
-    method public final androidx.appactions.builtintypes.properties.DisambiguatingDescription? getDisambiguatingDescription();
-    method public final String? getIdentifier();
-    method public final androidx.appactions.builtintypes.properties.Name? getName();
-    method protected abstract String getSelfTypeName();
-    method public final int hashCode();
-    method public final Builder toBuilder();
-    method protected abstract Builder toBuilderWithAdditionalPropertiesOnly();
-    method public final String toString();
-    property protected abstract java.util.Map<java.lang.String,java.lang.Object> additionalProperties;
-    property public final androidx.appactions.builtintypes.properties.DisambiguatingDescription? disambiguatingDescription;
-    property public final String? identifier;
-    property public final androidx.appactions.builtintypes.properties.Name? name;
-    property protected abstract String selfTypeName;
-  }
-
-  public abstract static class GenericThing.Builder<Self extends androidx.appactions.builtintypes.types.GenericThing.Builder<Self, Built>, Built extends androidx.appactions.builtintypes.types.GenericThing<Built, Self>> implements androidx.appactions.builtintypes.types.Thing.Builder<Self> {
-    ctor public GenericThing.Builder();
-    method public final Built build();
-    method protected abstract Built buildFromThing(androidx.appactions.builtintypes.types.Thing thing);
-    method public final boolean equals(Object? other);
-    method protected abstract java.util.Map<java.lang.String,java.lang.Object> getAdditionalProperties();
-    method protected abstract String getSelfTypeName();
-    method public final int hashCode();
-    method public final Self setDisambiguatingDescription(androidx.appactions.builtintypes.properties.DisambiguatingDescription? disambiguatingDescription);
-    method public final Self setIdentifier(String? text);
-    method public final Self setName(androidx.appactions.builtintypes.properties.Name? name);
-    method public final String toString();
-    property protected abstract java.util.Map<java.lang.String,java.lang.Object> additionalProperties;
-    property protected abstract String selfTypeName;
-  }
-
-  public abstract class GenericTimer<Self extends androidx.appactions.builtintypes.types.GenericTimer<Self, Builder>, Builder extends androidx.appactions.builtintypes.types.GenericTimer.Builder<Builder, Self>> implements androidx.appactions.builtintypes.types.Timer {
-    ctor public GenericTimer(androidx.appactions.builtintypes.types.Timer timer);
-    method public final boolean equals(Object? other);
-    method protected abstract java.util.Map<java.lang.String,java.lang.Object> getAdditionalProperties();
-    method public final androidx.appactions.builtintypes.properties.DisambiguatingDescription? getDisambiguatingDescription();
-    method public final java.time.Duration? getDuration();
-    method public final String? getIdentifier();
-    method public final androidx.appactions.builtintypes.properties.Name? getName();
-    method protected abstract String getSelfTypeName();
-    method public final int hashCode();
-    method public final Builder toBuilder();
-    method protected abstract Builder toBuilderWithAdditionalPropertiesOnly();
-    method public final String toString();
-    property protected abstract java.util.Map<java.lang.String,java.lang.Object> additionalProperties;
-    property public final androidx.appactions.builtintypes.properties.DisambiguatingDescription? disambiguatingDescription;
-    property public final java.time.Duration? duration;
-    property public final String? identifier;
-    property public final androidx.appactions.builtintypes.properties.Name? name;
-    property protected abstract String selfTypeName;
-  }
-
-  public abstract static class GenericTimer.Builder<Self extends androidx.appactions.builtintypes.types.GenericTimer.Builder<Self, Built>, Built extends androidx.appactions.builtintypes.types.GenericTimer<Built, Self>> implements androidx.appactions.builtintypes.types.Timer.Builder<Self> {
-    ctor public GenericTimer.Builder();
-    method public final Built build();
-    method protected abstract Built buildFromTimer(androidx.appactions.builtintypes.types.Timer timer);
-    method public final boolean equals(Object? other);
-    method protected abstract java.util.Map<java.lang.String,java.lang.Object> getAdditionalProperties();
-    method protected abstract String getSelfTypeName();
-    method public final int hashCode();
-    method public final Self setDisambiguatingDescription(androidx.appactions.builtintypes.properties.DisambiguatingDescription? disambiguatingDescription);
-    method public final Self setDuration(java.time.Duration? duration);
-    method public final Self setIdentifier(String? text);
-    method public final Self setName(androidx.appactions.builtintypes.properties.Name? name);
-    method public final String toString();
-    property protected abstract java.util.Map<java.lang.String,java.lang.Object> additionalProperties;
-    property protected abstract String selfTypeName;
+  public static final class GenericErrorStatus.Companion {
+    method public androidx.appactions.builtintypes.types.GenericErrorStatus.Builder<?> Builder();
   }
 
   public interface Intangible extends androidx.appactions.builtintypes.types.Thing {
@@ -499,6 +702,20 @@
     method public androidx.appactions.builtintypes.types.Intangible.Builder<?> Builder();
   }
 
+  public interface ObjectCreationLimitReachedStatus extends androidx.appactions.builtintypes.types.ExecutionStatus {
+    method public default static androidx.appactions.builtintypes.types.ObjectCreationLimitReachedStatus.Builder<?> Builder();
+    method public androidx.appactions.builtintypes.types.ObjectCreationLimitReachedStatus.Builder<?> toBuilder();
+    field public static final androidx.appactions.builtintypes.types.ObjectCreationLimitReachedStatus.Companion Companion;
+  }
+
+  public static interface ObjectCreationLimitReachedStatus.Builder<Self extends androidx.appactions.builtintypes.types.ObjectCreationLimitReachedStatus.Builder<Self>> extends androidx.appactions.builtintypes.types.ExecutionStatus.Builder<Self> {
+    method public androidx.appactions.builtintypes.types.ObjectCreationLimitReachedStatus build();
+  }
+
+  public static final class ObjectCreationLimitReachedStatus.Companion {
+    method public androidx.appactions.builtintypes.types.ObjectCreationLimitReachedStatus.Builder<?> Builder();
+  }
+
   public interface Person extends androidx.appactions.builtintypes.types.Thing {
     method public default static androidx.appactions.builtintypes.types.Person.Builder<?> Builder();
     method public String? getEmail();
@@ -593,6 +810,20 @@
     method public androidx.appactions.builtintypes.types.Schedule.Builder<?> Builder();
   }
 
+  public interface SuccessStatus extends androidx.appactions.builtintypes.types.ExecutionStatus {
+    method public default static androidx.appactions.builtintypes.types.SuccessStatus.Builder<?> Builder();
+    method public androidx.appactions.builtintypes.types.SuccessStatus.Builder<?> toBuilder();
+    field public static final androidx.appactions.builtintypes.types.SuccessStatus.Companion Companion;
+  }
+
+  public static interface SuccessStatus.Builder<Self extends androidx.appactions.builtintypes.types.SuccessStatus.Builder<Self>> extends androidx.appactions.builtintypes.types.ExecutionStatus.Builder<Self> {
+    method public androidx.appactions.builtintypes.types.SuccessStatus build();
+  }
+
+  public static final class SuccessStatus.Companion {
+    method public androidx.appactions.builtintypes.types.SuccessStatus.Builder<?> Builder();
+  }
+
   public interface Thing {
     method public default static androidx.appactions.builtintypes.types.Thing.Builder<?> Builder();
     method public androidx.appactions.builtintypes.properties.DisambiguatingDescription? getDisambiguatingDescription();
@@ -635,5 +866,19 @@
     method public androidx.appactions.builtintypes.types.Timer.Builder<?> Builder();
   }
 
+  public interface UnsupportedOperationStatus extends androidx.appactions.builtintypes.types.ExecutionStatus {
+    method public default static androidx.appactions.builtintypes.types.UnsupportedOperationStatus.Builder<?> Builder();
+    method public androidx.appactions.builtintypes.types.UnsupportedOperationStatus.Builder<?> toBuilder();
+    field public static final androidx.appactions.builtintypes.types.UnsupportedOperationStatus.Companion Companion;
+  }
+
+  public static interface UnsupportedOperationStatus.Builder<Self extends androidx.appactions.builtintypes.types.UnsupportedOperationStatus.Builder<Self>> extends androidx.appactions.builtintypes.types.ExecutionStatus.Builder<Self> {
+    method public androidx.appactions.builtintypes.types.UnsupportedOperationStatus build();
+  }
+
+  public static final class UnsupportedOperationStatus.Companion {
+    method public androidx.appactions.builtintypes.types.UnsupportedOperationStatus.Builder<?> Builder();
+  }
+
 }
 
diff --git a/appactions/builtintypes/builtintypes-core/api/restricted_current.txt b/appactions/builtintypes/builtintypes-core/api/restricted_current.txt
index 4033c72..09eaecb 100644
--- a/appactions/builtintypes/builtintypes-core/api/restricted_current.txt
+++ b/appactions/builtintypes/builtintypes-core/api/restricted_current.txt
@@ -164,6 +164,444 @@
 
 package androidx.appactions.builtintypes.types {
 
+  public abstract class AbstractAlarm<Self extends androidx.appactions.builtintypes.types.AbstractAlarm<Self, Builder>, Builder extends androidx.appactions.builtintypes.types.AbstractAlarm.Builder<Builder, Self>> implements androidx.appactions.builtintypes.types.Alarm {
+    ctor public AbstractAlarm(androidx.appactions.builtintypes.types.Alarm alarm);
+    method public final boolean equals(Object? other);
+    method protected abstract java.util.Map<java.lang.String,java.lang.Object> getAdditionalProperties();
+    method public final androidx.appactions.builtintypes.types.Schedule? getAlarmSchedule();
+    method public final androidx.appactions.builtintypes.properties.DisambiguatingDescription? getDisambiguatingDescription();
+    method public final String? getIdentifier();
+    method public final androidx.appactions.builtintypes.properties.Name? getName();
+    method protected abstract String getSelfTypeName();
+    method public final int hashCode();
+    method public final Builder toBuilder();
+    method protected abstract Builder toBuilderWithAdditionalPropertiesOnly();
+    method public final String toString();
+    property protected abstract java.util.Map<java.lang.String,java.lang.Object> additionalProperties;
+    property public final androidx.appactions.builtintypes.types.Schedule? alarmSchedule;
+    property public final androidx.appactions.builtintypes.properties.DisambiguatingDescription? disambiguatingDescription;
+    property public final String? identifier;
+    property public final androidx.appactions.builtintypes.properties.Name? name;
+    property protected abstract String selfTypeName;
+  }
+
+  public abstract static class AbstractAlarm.Builder<Self extends androidx.appactions.builtintypes.types.AbstractAlarm.Builder<Self, Built>, Built extends androidx.appactions.builtintypes.types.AbstractAlarm<Built, Self>> implements androidx.appactions.builtintypes.types.Alarm.Builder<Self> {
+    ctor public AbstractAlarm.Builder();
+    method public final Built build();
+    method protected abstract Built buildFromAlarm(androidx.appactions.builtintypes.types.Alarm alarm);
+    method public final boolean equals(Object? other);
+    method protected abstract java.util.Map<java.lang.String,java.lang.Object> getAdditionalProperties();
+    method protected abstract String getSelfTypeName();
+    method public final int hashCode();
+    method public final Self setAlarmSchedule(androidx.appactions.builtintypes.types.Schedule? schedule);
+    method public final Self setDisambiguatingDescription(androidx.appactions.builtintypes.properties.DisambiguatingDescription? disambiguatingDescription);
+    method public final Self setIdentifier(String? text);
+    method public final Self setName(androidx.appactions.builtintypes.properties.Name? name);
+    method public final String toString();
+    property protected abstract java.util.Map<java.lang.String,java.lang.Object> additionalProperties;
+    property protected abstract String selfTypeName;
+  }
+
+  public abstract class AbstractExecutionStatus<Self extends androidx.appactions.builtintypes.types.AbstractExecutionStatus<Self, Builder>, Builder extends androidx.appactions.builtintypes.types.AbstractExecutionStatus.Builder<Builder, Self>> implements androidx.appactions.builtintypes.types.ExecutionStatus {
+    ctor public AbstractExecutionStatus(androidx.appactions.builtintypes.types.ExecutionStatus executionStatus);
+    method public final boolean equals(Object? other);
+    method protected abstract java.util.Map<java.lang.String,java.lang.Object> getAdditionalProperties();
+    method public final androidx.appactions.builtintypes.properties.DisambiguatingDescription? getDisambiguatingDescription();
+    method public final String? getIdentifier();
+    method public final androidx.appactions.builtintypes.properties.Name? getName();
+    method protected abstract String getSelfTypeName();
+    method public final int hashCode();
+    method public final Builder toBuilder();
+    method protected abstract Builder toBuilderWithAdditionalPropertiesOnly();
+    method public final String toString();
+    property protected abstract java.util.Map<java.lang.String,java.lang.Object> additionalProperties;
+    property public final androidx.appactions.builtintypes.properties.DisambiguatingDescription? disambiguatingDescription;
+    property public final String? identifier;
+    property public final androidx.appactions.builtintypes.properties.Name? name;
+    property protected abstract String selfTypeName;
+  }
+
+  public abstract static class AbstractExecutionStatus.Builder<Self extends androidx.appactions.builtintypes.types.AbstractExecutionStatus.Builder<Self, Built>, Built extends androidx.appactions.builtintypes.types.AbstractExecutionStatus<Built, Self>> implements androidx.appactions.builtintypes.types.ExecutionStatus.Builder<Self> {
+    ctor public AbstractExecutionStatus.Builder();
+    method public final Built build();
+    method protected abstract Built buildFromExecutionStatus(androidx.appactions.builtintypes.types.ExecutionStatus executionStatus);
+    method public final boolean equals(Object? other);
+    method protected abstract java.util.Map<java.lang.String,java.lang.Object> getAdditionalProperties();
+    method protected abstract String getSelfTypeName();
+    method public final int hashCode();
+    method public final Self setDisambiguatingDescription(androidx.appactions.builtintypes.properties.DisambiguatingDescription? disambiguatingDescription);
+    method public final Self setIdentifier(String? text);
+    method public final Self setName(androidx.appactions.builtintypes.properties.Name? name);
+    method public final String toString();
+    property protected abstract java.util.Map<java.lang.String,java.lang.Object> additionalProperties;
+    property protected abstract String selfTypeName;
+  }
+
+  public abstract class AbstractGenericErrorStatus<Self extends androidx.appactions.builtintypes.types.AbstractGenericErrorStatus<Self, Builder>, Builder extends androidx.appactions.builtintypes.types.AbstractGenericErrorStatus.Builder<Builder, Self>> implements androidx.appactions.builtintypes.types.GenericErrorStatus {
+    ctor public AbstractGenericErrorStatus(androidx.appactions.builtintypes.types.GenericErrorStatus genericErrorStatus);
+    method public final boolean equals(Object? other);
+    method protected abstract java.util.Map<java.lang.String,java.lang.Object> getAdditionalProperties();
+    method public final androidx.appactions.builtintypes.properties.DisambiguatingDescription? getDisambiguatingDescription();
+    method public final String? getIdentifier();
+    method public final androidx.appactions.builtintypes.properties.Name? getName();
+    method protected abstract String getSelfTypeName();
+    method public final int hashCode();
+    method public final Builder toBuilder();
+    method protected abstract Builder toBuilderWithAdditionalPropertiesOnly();
+    method public final String toString();
+    property protected abstract java.util.Map<java.lang.String,java.lang.Object> additionalProperties;
+    property public final androidx.appactions.builtintypes.properties.DisambiguatingDescription? disambiguatingDescription;
+    property public final String? identifier;
+    property public final androidx.appactions.builtintypes.properties.Name? name;
+    property protected abstract String selfTypeName;
+  }
+
+  public abstract static class AbstractGenericErrorStatus.Builder<Self extends androidx.appactions.builtintypes.types.AbstractGenericErrorStatus.Builder<Self, Built>, Built extends androidx.appactions.builtintypes.types.AbstractGenericErrorStatus<Built, Self>> implements androidx.appactions.builtintypes.types.GenericErrorStatus.Builder<Self> {
+    ctor public AbstractGenericErrorStatus.Builder();
+    method public final Built build();
+    method protected abstract Built buildFromGenericErrorStatus(androidx.appactions.builtintypes.types.GenericErrorStatus genericErrorStatus);
+    method public final boolean equals(Object? other);
+    method protected abstract java.util.Map<java.lang.String,java.lang.Object> getAdditionalProperties();
+    method protected abstract String getSelfTypeName();
+    method public final int hashCode();
+    method public final Self setDisambiguatingDescription(androidx.appactions.builtintypes.properties.DisambiguatingDescription? disambiguatingDescription);
+    method public final Self setIdentifier(String? text);
+    method public final Self setName(androidx.appactions.builtintypes.properties.Name? name);
+    method public final String toString();
+    property protected abstract java.util.Map<java.lang.String,java.lang.Object> additionalProperties;
+    property protected abstract String selfTypeName;
+  }
+
+  public abstract class AbstractIntangible<Self extends androidx.appactions.builtintypes.types.AbstractIntangible<Self, Builder>, Builder extends androidx.appactions.builtintypes.types.AbstractIntangible.Builder<Builder, Self>> implements androidx.appactions.builtintypes.types.Intangible {
+    ctor public AbstractIntangible(androidx.appactions.builtintypes.types.Intangible intangible);
+    method public final boolean equals(Object? other);
+    method protected abstract java.util.Map<java.lang.String,java.lang.Object> getAdditionalProperties();
+    method public final androidx.appactions.builtintypes.properties.DisambiguatingDescription? getDisambiguatingDescription();
+    method public final String? getIdentifier();
+    method public final androidx.appactions.builtintypes.properties.Name? getName();
+    method protected abstract String getSelfTypeName();
+    method public final int hashCode();
+    method public final Builder toBuilder();
+    method protected abstract Builder toBuilderWithAdditionalPropertiesOnly();
+    method public final String toString();
+    property protected abstract java.util.Map<java.lang.String,java.lang.Object> additionalProperties;
+    property public final androidx.appactions.builtintypes.properties.DisambiguatingDescription? disambiguatingDescription;
+    property public final String? identifier;
+    property public final androidx.appactions.builtintypes.properties.Name? name;
+    property protected abstract String selfTypeName;
+  }
+
+  public abstract static class AbstractIntangible.Builder<Self extends androidx.appactions.builtintypes.types.AbstractIntangible.Builder<Self, Built>, Built extends androidx.appactions.builtintypes.types.AbstractIntangible<Built, Self>> implements androidx.appactions.builtintypes.types.Intangible.Builder<Self> {
+    ctor public AbstractIntangible.Builder();
+    method public final Built build();
+    method protected abstract Built buildFromIntangible(androidx.appactions.builtintypes.types.Intangible intangible);
+    method public final boolean equals(Object? other);
+    method protected abstract java.util.Map<java.lang.String,java.lang.Object> getAdditionalProperties();
+    method protected abstract String getSelfTypeName();
+    method public final int hashCode();
+    method public final Self setDisambiguatingDescription(androidx.appactions.builtintypes.properties.DisambiguatingDescription? disambiguatingDescription);
+    method public final Self setIdentifier(String? text);
+    method public final Self setName(androidx.appactions.builtintypes.properties.Name? name);
+    method public final String toString();
+    property protected abstract java.util.Map<java.lang.String,java.lang.Object> additionalProperties;
+    property protected abstract String selfTypeName;
+  }
+
+  public abstract class AbstractObjectCreationLimitReachedStatus<Self extends androidx.appactions.builtintypes.types.AbstractObjectCreationLimitReachedStatus<Self, Builder>, Builder extends androidx.appactions.builtintypes.types.AbstractObjectCreationLimitReachedStatus.Builder<Builder, Self>> implements androidx.appactions.builtintypes.types.ObjectCreationLimitReachedStatus {
+    ctor public AbstractObjectCreationLimitReachedStatus(androidx.appactions.builtintypes.types.ObjectCreationLimitReachedStatus objectCreationLimitReachedStatus);
+    method public final boolean equals(Object? other);
+    method protected abstract java.util.Map<java.lang.String,java.lang.Object> getAdditionalProperties();
+    method public final androidx.appactions.builtintypes.properties.DisambiguatingDescription? getDisambiguatingDescription();
+    method public final String? getIdentifier();
+    method public final androidx.appactions.builtintypes.properties.Name? getName();
+    method protected abstract String getSelfTypeName();
+    method public final int hashCode();
+    method public final Builder toBuilder();
+    method protected abstract Builder toBuilderWithAdditionalPropertiesOnly();
+    method public final String toString();
+    property protected abstract java.util.Map<java.lang.String,java.lang.Object> additionalProperties;
+    property public final androidx.appactions.builtintypes.properties.DisambiguatingDescription? disambiguatingDescription;
+    property public final String? identifier;
+    property public final androidx.appactions.builtintypes.properties.Name? name;
+    property protected abstract String selfTypeName;
+  }
+
+  public abstract static class AbstractObjectCreationLimitReachedStatus.Builder<Self extends androidx.appactions.builtintypes.types.AbstractObjectCreationLimitReachedStatus.Builder<Self, Built>, Built extends androidx.appactions.builtintypes.types.AbstractObjectCreationLimitReachedStatus<Built, Self>> implements androidx.appactions.builtintypes.types.ObjectCreationLimitReachedStatus.Builder<Self> {
+    ctor public AbstractObjectCreationLimitReachedStatus.Builder();
+    method public final Built build();
+    method protected abstract Built buildFromObjectCreationLimitReachedStatus(androidx.appactions.builtintypes.types.ObjectCreationLimitReachedStatus objectCreationLimitReachedStatus);
+    method public final boolean equals(Object? other);
+    method protected abstract java.util.Map<java.lang.String,java.lang.Object> getAdditionalProperties();
+    method protected abstract String getSelfTypeName();
+    method public final int hashCode();
+    method public final Self setDisambiguatingDescription(androidx.appactions.builtintypes.properties.DisambiguatingDescription? disambiguatingDescription);
+    method public final Self setIdentifier(String? text);
+    method public final Self setName(androidx.appactions.builtintypes.properties.Name? name);
+    method public final String toString();
+    property protected abstract java.util.Map<java.lang.String,java.lang.Object> additionalProperties;
+    property protected abstract String selfTypeName;
+  }
+
+  public abstract class AbstractPerson<Self extends androidx.appactions.builtintypes.types.AbstractPerson<Self, Builder>, Builder extends androidx.appactions.builtintypes.types.AbstractPerson.Builder<Builder, Self>> implements androidx.appactions.builtintypes.types.Person {
+    ctor public AbstractPerson(androidx.appactions.builtintypes.types.Person person);
+    method public final boolean equals(Object? other);
+    method protected abstract java.util.Map<java.lang.String,java.lang.Object> getAdditionalProperties();
+    method public final androidx.appactions.builtintypes.properties.DisambiguatingDescription? getDisambiguatingDescription();
+    method public final String? getEmail();
+    method public final String? getIdentifier();
+    method public final androidx.appactions.builtintypes.properties.Name? getName();
+    method protected abstract String getSelfTypeName();
+    method public final int hashCode();
+    method public final Builder toBuilder();
+    method protected abstract Builder toBuilderWithAdditionalPropertiesOnly();
+    method public final String toString();
+    property protected abstract java.util.Map<java.lang.String,java.lang.Object> additionalProperties;
+    property public final androidx.appactions.builtintypes.properties.DisambiguatingDescription? disambiguatingDescription;
+    property public final String? email;
+    property public final String? identifier;
+    property public final androidx.appactions.builtintypes.properties.Name? name;
+    property protected abstract String selfTypeName;
+  }
+
+  public abstract static class AbstractPerson.Builder<Self extends androidx.appactions.builtintypes.types.AbstractPerson.Builder<Self, Built>, Built extends androidx.appactions.builtintypes.types.AbstractPerson<Built, Self>> implements androidx.appactions.builtintypes.types.Person.Builder<Self> {
+    ctor public AbstractPerson.Builder();
+    method public final Built build();
+    method protected abstract Built buildFromPerson(androidx.appactions.builtintypes.types.Person person);
+    method public final boolean equals(Object? other);
+    method protected abstract java.util.Map<java.lang.String,java.lang.Object> getAdditionalProperties();
+    method protected abstract String getSelfTypeName();
+    method public final int hashCode();
+    method public final Self setDisambiguatingDescription(androidx.appactions.builtintypes.properties.DisambiguatingDescription? disambiguatingDescription);
+    method public final Self setEmail(String? text);
+    method public final Self setIdentifier(String? text);
+    method public final Self setName(androidx.appactions.builtintypes.properties.Name? name);
+    method public final String toString();
+    property protected abstract java.util.Map<java.lang.String,java.lang.Object> additionalProperties;
+    property protected abstract String selfTypeName;
+  }
+
+  public abstract class AbstractSchedule<Self extends androidx.appactions.builtintypes.types.AbstractSchedule<Self, Builder>, Builder extends androidx.appactions.builtintypes.types.AbstractSchedule.Builder<Builder, Self>> implements androidx.appactions.builtintypes.types.Schedule {
+    ctor public AbstractSchedule(androidx.appactions.builtintypes.types.Schedule schedule);
+    method public final boolean equals(Object? other);
+    method protected abstract java.util.Map<java.lang.String,java.lang.Object> getAdditionalProperties();
+    method public final java.util.List<androidx.appactions.builtintypes.properties.ByDay> getByDays();
+    method public final java.util.List<java.lang.Long> getByMonthDays();
+    method public final java.util.List<java.lang.Long> getByMonthWeeks();
+    method public final java.util.List<java.lang.Long> getByMonths();
+    method public final androidx.appactions.builtintypes.properties.DisambiguatingDescription? getDisambiguatingDescription();
+    method public final androidx.appactions.builtintypes.properties.EndDate? getEndDate();
+    method public final androidx.appactions.builtintypes.properties.EndTime? getEndTime();
+    method public final androidx.appactions.builtintypes.properties.ExceptDate? getExceptDate();
+    method public final String? getIdentifier();
+    method public final androidx.appactions.builtintypes.properties.Name? getName();
+    method public final Long? getRepeatCount();
+    method public final androidx.appactions.builtintypes.properties.RepeatFrequency? getRepeatFrequency();
+    method public final String? getScheduleTimezone();
+    method protected abstract String getSelfTypeName();
+    method public final androidx.appactions.builtintypes.properties.StartDate? getStartDate();
+    method public final androidx.appactions.builtintypes.properties.StartTime? getStartTime();
+    method public final int hashCode();
+    method public final Builder toBuilder();
+    method protected abstract Builder toBuilderWithAdditionalPropertiesOnly();
+    method public final String toString();
+    property protected abstract java.util.Map<java.lang.String,java.lang.Object> additionalProperties;
+    property public final java.util.List<androidx.appactions.builtintypes.properties.ByDay> byDays;
+    property public final java.util.List<java.lang.Long> byMonthDays;
+    property public final java.util.List<java.lang.Long> byMonthWeeks;
+    property public final java.util.List<java.lang.Long> byMonths;
+    property public final androidx.appactions.builtintypes.properties.DisambiguatingDescription? disambiguatingDescription;
+    property public final androidx.appactions.builtintypes.properties.EndDate? endDate;
+    property public final androidx.appactions.builtintypes.properties.EndTime? endTime;
+    property public final androidx.appactions.builtintypes.properties.ExceptDate? exceptDate;
+    property public final String? identifier;
+    property public final androidx.appactions.builtintypes.properties.Name? name;
+    property public final Long? repeatCount;
+    property public final androidx.appactions.builtintypes.properties.RepeatFrequency? repeatFrequency;
+    property public final String? scheduleTimezone;
+    property protected abstract String selfTypeName;
+    property public final androidx.appactions.builtintypes.properties.StartDate? startDate;
+    property public final androidx.appactions.builtintypes.properties.StartTime? startTime;
+  }
+
+  public abstract static class AbstractSchedule.Builder<Self extends androidx.appactions.builtintypes.types.AbstractSchedule.Builder<Self, Built>, Built extends androidx.appactions.builtintypes.types.AbstractSchedule<Built, Self>> implements androidx.appactions.builtintypes.types.Schedule.Builder<Self> {
+    ctor public AbstractSchedule.Builder();
+    method public final Self addByDay(androidx.appactions.builtintypes.properties.ByDay byDay);
+    method public final Self addByDays(Iterable<androidx.appactions.builtintypes.properties.ByDay> values);
+    method public final Self addByMonth(long integer);
+    method public final Self addByMonthDay(long integer);
+    method public final Self addByMonthDays(Iterable<java.lang.Long> values);
+    method public final Self addByMonthWeek(long integer);
+    method public final Self addByMonthWeeks(Iterable<java.lang.Long> values);
+    method public final Self addByMonths(Iterable<java.lang.Long> values);
+    method public final Built build();
+    method protected abstract Built buildFromSchedule(androidx.appactions.builtintypes.types.Schedule schedule);
+    method public final Self clearByDays();
+    method public final Self clearByMonthDays();
+    method public final Self clearByMonthWeeks();
+    method public final Self clearByMonths();
+    method public final boolean equals(Object? other);
+    method protected abstract java.util.Map<java.lang.String,java.lang.Object> getAdditionalProperties();
+    method protected abstract String getSelfTypeName();
+    method public final int hashCode();
+    method public final Self setDisambiguatingDescription(androidx.appactions.builtintypes.properties.DisambiguatingDescription? disambiguatingDescription);
+    method public final Self setEndDate(androidx.appactions.builtintypes.properties.EndDate? endDate);
+    method public final Self setEndTime(androidx.appactions.builtintypes.properties.EndTime? endTime);
+    method public final Self setExceptDate(androidx.appactions.builtintypes.properties.ExceptDate? exceptDate);
+    method public final Self setIdentifier(String? text);
+    method public final Self setName(androidx.appactions.builtintypes.properties.Name? name);
+    method public final Self setRepeatCount(Long? integer);
+    method public final Self setRepeatFrequency(androidx.appactions.builtintypes.properties.RepeatFrequency? repeatFrequency);
+    method public final Self setScheduleTimezone(String? text);
+    method public final Self setStartDate(androidx.appactions.builtintypes.properties.StartDate? startDate);
+    method public final Self setStartTime(androidx.appactions.builtintypes.properties.StartTime? startTime);
+    method public final String toString();
+    property protected abstract java.util.Map<java.lang.String,java.lang.Object> additionalProperties;
+    property protected abstract String selfTypeName;
+  }
+
+  public abstract class AbstractSuccessStatus<Self extends androidx.appactions.builtintypes.types.AbstractSuccessStatus<Self, Builder>, Builder extends androidx.appactions.builtintypes.types.AbstractSuccessStatus.Builder<Builder, Self>> implements androidx.appactions.builtintypes.types.SuccessStatus {
+    ctor public AbstractSuccessStatus(androidx.appactions.builtintypes.types.SuccessStatus successStatus);
+    method public final boolean equals(Object? other);
+    method protected abstract java.util.Map<java.lang.String,java.lang.Object> getAdditionalProperties();
+    method public final androidx.appactions.builtintypes.properties.DisambiguatingDescription? getDisambiguatingDescription();
+    method public final String? getIdentifier();
+    method public final androidx.appactions.builtintypes.properties.Name? getName();
+    method protected abstract String getSelfTypeName();
+    method public final int hashCode();
+    method public final Builder toBuilder();
+    method protected abstract Builder toBuilderWithAdditionalPropertiesOnly();
+    method public final String toString();
+    property protected abstract java.util.Map<java.lang.String,java.lang.Object> additionalProperties;
+    property public final androidx.appactions.builtintypes.properties.DisambiguatingDescription? disambiguatingDescription;
+    property public final String? identifier;
+    property public final androidx.appactions.builtintypes.properties.Name? name;
+    property protected abstract String selfTypeName;
+  }
+
+  public abstract static class AbstractSuccessStatus.Builder<Self extends androidx.appactions.builtintypes.types.AbstractSuccessStatus.Builder<Self, Built>, Built extends androidx.appactions.builtintypes.types.AbstractSuccessStatus<Built, Self>> implements androidx.appactions.builtintypes.types.SuccessStatus.Builder<Self> {
+    ctor public AbstractSuccessStatus.Builder();
+    method public final Built build();
+    method protected abstract Built buildFromSuccessStatus(androidx.appactions.builtintypes.types.SuccessStatus successStatus);
+    method public final boolean equals(Object? other);
+    method protected abstract java.util.Map<java.lang.String,java.lang.Object> getAdditionalProperties();
+    method protected abstract String getSelfTypeName();
+    method public final int hashCode();
+    method public final Self setDisambiguatingDescription(androidx.appactions.builtintypes.properties.DisambiguatingDescription? disambiguatingDescription);
+    method public final Self setIdentifier(String? text);
+    method public final Self setName(androidx.appactions.builtintypes.properties.Name? name);
+    method public final String toString();
+    property protected abstract java.util.Map<java.lang.String,java.lang.Object> additionalProperties;
+    property protected abstract String selfTypeName;
+  }
+
+  public abstract class AbstractThing<Self extends androidx.appactions.builtintypes.types.AbstractThing<Self, Builder>, Builder extends androidx.appactions.builtintypes.types.AbstractThing.Builder<Builder, Self>> implements androidx.appactions.builtintypes.types.Thing {
+    ctor public AbstractThing(androidx.appactions.builtintypes.types.Thing thing);
+    method public final boolean equals(Object? other);
+    method protected abstract java.util.Map<java.lang.String,java.lang.Object> getAdditionalProperties();
+    method public final androidx.appactions.builtintypes.properties.DisambiguatingDescription? getDisambiguatingDescription();
+    method public final String? getIdentifier();
+    method public final androidx.appactions.builtintypes.properties.Name? getName();
+    method protected abstract String getSelfTypeName();
+    method public final int hashCode();
+    method public final Builder toBuilder();
+    method protected abstract Builder toBuilderWithAdditionalPropertiesOnly();
+    method public final String toString();
+    property protected abstract java.util.Map<java.lang.String,java.lang.Object> additionalProperties;
+    property public final androidx.appactions.builtintypes.properties.DisambiguatingDescription? disambiguatingDescription;
+    property public final String? identifier;
+    property public final androidx.appactions.builtintypes.properties.Name? name;
+    property protected abstract String selfTypeName;
+  }
+
+  public abstract static class AbstractThing.Builder<Self extends androidx.appactions.builtintypes.types.AbstractThing.Builder<Self, Built>, Built extends androidx.appactions.builtintypes.types.AbstractThing<Built, Self>> implements androidx.appactions.builtintypes.types.Thing.Builder<Self> {
+    ctor public AbstractThing.Builder();
+    method public final Built build();
+    method protected abstract Built buildFromThing(androidx.appactions.builtintypes.types.Thing thing);
+    method public final boolean equals(Object? other);
+    method protected abstract java.util.Map<java.lang.String,java.lang.Object> getAdditionalProperties();
+    method protected abstract String getSelfTypeName();
+    method public final int hashCode();
+    method public final Self setDisambiguatingDescription(androidx.appactions.builtintypes.properties.DisambiguatingDescription? disambiguatingDescription);
+    method public final Self setIdentifier(String? text);
+    method public final Self setName(androidx.appactions.builtintypes.properties.Name? name);
+    method public final String toString();
+    property protected abstract java.util.Map<java.lang.String,java.lang.Object> additionalProperties;
+    property protected abstract String selfTypeName;
+  }
+
+  public abstract class AbstractTimer<Self extends androidx.appactions.builtintypes.types.AbstractTimer<Self, Builder>, Builder extends androidx.appactions.builtintypes.types.AbstractTimer.Builder<Builder, Self>> implements androidx.appactions.builtintypes.types.Timer {
+    ctor public AbstractTimer(androidx.appactions.builtintypes.types.Timer timer);
+    method public final boolean equals(Object? other);
+    method protected abstract java.util.Map<java.lang.String,java.lang.Object> getAdditionalProperties();
+    method public final androidx.appactions.builtintypes.properties.DisambiguatingDescription? getDisambiguatingDescription();
+    method public final java.time.Duration? getDuration();
+    method public final String? getIdentifier();
+    method public final androidx.appactions.builtintypes.properties.Name? getName();
+    method protected abstract String getSelfTypeName();
+    method public final int hashCode();
+    method public final Builder toBuilder();
+    method protected abstract Builder toBuilderWithAdditionalPropertiesOnly();
+    method public final String toString();
+    property protected abstract java.util.Map<java.lang.String,java.lang.Object> additionalProperties;
+    property public final androidx.appactions.builtintypes.properties.DisambiguatingDescription? disambiguatingDescription;
+    property public final java.time.Duration? duration;
+    property public final String? identifier;
+    property public final androidx.appactions.builtintypes.properties.Name? name;
+    property protected abstract String selfTypeName;
+  }
+
+  public abstract static class AbstractTimer.Builder<Self extends androidx.appactions.builtintypes.types.AbstractTimer.Builder<Self, Built>, Built extends androidx.appactions.builtintypes.types.AbstractTimer<Built, Self>> implements androidx.appactions.builtintypes.types.Timer.Builder<Self> {
+    ctor public AbstractTimer.Builder();
+    method public final Built build();
+    method protected abstract Built buildFromTimer(androidx.appactions.builtintypes.types.Timer timer);
+    method public final boolean equals(Object? other);
+    method protected abstract java.util.Map<java.lang.String,java.lang.Object> getAdditionalProperties();
+    method protected abstract String getSelfTypeName();
+    method public final int hashCode();
+    method public final Self setDisambiguatingDescription(androidx.appactions.builtintypes.properties.DisambiguatingDescription? disambiguatingDescription);
+    method public final Self setDuration(java.time.Duration? duration);
+    method public final Self setIdentifier(String? text);
+    method public final Self setName(androidx.appactions.builtintypes.properties.Name? name);
+    method public final String toString();
+    property protected abstract java.util.Map<java.lang.String,java.lang.Object> additionalProperties;
+    property protected abstract String selfTypeName;
+  }
+
+  public abstract class AbstractUnsupportedOperationStatus<Self extends androidx.appactions.builtintypes.types.AbstractUnsupportedOperationStatus<Self, Builder>, Builder extends androidx.appactions.builtintypes.types.AbstractUnsupportedOperationStatus.Builder<Builder, Self>> implements androidx.appactions.builtintypes.types.UnsupportedOperationStatus {
+    ctor public AbstractUnsupportedOperationStatus(androidx.appactions.builtintypes.types.UnsupportedOperationStatus unsupportedOperationStatus);
+    method public final boolean equals(Object? other);
+    method protected abstract java.util.Map<java.lang.String,java.lang.Object> getAdditionalProperties();
+    method public final androidx.appactions.builtintypes.properties.DisambiguatingDescription? getDisambiguatingDescription();
+    method public final String? getIdentifier();
+    method public final androidx.appactions.builtintypes.properties.Name? getName();
+    method protected abstract String getSelfTypeName();
+    method public final int hashCode();
+    method public final Builder toBuilder();
+    method protected abstract Builder toBuilderWithAdditionalPropertiesOnly();
+    method public final String toString();
+    property protected abstract java.util.Map<java.lang.String,java.lang.Object> additionalProperties;
+    property public final androidx.appactions.builtintypes.properties.DisambiguatingDescription? disambiguatingDescription;
+    property public final String? identifier;
+    property public final androidx.appactions.builtintypes.properties.Name? name;
+    property protected abstract String selfTypeName;
+  }
+
+  public abstract static class AbstractUnsupportedOperationStatus.Builder<Self extends androidx.appactions.builtintypes.types.AbstractUnsupportedOperationStatus.Builder<Self, Built>, Built extends androidx.appactions.builtintypes.types.AbstractUnsupportedOperationStatus<Built, Self>> implements androidx.appactions.builtintypes.types.UnsupportedOperationStatus.Builder<Self> {
+    ctor public AbstractUnsupportedOperationStatus.Builder();
+    method public final Built build();
+    method protected abstract Built buildFromUnsupportedOperationStatus(androidx.appactions.builtintypes.types.UnsupportedOperationStatus unsupportedOperationStatus);
+    method public final boolean equals(Object? other);
+    method protected abstract java.util.Map<java.lang.String,java.lang.Object> getAdditionalProperties();
+    method protected abstract String getSelfTypeName();
+    method public final int hashCode();
+    method public final Self setDisambiguatingDescription(androidx.appactions.builtintypes.properties.DisambiguatingDescription? disambiguatingDescription);
+    method public final Self setIdentifier(String? text);
+    method public final Self setName(androidx.appactions.builtintypes.properties.Name? name);
+    method public final String toString();
+    property protected abstract java.util.Map<java.lang.String,java.lang.Object> additionalProperties;
+    property protected abstract String selfTypeName;
+  }
+
   public interface Alarm extends androidx.appactions.builtintypes.types.Thing {
     method public default static androidx.appactions.builtintypes.types.Alarm.Builder<?> Builder();
     method public androidx.appactions.builtintypes.types.Schedule? getAlarmSchedule();
@@ -222,267 +660,32 @@
     method public default R wednesday();
   }
 
-  public abstract class GenericAlarm<Self extends androidx.appactions.builtintypes.types.GenericAlarm<Self, Builder>, Builder extends androidx.appactions.builtintypes.types.GenericAlarm.Builder<Builder, Self>> implements androidx.appactions.builtintypes.types.Alarm {
-    ctor public GenericAlarm(androidx.appactions.builtintypes.types.Alarm alarm);
-    method public final boolean equals(Object? other);
-    method protected abstract java.util.Map<java.lang.String,java.lang.Object> getAdditionalProperties();
-    method public final androidx.appactions.builtintypes.types.Schedule? getAlarmSchedule();
-    method public final androidx.appactions.builtintypes.properties.DisambiguatingDescription? getDisambiguatingDescription();
-    method public final String? getIdentifier();
-    method public final androidx.appactions.builtintypes.properties.Name? getName();
-    method protected abstract String getSelfTypeName();
-    method public final int hashCode();
-    method public final Builder toBuilder();
-    method protected abstract Builder toBuilderWithAdditionalPropertiesOnly();
-    method public final String toString();
-    property protected abstract java.util.Map<java.lang.String,java.lang.Object> additionalProperties;
-    property public final androidx.appactions.builtintypes.types.Schedule? alarmSchedule;
-    property public final androidx.appactions.builtintypes.properties.DisambiguatingDescription? disambiguatingDescription;
-    property public final String? identifier;
-    property public final androidx.appactions.builtintypes.properties.Name? name;
-    property protected abstract String selfTypeName;
+  public interface ExecutionStatus extends androidx.appactions.builtintypes.types.Intangible {
+    method public default static androidx.appactions.builtintypes.types.ExecutionStatus.Builder<?> Builder();
+    method public androidx.appactions.builtintypes.types.ExecutionStatus.Builder<?> toBuilder();
+    field public static final androidx.appactions.builtintypes.types.ExecutionStatus.Companion Companion;
   }
 
-  public abstract static class GenericAlarm.Builder<Self extends androidx.appactions.builtintypes.types.GenericAlarm.Builder<Self, Built>, Built extends androidx.appactions.builtintypes.types.GenericAlarm<Built, Self>> implements androidx.appactions.builtintypes.types.Alarm.Builder<Self> {
-    ctor public GenericAlarm.Builder();
-    method public final Built build();
-    method protected abstract Built buildFromAlarm(androidx.appactions.builtintypes.types.Alarm alarm);
-    method public final boolean equals(Object? other);
-    method protected abstract java.util.Map<java.lang.String,java.lang.Object> getAdditionalProperties();
-    method protected abstract String getSelfTypeName();
-    method public final int hashCode();
-    method public final Self setAlarmSchedule(androidx.appactions.builtintypes.types.Schedule? schedule);
-    method public final Self setDisambiguatingDescription(androidx.appactions.builtintypes.properties.DisambiguatingDescription? disambiguatingDescription);
-    method public final Self setIdentifier(String? text);
-    method public final Self setName(androidx.appactions.builtintypes.properties.Name? name);
-    method public final String toString();
-    property protected abstract java.util.Map<java.lang.String,java.lang.Object> additionalProperties;
-    property protected abstract String selfTypeName;
+  public static interface ExecutionStatus.Builder<Self extends androidx.appactions.builtintypes.types.ExecutionStatus.Builder<Self>> extends androidx.appactions.builtintypes.types.Intangible.Builder<Self> {
+    method public androidx.appactions.builtintypes.types.ExecutionStatus build();
   }
 
-  public abstract class GenericIntangible<Self extends androidx.appactions.builtintypes.types.GenericIntangible<Self, Builder>, Builder extends androidx.appactions.builtintypes.types.GenericIntangible.Builder<Builder, Self>> implements androidx.appactions.builtintypes.types.Intangible {
-    ctor public GenericIntangible(androidx.appactions.builtintypes.types.Intangible intangible);
-    method public final boolean equals(Object? other);
-    method protected abstract java.util.Map<java.lang.String,java.lang.Object> getAdditionalProperties();
-    method public final androidx.appactions.builtintypes.properties.DisambiguatingDescription? getDisambiguatingDescription();
-    method public final String? getIdentifier();
-    method public final androidx.appactions.builtintypes.properties.Name? getName();
-    method protected abstract String getSelfTypeName();
-    method public final int hashCode();
-    method public final Builder toBuilder();
-    method protected abstract Builder toBuilderWithAdditionalPropertiesOnly();
-    method public final String toString();
-    property protected abstract java.util.Map<java.lang.String,java.lang.Object> additionalProperties;
-    property public final androidx.appactions.builtintypes.properties.DisambiguatingDescription? disambiguatingDescription;
-    property public final String? identifier;
-    property public final androidx.appactions.builtintypes.properties.Name? name;
-    property protected abstract String selfTypeName;
+  public static final class ExecutionStatus.Companion {
+    method public androidx.appactions.builtintypes.types.ExecutionStatus.Builder<?> Builder();
   }
 
-  public abstract static class GenericIntangible.Builder<Self extends androidx.appactions.builtintypes.types.GenericIntangible.Builder<Self, Built>, Built extends androidx.appactions.builtintypes.types.GenericIntangible<Built, Self>> implements androidx.appactions.builtintypes.types.Intangible.Builder<Self> {
-    ctor public GenericIntangible.Builder();
-    method public final Built build();
-    method protected abstract Built buildFromIntangible(androidx.appactions.builtintypes.types.Intangible intangible);
-    method public final boolean equals(Object? other);
-    method protected abstract java.util.Map<java.lang.String,java.lang.Object> getAdditionalProperties();
-    method protected abstract String getSelfTypeName();
-    method public final int hashCode();
-    method public final Self setDisambiguatingDescription(androidx.appactions.builtintypes.properties.DisambiguatingDescription? disambiguatingDescription);
-    method public final Self setIdentifier(String? text);
-    method public final Self setName(androidx.appactions.builtintypes.properties.Name? name);
-    method public final String toString();
-    property protected abstract java.util.Map<java.lang.String,java.lang.Object> additionalProperties;
-    property protected abstract String selfTypeName;
+  public interface GenericErrorStatus extends androidx.appactions.builtintypes.types.ExecutionStatus {
+    method public default static androidx.appactions.builtintypes.types.GenericErrorStatus.Builder<?> Builder();
+    method public androidx.appactions.builtintypes.types.GenericErrorStatus.Builder<?> toBuilder();
+    field public static final androidx.appactions.builtintypes.types.GenericErrorStatus.Companion Companion;
   }
 
-  public abstract class GenericPerson<Self extends androidx.appactions.builtintypes.types.GenericPerson<Self, Builder>, Builder extends androidx.appactions.builtintypes.types.GenericPerson.Builder<Builder, Self>> implements androidx.appactions.builtintypes.types.Person {
-    ctor public GenericPerson(androidx.appactions.builtintypes.types.Person person);
-    method public final boolean equals(Object? other);
-    method protected abstract java.util.Map<java.lang.String,java.lang.Object> getAdditionalProperties();
-    method public final androidx.appactions.builtintypes.properties.DisambiguatingDescription? getDisambiguatingDescription();
-    method public final String? getEmail();
-    method public final String? getIdentifier();
-    method public final androidx.appactions.builtintypes.properties.Name? getName();
-    method protected abstract String getSelfTypeName();
-    method public final int hashCode();
-    method public final Builder toBuilder();
-    method protected abstract Builder toBuilderWithAdditionalPropertiesOnly();
-    method public final String toString();
-    property protected abstract java.util.Map<java.lang.String,java.lang.Object> additionalProperties;
-    property public final androidx.appactions.builtintypes.properties.DisambiguatingDescription? disambiguatingDescription;
-    property public final String? email;
-    property public final String? identifier;
-    property public final androidx.appactions.builtintypes.properties.Name? name;
-    property protected abstract String selfTypeName;
+  public static interface GenericErrorStatus.Builder<Self extends androidx.appactions.builtintypes.types.GenericErrorStatus.Builder<Self>> extends androidx.appactions.builtintypes.types.ExecutionStatus.Builder<Self> {
+    method public androidx.appactions.builtintypes.types.GenericErrorStatus build();
   }
 
-  public abstract static class GenericPerson.Builder<Self extends androidx.appactions.builtintypes.types.GenericPerson.Builder<Self, Built>, Built extends androidx.appactions.builtintypes.types.GenericPerson<Built, Self>> implements androidx.appactions.builtintypes.types.Person.Builder<Self> {
-    ctor public GenericPerson.Builder();
-    method public final Built build();
-    method protected abstract Built buildFromPerson(androidx.appactions.builtintypes.types.Person person);
-    method public final boolean equals(Object? other);
-    method protected abstract java.util.Map<java.lang.String,java.lang.Object> getAdditionalProperties();
-    method protected abstract String getSelfTypeName();
-    method public final int hashCode();
-    method public final Self setDisambiguatingDescription(androidx.appactions.builtintypes.properties.DisambiguatingDescription? disambiguatingDescription);
-    method public final Self setEmail(String? text);
-    method public final Self setIdentifier(String? text);
-    method public final Self setName(androidx.appactions.builtintypes.properties.Name? name);
-    method public final String toString();
-    property protected abstract java.util.Map<java.lang.String,java.lang.Object> additionalProperties;
-    property protected abstract String selfTypeName;
-  }
-
-  public abstract class GenericSchedule<Self extends androidx.appactions.builtintypes.types.GenericSchedule<Self, Builder>, Builder extends androidx.appactions.builtintypes.types.GenericSchedule.Builder<Builder, Self>> implements androidx.appactions.builtintypes.types.Schedule {
-    ctor public GenericSchedule(androidx.appactions.builtintypes.types.Schedule schedule);
-    method public final boolean equals(Object? other);
-    method protected abstract java.util.Map<java.lang.String,java.lang.Object> getAdditionalProperties();
-    method public final java.util.List<androidx.appactions.builtintypes.properties.ByDay> getByDays();
-    method public final java.util.List<java.lang.Long> getByMonthDays();
-    method public final java.util.List<java.lang.Long> getByMonthWeeks();
-    method public final java.util.List<java.lang.Long> getByMonths();
-    method public final androidx.appactions.builtintypes.properties.DisambiguatingDescription? getDisambiguatingDescription();
-    method public final androidx.appactions.builtintypes.properties.EndDate? getEndDate();
-    method public final androidx.appactions.builtintypes.properties.EndTime? getEndTime();
-    method public final androidx.appactions.builtintypes.properties.ExceptDate? getExceptDate();
-    method public final String? getIdentifier();
-    method public final androidx.appactions.builtintypes.properties.Name? getName();
-    method public final Long? getRepeatCount();
-    method public final androidx.appactions.builtintypes.properties.RepeatFrequency? getRepeatFrequency();
-    method public final String? getScheduleTimezone();
-    method protected abstract String getSelfTypeName();
-    method public final androidx.appactions.builtintypes.properties.StartDate? getStartDate();
-    method public final androidx.appactions.builtintypes.properties.StartTime? getStartTime();
-    method public final int hashCode();
-    method public final Builder toBuilder();
-    method protected abstract Builder toBuilderWithAdditionalPropertiesOnly();
-    method public final String toString();
-    property protected abstract java.util.Map<java.lang.String,java.lang.Object> additionalProperties;
-    property public final java.util.List<androidx.appactions.builtintypes.properties.ByDay> byDays;
-    property public final java.util.List<java.lang.Long> byMonthDays;
-    property public final java.util.List<java.lang.Long> byMonthWeeks;
-    property public final java.util.List<java.lang.Long> byMonths;
-    property public final androidx.appactions.builtintypes.properties.DisambiguatingDescription? disambiguatingDescription;
-    property public final androidx.appactions.builtintypes.properties.EndDate? endDate;
-    property public final androidx.appactions.builtintypes.properties.EndTime? endTime;
-    property public final androidx.appactions.builtintypes.properties.ExceptDate? exceptDate;
-    property public final String? identifier;
-    property public final androidx.appactions.builtintypes.properties.Name? name;
-    property public final Long? repeatCount;
-    property public final androidx.appactions.builtintypes.properties.RepeatFrequency? repeatFrequency;
-    property public final String? scheduleTimezone;
-    property protected abstract String selfTypeName;
-    property public final androidx.appactions.builtintypes.properties.StartDate? startDate;
-    property public final androidx.appactions.builtintypes.properties.StartTime? startTime;
-  }
-
-  public abstract static class GenericSchedule.Builder<Self extends androidx.appactions.builtintypes.types.GenericSchedule.Builder<Self, Built>, Built extends androidx.appactions.builtintypes.types.GenericSchedule<Built, Self>> implements androidx.appactions.builtintypes.types.Schedule.Builder<Self> {
-    ctor public GenericSchedule.Builder();
-    method public final Self addByDay(androidx.appactions.builtintypes.properties.ByDay byDay);
-    method public final Self addByDays(Iterable<androidx.appactions.builtintypes.properties.ByDay> values);
-    method public final Self addByMonth(long integer);
-    method public final Self addByMonthDay(long integer);
-    method public final Self addByMonthDays(Iterable<java.lang.Long> values);
-    method public final Self addByMonthWeek(long integer);
-    method public final Self addByMonthWeeks(Iterable<java.lang.Long> values);
-    method public final Self addByMonths(Iterable<java.lang.Long> values);
-    method public final Built build();
-    method protected abstract Built buildFromSchedule(androidx.appactions.builtintypes.types.Schedule schedule);
-    method public final Self clearByDays();
-    method public final Self clearByMonthDays();
-    method public final Self clearByMonthWeeks();
-    method public final Self clearByMonths();
-    method public final boolean equals(Object? other);
-    method protected abstract java.util.Map<java.lang.String,java.lang.Object> getAdditionalProperties();
-    method protected abstract String getSelfTypeName();
-    method public final int hashCode();
-    method public final Self setDisambiguatingDescription(androidx.appactions.builtintypes.properties.DisambiguatingDescription? disambiguatingDescription);
-    method public final Self setEndDate(androidx.appactions.builtintypes.properties.EndDate? endDate);
-    method public final Self setEndTime(androidx.appactions.builtintypes.properties.EndTime? endTime);
-    method public final Self setExceptDate(androidx.appactions.builtintypes.properties.ExceptDate? exceptDate);
-    method public final Self setIdentifier(String? text);
-    method public final Self setName(androidx.appactions.builtintypes.properties.Name? name);
-    method public final Self setRepeatCount(Long? integer);
-    method public final Self setRepeatFrequency(androidx.appactions.builtintypes.properties.RepeatFrequency? repeatFrequency);
-    method public final Self setScheduleTimezone(String? text);
-    method public final Self setStartDate(androidx.appactions.builtintypes.properties.StartDate? startDate);
-    method public final Self setStartTime(androidx.appactions.builtintypes.properties.StartTime? startTime);
-    method public final String toString();
-    property protected abstract java.util.Map<java.lang.String,java.lang.Object> additionalProperties;
-    property protected abstract String selfTypeName;
-  }
-
-  public abstract class GenericThing<Self extends androidx.appactions.builtintypes.types.GenericThing<Self, Builder>, Builder extends androidx.appactions.builtintypes.types.GenericThing.Builder<Builder, Self>> implements androidx.appactions.builtintypes.types.Thing {
-    ctor public GenericThing(androidx.appactions.builtintypes.types.Thing thing);
-    method public final boolean equals(Object? other);
-    method protected abstract java.util.Map<java.lang.String,java.lang.Object> getAdditionalProperties();
-    method public final androidx.appactions.builtintypes.properties.DisambiguatingDescription? getDisambiguatingDescription();
-    method public final String? getIdentifier();
-    method public final androidx.appactions.builtintypes.properties.Name? getName();
-    method protected abstract String getSelfTypeName();
-    method public final int hashCode();
-    method public final Builder toBuilder();
-    method protected abstract Builder toBuilderWithAdditionalPropertiesOnly();
-    method public final String toString();
-    property protected abstract java.util.Map<java.lang.String,java.lang.Object> additionalProperties;
-    property public final androidx.appactions.builtintypes.properties.DisambiguatingDescription? disambiguatingDescription;
-    property public final String? identifier;
-    property public final androidx.appactions.builtintypes.properties.Name? name;
-    property protected abstract String selfTypeName;
-  }
-
-  public abstract static class GenericThing.Builder<Self extends androidx.appactions.builtintypes.types.GenericThing.Builder<Self, Built>, Built extends androidx.appactions.builtintypes.types.GenericThing<Built, Self>> implements androidx.appactions.builtintypes.types.Thing.Builder<Self> {
-    ctor public GenericThing.Builder();
-    method public final Built build();
-    method protected abstract Built buildFromThing(androidx.appactions.builtintypes.types.Thing thing);
-    method public final boolean equals(Object? other);
-    method protected abstract java.util.Map<java.lang.String,java.lang.Object> getAdditionalProperties();
-    method protected abstract String getSelfTypeName();
-    method public final int hashCode();
-    method public final Self setDisambiguatingDescription(androidx.appactions.builtintypes.properties.DisambiguatingDescription? disambiguatingDescription);
-    method public final Self setIdentifier(String? text);
-    method public final Self setName(androidx.appactions.builtintypes.properties.Name? name);
-    method public final String toString();
-    property protected abstract java.util.Map<java.lang.String,java.lang.Object> additionalProperties;
-    property protected abstract String selfTypeName;
-  }
-
-  public abstract class GenericTimer<Self extends androidx.appactions.builtintypes.types.GenericTimer<Self, Builder>, Builder extends androidx.appactions.builtintypes.types.GenericTimer.Builder<Builder, Self>> implements androidx.appactions.builtintypes.types.Timer {
-    ctor public GenericTimer(androidx.appactions.builtintypes.types.Timer timer);
-    method public final boolean equals(Object? other);
-    method protected abstract java.util.Map<java.lang.String,java.lang.Object> getAdditionalProperties();
-    method public final androidx.appactions.builtintypes.properties.DisambiguatingDescription? getDisambiguatingDescription();
-    method public final java.time.Duration? getDuration();
-    method public final String? getIdentifier();
-    method public final androidx.appactions.builtintypes.properties.Name? getName();
-    method protected abstract String getSelfTypeName();
-    method public final int hashCode();
-    method public final Builder toBuilder();
-    method protected abstract Builder toBuilderWithAdditionalPropertiesOnly();
-    method public final String toString();
-    property protected abstract java.util.Map<java.lang.String,java.lang.Object> additionalProperties;
-    property public final androidx.appactions.builtintypes.properties.DisambiguatingDescription? disambiguatingDescription;
-    property public final java.time.Duration? duration;
-    property public final String? identifier;
-    property public final androidx.appactions.builtintypes.properties.Name? name;
-    property protected abstract String selfTypeName;
-  }
-
-  public abstract static class GenericTimer.Builder<Self extends androidx.appactions.builtintypes.types.GenericTimer.Builder<Self, Built>, Built extends androidx.appactions.builtintypes.types.GenericTimer<Built, Self>> implements androidx.appactions.builtintypes.types.Timer.Builder<Self> {
-    ctor public GenericTimer.Builder();
-    method public final Built build();
-    method protected abstract Built buildFromTimer(androidx.appactions.builtintypes.types.Timer timer);
-    method public final boolean equals(Object? other);
-    method protected abstract java.util.Map<java.lang.String,java.lang.Object> getAdditionalProperties();
-    method protected abstract String getSelfTypeName();
-    method public final int hashCode();
-    method public final Self setDisambiguatingDescription(androidx.appactions.builtintypes.properties.DisambiguatingDescription? disambiguatingDescription);
-    method public final Self setDuration(java.time.Duration? duration);
-    method public final Self setIdentifier(String? text);
-    method public final Self setName(androidx.appactions.builtintypes.properties.Name? name);
-    method public final String toString();
-    property protected abstract java.util.Map<java.lang.String,java.lang.Object> additionalProperties;
-    property protected abstract String selfTypeName;
+  public static final class GenericErrorStatus.Companion {
+    method public androidx.appactions.builtintypes.types.GenericErrorStatus.Builder<?> Builder();
   }
 
   public interface Intangible extends androidx.appactions.builtintypes.types.Thing {
@@ -499,6 +702,20 @@
     method public androidx.appactions.builtintypes.types.Intangible.Builder<?> Builder();
   }
 
+  public interface ObjectCreationLimitReachedStatus extends androidx.appactions.builtintypes.types.ExecutionStatus {
+    method public default static androidx.appactions.builtintypes.types.ObjectCreationLimitReachedStatus.Builder<?> Builder();
+    method public androidx.appactions.builtintypes.types.ObjectCreationLimitReachedStatus.Builder<?> toBuilder();
+    field public static final androidx.appactions.builtintypes.types.ObjectCreationLimitReachedStatus.Companion Companion;
+  }
+
+  public static interface ObjectCreationLimitReachedStatus.Builder<Self extends androidx.appactions.builtintypes.types.ObjectCreationLimitReachedStatus.Builder<Self>> extends androidx.appactions.builtintypes.types.ExecutionStatus.Builder<Self> {
+    method public androidx.appactions.builtintypes.types.ObjectCreationLimitReachedStatus build();
+  }
+
+  public static final class ObjectCreationLimitReachedStatus.Companion {
+    method public androidx.appactions.builtintypes.types.ObjectCreationLimitReachedStatus.Builder<?> Builder();
+  }
+
   public interface Person extends androidx.appactions.builtintypes.types.Thing {
     method public default static androidx.appactions.builtintypes.types.Person.Builder<?> Builder();
     method public String? getEmail();
@@ -593,6 +810,20 @@
     method public androidx.appactions.builtintypes.types.Schedule.Builder<?> Builder();
   }
 
+  public interface SuccessStatus extends androidx.appactions.builtintypes.types.ExecutionStatus {
+    method public default static androidx.appactions.builtintypes.types.SuccessStatus.Builder<?> Builder();
+    method public androidx.appactions.builtintypes.types.SuccessStatus.Builder<?> toBuilder();
+    field public static final androidx.appactions.builtintypes.types.SuccessStatus.Companion Companion;
+  }
+
+  public static interface SuccessStatus.Builder<Self extends androidx.appactions.builtintypes.types.SuccessStatus.Builder<Self>> extends androidx.appactions.builtintypes.types.ExecutionStatus.Builder<Self> {
+    method public androidx.appactions.builtintypes.types.SuccessStatus build();
+  }
+
+  public static final class SuccessStatus.Companion {
+    method public androidx.appactions.builtintypes.types.SuccessStatus.Builder<?> Builder();
+  }
+
   public interface Thing {
     method public default static androidx.appactions.builtintypes.types.Thing.Builder<?> Builder();
     method public androidx.appactions.builtintypes.properties.DisambiguatingDescription? getDisambiguatingDescription();
@@ -635,5 +866,19 @@
     method public androidx.appactions.builtintypes.types.Timer.Builder<?> Builder();
   }
 
+  public interface UnsupportedOperationStatus extends androidx.appactions.builtintypes.types.ExecutionStatus {
+    method public default static androidx.appactions.builtintypes.types.UnsupportedOperationStatus.Builder<?> Builder();
+    method public androidx.appactions.builtintypes.types.UnsupportedOperationStatus.Builder<?> toBuilder();
+    field public static final androidx.appactions.builtintypes.types.UnsupportedOperationStatus.Companion Companion;
+  }
+
+  public static interface UnsupportedOperationStatus.Builder<Self extends androidx.appactions.builtintypes.types.UnsupportedOperationStatus.Builder<Self>> extends androidx.appactions.builtintypes.types.ExecutionStatus.Builder<Self> {
+    method public androidx.appactions.builtintypes.types.UnsupportedOperationStatus build();
+  }
+
+  public static final class UnsupportedOperationStatus.Companion {
+    method public androidx.appactions.builtintypes.types.UnsupportedOperationStatus.Builder<?> Builder();
+  }
+
 }
 
diff --git a/appactions/builtintypes/builtintypes-core/src/main/java/androidx/appactions/builtintypes/types/Alarm.kt b/appactions/builtintypes/builtintypes-core/src/main/java/androidx/appactions/builtintypes/types/Alarm.kt
index fff77c1..6f1a4dd 100644
--- a/appactions/builtintypes/builtintypes-core/src/main/java/androidx/appactions/builtintypes/types/Alarm.kt
+++ b/appactions/builtintypes/builtintypes-core/src/main/java/androidx/appactions/builtintypes/types/Alarm.kt
@@ -36,10 +36,14 @@
  * See http://schema.googleapis.com/Alarm for context.
  *
  * Should not be directly implemented. More properties may be added over time. Instead consider
- * using [Companion.Builder] or see [GenericAlarm] if you need to extend this type.
+ * using [Companion.Builder] or see [AbstractAlarm] if you need to extend this type.
  */
 public interface Alarm : Thing {
-  /** Associates an Alarm with a Schedule. */
+  /**
+   * Associates an Alarm with a Schedule.
+   *
+   * See http://schema.googleapis.com/alarmSchedule for more context.
+   */
   public val alarmSchedule: Schedule?
 
   /** Converts this [Alarm] to its builder with all the properties copied over. */
@@ -54,7 +58,7 @@
    * Builder for [Alarm].
    *
    * Should not be directly implemented. More methods may be added over time. See
-   * [GenericAlarm.Builder] if you need to extend this builder.
+   * [AbstractAlarm.Builder] if you need to extend this builder.
    */
   public interface Builder<Self : Builder<Self>> : Thing.Builder<Self> {
     /** Returns a built [Alarm]. */
@@ -90,7 +94,7 @@
 }
 
 /**
- * A generic implementation of [Alarm].
+ * An abstract implementation of [Alarm].
  *
  * Allows for extension like:
  * ```kt
@@ -98,7 +102,7 @@
  *   alarm: Alarm,
  *   val foo: String,
  *   val bars: List<Int>,
- * ) : GenericAlarm<
+ * ) : AbstractAlarm<
  *   MyAlarm,
  *   MyAlarm.Builder
  * >(alarm) {
@@ -116,17 +120,17 @@
  *   }
  *
  *   class Builder :
- *     GenericAlarm.Builder<
+ *     AbstractAlarm.Builder<
  *       Builder,
  *       MyAlarm> {...}
  * }
  * ```
  *
- * Also see [GenericAlarm.Builder].
+ * Also see [AbstractAlarm.Builder].
  */
 @Suppress("UNCHECKED_CAST")
-public abstract class GenericAlarm<
-  Self : GenericAlarm<Self, Builder>, Builder : GenericAlarm.Builder<Builder, Self>>
+public abstract class AbstractAlarm<
+  Self : AbstractAlarm<Self, Builder>, Builder : AbstractAlarm.Builder<Builder, Self>>
 internal constructor(
   public final override val alarmSchedule: Schedule?,
   public final override val disambiguatingDescription: DisambiguatingDescription?,
@@ -198,12 +202,12 @@
   }
 
   /**
-   * A generic implementation of [Alarm.Builder].
+   * An abstract implementation of [Alarm.Builder].
    *
    * Allows for extension like:
    * ```kt
    * class MyAlarm :
-   *   : GenericAlarm<
+   *   : AbstractAlarm<
    *     MyAlarm,
    *     MyAlarm.Builder>(...) {
    *
@@ -246,10 +250,10 @@
    * }
    * ```
    *
-   * Also see [GenericAlarm].
+   * Also see [AbstractAlarm].
    */
   @Suppress("StaticFinalBuilder")
-  public abstract class Builder<Self : Builder<Self, Built>, Built : GenericAlarm<Built, Self>> :
+  public abstract class Builder<Self : Builder<Self, Built>, Built : AbstractAlarm<Built, Self>> :
     Alarm.Builder<Self> {
     /**
      * Human readable name for the concrete [Self] class.
@@ -349,7 +353,7 @@
   }
 }
 
-internal class AlarmImpl : GenericAlarm<AlarmImpl, AlarmImpl.Builder> {
+internal class AlarmImpl : AbstractAlarm<AlarmImpl, AlarmImpl.Builder> {
   protected override val selfTypeName: String
     get() = "Alarm"
 
@@ -367,7 +371,7 @@
 
   protected override fun toBuilderWithAdditionalPropertiesOnly(): Builder = Builder()
 
-  internal class Builder : GenericAlarm.Builder<Builder, AlarmImpl>() {
+  internal class Builder : AbstractAlarm.Builder<Builder, AlarmImpl>() {
     protected override val selfTypeName: String
       get() = "Alarm.Builder"
 
diff --git a/appactions/builtintypes/builtintypes-core/src/main/java/androidx/appactions/builtintypes/types/ExecutionStatus.kt b/appactions/builtintypes/builtintypes-core/src/main/java/androidx/appactions/builtintypes/types/ExecutionStatus.kt
new file mode 100644
index 0000000..fcd7b3a
--- /dev/null
+++ b/appactions/builtintypes/builtintypes-core/src/main/java/androidx/appactions/builtintypes/types/ExecutionStatus.kt
@@ -0,0 +1,343 @@
+// Copyright 2023 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+package androidx.appactions.builtintypes.types
+
+import androidx.appactions.builtintypes.properties.DisambiguatingDescription
+import androidx.appactions.builtintypes.properties.Name
+import java.util.Objects
+import kotlin.Any
+import kotlin.Boolean
+import kotlin.Int
+import kotlin.String
+import kotlin.Suppress
+import kotlin.collections.Map
+import kotlin.collections.emptyMap
+import kotlin.collections.joinToString
+import kotlin.collections.map
+import kotlin.collections.mutableMapOf
+import kotlin.collections.plusAssign
+import kotlin.jvm.JvmStatic
+
+/**
+ * Status of a task that was pending execution.
+ *
+ * See http://schema.googleapis.com/ExecutionStatus for context.
+ *
+ * Should not be directly implemented. More properties may be added over time. Instead consider
+ * using [Companion.Builder] or see [AbstractExecutionStatus] if you need to extend this type.
+ */
+public interface ExecutionStatus : Intangible {
+  /** Converts this [ExecutionStatus] to its builder with all the properties copied over. */
+  public override fun toBuilder(): Builder<*>
+
+  public companion object {
+    /** Returns a default implementation of [Builder] with no properties set. */
+    @JvmStatic public fun Builder(): Builder<*> = ExecutionStatusImpl.Builder()
+  }
+
+  /**
+   * Builder for [ExecutionStatus].
+   *
+   * Should not be directly implemented. More methods may be added over time. See
+   * [AbstractExecutionStatus.Builder] if you need to extend this builder.
+   */
+  public interface Builder<Self : Builder<Self>> : Intangible.Builder<Self> {
+    /** Returns a built [ExecutionStatus]. */
+    public override fun build(): ExecutionStatus
+  }
+}
+
+/**
+ * An abstract implementation of [ExecutionStatus].
+ *
+ * Allows for extension like:
+ * ```kt
+ * class MyExecutionStatus internal constructor(
+ *   executionStatus: ExecutionStatus,
+ *   val foo: String,
+ *   val bars: List<Int>,
+ * ) : AbstractExecutionStatus<
+ *   MyExecutionStatus,
+ *   MyExecutionStatus.Builder
+ * >(executionStatus) {
+ *
+ *   override val selfTypeName =
+ *     "MyExecutionStatus"
+ *
+ *   override val additionalProperties: Map<String, Any?>
+ *     get() = mapOf("foo" to foo, "bars" to bars)
+ *
+ *   override fun toBuilderWithAdditionalPropertiesOnly(): Builder {
+ *     return Builder()
+ *       .setFoo(foo)
+ *       .addBars(bars)
+ *   }
+ *
+ *   class Builder :
+ *     AbstractExecutionStatus.Builder<
+ *       Builder,
+ *       MyExecutionStatus> {...}
+ * }
+ * ```
+ *
+ * Also see [AbstractExecutionStatus.Builder].
+ */
+@Suppress("UNCHECKED_CAST")
+public abstract class AbstractExecutionStatus<
+  Self : AbstractExecutionStatus<Self, Builder>,
+  Builder : AbstractExecutionStatus.Builder<Builder, Self>>
+internal constructor(
+  public final override val disambiguatingDescription: DisambiguatingDescription?,
+  public final override val identifier: String?,
+  public final override val name: Name?,
+) : ExecutionStatus {
+  /**
+   * Human readable name for the concrete [Self] class.
+   *
+   * Used in the [toString] output.
+   */
+  protected abstract val selfTypeName: String
+
+  /**
+   * The additional properties that exist on the concrete [Self] class.
+   *
+   * Used for equality comparison and computing the hash code.
+   */
+  protected abstract val additionalProperties: Map<String, Any?>
+
+  /** A copy-constructor that copies over properties from another [ExecutionStatus] instance. */
+  public constructor(
+    executionStatus: ExecutionStatus
+  ) : this(
+    executionStatus.disambiguatingDescription,
+    executionStatus.identifier,
+    executionStatus.name
+  )
+
+  /**
+   * Returns a concrete [Builder] with the additional, non-[ExecutionStatus] properties copied over.
+   */
+  protected abstract fun toBuilderWithAdditionalPropertiesOnly(): Builder
+
+  public final override fun toBuilder(): Builder =
+    toBuilderWithAdditionalPropertiesOnly()
+      .setDisambiguatingDescription(disambiguatingDescription)
+      .setIdentifier(identifier)
+      .setName(name)
+
+  public final override fun equals(other: Any?): Boolean {
+    if (this === other) return true
+    if (other == null || this::class.java != other::class.java) return false
+    other as Self
+    if (disambiguatingDescription != other.disambiguatingDescription) return false
+    if (identifier != other.identifier) return false
+    if (name != other.name) return false
+    if (additionalProperties != other.additionalProperties) return false
+    return true
+  }
+
+  public final override fun hashCode(): Int =
+    Objects.hash(disambiguatingDescription, identifier, name, additionalProperties)
+
+  public final override fun toString(): String {
+    val attributes = mutableMapOf<String, String>()
+    if (disambiguatingDescription != null) {
+      attributes["disambiguatingDescription"] =
+        disambiguatingDescription.toString(includeWrapperName = false)
+    }
+    if (identifier != null) {
+      attributes["identifier"] = identifier
+    }
+    if (name != null) {
+      attributes["name"] = name.toString(includeWrapperName = false)
+    }
+    attributes += additionalProperties.map { (k, v) -> k to v.toString() }
+    val commaSeparated = attributes.entries.joinToString(separator = ", ") { (k, v) -> """$k=$v""" }
+    return """$selfTypeName($commaSeparated)"""
+  }
+
+  /**
+   * An abstract implementation of [ExecutionStatus.Builder].
+   *
+   * Allows for extension like:
+   * ```kt
+   * class MyExecutionStatus :
+   *   : AbstractExecutionStatus<
+   *     MyExecutionStatus,
+   *     MyExecutionStatus.Builder>(...) {
+   *
+   *   class Builder
+   *   : Builder<
+   *       Builder,
+   *       MyExecutionStatus
+   *   >() {
+   *     private var foo: String? = null
+   *     private val bars = mutableListOf<Int>()
+   *
+   *     override val selfTypeName =
+   *       "MyExecutionStatus.Builder"
+   *
+   *     override val additionalProperties: Map<String, Any?>
+   *       get() = mapOf("foo" to foo, "bars" to bars)
+   *
+   *     override fun buildFromExecutionStatus(
+   *       executionStatus: ExecutionStatus
+   *     ): MyExecutionStatus {
+   *       return MyExecutionStatus(
+   *         executionStatus,
+   *         foo,
+   *         bars.toList()
+   *       )
+   *     }
+   *
+   *     fun setFoo(string: String): Builder {
+   *       return apply { foo = string }
+   *     }
+   *
+   *     fun addBar(int: Int): Builder {
+   *       return apply { bars += int }
+   *     }
+   *
+   *     fun addBars(values: Iterable<Int>): Builder {
+   *       return apply { bars += values }
+   *     }
+   *   }
+   * }
+   * ```
+   *
+   * Also see [AbstractExecutionStatus].
+   */
+  @Suppress("StaticFinalBuilder")
+  public abstract class Builder<
+    Self : Builder<Self, Built>, Built : AbstractExecutionStatus<Built, Self>> :
+    ExecutionStatus.Builder<Self> {
+    /**
+     * Human readable name for the concrete [Self] class.
+     *
+     * Used in the [toString] output.
+     */
+    @get:Suppress("GetterOnBuilder") protected abstract val selfTypeName: String
+
+    /**
+     * The additional properties that exist on the concrete [Self] class.
+     *
+     * Used for equality comparison and computing the hash code.
+     */
+    @get:Suppress("GetterOnBuilder") protected abstract val additionalProperties: Map<String, Any?>
+
+    private var disambiguatingDescription: DisambiguatingDescription? = null
+
+    private var identifier: String? = null
+
+    private var name: Name? = null
+
+    /**
+     * Builds a concrete [Built] instance, given a built [ExecutionStatus].
+     *
+     * Subclasses should override this method to build a concrete [Built] instance that holds both
+     * the [ExecutionStatus]-specific properties and the subclass specific [additionalProperties].
+     *
+     * See the sample code in the documentation of this class for more context.
+     */
+    @Suppress("BuilderSetStyle")
+    protected abstract fun buildFromExecutionStatus(executionStatus: ExecutionStatus): Built
+
+    public final override fun build(): Built =
+      buildFromExecutionStatus(ExecutionStatusImpl(disambiguatingDescription, identifier, name))
+
+    public final override fun setDisambiguatingDescription(
+      disambiguatingDescription: DisambiguatingDescription?
+    ): Self {
+      this.disambiguatingDescription = disambiguatingDescription
+      return this as Self
+    }
+
+    public final override fun setIdentifier(text: String?): Self {
+      this.identifier = text
+      return this as Self
+    }
+
+    public final override fun setName(name: Name?): Self {
+      this.name = name
+      return this as Self
+    }
+
+    @Suppress("BuilderSetStyle")
+    public final override fun equals(other: Any?): Boolean {
+      if (this === other) return true
+      if (other == null || this::class.java != other::class.java) return false
+      other as Self
+      if (disambiguatingDescription != other.disambiguatingDescription) return false
+      if (identifier != other.identifier) return false
+      if (name != other.name) return false
+      if (additionalProperties != other.additionalProperties) return false
+      return true
+    }
+
+    @Suppress("BuilderSetStyle")
+    public final override fun hashCode(): Int =
+      Objects.hash(disambiguatingDescription, identifier, name, additionalProperties)
+
+    @Suppress("BuilderSetStyle")
+    public final override fun toString(): String {
+      val attributes = mutableMapOf<String, String>()
+      if (disambiguatingDescription != null) {
+        attributes["disambiguatingDescription"] =
+          disambiguatingDescription!!.toString(includeWrapperName = false)
+      }
+      if (identifier != null) {
+        attributes["identifier"] = identifier!!
+      }
+      if (name != null) {
+        attributes["name"] = name!!.toString(includeWrapperName = false)
+      }
+      attributes += additionalProperties.map { (k, v) -> k to v.toString() }
+      val commaSeparated =
+        attributes.entries.joinToString(separator = ", ") { (k, v) -> """$k=$v""" }
+      return """$selfTypeName($commaSeparated)"""
+    }
+  }
+}
+
+internal class ExecutionStatusImpl :
+  AbstractExecutionStatus<ExecutionStatusImpl, ExecutionStatusImpl.Builder> {
+  protected override val selfTypeName: String
+    get() = "ExecutionStatus"
+
+  protected override val additionalProperties: Map<String, Any?>
+    get() = emptyMap()
+
+  public constructor(
+    disambiguatingDescription: DisambiguatingDescription?,
+    identifier: String?,
+    name: Name?,
+  ) : super(disambiguatingDescription, identifier, name)
+
+  public constructor(executionStatus: ExecutionStatus) : super(executionStatus)
+
+  protected override fun toBuilderWithAdditionalPropertiesOnly(): Builder = Builder()
+
+  internal class Builder : AbstractExecutionStatus.Builder<Builder, ExecutionStatusImpl>() {
+    protected override val selfTypeName: String
+      get() = "ExecutionStatus.Builder"
+
+    protected override val additionalProperties: Map<String, Any?>
+      get() = emptyMap()
+
+    protected override fun buildFromExecutionStatus(
+      executionStatus: ExecutionStatus
+    ): ExecutionStatusImpl =
+      executionStatus as? ExecutionStatusImpl ?: ExecutionStatusImpl(executionStatus)
+  }
+}
diff --git a/appactions/builtintypes/builtintypes-core/src/main/java/androidx/appactions/builtintypes/types/GenericErrorStatus.kt b/appactions/builtintypes/builtintypes-core/src/main/java/androidx/appactions/builtintypes/types/GenericErrorStatus.kt
new file mode 100644
index 0000000..028c76a
--- /dev/null
+++ b/appactions/builtintypes/builtintypes-core/src/main/java/androidx/appactions/builtintypes/types/GenericErrorStatus.kt
@@ -0,0 +1,349 @@
+// Copyright 2023 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+package androidx.appactions.builtintypes.types
+
+import androidx.appactions.builtintypes.properties.DisambiguatingDescription
+import androidx.appactions.builtintypes.properties.Name
+import java.util.Objects
+import kotlin.Any
+import kotlin.Boolean
+import kotlin.Int
+import kotlin.String
+import kotlin.Suppress
+import kotlin.collections.Map
+import kotlin.collections.emptyMap
+import kotlin.collections.joinToString
+import kotlin.collections.map
+import kotlin.collections.mutableMapOf
+import kotlin.collections.plusAssign
+import kotlin.jvm.JvmStatic
+
+/**
+ * Status indicating that the task was not executed successfully.
+ *
+ * See http://schema.googleapis.com/GenericErrorStatus for context.
+ *
+ * Should not be directly implemented. More properties may be added over time. Instead consider
+ * using [Companion.Builder] or see [AbstractGenericErrorStatus] if you need to extend this type.
+ */
+public interface GenericErrorStatus : ExecutionStatus {
+  /** Converts this [GenericErrorStatus] to its builder with all the properties copied over. */
+  public override fun toBuilder(): Builder<*>
+
+  public companion object {
+    /** Returns a default implementation of [Builder] with no properties set. */
+    @JvmStatic public fun Builder(): Builder<*> = GenericErrorStatusImpl.Builder()
+  }
+
+  /**
+   * Builder for [GenericErrorStatus].
+   *
+   * Should not be directly implemented. More methods may be added over time. See
+   * [AbstractGenericErrorStatus.Builder] if you need to extend this builder.
+   */
+  public interface Builder<Self : Builder<Self>> : ExecutionStatus.Builder<Self> {
+    /** Returns a built [GenericErrorStatus]. */
+    public override fun build(): GenericErrorStatus
+  }
+}
+
+/**
+ * An abstract implementation of [GenericErrorStatus].
+ *
+ * Allows for extension like:
+ * ```kt
+ * class MyGenericErrorStatus internal constructor(
+ *   genericErrorStatus: GenericErrorStatus,
+ *   val foo: String,
+ *   val bars: List<Int>,
+ * ) : AbstractGenericErrorStatus<
+ *   MyGenericErrorStatus,
+ *   MyGenericErrorStatus.Builder
+ * >(genericErrorStatus) {
+ *
+ *   override val selfTypeName =
+ *     "MyGenericErrorStatus"
+ *
+ *   override val additionalProperties: Map<String, Any?>
+ *     get() = mapOf("foo" to foo, "bars" to bars)
+ *
+ *   override fun toBuilderWithAdditionalPropertiesOnly(): Builder {
+ *     return Builder()
+ *       .setFoo(foo)
+ *       .addBars(bars)
+ *   }
+ *
+ *   class Builder :
+ *     AbstractGenericErrorStatus.Builder<
+ *       Builder,
+ *       MyGenericErrorStatus> {...}
+ * }
+ * ```
+ *
+ * Also see [AbstractGenericErrorStatus.Builder].
+ */
+@Suppress("UNCHECKED_CAST")
+public abstract class AbstractGenericErrorStatus<
+  Self : AbstractGenericErrorStatus<Self, Builder>,
+  Builder : AbstractGenericErrorStatus.Builder<Builder, Self>>
+internal constructor(
+  public final override val disambiguatingDescription: DisambiguatingDescription?,
+  public final override val identifier: String?,
+  public final override val name: Name?,
+) : GenericErrorStatus {
+  /**
+   * Human readable name for the concrete [Self] class.
+   *
+   * Used in the [toString] output.
+   */
+  protected abstract val selfTypeName: String
+
+  /**
+   * The additional properties that exist on the concrete [Self] class.
+   *
+   * Used for equality comparison and computing the hash code.
+   */
+  protected abstract val additionalProperties: Map<String, Any?>
+
+  /** A copy-constructor that copies over properties from another [GenericErrorStatus] instance. */
+  public constructor(
+    genericErrorStatus: GenericErrorStatus
+  ) : this(
+    genericErrorStatus.disambiguatingDescription,
+    genericErrorStatus.identifier,
+    genericErrorStatus.name
+  )
+
+  /**
+   * Returns a concrete [Builder] with the additional, non-[GenericErrorStatus] properties copied
+   * over.
+   */
+  protected abstract fun toBuilderWithAdditionalPropertiesOnly(): Builder
+
+  public final override fun toBuilder(): Builder =
+    toBuilderWithAdditionalPropertiesOnly()
+      .setDisambiguatingDescription(disambiguatingDescription)
+      .setIdentifier(identifier)
+      .setName(name)
+
+  public final override fun equals(other: Any?): Boolean {
+    if (this === other) return true
+    if (other == null || this::class.java != other::class.java) return false
+    other as Self
+    if (disambiguatingDescription != other.disambiguatingDescription) return false
+    if (identifier != other.identifier) return false
+    if (name != other.name) return false
+    if (additionalProperties != other.additionalProperties) return false
+    return true
+  }
+
+  public final override fun hashCode(): Int =
+    Objects.hash(disambiguatingDescription, identifier, name, additionalProperties)
+
+  public final override fun toString(): String {
+    val attributes = mutableMapOf<String, String>()
+    if (disambiguatingDescription != null) {
+      attributes["disambiguatingDescription"] =
+        disambiguatingDescription.toString(includeWrapperName = false)
+    }
+    if (identifier != null) {
+      attributes["identifier"] = identifier
+    }
+    if (name != null) {
+      attributes["name"] = name.toString(includeWrapperName = false)
+    }
+    attributes += additionalProperties.map { (k, v) -> k to v.toString() }
+    val commaSeparated = attributes.entries.joinToString(separator = ", ") { (k, v) -> """$k=$v""" }
+    return """$selfTypeName($commaSeparated)"""
+  }
+
+  /**
+   * An abstract implementation of [GenericErrorStatus.Builder].
+   *
+   * Allows for extension like:
+   * ```kt
+   * class MyGenericErrorStatus :
+   *   : AbstractGenericErrorStatus<
+   *     MyGenericErrorStatus,
+   *     MyGenericErrorStatus.Builder>(...) {
+   *
+   *   class Builder
+   *   : Builder<
+   *       Builder,
+   *       MyGenericErrorStatus
+   *   >() {
+   *     private var foo: String? = null
+   *     private val bars = mutableListOf<Int>()
+   *
+   *     override val selfTypeName =
+   *       "MyGenericErrorStatus.Builder"
+   *
+   *     override val additionalProperties: Map<String, Any?>
+   *       get() = mapOf("foo" to foo, "bars" to bars)
+   *
+   *     override fun buildFromGenericErrorStatus(
+   *       genericErrorStatus: GenericErrorStatus
+   *     ): MyGenericErrorStatus {
+   *       return MyGenericErrorStatus(
+   *         genericErrorStatus,
+   *         foo,
+   *         bars.toList()
+   *       )
+   *     }
+   *
+   *     fun setFoo(string: String): Builder {
+   *       return apply { foo = string }
+   *     }
+   *
+   *     fun addBar(int: Int): Builder {
+   *       return apply { bars += int }
+   *     }
+   *
+   *     fun addBars(values: Iterable<Int>): Builder {
+   *       return apply { bars += values }
+   *     }
+   *   }
+   * }
+   * ```
+   *
+   * Also see [AbstractGenericErrorStatus].
+   */
+  @Suppress("StaticFinalBuilder")
+  public abstract class Builder<
+    Self : Builder<Self, Built>, Built : AbstractGenericErrorStatus<Built, Self>> :
+    GenericErrorStatus.Builder<Self> {
+    /**
+     * Human readable name for the concrete [Self] class.
+     *
+     * Used in the [toString] output.
+     */
+    @get:Suppress("GetterOnBuilder") protected abstract val selfTypeName: String
+
+    /**
+     * The additional properties that exist on the concrete [Self] class.
+     *
+     * Used for equality comparison and computing the hash code.
+     */
+    @get:Suppress("GetterOnBuilder") protected abstract val additionalProperties: Map<String, Any?>
+
+    private var disambiguatingDescription: DisambiguatingDescription? = null
+
+    private var identifier: String? = null
+
+    private var name: Name? = null
+
+    /**
+     * Builds a concrete [Built] instance, given a built [GenericErrorStatus].
+     *
+     * Subclasses should override this method to build a concrete [Built] instance that holds both
+     * the [GenericErrorStatus]-specific properties and the subclass specific
+     * [additionalProperties].
+     *
+     * See the sample code in the documentation of this class for more context.
+     */
+    @Suppress("BuilderSetStyle")
+    protected abstract fun buildFromGenericErrorStatus(
+      genericErrorStatus: GenericErrorStatus
+    ): Built
+
+    public final override fun build(): Built =
+      buildFromGenericErrorStatus(
+        GenericErrorStatusImpl(disambiguatingDescription, identifier, name)
+      )
+
+    public final override fun setDisambiguatingDescription(
+      disambiguatingDescription: DisambiguatingDescription?
+    ): Self {
+      this.disambiguatingDescription = disambiguatingDescription
+      return this as Self
+    }
+
+    public final override fun setIdentifier(text: String?): Self {
+      this.identifier = text
+      return this as Self
+    }
+
+    public final override fun setName(name: Name?): Self {
+      this.name = name
+      return this as Self
+    }
+
+    @Suppress("BuilderSetStyle")
+    public final override fun equals(other: Any?): Boolean {
+      if (this === other) return true
+      if (other == null || this::class.java != other::class.java) return false
+      other as Self
+      if (disambiguatingDescription != other.disambiguatingDescription) return false
+      if (identifier != other.identifier) return false
+      if (name != other.name) return false
+      if (additionalProperties != other.additionalProperties) return false
+      return true
+    }
+
+    @Suppress("BuilderSetStyle")
+    public final override fun hashCode(): Int =
+      Objects.hash(disambiguatingDescription, identifier, name, additionalProperties)
+
+    @Suppress("BuilderSetStyle")
+    public final override fun toString(): String {
+      val attributes = mutableMapOf<String, String>()
+      if (disambiguatingDescription != null) {
+        attributes["disambiguatingDescription"] =
+          disambiguatingDescription!!.toString(includeWrapperName = false)
+      }
+      if (identifier != null) {
+        attributes["identifier"] = identifier!!
+      }
+      if (name != null) {
+        attributes["name"] = name!!.toString(includeWrapperName = false)
+      }
+      attributes += additionalProperties.map { (k, v) -> k to v.toString() }
+      val commaSeparated =
+        attributes.entries.joinToString(separator = ", ") { (k, v) -> """$k=$v""" }
+      return """$selfTypeName($commaSeparated)"""
+    }
+  }
+}
+
+internal class GenericErrorStatusImpl :
+  AbstractGenericErrorStatus<GenericErrorStatusImpl, GenericErrorStatusImpl.Builder> {
+  protected override val selfTypeName: String
+    get() = "GenericErrorStatus"
+
+  protected override val additionalProperties: Map<String, Any?>
+    get() = emptyMap()
+
+  public constructor(
+    disambiguatingDescription: DisambiguatingDescription?,
+    identifier: String?,
+    name: Name?,
+  ) : super(disambiguatingDescription, identifier, name)
+
+  public constructor(genericErrorStatus: GenericErrorStatus) : super(genericErrorStatus)
+
+  protected override fun toBuilderWithAdditionalPropertiesOnly(): Builder = Builder()
+
+  internal class Builder : AbstractGenericErrorStatus.Builder<Builder, GenericErrorStatusImpl>() {
+    protected override val selfTypeName: String
+      get() = "GenericErrorStatus.Builder"
+
+    protected override val additionalProperties: Map<String, Any?>
+      get() = emptyMap()
+
+    protected override fun buildFromGenericErrorStatus(
+      genericErrorStatus: GenericErrorStatus
+    ): GenericErrorStatusImpl =
+      genericErrorStatus as? GenericErrorStatusImpl ?: GenericErrorStatusImpl(genericErrorStatus)
+  }
+}
diff --git a/appactions/builtintypes/builtintypes-core/src/main/java/androidx/appactions/builtintypes/types/Intangible.kt b/appactions/builtintypes/builtintypes-core/src/main/java/androidx/appactions/builtintypes/types/Intangible.kt
index e1d1386..e862f93 100644
--- a/appactions/builtintypes/builtintypes-core/src/main/java/androidx/appactions/builtintypes/types/Intangible.kt
+++ b/appactions/builtintypes/builtintypes-core/src/main/java/androidx/appactions/builtintypes/types/Intangible.kt
@@ -36,7 +36,7 @@
  * See http://schema.org/Intangible for context.
  *
  * Should not be directly implemented. More properties may be added over time. Instead consider
- * using [Companion.Builder] or see [GenericIntangible] if you need to extend this type.
+ * using [Companion.Builder] or see [AbstractIntangible] if you need to extend this type.
  */
 public interface Intangible : Thing {
   /** Converts this [Intangible] to its builder with all the properties copied over. */
@@ -51,7 +51,7 @@
    * Builder for [Intangible].
    *
    * Should not be directly implemented. More methods may be added over time. See
-   * [GenericIntangible.Builder] if you need to extend this builder.
+   * [AbstractIntangible.Builder] if you need to extend this builder.
    */
   public interface Builder<Self : Builder<Self>> : Thing.Builder<Self> {
     /** Returns a built [Intangible]. */
@@ -60,7 +60,7 @@
 }
 
 /**
- * A generic implementation of [Intangible].
+ * An abstract implementation of [Intangible].
  *
  * Allows for extension like:
  * ```kt
@@ -68,7 +68,7 @@
  *   intangible: Intangible,
  *   val foo: String,
  *   val bars: List<Int>,
- * ) : GenericIntangible<
+ * ) : AbstractIntangible<
  *   MyIntangible,
  *   MyIntangible.Builder
  * >(intangible) {
@@ -86,17 +86,17 @@
  *   }
  *
  *   class Builder :
- *     GenericIntangible.Builder<
+ *     AbstractIntangible.Builder<
  *       Builder,
  *       MyIntangible> {...}
  * }
  * ```
  *
- * Also see [GenericIntangible.Builder].
+ * Also see [AbstractIntangible.Builder].
  */
 @Suppress("UNCHECKED_CAST")
-public abstract class GenericIntangible<
-  Self : GenericIntangible<Self, Builder>, Builder : GenericIntangible.Builder<Builder, Self>>
+public abstract class AbstractIntangible<
+  Self : AbstractIntangible<Self, Builder>, Builder : AbstractIntangible.Builder<Builder, Self>>
 internal constructor(
   public final override val disambiguatingDescription: DisambiguatingDescription?,
   public final override val identifier: String?,
@@ -162,12 +162,12 @@
   }
 
   /**
-   * A generic implementation of [Intangible.Builder].
+   * An abstract implementation of [Intangible.Builder].
    *
    * Allows for extension like:
    * ```kt
    * class MyIntangible :
-   *   : GenericIntangible<
+   *   : AbstractIntangible<
    *     MyIntangible,
    *     MyIntangible.Builder>(...) {
    *
@@ -210,11 +210,11 @@
    * }
    * ```
    *
-   * Also see [GenericIntangible].
+   * Also see [AbstractIntangible].
    */
   @Suppress("StaticFinalBuilder")
   public abstract class Builder<
-    Self : Builder<Self, Built>, Built : GenericIntangible<Built, Self>> :
+    Self : Builder<Self, Built>, Built : AbstractIntangible<Built, Self>> :
     Intangible.Builder<Self> {
     /**
      * Human readable name for the concrete [Self] class.
@@ -304,7 +304,7 @@
   }
 }
 
-internal class IntangibleImpl : GenericIntangible<IntangibleImpl, IntangibleImpl.Builder> {
+internal class IntangibleImpl : AbstractIntangible<IntangibleImpl, IntangibleImpl.Builder> {
   protected override val selfTypeName: String
     get() = "Intangible"
 
@@ -321,7 +321,7 @@
 
   protected override fun toBuilderWithAdditionalPropertiesOnly(): Builder = Builder()
 
-  internal class Builder : GenericIntangible.Builder<Builder, IntangibleImpl>() {
+  internal class Builder : AbstractIntangible.Builder<Builder, IntangibleImpl>() {
     protected override val selfTypeName: String
       get() = "Intangible.Builder"
 
diff --git a/appactions/builtintypes/builtintypes-core/src/main/java/androidx/appactions/builtintypes/types/ObjectCreationLimitReachedStatus.kt b/appactions/builtintypes/builtintypes-core/src/main/java/androidx/appactions/builtintypes/types/ObjectCreationLimitReachedStatus.kt
new file mode 100644
index 0000000..9504c94
--- /dev/null
+++ b/appactions/builtintypes/builtintypes-core/src/main/java/androidx/appactions/builtintypes/types/ObjectCreationLimitReachedStatus.kt
@@ -0,0 +1,365 @@
+// Copyright 2023 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+package androidx.appactions.builtintypes.types
+
+import androidx.appactions.builtintypes.properties.DisambiguatingDescription
+import androidx.appactions.builtintypes.properties.Name
+import java.util.Objects
+import kotlin.Any
+import kotlin.Boolean
+import kotlin.Int
+import kotlin.String
+import kotlin.Suppress
+import kotlin.collections.Map
+import kotlin.collections.emptyMap
+import kotlin.collections.joinToString
+import kotlin.collections.map
+import kotlin.collections.mutableMapOf
+import kotlin.collections.plusAssign
+import kotlin.jvm.JvmStatic
+
+/**
+ * Status indicating that the number of objects have reached the limit and more objects cannot be
+ * created.
+ *
+ * See http://schema.googleapis.com/ObjectCreationLimitReachedStatus for context.
+ *
+ * Should not be directly implemented. More properties may be added over time. Instead consider
+ * using [Companion.Builder] or see [AbstractObjectCreationLimitReachedStatus] if you need to extend
+ * this type.
+ */
+public interface ObjectCreationLimitReachedStatus : ExecutionStatus {
+  /**
+   * Converts this [ObjectCreationLimitReachedStatus] to its builder with all the properties copied
+   * over.
+   */
+  public override fun toBuilder(): Builder<*>
+
+  public companion object {
+    /** Returns a default implementation of [Builder] with no properties set. */
+    @JvmStatic public fun Builder(): Builder<*> = ObjectCreationLimitReachedStatusImpl.Builder()
+  }
+
+  /**
+   * Builder for [ObjectCreationLimitReachedStatus].
+   *
+   * Should not be directly implemented. More methods may be added over time. See
+   * [AbstractObjectCreationLimitReachedStatus.Builder] if you need to extend this builder.
+   */
+  public interface Builder<Self : Builder<Self>> : ExecutionStatus.Builder<Self> {
+    /** Returns a built [ObjectCreationLimitReachedStatus]. */
+    public override fun build(): ObjectCreationLimitReachedStatus
+  }
+}
+
+/**
+ * An abstract implementation of [ObjectCreationLimitReachedStatus].
+ *
+ * Allows for extension like:
+ * ```kt
+ * class MyObjectCreationLimitReachedStatus internal constructor(
+ *   objectCreationLimitReachedStatus: ObjectCreationLimitReachedStatus,
+ *   val foo: String,
+ *   val bars: List<Int>,
+ * ) : AbstractObjectCreationLimitReachedStatus<
+ *   MyObjectCreationLimitReachedStatus,
+ *   MyObjectCreationLimitReachedStatus.Builder
+ * >(objectCreationLimitReachedStatus) {
+ *
+ *   override val selfTypeName =
+ *     "MyObjectCreationLimitReachedStatus"
+ *
+ *   override val additionalProperties: Map<String, Any?>
+ *     get() = mapOf("foo" to foo, "bars" to bars)
+ *
+ *   override fun toBuilderWithAdditionalPropertiesOnly(): Builder {
+ *     return Builder()
+ *       .setFoo(foo)
+ *       .addBars(bars)
+ *   }
+ *
+ *   class Builder :
+ *     AbstractObjectCreationLimitReachedStatus.Builder<
+ *       Builder,
+ *       MyObjectCreationLimitReachedStatus> {...}
+ * }
+ * ```
+ *
+ * Also see [AbstractObjectCreationLimitReachedStatus.Builder].
+ */
+@Suppress("UNCHECKED_CAST")
+public abstract class AbstractObjectCreationLimitReachedStatus<
+  Self : AbstractObjectCreationLimitReachedStatus<Self, Builder>,
+  Builder : AbstractObjectCreationLimitReachedStatus.Builder<Builder, Self>>
+internal constructor(
+  public final override val disambiguatingDescription: DisambiguatingDescription?,
+  public final override val identifier: String?,
+  public final override val name: Name?,
+) : ObjectCreationLimitReachedStatus {
+  /**
+   * Human readable name for the concrete [Self] class.
+   *
+   * Used in the [toString] output.
+   */
+  protected abstract val selfTypeName: String
+
+  /**
+   * The additional properties that exist on the concrete [Self] class.
+   *
+   * Used for equality comparison and computing the hash code.
+   */
+  protected abstract val additionalProperties: Map<String, Any?>
+
+  /**
+   * A copy-constructor that copies over properties from another [ObjectCreationLimitReachedStatus]
+   * instance.
+   */
+  public constructor(
+    objectCreationLimitReachedStatus: ObjectCreationLimitReachedStatus
+  ) : this(
+    objectCreationLimitReachedStatus.disambiguatingDescription,
+    objectCreationLimitReachedStatus.identifier,
+    objectCreationLimitReachedStatus.name
+  )
+
+  /**
+   * Returns a concrete [Builder] with the additional, non-[ObjectCreationLimitReachedStatus]
+   * properties copied over.
+   */
+  protected abstract fun toBuilderWithAdditionalPropertiesOnly(): Builder
+
+  public final override fun toBuilder(): Builder =
+    toBuilderWithAdditionalPropertiesOnly()
+      .setDisambiguatingDescription(disambiguatingDescription)
+      .setIdentifier(identifier)
+      .setName(name)
+
+  public final override fun equals(other: Any?): Boolean {
+    if (this === other) return true
+    if (other == null || this::class.java != other::class.java) return false
+    other as Self
+    if (disambiguatingDescription != other.disambiguatingDescription) return false
+    if (identifier != other.identifier) return false
+    if (name != other.name) return false
+    if (additionalProperties != other.additionalProperties) return false
+    return true
+  }
+
+  public final override fun hashCode(): Int =
+    Objects.hash(disambiguatingDescription, identifier, name, additionalProperties)
+
+  public final override fun toString(): String {
+    val attributes = mutableMapOf<String, String>()
+    if (disambiguatingDescription != null) {
+      attributes["disambiguatingDescription"] =
+        disambiguatingDescription.toString(includeWrapperName = false)
+    }
+    if (identifier != null) {
+      attributes["identifier"] = identifier
+    }
+    if (name != null) {
+      attributes["name"] = name.toString(includeWrapperName = false)
+    }
+    attributes += additionalProperties.map { (k, v) -> k to v.toString() }
+    val commaSeparated = attributes.entries.joinToString(separator = ", ") { (k, v) -> """$k=$v""" }
+    return """$selfTypeName($commaSeparated)"""
+  }
+
+  /**
+   * An abstract implementation of [ObjectCreationLimitReachedStatus.Builder].
+   *
+   * Allows for extension like:
+   * ```kt
+   * class MyObjectCreationLimitReachedStatus :
+   *   : AbstractObjectCreationLimitReachedStatus<
+   *     MyObjectCreationLimitReachedStatus,
+   *     MyObjectCreationLimitReachedStatus.Builder>(...) {
+   *
+   *   class Builder
+   *   : Builder<
+   *       Builder,
+   *       MyObjectCreationLimitReachedStatus
+   *   >() {
+   *     private var foo: String? = null
+   *     private val bars = mutableListOf<Int>()
+   *
+   *     override val selfTypeName =
+   *       "MyObjectCreationLimitReachedStatus.Builder"
+   *
+   *     override val additionalProperties: Map<String, Any?>
+   *       get() = mapOf("foo" to foo, "bars" to bars)
+   *
+   *     override fun buildFromObjectCreationLimitReachedStatus(
+   *       objectCreationLimitReachedStatus: ObjectCreationLimitReachedStatus
+   *     ): MyObjectCreationLimitReachedStatus {
+   *       return MyObjectCreationLimitReachedStatus(
+   *         objectCreationLimitReachedStatus,
+   *         foo,
+   *         bars.toList()
+   *       )
+   *     }
+   *
+   *     fun setFoo(string: String): Builder {
+   *       return apply { foo = string }
+   *     }
+   *
+   *     fun addBar(int: Int): Builder {
+   *       return apply { bars += int }
+   *     }
+   *
+   *     fun addBars(values: Iterable<Int>): Builder {
+   *       return apply { bars += values }
+   *     }
+   *   }
+   * }
+   * ```
+   *
+   * Also see [AbstractObjectCreationLimitReachedStatus].
+   */
+  @Suppress("StaticFinalBuilder")
+  public abstract class Builder<
+    Self : Builder<Self, Built>, Built : AbstractObjectCreationLimitReachedStatus<Built, Self>> :
+    ObjectCreationLimitReachedStatus.Builder<Self> {
+    /**
+     * Human readable name for the concrete [Self] class.
+     *
+     * Used in the [toString] output.
+     */
+    @get:Suppress("GetterOnBuilder") protected abstract val selfTypeName: String
+
+    /**
+     * The additional properties that exist on the concrete [Self] class.
+     *
+     * Used for equality comparison and computing the hash code.
+     */
+    @get:Suppress("GetterOnBuilder") protected abstract val additionalProperties: Map<String, Any?>
+
+    private var disambiguatingDescription: DisambiguatingDescription? = null
+
+    private var identifier: String? = null
+
+    private var name: Name? = null
+
+    /**
+     * Builds a concrete [Built] instance, given a built [ObjectCreationLimitReachedStatus].
+     *
+     * Subclasses should override this method to build a concrete [Built] instance that holds both
+     * the [ObjectCreationLimitReachedStatus]-specific properties and the subclass specific
+     * [additionalProperties].
+     *
+     * See the sample code in the documentation of this class for more context.
+     */
+    @Suppress("BuilderSetStyle")
+    protected abstract fun buildFromObjectCreationLimitReachedStatus(
+      objectCreationLimitReachedStatus: ObjectCreationLimitReachedStatus
+    ): Built
+
+    public final override fun build(): Built =
+      buildFromObjectCreationLimitReachedStatus(
+        ObjectCreationLimitReachedStatusImpl(disambiguatingDescription, identifier, name)
+      )
+
+    public final override fun setDisambiguatingDescription(
+      disambiguatingDescription: DisambiguatingDescription?
+    ): Self {
+      this.disambiguatingDescription = disambiguatingDescription
+      return this as Self
+    }
+
+    public final override fun setIdentifier(text: String?): Self {
+      this.identifier = text
+      return this as Self
+    }
+
+    public final override fun setName(name: Name?): Self {
+      this.name = name
+      return this as Self
+    }
+
+    @Suppress("BuilderSetStyle")
+    public final override fun equals(other: Any?): Boolean {
+      if (this === other) return true
+      if (other == null || this::class.java != other::class.java) return false
+      other as Self
+      if (disambiguatingDescription != other.disambiguatingDescription) return false
+      if (identifier != other.identifier) return false
+      if (name != other.name) return false
+      if (additionalProperties != other.additionalProperties) return false
+      return true
+    }
+
+    @Suppress("BuilderSetStyle")
+    public final override fun hashCode(): Int =
+      Objects.hash(disambiguatingDescription, identifier, name, additionalProperties)
+
+    @Suppress("BuilderSetStyle")
+    public final override fun toString(): String {
+      val attributes = mutableMapOf<String, String>()
+      if (disambiguatingDescription != null) {
+        attributes["disambiguatingDescription"] =
+          disambiguatingDescription!!.toString(includeWrapperName = false)
+      }
+      if (identifier != null) {
+        attributes["identifier"] = identifier!!
+      }
+      if (name != null) {
+        attributes["name"] = name!!.toString(includeWrapperName = false)
+      }
+      attributes += additionalProperties.map { (k, v) -> k to v.toString() }
+      val commaSeparated =
+        attributes.entries.joinToString(separator = ", ") { (k, v) -> """$k=$v""" }
+      return """$selfTypeName($commaSeparated)"""
+    }
+  }
+}
+
+internal class ObjectCreationLimitReachedStatusImpl :
+  AbstractObjectCreationLimitReachedStatus<
+    ObjectCreationLimitReachedStatusImpl, ObjectCreationLimitReachedStatusImpl.Builder
+  > {
+  protected override val selfTypeName: String
+    get() = "ObjectCreationLimitReachedStatus"
+
+  protected override val additionalProperties: Map<String, Any?>
+    get() = emptyMap()
+
+  public constructor(
+    disambiguatingDescription: DisambiguatingDescription?,
+    identifier: String?,
+    name: Name?,
+  ) : super(disambiguatingDescription, identifier, name)
+
+  public constructor(
+    objectCreationLimitReachedStatus: ObjectCreationLimitReachedStatus
+  ) : super(objectCreationLimitReachedStatus)
+
+  protected override fun toBuilderWithAdditionalPropertiesOnly(): Builder = Builder()
+
+  internal class Builder :
+    AbstractObjectCreationLimitReachedStatus.Builder<
+      Builder, ObjectCreationLimitReachedStatusImpl
+    >() {
+    protected override val selfTypeName: String
+      get() = "ObjectCreationLimitReachedStatus.Builder"
+
+    protected override val additionalProperties: Map<String, Any?>
+      get() = emptyMap()
+
+    protected override fun buildFromObjectCreationLimitReachedStatus(
+      objectCreationLimitReachedStatus: ObjectCreationLimitReachedStatus
+    ): ObjectCreationLimitReachedStatusImpl =
+      objectCreationLimitReachedStatus as? ObjectCreationLimitReachedStatusImpl
+        ?: ObjectCreationLimitReachedStatusImpl(objectCreationLimitReachedStatus)
+  }
+}
diff --git a/appactions/builtintypes/builtintypes-core/src/main/java/androidx/appactions/builtintypes/types/Person.kt b/appactions/builtintypes/builtintypes-core/src/main/java/androidx/appactions/builtintypes/types/Person.kt
index 37403bb..dc96036 100644
--- a/appactions/builtintypes/builtintypes-core/src/main/java/androidx/appactions/builtintypes/types/Person.kt
+++ b/appactions/builtintypes/builtintypes-core/src/main/java/androidx/appactions/builtintypes/types/Person.kt
@@ -35,10 +35,14 @@
  * See http://schema.org/Person for context.
  *
  * Should not be directly implemented. More properties may be added over time. Instead consider
- * using [Companion.Builder] or see [GenericPerson] if you need to extend this type.
+ * using [Companion.Builder] or see [AbstractPerson] if you need to extend this type.
  */
 public interface Person : Thing {
-  /** Email address. */
+  /**
+   * Email address.
+   *
+   * See http://schema.org/email for more context.
+   */
   public val email: String?
 
   /** Converts this [Person] to its builder with all the properties copied over. */
@@ -53,7 +57,7 @@
    * Builder for [Person].
    *
    * Should not be directly implemented. More methods may be added over time. See
-   * [GenericPerson.Builder] if you need to extend this builder.
+   * [AbstractPerson.Builder] if you need to extend this builder.
    */
   public interface Builder<Self : Builder<Self>> : Thing.Builder<Self> {
     /** Returns a built [Person]. */
@@ -65,7 +69,7 @@
 }
 
 /**
- * A generic implementation of [Person].
+ * An abstract implementation of [Person].
  *
  * Allows for extension like:
  * ```kt
@@ -73,7 +77,7 @@
  *   person: Person,
  *   val foo: String,
  *   val bars: List<Int>,
- * ) : GenericPerson<
+ * ) : AbstractPerson<
  *   MyPerson,
  *   MyPerson.Builder
  * >(person) {
@@ -91,17 +95,17 @@
  *   }
  *
  *   class Builder :
- *     GenericPerson.Builder<
+ *     AbstractPerson.Builder<
  *       Builder,
  *       MyPerson> {...}
  * }
  * ```
  *
- * Also see [GenericPerson.Builder].
+ * Also see [AbstractPerson.Builder].
  */
 @Suppress("UNCHECKED_CAST")
-public abstract class GenericPerson<
-  Self : GenericPerson<Self, Builder>, Builder : GenericPerson.Builder<Builder, Self>>
+public abstract class AbstractPerson<
+  Self : AbstractPerson<Self, Builder>, Builder : AbstractPerson.Builder<Builder, Self>>
 internal constructor(
   public final override val email: String?,
   public final override val disambiguatingDescription: DisambiguatingDescription?,
@@ -173,12 +177,12 @@
   }
 
   /**
-   * A generic implementation of [Person.Builder].
+   * An abstract implementation of [Person.Builder].
    *
    * Allows for extension like:
    * ```kt
    * class MyPerson :
-   *   : GenericPerson<
+   *   : AbstractPerson<
    *     MyPerson,
    *     MyPerson.Builder>(...) {
    *
@@ -221,10 +225,10 @@
    * }
    * ```
    *
-   * Also see [GenericPerson].
+   * Also see [AbstractPerson].
    */
   @Suppress("StaticFinalBuilder")
-  public abstract class Builder<Self : Builder<Self, Built>, Built : GenericPerson<Built, Self>> :
+  public abstract class Builder<Self : Builder<Self, Built>, Built : AbstractPerson<Built, Self>> :
     Person.Builder<Self> {
     /**
      * Human readable name for the concrete [Self] class.
@@ -324,7 +328,7 @@
   }
 }
 
-internal class PersonImpl : GenericPerson<PersonImpl, PersonImpl.Builder> {
+internal class PersonImpl : AbstractPerson<PersonImpl, PersonImpl.Builder> {
   protected override val selfTypeName: String
     get() = "Person"
 
@@ -342,7 +346,7 @@
 
   protected override fun toBuilderWithAdditionalPropertiesOnly(): Builder = Builder()
 
-  internal class Builder : GenericPerson.Builder<Builder, PersonImpl>() {
+  internal class Builder : AbstractPerson.Builder<Builder, PersonImpl>() {
     protected override val selfTypeName: String
       get() = "Person.Builder"
 
diff --git a/appactions/builtintypes/builtintypes-core/src/main/java/androidx/appactions/builtintypes/types/Schedule.kt b/appactions/builtintypes/builtintypes-core/src/main/java/androidx/appactions/builtintypes/types/Schedule.kt
index 216380d..73525a2 100644
--- a/appactions/builtintypes/builtintypes-core/src/main/java/androidx/appactions/builtintypes/types/Schedule.kt
+++ b/appactions/builtintypes/builtintypes-core/src/main/java/androidx/appactions/builtintypes/types/Schedule.kt
@@ -59,21 +59,29 @@
  * See http://schema.org/Schedule for context.
  *
  * Should not be directly implemented. More properties may be added over time. Instead consider
- * using [Companion.Builder] or see [GenericSchedule] if you need to extend this type.
+ * using [Companion.Builder] or see [AbstractSchedule] if you need to extend this type.
  */
 public interface Schedule : Intangible {
-  /** Defines the day(s) of the week on which a recurring Event takes place. */
+  /**
+   * Defines the day(s) of the week on which a recurring Event takes place.
+   *
+   * See http://schema.org/byDay for more context.
+   */
   public val byDays: List<ByDay>
 
   /**
    * Defines the month(s) of the year on which a recurring Event takes place. Specified as an
    * Integer between 1-12. January is 1.
+   *
+   * See http://schema.org/byMonth for more context.
    */
   public val byMonths: List<Long>
 
   /**
    * Defines the day(s) of the month on which a recurring Event takes place. Specified as an Integer
    * between 1-31.
+   *
+   * See http://schema.org/byMonthDay for more context.
    */
   public val byMonthDays: List<Long>
 
@@ -81,10 +89,16 @@
    * Defines the week(s) of the month on which a recurring Event takes place. Specified as an
    * Integer between 1-5. For clarity, byMonthWeek is best used in conjunction with byDay to
    * indicate concepts like the first and third Mondays of a month.
+   *
+   * See http://schema.org/byMonthWeek for more context.
    */
   public val byMonthWeeks: List<Long>
 
-  /** The end date and time of the item. */
+  /**
+   * The end date and time of the item.
+   *
+   * See http://schema.org/endDate for more context.
+   */
   public val endDate: EndDate?
 
   /**
@@ -94,6 +108,8 @@
    * expected to end. For actions that span a period of time, when the action was performed. E.g.
    * John wrote a book from January to *December*. For media, including audio and video, it's the
    * time offset of the end of a clip within a larger file.
+   *
+   * See http://schema.org/endTime for more context.
    */
   public val endTime: EndTime?
 
@@ -104,25 +120,39 @@
    * excluded from the schedule. If an exception is specified as a `Date` then any event that is
    * scheduled for that 24 hour period should be excluded from the schedule. This allows a whole day
    * to be excluded from the schedule without having to itemise every scheduled event.
+   *
+   * See http://schema.org/exceptDate for more context.
    */
   public val exceptDate: ExceptDate?
 
-  /** Defines the number of times a recurring `Event` will take place. */
+  /**
+   * Defines the number of times a recurring `Event` will take place.
+   *
+   * See http://schema.org/repeatCount for more context.
+   */
   @get:Suppress("AutoBoxing") public val repeatCount: Long?
 
   /**
    * Defines the frequency at which `Event`s will occur according to a schedule `Schedule`. The
    * intervals between events should be defined as a `Duration` of time.
+   *
+   * See http://schema.org/repeatFrequency for more context.
    */
   public val repeatFrequency: RepeatFrequency?
 
   /**
    * Indicates the timezone for which the time(s) indicated in the `Schedule` are given. The value
    * provided should be among those listed in the IANA Time Zone Database.
+   *
+   * See http://schema.org/scheduleTimezone for more context.
    */
   public val scheduleTimezone: String?
 
-  /** The start date and time of the item. */
+  /**
+   * The start date and time of the item.
+   *
+   * See http://schema.org/startDate for more context.
+   */
   public val startDate: StartDate?
 
   /**
@@ -132,6 +162,8 @@
    * expected to start. For actions that span a period of time, when the action was performed. E.g.
    * John wrote a book from *January* to December. For media, including audio and video, it's the
    * time offset of the start of a clip within a larger file.
+   *
+   * See http://schema.org/startTime for more context.
    */
   public val startTime: StartTime?
 
@@ -147,7 +179,7 @@
    * Builder for [Schedule].
    *
    * Should not be directly implemented. More methods may be added over time. See
-   * [GenericSchedule.Builder] if you need to extend this builder.
+   * [AbstractSchedule.Builder] if you need to extend this builder.
    */
   public interface Builder<Self : Builder<Self>> : Intangible.Builder<Self> {
     /** Returns a built [Schedule]. */
@@ -280,7 +312,7 @@
 }
 
 /**
- * A generic implementation of [Schedule].
+ * An abstract implementation of [Schedule].
  *
  * Allows for extension like:
  * ```kt
@@ -288,7 +320,7 @@
  *   schedule: Schedule,
  *   val foo: String,
  *   val bars: List<Int>,
- * ) : GenericSchedule<
+ * ) : AbstractSchedule<
  *   MySchedule,
  *   MySchedule.Builder
  * >(schedule) {
@@ -306,17 +338,17 @@
  *   }
  *
  *   class Builder :
- *     GenericSchedule.Builder<
+ *     AbstractSchedule.Builder<
  *       Builder,
  *       MySchedule> {...}
  * }
  * ```
  *
- * Also see [GenericSchedule.Builder].
+ * Also see [AbstractSchedule.Builder].
  */
 @Suppress("UNCHECKED_CAST")
-public abstract class GenericSchedule<
-  Self : GenericSchedule<Self, Builder>, Builder : GenericSchedule.Builder<Builder, Self>>
+public abstract class AbstractSchedule<
+  Self : AbstractSchedule<Self, Builder>, Builder : AbstractSchedule.Builder<Builder, Self>>
 internal constructor(
   public final override val byDays: List<ByDay>,
   public final override val byMonths: List<Long>,
@@ -487,12 +519,12 @@
   }
 
   /**
-   * A generic implementation of [Schedule.Builder].
+   * An abstract implementation of [Schedule.Builder].
    *
    * Allows for extension like:
    * ```kt
    * class MySchedule :
-   *   : GenericSchedule<
+   *   : AbstractSchedule<
    *     MySchedule,
    *     MySchedule.Builder>(...) {
    *
@@ -535,11 +567,11 @@
    * }
    * ```
    *
-   * Also see [GenericSchedule].
+   * Also see [AbstractSchedule].
    */
   @Suppress("StaticFinalBuilder")
-  public abstract class Builder<Self : Builder<Self, Built>, Built : GenericSchedule<Built, Self>> :
-    Schedule.Builder<Self> {
+  public abstract class Builder<
+    Self : Builder<Self, Built>, Built : AbstractSchedule<Built, Self>> : Schedule.Builder<Self> {
     /**
      * Human readable name for the concrete [Self] class.
      *
@@ -834,7 +866,7 @@
   }
 }
 
-internal class ScheduleImpl : GenericSchedule<ScheduleImpl, ScheduleImpl.Builder> {
+internal class ScheduleImpl : AbstractSchedule<ScheduleImpl, ScheduleImpl.Builder> {
   protected override val selfTypeName: String
     get() = "Schedule"
 
@@ -879,7 +911,7 @@
 
   protected override fun toBuilderWithAdditionalPropertiesOnly(): Builder = Builder()
 
-  internal class Builder : GenericSchedule.Builder<Builder, ScheduleImpl>() {
+  internal class Builder : AbstractSchedule.Builder<Builder, ScheduleImpl>() {
     protected override val selfTypeName: String
       get() = "Schedule.Builder"
 
diff --git a/appactions/builtintypes/builtintypes-core/src/main/java/androidx/appactions/builtintypes/types/SuccessStatus.kt b/appactions/builtintypes/builtintypes-core/src/main/java/androidx/appactions/builtintypes/types/SuccessStatus.kt
new file mode 100644
index 0000000..539acaf
--- /dev/null
+++ b/appactions/builtintypes/builtintypes-core/src/main/java/androidx/appactions/builtintypes/types/SuccessStatus.kt
@@ -0,0 +1,337 @@
+// Copyright 2023 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+package androidx.appactions.builtintypes.types
+
+import androidx.appactions.builtintypes.properties.DisambiguatingDescription
+import androidx.appactions.builtintypes.properties.Name
+import java.util.Objects
+import kotlin.Any
+import kotlin.Boolean
+import kotlin.Int
+import kotlin.String
+import kotlin.Suppress
+import kotlin.collections.Map
+import kotlin.collections.emptyMap
+import kotlin.collections.joinToString
+import kotlin.collections.map
+import kotlin.collections.mutableMapOf
+import kotlin.collections.plusAssign
+import kotlin.jvm.JvmStatic
+
+/**
+ * Status indicating that the task was executed successfully.
+ *
+ * See http://schema.googleapis.com/SuccessStatus for context.
+ *
+ * Should not be directly implemented. More properties may be added over time. Instead consider
+ * using [Companion.Builder] or see [AbstractSuccessStatus] if you need to extend this type.
+ */
+public interface SuccessStatus : ExecutionStatus {
+  /** Converts this [SuccessStatus] to its builder with all the properties copied over. */
+  public override fun toBuilder(): Builder<*>
+
+  public companion object {
+    /** Returns a default implementation of [Builder] with no properties set. */
+    @JvmStatic public fun Builder(): Builder<*> = SuccessStatusImpl.Builder()
+  }
+
+  /**
+   * Builder for [SuccessStatus].
+   *
+   * Should not be directly implemented. More methods may be added over time. See
+   * [AbstractSuccessStatus.Builder] if you need to extend this builder.
+   */
+  public interface Builder<Self : Builder<Self>> : ExecutionStatus.Builder<Self> {
+    /** Returns a built [SuccessStatus]. */
+    public override fun build(): SuccessStatus
+  }
+}
+
+/**
+ * An abstract implementation of [SuccessStatus].
+ *
+ * Allows for extension like:
+ * ```kt
+ * class MySuccessStatus internal constructor(
+ *   successStatus: SuccessStatus,
+ *   val foo: String,
+ *   val bars: List<Int>,
+ * ) : AbstractSuccessStatus<
+ *   MySuccessStatus,
+ *   MySuccessStatus.Builder
+ * >(successStatus) {
+ *
+ *   override val selfTypeName =
+ *     "MySuccessStatus"
+ *
+ *   override val additionalProperties: Map<String, Any?>
+ *     get() = mapOf("foo" to foo, "bars" to bars)
+ *
+ *   override fun toBuilderWithAdditionalPropertiesOnly(): Builder {
+ *     return Builder()
+ *       .setFoo(foo)
+ *       .addBars(bars)
+ *   }
+ *
+ *   class Builder :
+ *     AbstractSuccessStatus.Builder<
+ *       Builder,
+ *       MySuccessStatus> {...}
+ * }
+ * ```
+ *
+ * Also see [AbstractSuccessStatus.Builder].
+ */
+@Suppress("UNCHECKED_CAST")
+public abstract class AbstractSuccessStatus<
+  Self : AbstractSuccessStatus<Self, Builder>,
+  Builder : AbstractSuccessStatus.Builder<Builder, Self>>
+internal constructor(
+  public final override val disambiguatingDescription: DisambiguatingDescription?,
+  public final override val identifier: String?,
+  public final override val name: Name?,
+) : SuccessStatus {
+  /**
+   * Human readable name for the concrete [Self] class.
+   *
+   * Used in the [toString] output.
+   */
+  protected abstract val selfTypeName: String
+
+  /**
+   * The additional properties that exist on the concrete [Self] class.
+   *
+   * Used for equality comparison and computing the hash code.
+   */
+  protected abstract val additionalProperties: Map<String, Any?>
+
+  /** A copy-constructor that copies over properties from another [SuccessStatus] instance. */
+  public constructor(
+    successStatus: SuccessStatus
+  ) : this(successStatus.disambiguatingDescription, successStatus.identifier, successStatus.name)
+
+  /**
+   * Returns a concrete [Builder] with the additional, non-[SuccessStatus] properties copied over.
+   */
+  protected abstract fun toBuilderWithAdditionalPropertiesOnly(): Builder
+
+  public final override fun toBuilder(): Builder =
+    toBuilderWithAdditionalPropertiesOnly()
+      .setDisambiguatingDescription(disambiguatingDescription)
+      .setIdentifier(identifier)
+      .setName(name)
+
+  public final override fun equals(other: Any?): Boolean {
+    if (this === other) return true
+    if (other == null || this::class.java != other::class.java) return false
+    other as Self
+    if (disambiguatingDescription != other.disambiguatingDescription) return false
+    if (identifier != other.identifier) return false
+    if (name != other.name) return false
+    if (additionalProperties != other.additionalProperties) return false
+    return true
+  }
+
+  public final override fun hashCode(): Int =
+    Objects.hash(disambiguatingDescription, identifier, name, additionalProperties)
+
+  public final override fun toString(): String {
+    val attributes = mutableMapOf<String, String>()
+    if (disambiguatingDescription != null) {
+      attributes["disambiguatingDescription"] =
+        disambiguatingDescription.toString(includeWrapperName = false)
+    }
+    if (identifier != null) {
+      attributes["identifier"] = identifier
+    }
+    if (name != null) {
+      attributes["name"] = name.toString(includeWrapperName = false)
+    }
+    attributes += additionalProperties.map { (k, v) -> k to v.toString() }
+    val commaSeparated = attributes.entries.joinToString(separator = ", ") { (k, v) -> """$k=$v""" }
+    return """$selfTypeName($commaSeparated)"""
+  }
+
+  /**
+   * An abstract implementation of [SuccessStatus.Builder].
+   *
+   * Allows for extension like:
+   * ```kt
+   * class MySuccessStatus :
+   *   : AbstractSuccessStatus<
+   *     MySuccessStatus,
+   *     MySuccessStatus.Builder>(...) {
+   *
+   *   class Builder
+   *   : Builder<
+   *       Builder,
+   *       MySuccessStatus
+   *   >() {
+   *     private var foo: String? = null
+   *     private val bars = mutableListOf<Int>()
+   *
+   *     override val selfTypeName =
+   *       "MySuccessStatus.Builder"
+   *
+   *     override val additionalProperties: Map<String, Any?>
+   *       get() = mapOf("foo" to foo, "bars" to bars)
+   *
+   *     override fun buildFromSuccessStatus(
+   *       successStatus: SuccessStatus
+   *     ): MySuccessStatus {
+   *       return MySuccessStatus(
+   *         successStatus,
+   *         foo,
+   *         bars.toList()
+   *       )
+   *     }
+   *
+   *     fun setFoo(string: String): Builder {
+   *       return apply { foo = string }
+   *     }
+   *
+   *     fun addBar(int: Int): Builder {
+   *       return apply { bars += int }
+   *     }
+   *
+   *     fun addBars(values: Iterable<Int>): Builder {
+   *       return apply { bars += values }
+   *     }
+   *   }
+   * }
+   * ```
+   *
+   * Also see [AbstractSuccessStatus].
+   */
+  @Suppress("StaticFinalBuilder")
+  public abstract class Builder<
+    Self : Builder<Self, Built>, Built : AbstractSuccessStatus<Built, Self>> :
+    SuccessStatus.Builder<Self> {
+    /**
+     * Human readable name for the concrete [Self] class.
+     *
+     * Used in the [toString] output.
+     */
+    @get:Suppress("GetterOnBuilder") protected abstract val selfTypeName: String
+
+    /**
+     * The additional properties that exist on the concrete [Self] class.
+     *
+     * Used for equality comparison and computing the hash code.
+     */
+    @get:Suppress("GetterOnBuilder") protected abstract val additionalProperties: Map<String, Any?>
+
+    private var disambiguatingDescription: DisambiguatingDescription? = null
+
+    private var identifier: String? = null
+
+    private var name: Name? = null
+
+    /**
+     * Builds a concrete [Built] instance, given a built [SuccessStatus].
+     *
+     * Subclasses should override this method to build a concrete [Built] instance that holds both
+     * the [SuccessStatus]-specific properties and the subclass specific [additionalProperties].
+     *
+     * See the sample code in the documentation of this class for more context.
+     */
+    @Suppress("BuilderSetStyle")
+    protected abstract fun buildFromSuccessStatus(successStatus: SuccessStatus): Built
+
+    public final override fun build(): Built =
+      buildFromSuccessStatus(SuccessStatusImpl(disambiguatingDescription, identifier, name))
+
+    public final override fun setDisambiguatingDescription(
+      disambiguatingDescription: DisambiguatingDescription?
+    ): Self {
+      this.disambiguatingDescription = disambiguatingDescription
+      return this as Self
+    }
+
+    public final override fun setIdentifier(text: String?): Self {
+      this.identifier = text
+      return this as Self
+    }
+
+    public final override fun setName(name: Name?): Self {
+      this.name = name
+      return this as Self
+    }
+
+    @Suppress("BuilderSetStyle")
+    public final override fun equals(other: Any?): Boolean {
+      if (this === other) return true
+      if (other == null || this::class.java != other::class.java) return false
+      other as Self
+      if (disambiguatingDescription != other.disambiguatingDescription) return false
+      if (identifier != other.identifier) return false
+      if (name != other.name) return false
+      if (additionalProperties != other.additionalProperties) return false
+      return true
+    }
+
+    @Suppress("BuilderSetStyle")
+    public final override fun hashCode(): Int =
+      Objects.hash(disambiguatingDescription, identifier, name, additionalProperties)
+
+    @Suppress("BuilderSetStyle")
+    public final override fun toString(): String {
+      val attributes = mutableMapOf<String, String>()
+      if (disambiguatingDescription != null) {
+        attributes["disambiguatingDescription"] =
+          disambiguatingDescription!!.toString(includeWrapperName = false)
+      }
+      if (identifier != null) {
+        attributes["identifier"] = identifier!!
+      }
+      if (name != null) {
+        attributes["name"] = name!!.toString(includeWrapperName = false)
+      }
+      attributes += additionalProperties.map { (k, v) -> k to v.toString() }
+      val commaSeparated =
+        attributes.entries.joinToString(separator = ", ") { (k, v) -> """$k=$v""" }
+      return """$selfTypeName($commaSeparated)"""
+    }
+  }
+}
+
+internal class SuccessStatusImpl :
+  AbstractSuccessStatus<SuccessStatusImpl, SuccessStatusImpl.Builder> {
+  protected override val selfTypeName: String
+    get() = "SuccessStatus"
+
+  protected override val additionalProperties: Map<String, Any?>
+    get() = emptyMap()
+
+  public constructor(
+    disambiguatingDescription: DisambiguatingDescription?,
+    identifier: String?,
+    name: Name?,
+  ) : super(disambiguatingDescription, identifier, name)
+
+  public constructor(successStatus: SuccessStatus) : super(successStatus)
+
+  protected override fun toBuilderWithAdditionalPropertiesOnly(): Builder = Builder()
+
+  internal class Builder : AbstractSuccessStatus.Builder<Builder, SuccessStatusImpl>() {
+    protected override val selfTypeName: String
+      get() = "SuccessStatus.Builder"
+
+    protected override val additionalProperties: Map<String, Any?>
+      get() = emptyMap()
+
+    protected override fun buildFromSuccessStatus(successStatus: SuccessStatus): SuccessStatusImpl =
+      successStatus as? SuccessStatusImpl ?: SuccessStatusImpl(successStatus)
+  }
+}
diff --git a/appactions/builtintypes/builtintypes-core/src/main/java/androidx/appactions/builtintypes/types/Thing.kt b/appactions/builtintypes/builtintypes-core/src/main/java/androidx/appactions/builtintypes/types/Thing.kt
index 3080c42..d39cd73 100644
--- a/appactions/builtintypes/builtintypes-core/src/main/java/androidx/appactions/builtintypes/types/Thing.kt
+++ b/appactions/builtintypes/builtintypes-core/src/main/java/androidx/appactions/builtintypes/types/Thing.kt
@@ -35,23 +35,31 @@
  * See http://schema.org/Thing for context.
  *
  * Should not be directly implemented. More properties may be added over time. Instead consider
- * using [Companion.Builder] or see [GenericThing] if you need to extend this type.
+ * using [Companion.Builder] or see [AbstractThing] if you need to extend this type.
  */
 public interface Thing {
   /**
    * A sub property of description. A short description of the item used to disambiguate from other,
    * similar items. Information from other properties (in particular, name) may be necessary for the
    * description to be useful for disambiguation.
+   *
+   * See http://schema.org/disambiguatingDescription for more context.
    */
   public val disambiguatingDescription: DisambiguatingDescription?
 
   /**
    * The identifier property represents any kind of identifier for any kind of Thing, such as ISBNs,
    * GTIN codes, UUIDs etc.
+   *
+   * See http://schema.org/identifier for more context.
    */
   public val identifier: String?
 
-  /** The name of the item. */
+  /**
+   * The name of the item.
+   *
+   * See http://schema.org/name for more context.
+   */
   public val name: Name?
 
   /** Converts this [Thing] to its builder with all the properties copied over. */
@@ -66,7 +74,7 @@
    * Builder for [Thing].
    *
    * Should not be directly implemented. More methods may be added over time. See
-   * [GenericThing.Builder] if you need to extend this builder.
+   * [AbstractThing.Builder] if you need to extend this builder.
    */
   @Suppress("StaticFinalBuilder")
   public interface Builder<Self : Builder<Self>> {
@@ -94,7 +102,7 @@
 }
 
 /**
- * A generic implementation of [Thing].
+ * An abstract implementation of [Thing].
  *
  * Allows for extension like:
  * ```kt
@@ -102,7 +110,7 @@
  *   thing: Thing,
  *   val foo: String,
  *   val bars: List<Int>,
- * ) : GenericThing<
+ * ) : AbstractThing<
  *   MyThing,
  *   MyThing.Builder
  * >(thing) {
@@ -120,17 +128,17 @@
  *   }
  *
  *   class Builder :
- *     GenericThing.Builder<
+ *     AbstractThing.Builder<
  *       Builder,
  *       MyThing> {...}
  * }
  * ```
  *
- * Also see [GenericThing.Builder].
+ * Also see [AbstractThing.Builder].
  */
 @Suppress("UNCHECKED_CAST")
-public abstract class GenericThing<
-  Self : GenericThing<Self, Builder>, Builder : GenericThing.Builder<Builder, Self>>
+public abstract class AbstractThing<
+  Self : AbstractThing<Self, Builder>, Builder : AbstractThing.Builder<Builder, Self>>
 internal constructor(
   public final override val disambiguatingDescription: DisambiguatingDescription?,
   public final override val identifier: String?,
@@ -196,12 +204,12 @@
   }
 
   /**
-   * A generic implementation of [Thing.Builder].
+   * An abstract implementation of [Thing.Builder].
    *
    * Allows for extension like:
    * ```kt
    * class MyThing :
-   *   : GenericThing<
+   *   : AbstractThing<
    *     MyThing,
    *     MyThing.Builder>(...) {
    *
@@ -244,10 +252,10 @@
    * }
    * ```
    *
-   * Also see [GenericThing].
+   * Also see [AbstractThing].
    */
   @Suppress("StaticFinalBuilder")
-  public abstract class Builder<Self : Builder<Self, Built>, Built : GenericThing<Built, Self>> :
+  public abstract class Builder<Self : Builder<Self, Built>, Built : AbstractThing<Built, Self>> :
     Thing.Builder<Self> {
     /**
      * Human readable name for the concrete [Self] class.
@@ -336,7 +344,7 @@
   }
 }
 
-internal class ThingImpl : GenericThing<ThingImpl, ThingImpl.Builder> {
+internal class ThingImpl : AbstractThing<ThingImpl, ThingImpl.Builder> {
   protected override val selfTypeName: String
     get() = "Thing"
 
@@ -353,7 +361,7 @@
 
   protected override fun toBuilderWithAdditionalPropertiesOnly(): Builder = Builder()
 
-  internal class Builder : GenericThing.Builder<Builder, ThingImpl>() {
+  internal class Builder : AbstractThing.Builder<Builder, ThingImpl>() {
     protected override val selfTypeName: String
       get() = "Thing.Builder"
 
diff --git a/appactions/builtintypes/builtintypes-core/src/main/java/androidx/appactions/builtintypes/types/Timer.kt b/appactions/builtintypes/builtintypes-core/src/main/java/androidx/appactions/builtintypes/types/Timer.kt
index b9d5de4..434fdf6 100644
--- a/appactions/builtintypes/builtintypes-core/src/main/java/androidx/appactions/builtintypes/types/Timer.kt
+++ b/appactions/builtintypes/builtintypes-core/src/main/java/androidx/appactions/builtintypes/types/Timer.kt
@@ -36,10 +36,14 @@
  * See http://schema.googleapis.com/Timer for context.
  *
  * Should not be directly implemented. More properties may be added over time. Instead consider
- * using [Companion.Builder] or see [GenericTimer] if you need to extend this type.
+ * using [Companion.Builder] or see [AbstractTimer] if you need to extend this type.
  */
 public interface Timer : Thing {
-  /** The duration of the item (movie, audio recording, event, etc.). */
+  /**
+   * The duration of the item (movie, audio recording, event, etc.).
+   *
+   * See http://schema.org/duration for more context.
+   */
   public val duration: Duration?
 
   /** Converts this [Timer] to its builder with all the properties copied over. */
@@ -54,7 +58,7 @@
    * Builder for [Timer].
    *
    * Should not be directly implemented. More methods may be added over time. See
-   * [GenericTimer.Builder] if you need to extend this builder.
+   * [AbstractTimer.Builder] if you need to extend this builder.
    */
   public interface Builder<Self : Builder<Self>> : Thing.Builder<Self> {
     /** Returns a built [Timer]. */
@@ -66,7 +70,7 @@
 }
 
 /**
- * A generic implementation of [Timer].
+ * An abstract implementation of [Timer].
  *
  * Allows for extension like:
  * ```kt
@@ -74,7 +78,7 @@
  *   timer: Timer,
  *   val foo: String,
  *   val bars: List<Int>,
- * ) : GenericTimer<
+ * ) : AbstractTimer<
  *   MyTimer,
  *   MyTimer.Builder
  * >(timer) {
@@ -92,17 +96,17 @@
  *   }
  *
  *   class Builder :
- *     GenericTimer.Builder<
+ *     AbstractTimer.Builder<
  *       Builder,
  *       MyTimer> {...}
  * }
  * ```
  *
- * Also see [GenericTimer.Builder].
+ * Also see [AbstractTimer.Builder].
  */
 @Suppress("UNCHECKED_CAST")
-public abstract class GenericTimer<
-  Self : GenericTimer<Self, Builder>, Builder : GenericTimer.Builder<Builder, Self>>
+public abstract class AbstractTimer<
+  Self : AbstractTimer<Self, Builder>, Builder : AbstractTimer.Builder<Builder, Self>>
 internal constructor(
   public final override val duration: Duration?,
   public final override val disambiguatingDescription: DisambiguatingDescription?,
@@ -174,12 +178,12 @@
   }
 
   /**
-   * A generic implementation of [Timer.Builder].
+   * An abstract implementation of [Timer.Builder].
    *
    * Allows for extension like:
    * ```kt
    * class MyTimer :
-   *   : GenericTimer<
+   *   : AbstractTimer<
    *     MyTimer,
    *     MyTimer.Builder>(...) {
    *
@@ -222,10 +226,10 @@
    * }
    * ```
    *
-   * Also see [GenericTimer].
+   * Also see [AbstractTimer].
    */
   @Suppress("StaticFinalBuilder")
-  public abstract class Builder<Self : Builder<Self, Built>, Built : GenericTimer<Built, Self>> :
+  public abstract class Builder<Self : Builder<Self, Built>, Built : AbstractTimer<Built, Self>> :
     Timer.Builder<Self> {
     /**
      * Human readable name for the concrete [Self] class.
@@ -325,7 +329,7 @@
   }
 }
 
-internal class TimerImpl : GenericTimer<TimerImpl, TimerImpl.Builder> {
+internal class TimerImpl : AbstractTimer<TimerImpl, TimerImpl.Builder> {
   protected override val selfTypeName: String
     get() = "Timer"
 
@@ -343,7 +347,7 @@
 
   protected override fun toBuilderWithAdditionalPropertiesOnly(): Builder = Builder()
 
-  internal class Builder : GenericTimer.Builder<Builder, TimerImpl>() {
+  internal class Builder : AbstractTimer.Builder<Builder, TimerImpl>() {
     protected override val selfTypeName: String
       get() = "Timer.Builder"
 
diff --git a/appactions/builtintypes/builtintypes-core/src/main/java/androidx/appactions/builtintypes/types/UnsupportedOperationStatus.kt b/appactions/builtintypes/builtintypes-core/src/main/java/androidx/appactions/builtintypes/types/UnsupportedOperationStatus.kt
new file mode 100644
index 0000000..173eda4
--- /dev/null
+++ b/appactions/builtintypes/builtintypes-core/src/main/java/androidx/appactions/builtintypes/types/UnsupportedOperationStatus.kt
@@ -0,0 +1,361 @@
+// Copyright 2023 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+package androidx.appactions.builtintypes.types
+
+import androidx.appactions.builtintypes.properties.DisambiguatingDescription
+import androidx.appactions.builtintypes.properties.Name
+import java.util.Objects
+import kotlin.Any
+import kotlin.Boolean
+import kotlin.Int
+import kotlin.String
+import kotlin.Suppress
+import kotlin.collections.Map
+import kotlin.collections.emptyMap
+import kotlin.collections.joinToString
+import kotlin.collections.map
+import kotlin.collections.mutableMapOf
+import kotlin.collections.plusAssign
+import kotlin.jvm.JvmStatic
+
+/**
+ * Status indicating that the operation is not supported, e.g. updating an unsupported field.
+ *
+ * See http://schema.googleapis.com/UnsupportedOperationStatus for context.
+ *
+ * Should not be directly implemented. More properties may be added over time. Instead consider
+ * using [Companion.Builder] or see [AbstractUnsupportedOperationStatus] if you need to extend this
+ * type.
+ */
+public interface UnsupportedOperationStatus : ExecutionStatus {
+  /**
+   * Converts this [UnsupportedOperationStatus] to its builder with all the properties copied over.
+   */
+  public override fun toBuilder(): Builder<*>
+
+  public companion object {
+    /** Returns a default implementation of [Builder] with no properties set. */
+    @JvmStatic public fun Builder(): Builder<*> = UnsupportedOperationStatusImpl.Builder()
+  }
+
+  /**
+   * Builder for [UnsupportedOperationStatus].
+   *
+   * Should not be directly implemented. More methods may be added over time. See
+   * [AbstractUnsupportedOperationStatus.Builder] if you need to extend this builder.
+   */
+  public interface Builder<Self : Builder<Self>> : ExecutionStatus.Builder<Self> {
+    /** Returns a built [UnsupportedOperationStatus]. */
+    public override fun build(): UnsupportedOperationStatus
+  }
+}
+
+/**
+ * An abstract implementation of [UnsupportedOperationStatus].
+ *
+ * Allows for extension like:
+ * ```kt
+ * class MyUnsupportedOperationStatus internal constructor(
+ *   unsupportedOperationStatus: UnsupportedOperationStatus,
+ *   val foo: String,
+ *   val bars: List<Int>,
+ * ) : AbstractUnsupportedOperationStatus<
+ *   MyUnsupportedOperationStatus,
+ *   MyUnsupportedOperationStatus.Builder
+ * >(unsupportedOperationStatus) {
+ *
+ *   override val selfTypeName =
+ *     "MyUnsupportedOperationStatus"
+ *
+ *   override val additionalProperties: Map<String, Any?>
+ *     get() = mapOf("foo" to foo, "bars" to bars)
+ *
+ *   override fun toBuilderWithAdditionalPropertiesOnly(): Builder {
+ *     return Builder()
+ *       .setFoo(foo)
+ *       .addBars(bars)
+ *   }
+ *
+ *   class Builder :
+ *     AbstractUnsupportedOperationStatus.Builder<
+ *       Builder,
+ *       MyUnsupportedOperationStatus> {...}
+ * }
+ * ```
+ *
+ * Also see [AbstractUnsupportedOperationStatus.Builder].
+ */
+@Suppress("UNCHECKED_CAST")
+public abstract class AbstractUnsupportedOperationStatus<
+  Self : AbstractUnsupportedOperationStatus<Self, Builder>,
+  Builder : AbstractUnsupportedOperationStatus.Builder<Builder, Self>>
+internal constructor(
+  public final override val disambiguatingDescription: DisambiguatingDescription?,
+  public final override val identifier: String?,
+  public final override val name: Name?,
+) : UnsupportedOperationStatus {
+  /**
+   * Human readable name for the concrete [Self] class.
+   *
+   * Used in the [toString] output.
+   */
+  protected abstract val selfTypeName: String
+
+  /**
+   * The additional properties that exist on the concrete [Self] class.
+   *
+   * Used for equality comparison and computing the hash code.
+   */
+  protected abstract val additionalProperties: Map<String, Any?>
+
+  /**
+   * A copy-constructor that copies over properties from another [UnsupportedOperationStatus]
+   * instance.
+   */
+  public constructor(
+    unsupportedOperationStatus: UnsupportedOperationStatus
+  ) : this(
+    unsupportedOperationStatus.disambiguatingDescription,
+    unsupportedOperationStatus.identifier,
+    unsupportedOperationStatus.name
+  )
+
+  /**
+   * Returns a concrete [Builder] with the additional, non-[UnsupportedOperationStatus] properties
+   * copied over.
+   */
+  protected abstract fun toBuilderWithAdditionalPropertiesOnly(): Builder
+
+  public final override fun toBuilder(): Builder =
+    toBuilderWithAdditionalPropertiesOnly()
+      .setDisambiguatingDescription(disambiguatingDescription)
+      .setIdentifier(identifier)
+      .setName(name)
+
+  public final override fun equals(other: Any?): Boolean {
+    if (this === other) return true
+    if (other == null || this::class.java != other::class.java) return false
+    other as Self
+    if (disambiguatingDescription != other.disambiguatingDescription) return false
+    if (identifier != other.identifier) return false
+    if (name != other.name) return false
+    if (additionalProperties != other.additionalProperties) return false
+    return true
+  }
+
+  public final override fun hashCode(): Int =
+    Objects.hash(disambiguatingDescription, identifier, name, additionalProperties)
+
+  public final override fun toString(): String {
+    val attributes = mutableMapOf<String, String>()
+    if (disambiguatingDescription != null) {
+      attributes["disambiguatingDescription"] =
+        disambiguatingDescription.toString(includeWrapperName = false)
+    }
+    if (identifier != null) {
+      attributes["identifier"] = identifier
+    }
+    if (name != null) {
+      attributes["name"] = name.toString(includeWrapperName = false)
+    }
+    attributes += additionalProperties.map { (k, v) -> k to v.toString() }
+    val commaSeparated = attributes.entries.joinToString(separator = ", ") { (k, v) -> """$k=$v""" }
+    return """$selfTypeName($commaSeparated)"""
+  }
+
+  /**
+   * An abstract implementation of [UnsupportedOperationStatus.Builder].
+   *
+   * Allows for extension like:
+   * ```kt
+   * class MyUnsupportedOperationStatus :
+   *   : AbstractUnsupportedOperationStatus<
+   *     MyUnsupportedOperationStatus,
+   *     MyUnsupportedOperationStatus.Builder>(...) {
+   *
+   *   class Builder
+   *   : Builder<
+   *       Builder,
+   *       MyUnsupportedOperationStatus
+   *   >() {
+   *     private var foo: String? = null
+   *     private val bars = mutableListOf<Int>()
+   *
+   *     override val selfTypeName =
+   *       "MyUnsupportedOperationStatus.Builder"
+   *
+   *     override val additionalProperties: Map<String, Any?>
+   *       get() = mapOf("foo" to foo, "bars" to bars)
+   *
+   *     override fun buildFromUnsupportedOperationStatus(
+   *       unsupportedOperationStatus: UnsupportedOperationStatus
+   *     ): MyUnsupportedOperationStatus {
+   *       return MyUnsupportedOperationStatus(
+   *         unsupportedOperationStatus,
+   *         foo,
+   *         bars.toList()
+   *       )
+   *     }
+   *
+   *     fun setFoo(string: String): Builder {
+   *       return apply { foo = string }
+   *     }
+   *
+   *     fun addBar(int: Int): Builder {
+   *       return apply { bars += int }
+   *     }
+   *
+   *     fun addBars(values: Iterable<Int>): Builder {
+   *       return apply { bars += values }
+   *     }
+   *   }
+   * }
+   * ```
+   *
+   * Also see [AbstractUnsupportedOperationStatus].
+   */
+  @Suppress("StaticFinalBuilder")
+  public abstract class Builder<
+    Self : Builder<Self, Built>, Built : AbstractUnsupportedOperationStatus<Built, Self>> :
+    UnsupportedOperationStatus.Builder<Self> {
+    /**
+     * Human readable name for the concrete [Self] class.
+     *
+     * Used in the [toString] output.
+     */
+    @get:Suppress("GetterOnBuilder") protected abstract val selfTypeName: String
+
+    /**
+     * The additional properties that exist on the concrete [Self] class.
+     *
+     * Used for equality comparison and computing the hash code.
+     */
+    @get:Suppress("GetterOnBuilder") protected abstract val additionalProperties: Map<String, Any?>
+
+    private var disambiguatingDescription: DisambiguatingDescription? = null
+
+    private var identifier: String? = null
+
+    private var name: Name? = null
+
+    /**
+     * Builds a concrete [Built] instance, given a built [UnsupportedOperationStatus].
+     *
+     * Subclasses should override this method to build a concrete [Built] instance that holds both
+     * the [UnsupportedOperationStatus]-specific properties and the subclass specific
+     * [additionalProperties].
+     *
+     * See the sample code in the documentation of this class for more context.
+     */
+    @Suppress("BuilderSetStyle")
+    protected abstract fun buildFromUnsupportedOperationStatus(
+      unsupportedOperationStatus: UnsupportedOperationStatus
+    ): Built
+
+    public final override fun build(): Built =
+      buildFromUnsupportedOperationStatus(
+        UnsupportedOperationStatusImpl(disambiguatingDescription, identifier, name)
+      )
+
+    public final override fun setDisambiguatingDescription(
+      disambiguatingDescription: DisambiguatingDescription?
+    ): Self {
+      this.disambiguatingDescription = disambiguatingDescription
+      return this as Self
+    }
+
+    public final override fun setIdentifier(text: String?): Self {
+      this.identifier = text
+      return this as Self
+    }
+
+    public final override fun setName(name: Name?): Self {
+      this.name = name
+      return this as Self
+    }
+
+    @Suppress("BuilderSetStyle")
+    public final override fun equals(other: Any?): Boolean {
+      if (this === other) return true
+      if (other == null || this::class.java != other::class.java) return false
+      other as Self
+      if (disambiguatingDescription != other.disambiguatingDescription) return false
+      if (identifier != other.identifier) return false
+      if (name != other.name) return false
+      if (additionalProperties != other.additionalProperties) return false
+      return true
+    }
+
+    @Suppress("BuilderSetStyle")
+    public final override fun hashCode(): Int =
+      Objects.hash(disambiguatingDescription, identifier, name, additionalProperties)
+
+    @Suppress("BuilderSetStyle")
+    public final override fun toString(): String {
+      val attributes = mutableMapOf<String, String>()
+      if (disambiguatingDescription != null) {
+        attributes["disambiguatingDescription"] =
+          disambiguatingDescription!!.toString(includeWrapperName = false)
+      }
+      if (identifier != null) {
+        attributes["identifier"] = identifier!!
+      }
+      if (name != null) {
+        attributes["name"] = name!!.toString(includeWrapperName = false)
+      }
+      attributes += additionalProperties.map { (k, v) -> k to v.toString() }
+      val commaSeparated =
+        attributes.entries.joinToString(separator = ", ") { (k, v) -> """$k=$v""" }
+      return """$selfTypeName($commaSeparated)"""
+    }
+  }
+}
+
+internal class UnsupportedOperationStatusImpl :
+  AbstractUnsupportedOperationStatus<
+    UnsupportedOperationStatusImpl, UnsupportedOperationStatusImpl.Builder
+  > {
+  protected override val selfTypeName: String
+    get() = "UnsupportedOperationStatus"
+
+  protected override val additionalProperties: Map<String, Any?>
+    get() = emptyMap()
+
+  public constructor(
+    disambiguatingDescription: DisambiguatingDescription?,
+    identifier: String?,
+    name: Name?,
+  ) : super(disambiguatingDescription, identifier, name)
+
+  public constructor(
+    unsupportedOperationStatus: UnsupportedOperationStatus
+  ) : super(unsupportedOperationStatus)
+
+  protected override fun toBuilderWithAdditionalPropertiesOnly(): Builder = Builder()
+
+  internal class Builder :
+    AbstractUnsupportedOperationStatus.Builder<Builder, UnsupportedOperationStatusImpl>() {
+    protected override val selfTypeName: String
+      get() = "UnsupportedOperationStatus.Builder"
+
+    protected override val additionalProperties: Map<String, Any?>
+      get() = emptyMap()
+
+    protected override fun buildFromUnsupportedOperationStatus(
+      unsupportedOperationStatus: UnsupportedOperationStatus
+    ): UnsupportedOperationStatusImpl =
+      unsupportedOperationStatus as? UnsupportedOperationStatusImpl
+        ?: UnsupportedOperationStatusImpl(unsupportedOperationStatus)
+  }
+}
diff --git a/appactions/builtintypes/builtintypes-core/src/test/java/androidx/appactions/builtintypes/types/ExtensionTest.kt b/appactions/builtintypes/builtintypes-core/src/test/java/androidx/appactions/builtintypes/types/ExtensionTest.kt
index 87ed941..56ae906 100644
--- a/appactions/builtintypes/builtintypes-core/src/test/java/androidx/appactions/builtintypes/types/ExtensionTest.kt
+++ b/appactions/builtintypes/builtintypes-core/src/test/java/androidx/appactions/builtintypes/types/ExtensionTest.kt
@@ -25,7 +25,7 @@
 class ExtensionTest {
 
   class MyThing internal constructor(thing: Thing, val foo: String?, val bars: List<Int>) :
-    GenericThing<MyThing, MyThing.Builder>(thing) {
+    AbstractThing<MyThing, MyThing.Builder>(thing) {
     override val selfTypeName = "MyThing"
     override val additionalProperties: Map<String, Any?>
       get() = mapOf("foo" to foo, "bars" to bars)
@@ -34,7 +34,7 @@
       return Builder().setFoo(foo).addBars(bars)
     }
 
-    class Builder : GenericThing.Builder<Builder, MyThing>() {
+    class Builder : AbstractThing.Builder<Builder, MyThing>() {
       private var foo: String? = null
       private val bars: MutableList<Int> = mutableListOf()
 
diff --git a/appactions/interaction/interaction-capabilities-productivity/build.gradle b/appactions/interaction/interaction-capabilities-productivity/build.gradle
index b3d5bdc..06b2d48 100644
--- a/appactions/interaction/interaction-capabilities-productivity/build.gradle
+++ b/appactions/interaction/interaction-capabilities-productivity/build.gradle
@@ -26,6 +26,11 @@
     api(libs.kotlinStdlib)
     implementation("androidx.annotation:annotation:1.1.0")
     implementation(project(":appactions:interaction:interaction-capabilities-core"))
+
+    testImplementation(project(":appactions:interaction:interaction-capabilities-testing"))
+    testImplementation(libs.kotlinCoroutinesCore)
+    testImplementation(libs.junit)
+    testImplementation(libs.truth)
 }
 
 android {
diff --git a/appactions/interaction/interaction-capabilities-productivity/src/main/java/androidx/appactions/interaction/capabilities/productivity/PauseTimer.kt b/appactions/interaction/interaction-capabilities-productivity/src/main/java/androidx/appactions/interaction/capabilities/productivity/PauseTimer.kt
index 260c074..e2f8e01 100644
--- a/appactions/interaction/interaction-capabilities-productivity/src/main/java/androidx/appactions/interaction/capabilities/productivity/PauseTimer.kt
+++ b/appactions/interaction/interaction-capabilities-productivity/src/main/java/androidx/appactions/interaction/capabilities/productivity/PauseTimer.kt
@@ -48,7 +48,7 @@
             >(ACTION_SPEC) {
         private var properties = mutableMapOf<String, Property<*>>()
 
-        fun setTimerList(timerList: Property<TimerValue>): CapabilityBuilder =
+        fun setTimerListProperty(timerList: Property<TimerValue>): CapabilityBuilder =
             apply { properties[PropertyMapStrings.TIMER_LIST.key] = timerList }
 
         override fun build(): Capability {
diff --git a/appactions/interaction/interaction-capabilities-productivity/src/main/java/androidx/appactions/interaction/capabilities/productivity/ResetTimer.kt b/appactions/interaction/interaction-capabilities-productivity/src/main/java/androidx/appactions/interaction/capabilities/productivity/ResetTimer.kt
index 8fb648c..5a3f115 100644
--- a/appactions/interaction/interaction-capabilities-productivity/src/main/java/androidx/appactions/interaction/capabilities/productivity/ResetTimer.kt
+++ b/appactions/interaction/interaction-capabilities-productivity/src/main/java/androidx/appactions/interaction/capabilities/productivity/ResetTimer.kt
@@ -48,7 +48,7 @@
             >(ACTION_SPEC) {
         private var properties = mutableMapOf<String, Property<*>>()
 
-        fun setTimerList(timerList: Property<TimerValue>): CapabilityBuilder =
+        fun setTimerListProperty(timerList: Property<TimerValue>): CapabilityBuilder =
             apply { properties[PropertyMapStrings.TIMER_LIST.key] = timerList }
 
         override fun build(): Capability {
diff --git a/appactions/interaction/interaction-capabilities-productivity/src/main/java/androidx/appactions/interaction/capabilities/productivity/ResumeTimer.kt b/appactions/interaction/interaction-capabilities-productivity/src/main/java/androidx/appactions/interaction/capabilities/productivity/ResumeTimer.kt
index 702d431..505bdec 100644
--- a/appactions/interaction/interaction-capabilities-productivity/src/main/java/androidx/appactions/interaction/capabilities/productivity/ResumeTimer.kt
+++ b/appactions/interaction/interaction-capabilities-productivity/src/main/java/androidx/appactions/interaction/capabilities/productivity/ResumeTimer.kt
@@ -48,7 +48,7 @@
             >(ACTION_SPEC) {
         private var properties = mutableMapOf<String, Property<*>>()
 
-        fun setTimerList(timerList: Property<TimerValue>): CapabilityBuilder =
+        fun setTimerListProperty(timerList: Property<TimerValue>): CapabilityBuilder =
             apply { properties[PropertyMapStrings.TIMER_LIST.key] = timerList }
 
         override fun build(): Capability {
diff --git a/appactions/interaction/interaction-capabilities-productivity/src/main/java/androidx/appactions/interaction/capabilities/productivity/StartTimer.kt b/appactions/interaction/interaction-capabilities-productivity/src/main/java/androidx/appactions/interaction/capabilities/productivity/StartTimer.kt
index 6ffb63a..6d2bfa7 100644
--- a/appactions/interaction/interaction-capabilities-productivity/src/main/java/androidx/appactions/interaction/capabilities/productivity/StartTimer.kt
+++ b/appactions/interaction/interaction-capabilities-productivity/src/main/java/androidx/appactions/interaction/capabilities/productivity/StartTimer.kt
@@ -61,25 +61,25 @@
             ExecutionSession,
             Arguments,
             Confirmation
-        > = SESSION_BRIDGE
+            > = SESSION_BRIDGE
 
         override fun setExecutionSessionFactory(
             sessionFactory: (hostProperties: HostProperties?) -> ExecutionSession
         ): CapabilityBuilder = super.setExecutionSessionFactory(sessionFactory)
 
-        fun setTimerList(timerList: Property<TimerValue>): CapabilityBuilder = apply {
+        fun setTimerListProperty(timerList: Property<TimerValue>): CapabilityBuilder = apply {
             properties[PropertyMapStrings.TIMER_LIST.key] = timerList
         }
 
-        fun setIdentifier(identifier: Property<StringValue>): CapabilityBuilder = apply {
+        fun setIdentifierProperty(identifier: Property<StringValue>): CapabilityBuilder = apply {
             properties[PropertyMapStrings.IDENTIFIER.key] = identifier
         }
 
-        fun setName(name: Property<StringValue>): CapabilityBuilder = apply {
+        fun setNameProperty(name: Property<StringValue>): CapabilityBuilder = apply {
             properties[PropertyMapStrings.NAME.key] = name
         }
 
-        fun setDuration(duration: Property<Duration>): CapabilityBuilder = apply {
+        fun setDurationProperty(duration: Property<Duration>): CapabilityBuilder = apply {
             properties[PropertyMapStrings.DURATION.key] = duration
         }
 
@@ -242,24 +242,24 @@
                 )
                 .build()
 
-        private val SESSION_BRIDGE = SessionBridge<ExecutionSession, Arguments, Confirmation> {
-                session ->
-            val taskHandlerBuilder = TaskHandler.Builder<Arguments, Confirmation>()
-            session.nameListener?.let {
-                taskHandlerBuilder.registerValueTaskParam(
-                    "timer.name",
-                    it,
-                    TypeConverters.STRING_PARAM_VALUE_CONVERTER
-                )
+        private val SESSION_BRIDGE =
+            SessionBridge<ExecutionSession, Arguments, Confirmation> { session ->
+                val taskHandlerBuilder = TaskHandler.Builder<Arguments, Confirmation>()
+                session.nameListener?.let {
+                    taskHandlerBuilder.registerValueTaskParam(
+                        "timer.name",
+                        it,
+                        TypeConverters.STRING_PARAM_VALUE_CONVERTER
+                    )
+                }
+                session.durationListener?.let {
+                    taskHandlerBuilder.registerValueTaskParam(
+                        "timer.duration",
+                        it,
+                        TypeConverters.DURATION_PARAM_VALUE_CONVERTER
+                    )
+                }
+                taskHandlerBuilder.build()
             }
-            session.durationListener?.let {
-                taskHandlerBuilder.registerValueTaskParam(
-                    "timer.duration",
-                    it,
-                    TypeConverters.DURATION_PARAM_VALUE_CONVERTER
-                )
-            }
-            taskHandlerBuilder.build()
-        }
     }
 }
diff --git a/appactions/interaction/interaction-capabilities-productivity/src/main/java/androidx/appactions/interaction/capabilities/productivity/StopTimer.kt b/appactions/interaction/interaction-capabilities-productivity/src/main/java/androidx/appactions/interaction/capabilities/productivity/StopTimer.kt
index 4c279e2..5897c720 100644
--- a/appactions/interaction/interaction-capabilities-productivity/src/main/java/androidx/appactions/interaction/capabilities/productivity/StopTimer.kt
+++ b/appactions/interaction/interaction-capabilities-productivity/src/main/java/androidx/appactions/interaction/capabilities/productivity/StopTimer.kt
@@ -48,7 +48,7 @@
             >(ACTION_SPEC) {
         private var properties = mutableMapOf<String, Property<*>>()
 
-        fun setTimerList(timerList: Property<TimerValue>): CapabilityBuilder =
+        fun setTimerListProperty(timerList: Property<TimerValue>): CapabilityBuilder =
             apply { properties[PropertyMapStrings.TIMER_LIST.key] = timerList }
 
         override fun build(): Capability {
diff --git a/appactions/interaction/interaction-capabilities-productivity/src/test/java/androidx/appactions/interaction/capabilities/productivity/PauseTimerTest.kt b/appactions/interaction/interaction-capabilities-productivity/src/test/java/androidx/appactions/interaction/capabilities/productivity/PauseTimerTest.kt
new file mode 100644
index 0000000..74a8f0e
--- /dev/null
+++ b/appactions/interaction/interaction-capabilities-productivity/src/test/java/androidx/appactions/interaction/capabilities/productivity/PauseTimerTest.kt
@@ -0,0 +1,86 @@
+/*
+ * Copyright 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package androidx.appactions.interaction.capabilities.productivity
+
+import android.util.SizeF
+import androidx.appactions.builtintypes.experimental.types.Timer
+import androidx.appactions.interaction.capabilities.core.ExecutionCallback
+import androidx.appactions.interaction.capabilities.core.ExecutionResult
+import androidx.appactions.interaction.capabilities.core.HostProperties
+import androidx.appactions.interaction.capabilities.core.properties.Property
+import androidx.appactions.interaction.capabilities.productivity.PauseTimer.Arguments
+import androidx.appactions.interaction.capabilities.productivity.PauseTimer.Output
+import androidx.appactions.interaction.capabilities.testing.internal.ArgumentUtils
+import androidx.appactions.interaction.capabilities.testing.internal.FakeCallbackInternal
+import androidx.appactions.interaction.capabilities.testing.internal.TestingUtils.awaitSync
+import androidx.appactions.interaction.proto.AppActionsContext.AppAction
+import androidx.appactions.interaction.proto.AppActionsContext.IntentParameter
+import androidx.appactions.interaction.proto.ParamValue
+import androidx.appactions.interaction.proto.TaskInfo
+import androidx.appactions.interaction.protobuf.Struct
+import androidx.appactions.interaction.protobuf.Value
+import com.google.common.truth.Truth.assertThat
+import kotlinx.coroutines.CompletableDeferred
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.junit.runners.JUnit4
+
+@RunWith(JUnit4::class)
+class PauseTimerTest {
+    private val hostProperties =
+        HostProperties.Builder().setMaxHostSizeDp(SizeF(300f, 500f)).build()
+
+    @Test
+    fun createCapability_expectedResult() {
+        val argsDeferred = CompletableDeferred<Arguments>()
+        val capability = PauseTimer.CapabilityBuilder()
+            .setId("pause timer")
+            .setTimerListProperty(Property.Builder<TimerValue>().setRequired(true).build())
+            .setExecutionCallback(
+                ExecutionCallback {
+                    argsDeferred.complete(it)
+                    ExecutionResult.Builder<Output>().build()
+                })
+            .build()
+        val capabilitySession = capability.createSession("fakeSessionId", hostProperties)
+        val args: MutableMap<String, ParamValue> = mutableMapOf(
+            "timer" to ParamValue.newBuilder().setStructValue(
+                Struct.newBuilder()
+                    .putFields("@type", Value.newBuilder().setStringValue("Timer").build())
+                    .putFields("identifier", Value.newBuilder().setStringValue("abc").build())
+            )
+                .build()
+        )
+        capabilitySession.execute(ArgumentUtils.buildArgs(args), FakeCallbackInternal())
+
+        assertThat(capability.appAction)
+            .isEqualTo(
+                AppAction.newBuilder()
+                    .setIdentifier("pause timer")
+                    .setName("actions.intent.PAUSE_TIMER")
+                    .addParams(IntentParameter.newBuilder().setName("timer").setIsRequired(true))
+                    .setTaskInfo(TaskInfo.getDefaultInstance())
+                    .build()
+            )
+        assertThat(argsDeferred.awaitSync())
+            .isEqualTo(
+                Arguments.Builder()
+                    .setTimerList(listOf(TimerValue(Timer.Builder().setIdentifier("abc").build())))
+                    .build()
+            )
+    }
+}
\ No newline at end of file
diff --git a/appactions/interaction/interaction-capabilities-productivity/src/test/java/androidx/appactions/interaction/capabilities/productivity/ResetTimerTest.kt b/appactions/interaction/interaction-capabilities-productivity/src/test/java/androidx/appactions/interaction/capabilities/productivity/ResetTimerTest.kt
new file mode 100644
index 0000000..163f560
--- /dev/null
+++ b/appactions/interaction/interaction-capabilities-productivity/src/test/java/androidx/appactions/interaction/capabilities/productivity/ResetTimerTest.kt
@@ -0,0 +1,87 @@
+/*
+ * Copyright 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package androidx.appactions.interaction.capabilities.productivity
+
+import android.util.SizeF
+import androidx.appactions.builtintypes.experimental.types.Timer
+import androidx.appactions.interaction.capabilities.core.ExecutionCallback
+import androidx.appactions.interaction.capabilities.core.ExecutionResult
+import androidx.appactions.interaction.capabilities.core.HostProperties
+import androidx.appactions.interaction.capabilities.core.properties.Property
+import androidx.appactions.interaction.capabilities.productivity.ResetTimer.Arguments
+import androidx.appactions.interaction.capabilities.productivity.ResetTimer.Output
+import androidx.appactions.interaction.capabilities.testing.internal.ArgumentUtils
+import androidx.appactions.interaction.capabilities.testing.internal.FakeCallbackInternal
+import androidx.appactions.interaction.capabilities.testing.internal.TestingUtils.awaitSync
+import androidx.appactions.interaction.proto.AppActionsContext.AppAction
+import androidx.appactions.interaction.proto.AppActionsContext.IntentParameter
+import androidx.appactions.interaction.proto.ParamValue
+import androidx.appactions.interaction.proto.TaskInfo
+import androidx.appactions.interaction.protobuf.Struct
+import androidx.appactions.interaction.protobuf.Value
+import com.google.common.truth.Truth.assertThat
+import kotlinx.coroutines.CompletableDeferred
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.junit.runners.JUnit4
+
+@RunWith(JUnit4::class)
+class ResetTimerTest {
+    private val hostProperties =
+        HostProperties.Builder().setMaxHostSizeDp(SizeF(300f, 500f)).build()
+
+    @Test
+    fun createCapability_expectedResult() {
+        val argsDeferred = CompletableDeferred<Arguments>()
+        val capability = ResetTimer.CapabilityBuilder()
+            .setId("reset timer")
+            .setTimerListProperty(Property.Builder<TimerValue>().setRequired(true).build())
+            .setExecutionCallback(
+                ExecutionCallback {
+                    argsDeferred.complete(it)
+                    ExecutionResult.Builder<Output>().build()
+                })
+            .build()
+        val capabilitySession = capability.createSession("fakeSessionId", hostProperties)
+        val args: MutableMap<String, ParamValue> = mutableMapOf(
+            "timer" to ParamValue.newBuilder()
+                .setStructValue(
+                    Struct.newBuilder()
+                        .putFields("@type", Value.newBuilder().setStringValue("Timer").build())
+                        .putFields("identifier", Value.newBuilder().setStringValue("abc").build())
+                )
+                .build()
+        )
+        capabilitySession.execute(ArgumentUtils.buildArgs(args), FakeCallbackInternal())
+
+        assertThat(capability.appAction)
+            .isEqualTo(
+                AppAction.newBuilder()
+                    .setIdentifier("reset timer")
+                    .setName("actions.intent.RESET_TIMER")
+                    .addParams(IntentParameter.newBuilder().setName("timer").setIsRequired(true))
+                    .setTaskInfo(TaskInfo.getDefaultInstance())
+                    .build()
+            )
+        assertThat(argsDeferred.awaitSync())
+            .isEqualTo(
+                Arguments.Builder()
+                    .setTimerList(listOf(TimerValue(Timer.Builder().setIdentifier("abc").build())))
+                    .build()
+            )
+    }
+}
\ No newline at end of file
diff --git a/appactions/interaction/interaction-capabilities-productivity/src/test/java/androidx/appactions/interaction/capabilities/productivity/ResumeTimerTest.kt b/appactions/interaction/interaction-capabilities-productivity/src/test/java/androidx/appactions/interaction/capabilities/productivity/ResumeTimerTest.kt
new file mode 100644
index 0000000..8e82cdf
--- /dev/null
+++ b/appactions/interaction/interaction-capabilities-productivity/src/test/java/androidx/appactions/interaction/capabilities/productivity/ResumeTimerTest.kt
@@ -0,0 +1,87 @@
+/*
+ * Copyright 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package androidx.appactions.interaction.capabilities.productivity
+
+import android.util.SizeF
+import androidx.appactions.builtintypes.experimental.types.Timer
+import androidx.appactions.interaction.capabilities.core.ExecutionCallback
+import androidx.appactions.interaction.capabilities.core.ExecutionResult
+import androidx.appactions.interaction.capabilities.core.HostProperties
+import androidx.appactions.interaction.capabilities.core.properties.Property
+import androidx.appactions.interaction.capabilities.productivity.ResumeTimer.Arguments
+import androidx.appactions.interaction.capabilities.productivity.ResumeTimer.Output
+import androidx.appactions.interaction.capabilities.testing.internal.ArgumentUtils
+import androidx.appactions.interaction.capabilities.testing.internal.FakeCallbackInternal
+import androidx.appactions.interaction.capabilities.testing.internal.TestingUtils.awaitSync
+import androidx.appactions.interaction.proto.AppActionsContext.AppAction
+import androidx.appactions.interaction.proto.AppActionsContext.IntentParameter
+import androidx.appactions.interaction.proto.ParamValue
+import androidx.appactions.interaction.proto.TaskInfo
+import androidx.appactions.interaction.protobuf.Struct
+import androidx.appactions.interaction.protobuf.Value
+import com.google.common.truth.Truth.assertThat
+import kotlinx.coroutines.CompletableDeferred
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.junit.runners.JUnit4
+
+@RunWith(JUnit4::class)
+class ResumeTimerTest {
+    private val hostProperties =
+        HostProperties.Builder().setMaxHostSizeDp(SizeF(300f, 500f)).build()
+
+    @Test
+    fun createCapability_expectedResult() {
+        val argsDeferred = CompletableDeferred<Arguments>()
+        val capability = ResumeTimer.CapabilityBuilder()
+            .setId("resume timer")
+            .setTimerListProperty(Property.Builder<TimerValue>().setRequired(true).build())
+            .setExecutionCallback(
+                ExecutionCallback {
+                    argsDeferred.complete(it)
+                    ExecutionResult.Builder<Output>().build()
+                })
+            .build()
+        val capabilitySession = capability.createSession("fakeSessionId", hostProperties)
+        val args: MutableMap<String, ParamValue> = mutableMapOf(
+            "timer" to ParamValue.newBuilder()
+                .setStructValue(
+                    Struct.newBuilder()
+                        .putFields("@type", Value.newBuilder().setStringValue("Timer").build())
+                        .putFields("identifier", Value.newBuilder().setStringValue("abc").build())
+                )
+                .build()
+        )
+        capabilitySession.execute(ArgumentUtils.buildArgs(args), FakeCallbackInternal())
+
+        assertThat(capability.appAction)
+            .isEqualTo(
+                AppAction.newBuilder()
+                    .setIdentifier("resume timer")
+                    .setName("actions.intent.RESUME_TIMER")
+                    .addParams(IntentParameter.newBuilder().setName("timer").setIsRequired(true))
+                    .setTaskInfo(TaskInfo.getDefaultInstance())
+                    .build()
+            )
+        assertThat(argsDeferred.awaitSync())
+            .isEqualTo(
+                Arguments.Builder()
+                    .setTimerList(listOf(TimerValue(Timer.Builder().setIdentifier("abc").build())))
+                    .build()
+            )
+    }
+}
\ No newline at end of file
diff --git a/appactions/interaction/interaction-capabilities-productivity/src/test/java/androidx/appactions/interaction/capabilities/productivity/StartTimerTest.kt b/appactions/interaction/interaction-capabilities-productivity/src/test/java/androidx/appactions/interaction/capabilities/productivity/StartTimerTest.kt
new file mode 100644
index 0000000..a58cd5ed
--- /dev/null
+++ b/appactions/interaction/interaction-capabilities-productivity/src/test/java/androidx/appactions/interaction/capabilities/productivity/StartTimerTest.kt
@@ -0,0 +1,84 @@
+/*
+ * Copyright 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package androidx.appactions.interaction.capabilities.productivity
+
+import android.util.SizeF
+import androidx.appactions.interaction.capabilities.core.ExecutionCallback
+import androidx.appactions.interaction.capabilities.core.ExecutionResult
+import androidx.appactions.interaction.capabilities.core.HostProperties
+import androidx.appactions.interaction.capabilities.core.properties.Property
+import androidx.appactions.interaction.capabilities.productivity.StartTimer.Arguments
+import androidx.appactions.interaction.capabilities.productivity.StartTimer.Output
+import androidx.appactions.interaction.capabilities.testing.internal.ArgumentUtils
+import androidx.appactions.interaction.capabilities.testing.internal.FakeCallbackInternal
+import androidx.appactions.interaction.capabilities.testing.internal.TestingUtils.awaitSync
+import androidx.appactions.interaction.proto.AppActionsContext.AppAction
+import androidx.appactions.interaction.proto.AppActionsContext.IntentParameter
+import androidx.appactions.interaction.proto.ParamValue
+import androidx.appactions.interaction.proto.TaskInfo
+import com.google.common.truth.Truth.assertThat
+import java.time.Duration
+import kotlinx.coroutines.CompletableDeferred
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.junit.runners.JUnit4
+
+@RunWith(JUnit4::class)
+class StartTimerTest {
+    private val hostProperties =
+        HostProperties.Builder().setMaxHostSizeDp(SizeF(300f, 500f)).build()
+    @Test
+    fun createCapability_expectedResult() {
+        val argsDeferred = CompletableDeferred<Arguments>()
+        val capability =
+            StartTimer.CapabilityBuilder()
+                .setId("start timer")
+                .setDurationProperty(Property.Builder<Duration>().build())
+                .setExecutionCallback(
+                    ExecutionCallback {
+                        argsDeferred.complete(it)
+                        ExecutionResult.Builder<Output>().build()
+                    })
+                .build()
+        val capabilitySession = capability.createSession("fakeSessionId", hostProperties)
+        val args: MutableMap<String, ParamValue> = mutableMapOf(
+            "timer.duration" to ParamValue.newBuilder().setStringValue("PT5M").build(),
+            "timer.identifier" to ParamValue.newBuilder().setStringValue("abc123").build(),
+            "timer.name" to ParamValue.newBuilder().setStringValue("cooking").build()
+        )
+        // "Start timer for 5 minutes"
+        capabilitySession.execute(ArgumentUtils.buildArgs(args), FakeCallbackInternal())
+
+        assertThat(capability.appAction)
+            .isEqualTo(
+                AppAction.newBuilder()
+                    .setIdentifier("start timer")
+                    .setName("actions.intent.START_TIMER")
+                    .addParams(IntentParameter.newBuilder().setName("timer.duration"))
+                    .setTaskInfo(TaskInfo.getDefaultInstance())
+                    .build()
+            )
+        assertThat(argsDeferred.awaitSync())
+            .isEqualTo(
+                Arguments.Builder()
+                    .setDuration(Duration.ofMinutes(5))
+                    .setIdentifier("abc123")
+                    .setName("cooking")
+                    .build()
+            )
+    }
+}
diff --git a/appactions/interaction/interaction-capabilities-productivity/src/test/java/androidx/appactions/interaction/capabilities/productivity/StopTimerTest.kt b/appactions/interaction/interaction-capabilities-productivity/src/test/java/androidx/appactions/interaction/capabilities/productivity/StopTimerTest.kt
new file mode 100644
index 0000000..343ee54f
--- /dev/null
+++ b/appactions/interaction/interaction-capabilities-productivity/src/test/java/androidx/appactions/interaction/capabilities/productivity/StopTimerTest.kt
@@ -0,0 +1,87 @@
+/*
+ * Copyright 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package androidx.appactions.interaction.capabilities.productivity
+
+import android.util.SizeF
+import androidx.appactions.builtintypes.experimental.types.Timer
+import androidx.appactions.interaction.capabilities.core.ExecutionCallback
+import androidx.appactions.interaction.capabilities.core.ExecutionResult
+import androidx.appactions.interaction.capabilities.core.HostProperties
+import androidx.appactions.interaction.capabilities.core.properties.Property
+import androidx.appactions.interaction.capabilities.productivity.StopTimer.Arguments
+import androidx.appactions.interaction.capabilities.productivity.StopTimer.Output
+import androidx.appactions.interaction.capabilities.testing.internal.ArgumentUtils
+import androidx.appactions.interaction.capabilities.testing.internal.FakeCallbackInternal
+import androidx.appactions.interaction.capabilities.testing.internal.TestingUtils.awaitSync
+import androidx.appactions.interaction.proto.AppActionsContext.AppAction
+import androidx.appactions.interaction.proto.AppActionsContext.IntentParameter
+import androidx.appactions.interaction.proto.ParamValue
+import androidx.appactions.interaction.proto.TaskInfo
+import androidx.appactions.interaction.protobuf.Struct
+import androidx.appactions.interaction.protobuf.Value
+import com.google.common.truth.Truth.assertThat
+import kotlinx.coroutines.CompletableDeferred
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.junit.runners.JUnit4
+
+@RunWith(JUnit4::class)
+class StopTimerTest {
+    private val hostProperties =
+        HostProperties.Builder().setMaxHostSizeDp(SizeF(300f, 500f)).build()
+
+    @Test
+    fun createCapability_expectedResult() {
+        val argsDeferred = CompletableDeferred<Arguments>()
+        val capability = StopTimer.CapabilityBuilder()
+            .setId("stop timer")
+            .setTimerListProperty(Property.Builder<TimerValue>().setRequired(true).build())
+            .setExecutionCallback(
+                ExecutionCallback {
+                    argsDeferred.complete(it)
+                    ExecutionResult.Builder<Output>().build()
+                })
+            .build()
+        val capabilitySession = capability.createSession("fakeSessionId", hostProperties)
+        val args: MutableMap<String, ParamValue> = mutableMapOf(
+            "timer" to ParamValue.newBuilder()
+                .setStructValue(
+                    Struct.newBuilder()
+                        .putFields("@type", Value.newBuilder().setStringValue("Timer").build())
+                        .putFields("identifier", Value.newBuilder().setStringValue("abc").build())
+                )
+                .build()
+        )
+        capabilitySession.execute(ArgumentUtils.buildArgs(args), FakeCallbackInternal())
+
+        assertThat(capability.appAction)
+            .isEqualTo(
+                AppAction.newBuilder()
+                    .setIdentifier("stop timer")
+                    .setName("actions.intent.STOP_TIMER")
+                    .addParams(IntentParameter.newBuilder().setName("timer").setIsRequired(true))
+                    .setTaskInfo(TaskInfo.getDefaultInstance())
+                    .build()
+            )
+        assertThat(argsDeferred.awaitSync())
+            .isEqualTo(
+                Arguments.Builder()
+                    .setTimerList(listOf(TimerValue(Timer.Builder().setIdentifier("abc").build())))
+                    .build()
+            )
+    }
+}
\ No newline at end of file
diff --git a/appsearch/appsearch-builtin-types/api/public_plus_experimental_current.txt b/appsearch/appsearch-builtin-types/api/public_plus_experimental_current.txt
deleted file mode 100644
index a3244de..0000000
--- a/appsearch/appsearch-builtin-types/api/public_plus_experimental_current.txt
+++ /dev/null
@@ -1,328 +0,0 @@
-// Signature format: 4.0
-package androidx.appsearch.app {
-
-  @RequiresApi(api=android.os.Build.VERSION_CODES.LOLLIPOP) public class ShortcutAdapter {
-    method public static androidx.core.content.pm.ShortcutInfoCompat.Builder createShortcutBuilderFromDocument(android.content.Context, Object) throws androidx.appsearch.exceptions.AppSearchException;
-    method public static android.net.Uri getDocumentUri(Object) throws androidx.appsearch.exceptions.AppSearchException;
-    method public static android.net.Uri getDocumentUri(String);
-    field public static final String DEFAULT_NAMESPACE = "__shortcut_adapter_ns__";
-  }
-
-}
-
-package androidx.appsearch.builtintypes {
-
-  @androidx.appsearch.annotation.Document(name="builtin:Alarm") public class Alarm extends androidx.appsearch.builtintypes.Thing {
-    method public String? getBlackoutPeriodEndDate();
-    method public String? getBlackoutPeriodStartDate();
-    method public int[]? getDaysOfWeek();
-    method @IntRange(from=0, to=23) public int getHour();
-    method @IntRange(from=0, to=59) public int getMinute();
-    method public androidx.appsearch.builtintypes.AlarmInstance? getNextInstance();
-    method public androidx.appsearch.builtintypes.AlarmInstance? getPreviousInstance();
-    method public String? getRingtone();
-    method public boolean isEnabled();
-    method public boolean shouldVibrate();
-  }
-
-  public static final class Alarm.Builder {
-    ctor public Alarm.Builder(androidx.appsearch.builtintypes.Alarm);
-    ctor public Alarm.Builder(String, String);
-    method public androidx.appsearch.builtintypes.Alarm.Builder addAlternateName(String);
-    method public androidx.appsearch.builtintypes.Alarm build();
-    method public androidx.appsearch.builtintypes.Alarm.Builder clearAlternateNames();
-    method public androidx.appsearch.builtintypes.Alarm.Builder setBlackoutPeriodEndDate(String?);
-    method public androidx.appsearch.builtintypes.Alarm.Builder setBlackoutPeriodStartDate(String?);
-    method public androidx.appsearch.builtintypes.Alarm.Builder setCreationTimestampMillis(long);
-    method public androidx.appsearch.builtintypes.Alarm.Builder setDaysOfWeek(@IntRange(from=java.util.Calendar.SUNDAY, to=java.util.Calendar.SATURDAY) int...);
-    method public androidx.appsearch.builtintypes.Alarm.Builder setDescription(String?);
-    method public androidx.appsearch.builtintypes.Alarm.Builder setDocumentScore(int);
-    method public androidx.appsearch.builtintypes.Alarm.Builder setDocumentTtlMillis(long);
-    method public androidx.appsearch.builtintypes.Alarm.Builder setEnabled(boolean);
-    method public androidx.appsearch.builtintypes.Alarm.Builder setHour(@IntRange(from=0, to=23) int);
-    method public androidx.appsearch.builtintypes.Alarm.Builder setImage(String?);
-    method public androidx.appsearch.builtintypes.Alarm.Builder setMinute(@IntRange(from=0, to=59) int);
-    method public androidx.appsearch.builtintypes.Alarm.Builder setName(String?);
-    method public androidx.appsearch.builtintypes.Alarm.Builder setNextInstance(androidx.appsearch.builtintypes.AlarmInstance?);
-    method public androidx.appsearch.builtintypes.Alarm.Builder setPreviousInstance(androidx.appsearch.builtintypes.AlarmInstance?);
-    method public androidx.appsearch.builtintypes.Alarm.Builder setRingtone(String?);
-    method public androidx.appsearch.builtintypes.Alarm.Builder setShouldVibrate(boolean);
-    method public androidx.appsearch.builtintypes.Alarm.Builder setUrl(String?);
-  }
-
-  @androidx.appsearch.annotation.Document(name="builtin:AlarmInstance") public class AlarmInstance extends androidx.appsearch.builtintypes.Thing {
-    method public String getScheduledTime();
-    method public long getSnoozeDurationMillis();
-    method public int getStatus();
-    field public static final int STATUS_DISMISSED = 3; // 0x3
-    field public static final int STATUS_FIRING = 2; // 0x2
-    field public static final int STATUS_MISSED = 5; // 0x5
-    field public static final int STATUS_SCHEDULED = 1; // 0x1
-    field public static final int STATUS_SNOOZED = 4; // 0x4
-    field public static final int STATUS_UNKNOWN = 0; // 0x0
-  }
-
-  public static final class AlarmInstance.Builder {
-    ctor public AlarmInstance.Builder(androidx.appsearch.builtintypes.AlarmInstance);
-    ctor public AlarmInstance.Builder(String, String, String);
-    method public androidx.appsearch.builtintypes.AlarmInstance.Builder addAlternateName(String);
-    method public androidx.appsearch.builtintypes.AlarmInstance build();
-    method public androidx.appsearch.builtintypes.AlarmInstance.Builder clearAlternateNames();
-    method public androidx.appsearch.builtintypes.AlarmInstance.Builder setCreationTimestampMillis(long);
-    method public androidx.appsearch.builtintypes.AlarmInstance.Builder setDescription(String?);
-    method public androidx.appsearch.builtintypes.AlarmInstance.Builder setDocumentScore(int);
-    method public androidx.appsearch.builtintypes.AlarmInstance.Builder setDocumentTtlMillis(long);
-    method public androidx.appsearch.builtintypes.AlarmInstance.Builder setImage(String?);
-    method public androidx.appsearch.builtintypes.AlarmInstance.Builder setName(String?);
-    method public androidx.appsearch.builtintypes.AlarmInstance.Builder setSnoozeDurationMillis(long);
-    method public androidx.appsearch.builtintypes.AlarmInstance.Builder setStatus(int);
-    method public androidx.appsearch.builtintypes.AlarmInstance.Builder setUrl(String?);
-  }
-
-  @androidx.appsearch.annotation.Document(name="builtin:ContactPoint") public class ContactPoint extends androidx.appsearch.builtintypes.Thing {
-    method public java.util.List<java.lang.String!> getAddresses();
-    method public java.util.List<java.lang.String!> getEmails();
-    method public String getLabel();
-    method public java.util.List<java.lang.String!> getTelephones();
-  }
-
-  public static final class ContactPoint.Builder {
-    ctor public ContactPoint.Builder(androidx.appsearch.builtintypes.ContactPoint);
-    ctor public ContactPoint.Builder(String, String, String);
-    method public androidx.appsearch.builtintypes.ContactPoint.Builder addAlternateName(String);
-    method public androidx.appsearch.builtintypes.ContactPoint build();
-    method public androidx.appsearch.builtintypes.ContactPoint.Builder clearAlternateNames();
-    method public androidx.appsearch.builtintypes.ContactPoint.Builder setAddresses(java.util.List<java.lang.String!>);
-    method public androidx.appsearch.builtintypes.ContactPoint.Builder setCreationTimestampMillis(long);
-    method public androidx.appsearch.builtintypes.ContactPoint.Builder setDescription(String?);
-    method public androidx.appsearch.builtintypes.ContactPoint.Builder setDocumentScore(int);
-    method public androidx.appsearch.builtintypes.ContactPoint.Builder setDocumentTtlMillis(long);
-    method public androidx.appsearch.builtintypes.ContactPoint.Builder setEmails(java.util.List<java.lang.String!>);
-    method public androidx.appsearch.builtintypes.ContactPoint.Builder setImage(String?);
-    method public androidx.appsearch.builtintypes.ContactPoint.Builder setName(String?);
-    method public androidx.appsearch.builtintypes.ContactPoint.Builder setTelephones(java.util.List<java.lang.String!>);
-    method public androidx.appsearch.builtintypes.ContactPoint.Builder setUrl(String?);
-  }
-
-  @androidx.appsearch.annotation.Document(name="builtin:ImageObject") public final class ImageObject extends androidx.appsearch.builtintypes.Thing {
-    method public java.util.List<androidx.appsearch.builtintypes.properties.Keyword!> getKeywords();
-    method public String? getSha256();
-    method public String? getThumbnailSha256();
-  }
-
-  public static final class ImageObject.Builder {
-    ctor public ImageObject.Builder(androidx.appsearch.builtintypes.ImageObject);
-    ctor public ImageObject.Builder(String, String);
-    method public androidx.appsearch.builtintypes.ImageObject.Builder addAlternateName(String);
-    method public androidx.appsearch.builtintypes.ImageObject.Builder addKeyword(androidx.appsearch.builtintypes.properties.Keyword);
-    method public androidx.appsearch.builtintypes.ImageObject.Builder addKeyword(String);
-    method public androidx.appsearch.builtintypes.ImageObject.Builder addKeywords(Iterable<androidx.appsearch.builtintypes.properties.Keyword!>);
-    method public androidx.appsearch.builtintypes.ImageObject build();
-    method public androidx.appsearch.builtintypes.ImageObject.Builder clearAlternateNames();
-    method public androidx.appsearch.builtintypes.ImageObject.Builder setCreationTimestampMillis(long);
-    method public androidx.appsearch.builtintypes.ImageObject.Builder setDescription(String?);
-    method public androidx.appsearch.builtintypes.ImageObject.Builder setDocumentScore(int);
-    method public androidx.appsearch.builtintypes.ImageObject.Builder setDocumentTtlMillis(long);
-    method public androidx.appsearch.builtintypes.ImageObject.Builder setImage(String?);
-    method public androidx.appsearch.builtintypes.ImageObject.Builder setName(String?);
-    method public androidx.appsearch.builtintypes.ImageObject.Builder setSha256(String?);
-    method public androidx.appsearch.builtintypes.ImageObject.Builder setThumbnailSha256(String?);
-    method public androidx.appsearch.builtintypes.ImageObject.Builder setUrl(String?);
-  }
-
-  @androidx.appsearch.annotation.Document(name="builtin:Person") public class Person extends androidx.appsearch.builtintypes.Thing {
-    method public java.util.List<java.lang.String!> getAdditionalNames();
-    method public java.util.List<java.lang.String!> getAffiliations();
-    method public java.util.List<androidx.appsearch.builtintypes.ContactPoint!> getContactPoints();
-    method public android.net.Uri? getExternalUri();
-    method public String? getFamilyName();
-    method public String? getGivenName();
-    method public android.net.Uri? getImageUri();
-    method public String? getMiddleName();
-    method public java.util.List<java.lang.String!> getNotes();
-    method public java.util.List<java.lang.String!> getRelations();
-    method public java.util.List<androidx.appsearch.builtintypes.Person.AdditionalName!> getTypedAdditionalNames();
-    method public boolean isBot();
-    method public boolean isImportant();
-  }
-
-  public static class Person.AdditionalName {
-    ctor public Person.AdditionalName(int, String);
-    method public int getType();
-    method public String getValue();
-    field public static final int TYPE_NICKNAME = 1; // 0x1
-    field public static final int TYPE_PHONETIC_NAME = 2; // 0x2
-    field public static final int TYPE_UNKNOWN = 0; // 0x0
-  }
-
-  public static final class Person.Builder {
-    ctor public Person.Builder(androidx.appsearch.builtintypes.Person);
-    ctor public Person.Builder(String, String, String);
-    method public androidx.appsearch.builtintypes.Person.Builder addAlternateName(String);
-    method public androidx.appsearch.builtintypes.Person build();
-    method public androidx.appsearch.builtintypes.Person.Builder clearAlternateNames();
-    method public androidx.appsearch.builtintypes.Person.Builder setAdditionalNames(java.util.List<androidx.appsearch.builtintypes.Person.AdditionalName!>);
-    method public androidx.appsearch.builtintypes.Person.Builder setAffiliations(java.util.List<java.lang.String!>);
-    method public androidx.appsearch.builtintypes.Person.Builder setBot(boolean);
-    method public androidx.appsearch.builtintypes.Person.Builder setContactPoints(java.util.List<androidx.appsearch.builtintypes.ContactPoint!>);
-    method public androidx.appsearch.builtintypes.Person.Builder setCreationTimestampMillis(long);
-    method public androidx.appsearch.builtintypes.Person.Builder setDescription(String?);
-    method public androidx.appsearch.builtintypes.Person.Builder setDocumentScore(int);
-    method public androidx.appsearch.builtintypes.Person.Builder setDocumentTtlMillis(long);
-    method public androidx.appsearch.builtintypes.Person.Builder setExternalUri(android.net.Uri);
-    method public androidx.appsearch.builtintypes.Person.Builder setFamilyName(String);
-    method public androidx.appsearch.builtintypes.Person.Builder setGivenName(String);
-    method public androidx.appsearch.builtintypes.Person.Builder setImage(String?);
-    method public androidx.appsearch.builtintypes.Person.Builder setImageUri(android.net.Uri);
-    method public androidx.appsearch.builtintypes.Person.Builder setImportant(boolean);
-    method public androidx.appsearch.builtintypes.Person.Builder setMiddleName(String);
-    method public androidx.appsearch.builtintypes.Person.Builder setName(String?);
-    method public androidx.appsearch.builtintypes.Person.Builder setNotes(java.util.List<java.lang.String!>);
-    method public androidx.appsearch.builtintypes.Person.Builder setRelations(java.util.List<java.lang.String!>);
-    method public androidx.appsearch.builtintypes.Person.Builder setUrl(String?);
-  }
-
-  @androidx.appsearch.annotation.Document(name="builtin:Stopwatch") public class Stopwatch extends androidx.appsearch.builtintypes.Thing {
-    method @RequiresApi(api=android.os.Build.VERSION_CODES.JELLY_BEAN_MR1) public long calculateBaseTimeMillis(android.content.Context);
-    method @RequiresApi(api=android.os.Build.VERSION_CODES.JELLY_BEAN_MR1) public long calculateCurrentAccumulatedDurationMillis(android.content.Context);
-    method public long getAccumulatedDurationMillis();
-    method public long getBaseTimeMillis();
-    method public long getBaseTimeMillisInElapsedRealtime();
-    method public int getBootCount();
-    method public java.util.List<androidx.appsearch.builtintypes.StopwatchLap!> getLaps();
-    method public int getStatus();
-    field public static final int STATUS_PAUSED = 3; // 0x3
-    field public static final int STATUS_RESET = 1; // 0x1
-    field public static final int STATUS_RUNNING = 2; // 0x2
-    field public static final int STATUS_UNKNOWN = 0; // 0x0
-  }
-
-  public static final class Stopwatch.Builder {
-    ctor public Stopwatch.Builder(androidx.appsearch.builtintypes.Stopwatch);
-    ctor public Stopwatch.Builder(String, String);
-    method public androidx.appsearch.builtintypes.Stopwatch.Builder addAlternateName(String);
-    method public androidx.appsearch.builtintypes.Stopwatch build();
-    method public androidx.appsearch.builtintypes.Stopwatch.Builder clearAlternateNames();
-    method public androidx.appsearch.builtintypes.Stopwatch.Builder setAccumulatedDurationMillis(long);
-    method @RequiresApi(api=android.os.Build.VERSION_CODES.JELLY_BEAN_MR1) public androidx.appsearch.builtintypes.Stopwatch.Builder setBaseTimeMillis(android.content.Context, long, long);
-    method public androidx.appsearch.builtintypes.Stopwatch.Builder setBaseTimeMillis(long, long, int);
-    method public androidx.appsearch.builtintypes.Stopwatch.Builder setCreationTimestampMillis(long);
-    method public androidx.appsearch.builtintypes.Stopwatch.Builder setDescription(String?);
-    method public androidx.appsearch.builtintypes.Stopwatch.Builder setDocumentScore(int);
-    method public androidx.appsearch.builtintypes.Stopwatch.Builder setDocumentTtlMillis(long);
-    method public androidx.appsearch.builtintypes.Stopwatch.Builder setImage(String?);
-    method public androidx.appsearch.builtintypes.Stopwatch.Builder setLaps(java.util.List<androidx.appsearch.builtintypes.StopwatchLap!>);
-    method public androidx.appsearch.builtintypes.Stopwatch.Builder setName(String?);
-    method public androidx.appsearch.builtintypes.Stopwatch.Builder setStatus(int);
-    method public androidx.appsearch.builtintypes.Stopwatch.Builder setUrl(String?);
-  }
-
-  @androidx.appsearch.annotation.Document(name="builtin:StopwatchLap") public class StopwatchLap extends androidx.appsearch.builtintypes.Thing {
-    method public long getAccumulatedLapDurationMillis();
-    method public long getLapDurationMillis();
-    method public int getLapNumber();
-  }
-
-  public static final class StopwatchLap.Builder {
-    ctor public StopwatchLap.Builder(androidx.appsearch.builtintypes.StopwatchLap);
-    ctor public StopwatchLap.Builder(String, String);
-    method public androidx.appsearch.builtintypes.StopwatchLap.Builder addAlternateName(String);
-    method public androidx.appsearch.builtintypes.StopwatchLap build();
-    method public androidx.appsearch.builtintypes.StopwatchLap.Builder clearAlternateNames();
-    method public androidx.appsearch.builtintypes.StopwatchLap.Builder setAccumulatedLapDurationMillis(long);
-    method public androidx.appsearch.builtintypes.StopwatchLap.Builder setCreationTimestampMillis(long);
-    method public androidx.appsearch.builtintypes.StopwatchLap.Builder setDescription(String?);
-    method public androidx.appsearch.builtintypes.StopwatchLap.Builder setDocumentScore(int);
-    method public androidx.appsearch.builtintypes.StopwatchLap.Builder setDocumentTtlMillis(long);
-    method public androidx.appsearch.builtintypes.StopwatchLap.Builder setImage(String?);
-    method public androidx.appsearch.builtintypes.StopwatchLap.Builder setLapDurationMillis(long);
-    method public androidx.appsearch.builtintypes.StopwatchLap.Builder setLapNumber(int);
-    method public androidx.appsearch.builtintypes.StopwatchLap.Builder setName(String?);
-    method public androidx.appsearch.builtintypes.StopwatchLap.Builder setUrl(String?);
-  }
-
-  @androidx.appsearch.annotation.Document(name="builtin:Thing") public class Thing {
-    method public java.util.List<java.lang.String!> getAlternateNames();
-    method public long getCreationTimestampMillis();
-    method public String? getDescription();
-    method public int getDocumentScore();
-    method public long getDocumentTtlMillis();
-    method public String getId();
-    method public String? getImage();
-    method public String? getName();
-    method public String getNamespace();
-    method public String? getUrl();
-  }
-
-  public static final class Thing.Builder {
-    ctor public Thing.Builder(androidx.appsearch.builtintypes.Thing);
-    ctor public Thing.Builder(String, String);
-    method public androidx.appsearch.builtintypes.Thing.Builder addAlternateName(String);
-    method public androidx.appsearch.builtintypes.Thing build();
-    method public androidx.appsearch.builtintypes.Thing.Builder clearAlternateNames();
-    method public androidx.appsearch.builtintypes.Thing.Builder setCreationTimestampMillis(long);
-    method public androidx.appsearch.builtintypes.Thing.Builder setDescription(String?);
-    method public androidx.appsearch.builtintypes.Thing.Builder setDocumentScore(int);
-    method public androidx.appsearch.builtintypes.Thing.Builder setDocumentTtlMillis(long);
-    method public androidx.appsearch.builtintypes.Thing.Builder setImage(String?);
-    method public androidx.appsearch.builtintypes.Thing.Builder setName(String?);
-    method public androidx.appsearch.builtintypes.Thing.Builder setUrl(String?);
-  }
-
-  @androidx.appsearch.annotation.Document(name="builtin:Timer") public class Timer extends androidx.appsearch.builtintypes.Thing {
-    method @RequiresApi(api=android.os.Build.VERSION_CODES.JELLY_BEAN_MR1) public long calculateBaseTimeMillis(android.content.Context);
-    method @RequiresApi(api=android.os.Build.VERSION_CODES.JELLY_BEAN_MR1) public long calculateCurrentRemainingDurationMillis(android.content.Context);
-    method @RequiresApi(api=android.os.Build.VERSION_CODES.JELLY_BEAN_MR1) public long calculateExpirationTimeMillis(android.content.Context);
-    method public long getBaseTimeMillis();
-    method public long getBaseTimeMillisInElapsedRealtime();
-    method public int getBootCount();
-    method public long getDurationMillis();
-    method public long getOriginalDurationMillis();
-    method public long getRemainingDurationMillis();
-    method public String? getRingtone();
-    method public long getStartTimeMillis();
-    method public int getStatus();
-    method public boolean shouldVibrate();
-    field public static final int STATUS_EXPIRED = 3; // 0x3
-    field public static final int STATUS_MISSED = 4; // 0x4
-    field public static final int STATUS_PAUSED = 2; // 0x2
-    field public static final int STATUS_RESET = 5; // 0x5
-    field public static final int STATUS_STARTED = 1; // 0x1
-    field public static final int STATUS_UNKNOWN = 0; // 0x0
-  }
-
-  public static final class Timer.Builder {
-    ctor public Timer.Builder(androidx.appsearch.builtintypes.Timer);
-    ctor public Timer.Builder(String, String);
-    method public androidx.appsearch.builtintypes.Timer.Builder addAlternateName(String);
-    method public androidx.appsearch.builtintypes.Timer build();
-    method public androidx.appsearch.builtintypes.Timer.Builder clearAlternateNames();
-    method @RequiresApi(api=android.os.Build.VERSION_CODES.JELLY_BEAN_MR1) public androidx.appsearch.builtintypes.Timer.Builder setBaseTimeMillis(android.content.Context, long, long);
-    method public androidx.appsearch.builtintypes.Timer.Builder setBaseTimeMillis(long, long, int);
-    method public androidx.appsearch.builtintypes.Timer.Builder setCreationTimestampMillis(long);
-    method public androidx.appsearch.builtintypes.Timer.Builder setDescription(String?);
-    method public androidx.appsearch.builtintypes.Timer.Builder setDocumentScore(int);
-    method public androidx.appsearch.builtintypes.Timer.Builder setDocumentTtlMillis(long);
-    method public androidx.appsearch.builtintypes.Timer.Builder setDurationMillis(long);
-    method public androidx.appsearch.builtintypes.Timer.Builder setImage(String?);
-    method public androidx.appsearch.builtintypes.Timer.Builder setName(String?);
-    method public androidx.appsearch.builtintypes.Timer.Builder setOriginalDurationMillis(long);
-    method public androidx.appsearch.builtintypes.Timer.Builder setRemainingDurationMillis(long);
-    method public androidx.appsearch.builtintypes.Timer.Builder setRingtone(String?);
-    method public androidx.appsearch.builtintypes.Timer.Builder setShouldVibrate(boolean);
-    method public androidx.appsearch.builtintypes.Timer.Builder setStartTimeMillis(long);
-    method public androidx.appsearch.builtintypes.Timer.Builder setStatus(int);
-    method public androidx.appsearch.builtintypes.Timer.Builder setUrl(String?);
-  }
-
-}
-
-package androidx.appsearch.builtintypes.properties {
-
-  @androidx.appsearch.annotation.Document public final class Keyword {
-    ctor public Keyword(String);
-    method public String? asText();
-  }
-
-}
-
diff --git a/appsearch/appsearch/api/public_plus_experimental_current.txt b/appsearch/appsearch/api/public_plus_experimental_current.txt
deleted file mode 100644
index 7b7f92e..0000000
--- a/appsearch/appsearch/api/public_plus_experimental_current.txt
+++ /dev/null
@@ -1,723 +0,0 @@
-// Signature format: 4.0
-package androidx.appsearch.annotation {
-
-  @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) @java.lang.annotation.Target(java.lang.annotation.ElementType.TYPE) public @interface Document {
-    method public abstract String name() default "";
-  }
-
-  @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) @java.lang.annotation.Target({java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.METHOD}) public static @interface Document.BooleanProperty {
-    method public abstract String name() default "";
-    method public abstract boolean required() default false;
-  }
-
-  @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) @java.lang.annotation.Target({java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.METHOD}) public static @interface Document.BytesProperty {
-    method public abstract String name() default "";
-    method public abstract boolean required() default false;
-  }
-
-  @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) @java.lang.annotation.Target({java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.METHOD}) public static @interface Document.CreationTimestampMillis {
-  }
-
-  @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) @java.lang.annotation.Target({java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.METHOD}) public static @interface Document.DocumentProperty {
-    method public abstract boolean indexNestedProperties() default false;
-    method public abstract String name() default "";
-    method public abstract boolean required() default false;
-  }
-
-  @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) @java.lang.annotation.Target({java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.METHOD}) public static @interface Document.DoubleProperty {
-    method public abstract String name() default "";
-    method public abstract boolean required() default false;
-  }
-
-  @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) @java.lang.annotation.Target({java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.METHOD}) public static @interface Document.Id {
-  }
-
-  @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) @java.lang.annotation.Target({java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.METHOD}) public static @interface Document.LongProperty {
-    method public abstract int indexingType() default androidx.appsearch.app.AppSearchSchema.LongPropertyConfig.INDEXING_TYPE_NONE;
-    method public abstract String name() default "";
-    method public abstract boolean required() default false;
-  }
-
-  @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) @java.lang.annotation.Target({java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.METHOD}) public static @interface Document.Namespace {
-  }
-
-  @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) @java.lang.annotation.Target({java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.METHOD}) public static @interface Document.Score {
-  }
-
-  @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) @java.lang.annotation.Target({java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.METHOD}) public static @interface Document.StringProperty {
-    method public abstract int indexingType() default androidx.appsearch.app.AppSearchSchema.StringPropertyConfig.INDEXING_TYPE_NONE;
-    method public abstract String name() default "";
-    method public abstract boolean required() default false;
-    method public abstract int tokenizerType() default androidx.appsearch.app.AppSearchSchema.StringPropertyConfig.TOKENIZER_TYPE_PLAIN;
-  }
-
-  @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) @java.lang.annotation.Target({java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.METHOD}) public static @interface Document.TtlMillis {
-  }
-
-}
-
-package androidx.appsearch.app {
-
-  public final class AppSearchBatchResult<KeyType, ValueType> {
-    method public java.util.Map<KeyType!,androidx.appsearch.app.AppSearchResult<ValueType!>!> getAll();
-    method public java.util.Map<KeyType!,androidx.appsearch.app.AppSearchResult<ValueType!>!> getFailures();
-    method public java.util.Map<KeyType!,ValueType!> getSuccesses();
-    method public boolean isSuccess();
-  }
-
-  public static final class AppSearchBatchResult.Builder<KeyType, ValueType> {
-    ctor public AppSearchBatchResult.Builder();
-    method public androidx.appsearch.app.AppSearchBatchResult<KeyType!,ValueType!> build();
-    method public androidx.appsearch.app.AppSearchBatchResult.Builder<KeyType!,ValueType!> setFailure(KeyType, int, String?);
-    method public androidx.appsearch.app.AppSearchBatchResult.Builder<KeyType!,ValueType!> setResult(KeyType, androidx.appsearch.app.AppSearchResult<ValueType!>);
-    method public androidx.appsearch.app.AppSearchBatchResult.Builder<KeyType!,ValueType!> setSuccess(KeyType, ValueType?);
-  }
-
-  public final class AppSearchResult<ValueType> {
-    method public String? getErrorMessage();
-    method public int getResultCode();
-    method public ValueType? getResultValue();
-    method public boolean isSuccess();
-    method public static <ValueType> androidx.appsearch.app.AppSearchResult<ValueType!> newFailedResult(int, String?);
-    method public static <ValueType> androidx.appsearch.app.AppSearchResult<ValueType!> newSuccessfulResult(ValueType?);
-    field public static final int RESULT_INTERNAL_ERROR = 2; // 0x2
-    field public static final int RESULT_INVALID_ARGUMENT = 3; // 0x3
-    field public static final int RESULT_INVALID_SCHEMA = 7; // 0x7
-    field public static final int RESULT_IO_ERROR = 4; // 0x4
-    field public static final int RESULT_NOT_FOUND = 6; // 0x6
-    field public static final int RESULT_OK = 0; // 0x0
-    field public static final int RESULT_OUT_OF_SPACE = 5; // 0x5
-    field public static final int RESULT_SECURITY_ERROR = 8; // 0x8
-    field public static final int RESULT_UNKNOWN_ERROR = 1; // 0x1
-  }
-
-  public final class AppSearchSchema {
-    method public java.util.List<androidx.appsearch.app.AppSearchSchema.PropertyConfig!> getProperties();
-    method public String getSchemaType();
-  }
-
-  public static final class AppSearchSchema.BooleanPropertyConfig extends androidx.appsearch.app.AppSearchSchema.PropertyConfig {
-  }
-
-  public static final class AppSearchSchema.BooleanPropertyConfig.Builder {
-    ctor public AppSearchSchema.BooleanPropertyConfig.Builder(String);
-    method public androidx.appsearch.app.AppSearchSchema.BooleanPropertyConfig build();
-    method public androidx.appsearch.app.AppSearchSchema.BooleanPropertyConfig.Builder setCardinality(int);
-  }
-
-  public static final class AppSearchSchema.Builder {
-    ctor public AppSearchSchema.Builder(String);
-    method public androidx.appsearch.app.AppSearchSchema.Builder addProperty(androidx.appsearch.app.AppSearchSchema.PropertyConfig);
-    method public androidx.appsearch.app.AppSearchSchema build();
-  }
-
-  public static final class AppSearchSchema.BytesPropertyConfig extends androidx.appsearch.app.AppSearchSchema.PropertyConfig {
-  }
-
-  public static final class AppSearchSchema.BytesPropertyConfig.Builder {
-    ctor public AppSearchSchema.BytesPropertyConfig.Builder(String);
-    method public androidx.appsearch.app.AppSearchSchema.BytesPropertyConfig build();
-    method public androidx.appsearch.app.AppSearchSchema.BytesPropertyConfig.Builder setCardinality(int);
-  }
-
-  public static final class AppSearchSchema.DocumentPropertyConfig extends androidx.appsearch.app.AppSearchSchema.PropertyConfig {
-    method public String getSchemaType();
-    method public boolean shouldIndexNestedProperties();
-  }
-
-  public static final class AppSearchSchema.DocumentPropertyConfig.Builder {
-    ctor public AppSearchSchema.DocumentPropertyConfig.Builder(String, String);
-    method public androidx.appsearch.app.AppSearchSchema.DocumentPropertyConfig build();
-    method public androidx.appsearch.app.AppSearchSchema.DocumentPropertyConfig.Builder setCardinality(int);
-    method public androidx.appsearch.app.AppSearchSchema.DocumentPropertyConfig.Builder setShouldIndexNestedProperties(boolean);
-  }
-
-  public static final class AppSearchSchema.DoublePropertyConfig extends androidx.appsearch.app.AppSearchSchema.PropertyConfig {
-  }
-
-  public static final class AppSearchSchema.DoublePropertyConfig.Builder {
-    ctor public AppSearchSchema.DoublePropertyConfig.Builder(String);
-    method public androidx.appsearch.app.AppSearchSchema.DoublePropertyConfig build();
-    method public androidx.appsearch.app.AppSearchSchema.DoublePropertyConfig.Builder setCardinality(int);
-  }
-
-  public static final class AppSearchSchema.LongPropertyConfig extends androidx.appsearch.app.AppSearchSchema.PropertyConfig {
-    method public int getIndexingType();
-    field public static final int INDEXING_TYPE_NONE = 0; // 0x0
-    field @RequiresFeature(enforcement="androidx.appsearch.app.Features#isFeatureSupported", name=androidx.appsearch.app.Features.NUMERIC_SEARCH) public static final int INDEXING_TYPE_RANGE = 1; // 0x1
-  }
-
-  public static final class AppSearchSchema.LongPropertyConfig.Builder {
-    ctor public AppSearchSchema.LongPropertyConfig.Builder(String);
-    method public androidx.appsearch.app.AppSearchSchema.LongPropertyConfig build();
-    method public androidx.appsearch.app.AppSearchSchema.LongPropertyConfig.Builder setCardinality(int);
-    method public androidx.appsearch.app.AppSearchSchema.LongPropertyConfig.Builder setIndexingType(int);
-  }
-
-  public abstract static class AppSearchSchema.PropertyConfig {
-    method public int getCardinality();
-    method public String getName();
-    field public static final int CARDINALITY_OPTIONAL = 2; // 0x2
-    field public static final int CARDINALITY_REPEATED = 1; // 0x1
-    field public static final int CARDINALITY_REQUIRED = 3; // 0x3
-  }
-
-  public static final class AppSearchSchema.StringPropertyConfig extends androidx.appsearch.app.AppSearchSchema.PropertyConfig {
-    method public int getIndexingType();
-    method public int getJoinableValueType();
-    method public int getTokenizerType();
-    field public static final int INDEXING_TYPE_EXACT_TERMS = 1; // 0x1
-    field public static final int INDEXING_TYPE_NONE = 0; // 0x0
-    field public static final int INDEXING_TYPE_PREFIXES = 2; // 0x2
-    field public static final int JOINABLE_VALUE_TYPE_NONE = 0; // 0x0
-    field @RequiresFeature(enforcement="androidx.appsearch.app.Features#isFeatureSupported", name=androidx.appsearch.app.Features.JOIN_SPEC_AND_QUALIFIED_ID) public static final int JOINABLE_VALUE_TYPE_QUALIFIED_ID = 1; // 0x1
-    field public static final int TOKENIZER_TYPE_NONE = 0; // 0x0
-    field public static final int TOKENIZER_TYPE_PLAIN = 1; // 0x1
-    field @RequiresFeature(enforcement="androidx.appsearch.app.Features#isFeatureSupported", name=androidx.appsearch.app.Features.TOKENIZER_TYPE_RFC822) public static final int TOKENIZER_TYPE_RFC822 = 3; // 0x3
-    field @RequiresFeature(enforcement="androidx.appsearch.app.Features#isFeatureSupported", name=androidx.appsearch.app.Features.VERBATIM_SEARCH) public static final int TOKENIZER_TYPE_VERBATIM = 2; // 0x2
-  }
-
-  public static final class AppSearchSchema.StringPropertyConfig.Builder {
-    ctor public AppSearchSchema.StringPropertyConfig.Builder(String);
-    method public androidx.appsearch.app.AppSearchSchema.StringPropertyConfig build();
-    method public androidx.appsearch.app.AppSearchSchema.StringPropertyConfig.Builder setCardinality(int);
-    method public androidx.appsearch.app.AppSearchSchema.StringPropertyConfig.Builder setIndexingType(int);
-    method public androidx.appsearch.app.AppSearchSchema.StringPropertyConfig.Builder setJoinableValueType(int);
-    method public androidx.appsearch.app.AppSearchSchema.StringPropertyConfig.Builder setTokenizerType(int);
-  }
-
-  public interface AppSearchSession extends java.io.Closeable {
-    method public void close();
-    method public com.google.common.util.concurrent.ListenableFuture<androidx.appsearch.app.AppSearchBatchResult<java.lang.String!,androidx.appsearch.app.GenericDocument!>!> getByDocumentIdAsync(androidx.appsearch.app.GetByDocumentIdRequest);
-    method public androidx.appsearch.app.Features getFeatures();
-    method public com.google.common.util.concurrent.ListenableFuture<java.util.Set<java.lang.String!>!> getNamespacesAsync();
-    method public com.google.common.util.concurrent.ListenableFuture<androidx.appsearch.app.GetSchemaResponse!> getSchemaAsync();
-    method public com.google.common.util.concurrent.ListenableFuture<androidx.appsearch.app.StorageInfo!> getStorageInfoAsync();
-    method public com.google.common.util.concurrent.ListenableFuture<androidx.appsearch.app.AppSearchBatchResult<java.lang.String!,java.lang.Void!>!> putAsync(androidx.appsearch.app.PutDocumentsRequest);
-    method public com.google.common.util.concurrent.ListenableFuture<androidx.appsearch.app.AppSearchBatchResult<java.lang.String!,java.lang.Void!>!> removeAsync(androidx.appsearch.app.RemoveByDocumentIdRequest);
-    method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void!> removeAsync(String, androidx.appsearch.app.SearchSpec);
-    method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void!> reportUsageAsync(androidx.appsearch.app.ReportUsageRequest);
-    method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void!> requestFlushAsync();
-    method public androidx.appsearch.app.SearchResults search(String, androidx.appsearch.app.SearchSpec);
-    method public com.google.common.util.concurrent.ListenableFuture<androidx.appsearch.app.SetSchemaResponse!> setSchemaAsync(androidx.appsearch.app.SetSchemaRequest);
-  }
-
-  public interface DocumentClassFactory<T> {
-    method public T fromGenericDocument(androidx.appsearch.app.GenericDocument) throws androidx.appsearch.exceptions.AppSearchException;
-    method public androidx.appsearch.app.AppSearchSchema getSchema() throws androidx.appsearch.exceptions.AppSearchException;
-    method public String getSchemaName();
-    method public androidx.appsearch.app.GenericDocument toGenericDocument(T) throws androidx.appsearch.exceptions.AppSearchException;
-  }
-
-  public interface Features {
-    method public boolean isFeatureSupported(String);
-    field public static final String ADD_PERMISSIONS_AND_GET_VISIBILITY = "ADD_PERMISSIONS_AND_GET_VISIBILITY";
-    field public static final String GLOBAL_SEARCH_SESSION_GET_BY_ID = "GLOBAL_SEARCH_SESSION_GET_BY_ID";
-    field public static final String GLOBAL_SEARCH_SESSION_GET_SCHEMA = "GLOBAL_SEARCH_SESSION_GET_SCHEMA";
-    field public static final String GLOBAL_SEARCH_SESSION_REGISTER_OBSERVER_CALLBACK = "GLOBAL_SEARCH_SESSION_REGISTER_OBSERVER_CALLBACK";
-    field public static final String JOIN_SPEC_AND_QUALIFIED_ID = "JOIN_SPEC_AND_QUALIFIED_ID";
-    field public static final String LIST_FILTER_QUERY_LANGUAGE = "LIST_FILTER_QUERY_LANGUAGE";
-    field public static final String NUMERIC_SEARCH = "NUMERIC_SEARCH";
-    field public static final String SEARCH_RESULT_MATCH_INFO_SUBMATCH = "SEARCH_RESULT_MATCH_INFO_SUBMATCH";
-    field public static final String SEARCH_SPEC_ADVANCED_RANKING_EXPRESSION = "SEARCH_SPEC_ADVANCED_RANKING_EXPRESSION";
-    field public static final String SEARCH_SPEC_PROPERTY_WEIGHTS = "SEARCH_SPEC_PROPERTY_WEIGHTS";
-    field public static final String TOKENIZER_TYPE_RFC822 = "TOKENIZER_TYPE_RFC822";
-    field public static final String VERBATIM_SEARCH = "VERBATIM_SEARCH";
-  }
-
-  public class GenericDocument {
-    ctor protected GenericDocument(androidx.appsearch.app.GenericDocument);
-    method public static androidx.appsearch.app.GenericDocument fromDocumentClass(Object) throws androidx.appsearch.exceptions.AppSearchException;
-    method public long getCreationTimestampMillis();
-    method public String getId();
-    method public static int getMaxIndexedProperties();
-    method public String getNamespace();
-    method public Object? getProperty(String);
-    method public boolean getPropertyBoolean(String);
-    method public boolean[]? getPropertyBooleanArray(String);
-    method public byte[]? getPropertyBytes(String);
-    method public byte[]![]? getPropertyBytesArray(String);
-    method public androidx.appsearch.app.GenericDocument? getPropertyDocument(String);
-    method public androidx.appsearch.app.GenericDocument![]? getPropertyDocumentArray(String);
-    method public double getPropertyDouble(String);
-    method public double[]? getPropertyDoubleArray(String);
-    method public long getPropertyLong(String);
-    method public long[]? getPropertyLongArray(String);
-    method public java.util.Set<java.lang.String!> getPropertyNames();
-    method public String? getPropertyString(String);
-    method public String![]? getPropertyStringArray(String);
-    method public String getSchemaType();
-    method public int getScore();
-    method public long getTtlMillis();
-    method public androidx.appsearch.app.GenericDocument.Builder<androidx.appsearch.app.GenericDocument.Builder<?>!> toBuilder();
-    method public <T> T toDocumentClass(Class<T!>) throws androidx.appsearch.exceptions.AppSearchException;
-  }
-
-  public static class GenericDocument.Builder<BuilderType extends androidx.appsearch.app.GenericDocument.Builder> {
-    ctor public GenericDocument.Builder(String, String, String);
-    method public androidx.appsearch.app.GenericDocument build();
-    method public BuilderType clearProperty(String);
-    method public BuilderType setCreationTimestampMillis(long);
-    method public BuilderType setId(String);
-    method public BuilderType setNamespace(String);
-    method public BuilderType setPropertyBoolean(String, boolean...);
-    method public BuilderType setPropertyBytes(String, byte[]!...);
-    method public BuilderType setPropertyDocument(String, androidx.appsearch.app.GenericDocument!...);
-    method public BuilderType setPropertyDouble(String, double...);
-    method public BuilderType setPropertyLong(String, long...);
-    method public BuilderType setPropertyString(String, java.lang.String!...);
-    method public BuilderType setSchemaType(String);
-    method public BuilderType setScore(@IntRange(from=0, to=java.lang.Integer.MAX_VALUE) int);
-    method public BuilderType setTtlMillis(long);
-  }
-
-  public final class GetByDocumentIdRequest {
-    method public java.util.Set<java.lang.String!> getIds();
-    method public String getNamespace();
-    method public java.util.Map<java.lang.String!,java.util.List<androidx.appsearch.app.PropertyPath!>!> getProjectionPaths();
-    method public java.util.Map<java.lang.String!,java.util.List<java.lang.String!>!> getProjections();
-    field public static final String PROJECTION_SCHEMA_TYPE_WILDCARD = "*";
-  }
-
-  public static final class GetByDocumentIdRequest.Builder {
-    ctor public GetByDocumentIdRequest.Builder(String);
-    method public androidx.appsearch.app.GetByDocumentIdRequest.Builder addIds(java.lang.String!...);
-    method public androidx.appsearch.app.GetByDocumentIdRequest.Builder addIds(java.util.Collection<java.lang.String!>);
-    method public androidx.appsearch.app.GetByDocumentIdRequest.Builder addProjection(String, java.util.Collection<java.lang.String!>);
-    method public androidx.appsearch.app.GetByDocumentIdRequest.Builder addProjectionPaths(String, java.util.Collection<androidx.appsearch.app.PropertyPath!>);
-    method public androidx.appsearch.app.GetByDocumentIdRequest build();
-  }
-
-  public final class GetSchemaResponse {
-    method @RequiresFeature(enforcement="androidx.appsearch.app.Features#isFeatureSupported", name=androidx.appsearch.app.Features.ADD_PERMISSIONS_AND_GET_VISIBILITY) public java.util.Map<java.lang.String!,java.util.Set<java.util.Set<java.lang.Integer!>!>!> getRequiredPermissionsForSchemaTypeVisibility();
-    method @RequiresFeature(enforcement="androidx.appsearch.app.Features#isFeatureSupported", name=androidx.appsearch.app.Features.ADD_PERMISSIONS_AND_GET_VISIBILITY) public java.util.Set<java.lang.String!> getSchemaTypesNotDisplayedBySystem();
-    method @RequiresFeature(enforcement="androidx.appsearch.app.Features#isFeatureSupported", name=androidx.appsearch.app.Features.ADD_PERMISSIONS_AND_GET_VISIBILITY) public java.util.Map<java.lang.String!,java.util.Set<androidx.appsearch.app.PackageIdentifier!>!> getSchemaTypesVisibleToPackages();
-    method public java.util.Set<androidx.appsearch.app.AppSearchSchema!> getSchemas();
-    method @IntRange(from=0) public int getVersion();
-  }
-
-  public static final class GetSchemaResponse.Builder {
-    ctor public GetSchemaResponse.Builder();
-    method public androidx.appsearch.app.GetSchemaResponse.Builder addSchema(androidx.appsearch.app.AppSearchSchema);
-    method public androidx.appsearch.app.GetSchemaResponse.Builder addSchemaTypeNotDisplayedBySystem(String);
-    method public androidx.appsearch.app.GetSchemaResponse build();
-    method public androidx.appsearch.app.GetSchemaResponse.Builder setRequiredPermissionsForSchemaTypeVisibility(String, java.util.Set<java.util.Set<java.lang.Integer!>!>);
-    method public androidx.appsearch.app.GetSchemaResponse.Builder setSchemaTypeVisibleToPackages(String, java.util.Set<androidx.appsearch.app.PackageIdentifier!>);
-    method public androidx.appsearch.app.GetSchemaResponse.Builder setVersion(@IntRange(from=0) int);
-  }
-
-  public interface GlobalSearchSession extends java.io.Closeable {
-    method public void close();
-    method @RequiresFeature(enforcement="androidx.appsearch.app.Features#isFeatureSupported", name=androidx.appsearch.app.Features.GLOBAL_SEARCH_SESSION_GET_BY_ID) public com.google.common.util.concurrent.ListenableFuture<androidx.appsearch.app.AppSearchBatchResult<java.lang.String!,androidx.appsearch.app.GenericDocument!>!> getByDocumentIdAsync(String, String, androidx.appsearch.app.GetByDocumentIdRequest);
-    method public androidx.appsearch.app.Features getFeatures();
-    method @RequiresFeature(enforcement="androidx.appsearch.app.Features#isFeatureSupported", name=androidx.appsearch.app.Features.GLOBAL_SEARCH_SESSION_GET_SCHEMA) public com.google.common.util.concurrent.ListenableFuture<androidx.appsearch.app.GetSchemaResponse!> getSchemaAsync(String, String);
-    method @RequiresFeature(enforcement="androidx.appsearch.app.Features#isFeatureSupported", name=androidx.appsearch.app.Features.GLOBAL_SEARCH_SESSION_REGISTER_OBSERVER_CALLBACK) public void registerObserverCallback(String, androidx.appsearch.observer.ObserverSpec, java.util.concurrent.Executor, androidx.appsearch.observer.ObserverCallback) throws androidx.appsearch.exceptions.AppSearchException;
-    method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void!> reportSystemUsageAsync(androidx.appsearch.app.ReportSystemUsageRequest);
-    method public androidx.appsearch.app.SearchResults search(String, androidx.appsearch.app.SearchSpec);
-    method @RequiresFeature(enforcement="androidx.appsearch.app.Features#isFeatureSupported", name=androidx.appsearch.app.Features.GLOBAL_SEARCH_SESSION_REGISTER_OBSERVER_CALLBACK) public void unregisterObserverCallback(String, androidx.appsearch.observer.ObserverCallback) throws androidx.appsearch.exceptions.AppSearchException;
-  }
-
-  public final class JoinSpec {
-    method public int getAggregationScoringStrategy();
-    method public String getChildPropertyExpression();
-    method public int getMaxJoinedResultCount();
-    method public String getNestedQuery();
-    method public androidx.appsearch.app.SearchSpec getNestedSearchSpec();
-    field public static final int AGGREGATION_SCORING_AVG_RANKING_SIGNAL = 3; // 0x3
-    field public static final int AGGREGATION_SCORING_MAX_RANKING_SIGNAL = 4; // 0x4
-    field public static final int AGGREGATION_SCORING_MIN_RANKING_SIGNAL = 2; // 0x2
-    field public static final int AGGREGATION_SCORING_OUTER_RESULT_RANKING_SIGNAL = 0; // 0x0
-    field public static final int AGGREGATION_SCORING_RESULT_COUNT = 1; // 0x1
-    field public static final int AGGREGATION_SCORING_SUM_RANKING_SIGNAL = 5; // 0x5
-    field public static final String QUALIFIED_ID = "this.qualifiedId()";
-  }
-
-  public static final class JoinSpec.Builder {
-    ctor public JoinSpec.Builder(String);
-    method public androidx.appsearch.app.JoinSpec build();
-    method public androidx.appsearch.app.JoinSpec.Builder setAggregationScoringStrategy(int);
-    method public androidx.appsearch.app.JoinSpec.Builder setMaxJoinedResultCount(int);
-    method public androidx.appsearch.app.JoinSpec.Builder setNestedSearch(String, androidx.appsearch.app.SearchSpec);
-  }
-
-  public abstract class Migrator {
-    ctor public Migrator();
-    method @WorkerThread public abstract androidx.appsearch.app.GenericDocument onDowngrade(int, int, androidx.appsearch.app.GenericDocument);
-    method @WorkerThread public abstract androidx.appsearch.app.GenericDocument onUpgrade(int, int, androidx.appsearch.app.GenericDocument);
-    method public abstract boolean shouldMigrate(int, int);
-  }
-
-  public class PackageIdentifier {
-    ctor public PackageIdentifier(String, byte[]);
-    method public String getPackageName();
-    method public byte[] getSha256Certificate();
-  }
-
-  public class PropertyPath implements java.lang.Iterable<androidx.appsearch.app.PropertyPath.PathSegment> {
-    ctor public PropertyPath(String);
-    ctor public PropertyPath(java.util.List<androidx.appsearch.app.PropertyPath.PathSegment!>);
-    method public androidx.appsearch.app.PropertyPath.PathSegment get(int);
-    method public java.util.Iterator<androidx.appsearch.app.PropertyPath.PathSegment!> iterator();
-    method public int size();
-  }
-
-  public static class PropertyPath.PathSegment {
-    method public static androidx.appsearch.app.PropertyPath.PathSegment create(String);
-    method public static androidx.appsearch.app.PropertyPath.PathSegment create(String, int);
-    method public int getPropertyIndex();
-    method public String getPropertyName();
-    field public static final int NON_REPEATED_CARDINALITY = -1; // 0xffffffff
-  }
-
-  public final class PutDocumentsRequest {
-    method public java.util.List<androidx.appsearch.app.GenericDocument!> getGenericDocuments();
-  }
-
-  public static final class PutDocumentsRequest.Builder {
-    ctor public PutDocumentsRequest.Builder();
-    method public androidx.appsearch.app.PutDocumentsRequest.Builder addDocuments(java.lang.Object!...) throws androidx.appsearch.exceptions.AppSearchException;
-    method public androidx.appsearch.app.PutDocumentsRequest.Builder addDocuments(java.util.Collection<?>) throws androidx.appsearch.exceptions.AppSearchException;
-    method public androidx.appsearch.app.PutDocumentsRequest.Builder addGenericDocuments(androidx.appsearch.app.GenericDocument!...);
-    method public androidx.appsearch.app.PutDocumentsRequest.Builder addGenericDocuments(java.util.Collection<? extends androidx.appsearch.app.GenericDocument>);
-    method public androidx.appsearch.app.PutDocumentsRequest build();
-  }
-
-  public final class RemoveByDocumentIdRequest {
-    method public java.util.Set<java.lang.String!> getIds();
-    method public String getNamespace();
-  }
-
-  public static final class RemoveByDocumentIdRequest.Builder {
-    ctor public RemoveByDocumentIdRequest.Builder(String);
-    method public androidx.appsearch.app.RemoveByDocumentIdRequest.Builder addIds(java.lang.String!...);
-    method public androidx.appsearch.app.RemoveByDocumentIdRequest.Builder addIds(java.util.Collection<java.lang.String!>);
-    method public androidx.appsearch.app.RemoveByDocumentIdRequest build();
-  }
-
-  public final class ReportSystemUsageRequest {
-    method public String getDatabaseName();
-    method public String getDocumentId();
-    method public String getNamespace();
-    method public String getPackageName();
-    method public long getUsageTimestampMillis();
-  }
-
-  public static final class ReportSystemUsageRequest.Builder {
-    ctor public ReportSystemUsageRequest.Builder(String, String, String, String);
-    method public androidx.appsearch.app.ReportSystemUsageRequest build();
-    method public androidx.appsearch.app.ReportSystemUsageRequest.Builder setUsageTimestampMillis(long);
-  }
-
-  public final class ReportUsageRequest {
-    method public String getDocumentId();
-    method public String getNamespace();
-    method public long getUsageTimestampMillis();
-  }
-
-  public static final class ReportUsageRequest.Builder {
-    ctor public ReportUsageRequest.Builder(String, String);
-    method public androidx.appsearch.app.ReportUsageRequest build();
-    method public androidx.appsearch.app.ReportUsageRequest.Builder setUsageTimestampMillis(long);
-  }
-
-  public final class SearchResult {
-    method public String getDatabaseName();
-    method public <T> T getDocument(Class<T!>) throws androidx.appsearch.exceptions.AppSearchException;
-    method public androidx.appsearch.app.GenericDocument getGenericDocument();
-    method public java.util.List<androidx.appsearch.app.SearchResult!> getJoinedResults();
-    method public java.util.List<androidx.appsearch.app.SearchResult.MatchInfo!> getMatchInfos();
-    method public String getPackageName();
-    method public double getRankingSignal();
-  }
-
-  public static final class SearchResult.Builder {
-    ctor public SearchResult.Builder(String, String);
-    method public androidx.appsearch.app.SearchResult.Builder addJoinedResult(androidx.appsearch.app.SearchResult);
-    method public androidx.appsearch.app.SearchResult.Builder addMatchInfo(androidx.appsearch.app.SearchResult.MatchInfo);
-    method public androidx.appsearch.app.SearchResult build();
-    method public androidx.appsearch.app.SearchResult.Builder setDocument(Object) throws androidx.appsearch.exceptions.AppSearchException;
-    method public androidx.appsearch.app.SearchResult.Builder setGenericDocument(androidx.appsearch.app.GenericDocument);
-    method public androidx.appsearch.app.SearchResult.Builder setRankingSignal(double);
-  }
-
-  public static final class SearchResult.MatchInfo {
-    method public CharSequence getExactMatch();
-    method public androidx.appsearch.app.SearchResult.MatchRange getExactMatchRange();
-    method public String getFullText();
-    method public String getPropertyPath();
-    method public androidx.appsearch.app.PropertyPath getPropertyPathObject();
-    method public CharSequence getSnippet();
-    method public androidx.appsearch.app.SearchResult.MatchRange getSnippetRange();
-    method @RequiresFeature(enforcement="androidx.appsearch.app.Features#isFeatureSupported", name=androidx.appsearch.app.Features.SEARCH_RESULT_MATCH_INFO_SUBMATCH) public CharSequence getSubmatch();
-    method @RequiresFeature(enforcement="androidx.appsearch.app.Features#isFeatureSupported", name=androidx.appsearch.app.Features.SEARCH_RESULT_MATCH_INFO_SUBMATCH) public androidx.appsearch.app.SearchResult.MatchRange getSubmatchRange();
-  }
-
-  public static final class SearchResult.MatchInfo.Builder {
-    ctor public SearchResult.MatchInfo.Builder(String);
-    method public androidx.appsearch.app.SearchResult.MatchInfo build();
-    method public androidx.appsearch.app.SearchResult.MatchInfo.Builder setExactMatchRange(androidx.appsearch.app.SearchResult.MatchRange);
-    method public androidx.appsearch.app.SearchResult.MatchInfo.Builder setSnippetRange(androidx.appsearch.app.SearchResult.MatchRange);
-    method public androidx.appsearch.app.SearchResult.MatchInfo.Builder setSubmatchRange(androidx.appsearch.app.SearchResult.MatchRange);
-  }
-
-  public static final class SearchResult.MatchRange {
-    ctor public SearchResult.MatchRange(int, int);
-    method public int getEnd();
-    method public int getStart();
-  }
-
-  public interface SearchResults extends java.io.Closeable {
-    method public void close();
-    method public com.google.common.util.concurrent.ListenableFuture<java.util.List<androidx.appsearch.app.SearchResult!>!> getNextPageAsync();
-  }
-
-  public final class SearchSpec {
-    method public String getAdvancedRankingExpression();
-    method public java.util.List<java.lang.String!> getFilterNamespaces();
-    method public java.util.List<java.lang.String!> getFilterPackageNames();
-    method public java.util.List<java.lang.String!> getFilterSchemas();
-    method public androidx.appsearch.app.JoinSpec? getJoinSpec();
-    method public int getMaxSnippetSize();
-    method public int getOrder();
-    method public java.util.Map<java.lang.String!,java.util.List<androidx.appsearch.app.PropertyPath!>!> getProjectionPaths();
-    method public java.util.Map<java.lang.String!,java.util.List<java.lang.String!>!> getProjections();
-    method public java.util.Map<java.lang.String!,java.util.Map<androidx.appsearch.app.PropertyPath!,java.lang.Double!>!> getPropertyWeightPaths();
-    method public java.util.Map<java.lang.String!,java.util.Map<java.lang.String!,java.lang.Double!>!> getPropertyWeights();
-    method public int getRankingStrategy();
-    method public int getResultCountPerPage();
-    method public int getResultGroupingLimit();
-    method public int getResultGroupingTypeFlags();
-    method public int getSnippetCount();
-    method public int getSnippetCountPerProperty();
-    method public int getTermMatch();
-    method public boolean isListFilterQueryLanguageEnabled();
-    method public boolean isNumericSearchEnabled();
-    method public boolean isVerbatimSearchEnabled();
-    field public static final int GROUPING_TYPE_PER_NAMESPACE = 2; // 0x2
-    field public static final int GROUPING_TYPE_PER_PACKAGE = 1; // 0x1
-    field public static final int ORDER_ASCENDING = 1; // 0x1
-    field public static final int ORDER_DESCENDING = 0; // 0x0
-    field public static final String PROJECTION_SCHEMA_TYPE_WILDCARD = "*";
-    field public static final int RANKING_STRATEGY_ADVANCED_RANKING_EXPRESSION = 9; // 0x9
-    field public static final int RANKING_STRATEGY_CREATION_TIMESTAMP = 2; // 0x2
-    field public static final int RANKING_STRATEGY_DOCUMENT_SCORE = 1; // 0x1
-    field public static final int RANKING_STRATEGY_JOIN_AGGREGATE_SCORE = 8; // 0x8
-    field public static final int RANKING_STRATEGY_NONE = 0; // 0x0
-    field public static final int RANKING_STRATEGY_RELEVANCE_SCORE = 3; // 0x3
-    field public static final int RANKING_STRATEGY_SYSTEM_USAGE_COUNT = 6; // 0x6
-    field public static final int RANKING_STRATEGY_SYSTEM_USAGE_LAST_USED_TIMESTAMP = 7; // 0x7
-    field public static final int RANKING_STRATEGY_USAGE_COUNT = 4; // 0x4
-    field public static final int RANKING_STRATEGY_USAGE_LAST_USED_TIMESTAMP = 5; // 0x5
-    field public static final int TERM_MATCH_EXACT_ONLY = 1; // 0x1
-    field public static final int TERM_MATCH_PREFIX = 2; // 0x2
-  }
-
-  public static final class SearchSpec.Builder {
-    ctor public SearchSpec.Builder();
-    method public androidx.appsearch.app.SearchSpec.Builder addFilterDocumentClasses(Class<?>!...) throws androidx.appsearch.exceptions.AppSearchException;
-    method public androidx.appsearch.app.SearchSpec.Builder addFilterDocumentClasses(java.util.Collection<? extends java.lang.Class<?>>) throws androidx.appsearch.exceptions.AppSearchException;
-    method public androidx.appsearch.app.SearchSpec.Builder addFilterNamespaces(java.lang.String!...);
-    method public androidx.appsearch.app.SearchSpec.Builder addFilterNamespaces(java.util.Collection<java.lang.String!>);
-    method public androidx.appsearch.app.SearchSpec.Builder addFilterPackageNames(java.lang.String!...);
-    method public androidx.appsearch.app.SearchSpec.Builder addFilterPackageNames(java.util.Collection<java.lang.String!>);
-    method public androidx.appsearch.app.SearchSpec.Builder addFilterSchemas(java.lang.String!...);
-    method public androidx.appsearch.app.SearchSpec.Builder addFilterSchemas(java.util.Collection<java.lang.String!>);
-    method public androidx.appsearch.app.SearchSpec.Builder addProjection(String, java.util.Collection<java.lang.String!>);
-    method public androidx.appsearch.app.SearchSpec.Builder addProjectionPaths(String, java.util.Collection<androidx.appsearch.app.PropertyPath!>);
-    method public androidx.appsearch.app.SearchSpec.Builder addProjectionPathsForDocumentClass(Class<?>, java.util.Collection<androidx.appsearch.app.PropertyPath!>) throws androidx.appsearch.exceptions.AppSearchException;
-    method public androidx.appsearch.app.SearchSpec.Builder addProjectionsForDocumentClass(Class<?>, java.util.Collection<java.lang.String!>) throws androidx.appsearch.exceptions.AppSearchException;
-    method public androidx.appsearch.app.SearchSpec build();
-    method @RequiresFeature(enforcement="androidx.appsearch.app.Features#isFeatureSupported", name=androidx.appsearch.app.Features.JOIN_SPEC_AND_QUALIFIED_ID) public androidx.appsearch.app.SearchSpec.Builder setJoinSpec(androidx.appsearch.app.JoinSpec);
-    method @RequiresFeature(enforcement="androidx.appsearch.app.Features#isFeatureSupported", name=androidx.appsearch.app.Features.LIST_FILTER_QUERY_LANGUAGE) public androidx.appsearch.app.SearchSpec.Builder setListFilterQueryLanguageEnabled(boolean);
-    method public androidx.appsearch.app.SearchSpec.Builder setMaxSnippetSize(@IntRange(from=0, to=0x2710) int);
-    method @RequiresFeature(enforcement="androidx.appsearch.app.Features#isFeatureSupported", name=androidx.appsearch.app.Features.NUMERIC_SEARCH) public androidx.appsearch.app.SearchSpec.Builder setNumericSearchEnabled(boolean);
-    method public androidx.appsearch.app.SearchSpec.Builder setOrder(int);
-    method @RequiresFeature(enforcement="androidx.appsearch.app.Features#isFeatureSupported", name=androidx.appsearch.app.Features.SEARCH_SPEC_PROPERTY_WEIGHTS) public androidx.appsearch.app.SearchSpec.Builder setPropertyWeightPaths(String, java.util.Map<androidx.appsearch.app.PropertyPath!,java.lang.Double!>);
-    method @RequiresFeature(enforcement="androidx.appsearch.app.Features#isFeatureSupported", name=androidx.appsearch.app.Features.SEARCH_SPEC_PROPERTY_WEIGHTS) public androidx.appsearch.app.SearchSpec.Builder setPropertyWeightPathsForDocumentClass(Class<?>, java.util.Map<androidx.appsearch.app.PropertyPath!,java.lang.Double!>) throws androidx.appsearch.exceptions.AppSearchException;
-    method @RequiresFeature(enforcement="androidx.appsearch.app.Features#isFeatureSupported", name=androidx.appsearch.app.Features.SEARCH_SPEC_PROPERTY_WEIGHTS) public androidx.appsearch.app.SearchSpec.Builder setPropertyWeights(String, java.util.Map<java.lang.String!,java.lang.Double!>);
-    method @RequiresFeature(enforcement="androidx.appsearch.app.Features#isFeatureSupported", name=androidx.appsearch.app.Features.SEARCH_SPEC_PROPERTY_WEIGHTS) public androidx.appsearch.app.SearchSpec.Builder setPropertyWeightsForDocumentClass(Class<?>, java.util.Map<java.lang.String!,java.lang.Double!>) throws androidx.appsearch.exceptions.AppSearchException;
-    method public androidx.appsearch.app.SearchSpec.Builder setRankingStrategy(int);
-    method @RequiresFeature(enforcement="androidx.appsearch.app.Features#isFeatureSupported", name=androidx.appsearch.app.Features.SEARCH_SPEC_ADVANCED_RANKING_EXPRESSION) public androidx.appsearch.app.SearchSpec.Builder setRankingStrategy(String);
-    method public androidx.appsearch.app.SearchSpec.Builder setResultCountPerPage(@IntRange(from=0, to=0x2710) int);
-    method public androidx.appsearch.app.SearchSpec.Builder setResultGrouping(int, int);
-    method public androidx.appsearch.app.SearchSpec.Builder setSnippetCount(@IntRange(from=0, to=0x2710) int);
-    method public androidx.appsearch.app.SearchSpec.Builder setSnippetCountPerProperty(@IntRange(from=0, to=0x2710) int);
-    method public androidx.appsearch.app.SearchSpec.Builder setTermMatch(int);
-    method @RequiresFeature(enforcement="androidx.appsearch.app.Features#isFeatureSupported", name=androidx.appsearch.app.Features.VERBATIM_SEARCH) public androidx.appsearch.app.SearchSpec.Builder setVerbatimSearchEnabled(boolean);
-  }
-
-  public class SearchSuggestionResult {
-    method public String getSuggestedResult();
-  }
-
-  public static final class SearchSuggestionResult.Builder {
-    ctor public SearchSuggestionResult.Builder();
-    method public androidx.appsearch.app.SearchSuggestionResult build();
-    method public androidx.appsearch.app.SearchSuggestionResult.Builder setSuggestedResult(String);
-  }
-
-  public class SearchSuggestionSpec {
-    method public java.util.Map<java.lang.String!,java.util.List<java.lang.String!>!> getFilterDocumentIds();
-    method public java.util.List<java.lang.String!> getFilterNamespaces();
-    method public java.util.List<java.lang.String!> getFilterSchemas();
-    method public int getMaximumResultCount();
-    method public int getRankingStrategy();
-    field public static final int SUGGESTION_RANKING_STRATEGY_DOCUMENT_COUNT = 0; // 0x0
-    field public static final int SUGGESTION_RANKING_STRATEGY_NONE = 2; // 0x2
-    field public static final int SUGGESTION_RANKING_STRATEGY_TERM_FREQUENCY = 1; // 0x1
-  }
-
-  public static final class SearchSuggestionSpec.Builder {
-    ctor public SearchSuggestionSpec.Builder(@IntRange(from=1) int);
-    method public androidx.appsearch.app.SearchSuggestionSpec.Builder addFilterDocumentClasses(Class<?>!...) throws androidx.appsearch.exceptions.AppSearchException;
-    method public androidx.appsearch.app.SearchSuggestionSpec.Builder addFilterDocumentClasses(java.util.Collection<? extends java.lang.Class<?>>) throws androidx.appsearch.exceptions.AppSearchException;
-    method public androidx.appsearch.app.SearchSuggestionSpec.Builder addFilterDocumentIds(String, java.lang.String!...);
-    method public androidx.appsearch.app.SearchSuggestionSpec.Builder addFilterDocumentIds(String, java.util.Collection<java.lang.String!>);
-    method public androidx.appsearch.app.SearchSuggestionSpec.Builder addFilterNamespaces(java.lang.String!...);
-    method public androidx.appsearch.app.SearchSuggestionSpec.Builder addFilterNamespaces(java.util.Collection<java.lang.String!>);
-    method public androidx.appsearch.app.SearchSuggestionSpec.Builder addFilterSchemas(java.lang.String!...);
-    method public androidx.appsearch.app.SearchSuggestionSpec.Builder addFilterSchemas(java.util.Collection<java.lang.String!>);
-    method public androidx.appsearch.app.SearchSuggestionSpec build() throws androidx.appsearch.exceptions.AppSearchException;
-    method public androidx.appsearch.app.SearchSuggestionSpec.Builder setRankingStrategy(int);
-  }
-
-  public final class SetSchemaRequest {
-    method public java.util.Map<java.lang.String!,androidx.appsearch.app.Migrator!> getMigrators();
-    method public java.util.Map<java.lang.String!,java.util.Set<java.util.Set<java.lang.Integer!>!>!> getRequiredPermissionsForSchemaTypeVisibility();
-    method public java.util.Set<androidx.appsearch.app.AppSearchSchema!> getSchemas();
-    method public java.util.Set<java.lang.String!> getSchemasNotDisplayedBySystem();
-    method public java.util.Map<java.lang.String!,java.util.Set<androidx.appsearch.app.PackageIdentifier!>!> getSchemasVisibleToPackages();
-    method @IntRange(from=1) public int getVersion();
-    method public boolean isForceOverride();
-    field @RequiresFeature(enforcement="androidx.appsearch.app.Features#isFeatureSupported", name=androidx.appsearch.app.Features.ADD_PERMISSIONS_AND_GET_VISIBILITY) public static final int READ_ASSISTANT_APP_SEARCH_DATA = 6; // 0x6
-    field @RequiresFeature(enforcement="androidx.appsearch.app.Features#isFeatureSupported", name=androidx.appsearch.app.Features.ADD_PERMISSIONS_AND_GET_VISIBILITY) public static final int READ_CALENDAR = 2; // 0x2
-    field @RequiresFeature(enforcement="androidx.appsearch.app.Features#isFeatureSupported", name=androidx.appsearch.app.Features.ADD_PERMISSIONS_AND_GET_VISIBILITY) public static final int READ_CONTACTS = 3; // 0x3
-    field @RequiresFeature(enforcement="androidx.appsearch.app.Features#isFeatureSupported", name=androidx.appsearch.app.Features.ADD_PERMISSIONS_AND_GET_VISIBILITY) public static final int READ_EXTERNAL_STORAGE = 4; // 0x4
-    field @RequiresFeature(enforcement="androidx.appsearch.app.Features#isFeatureSupported", name=androidx.appsearch.app.Features.ADD_PERMISSIONS_AND_GET_VISIBILITY) public static final int READ_HOME_APP_SEARCH_DATA = 5; // 0x5
-    field @RequiresFeature(enforcement="androidx.appsearch.app.Features#isFeatureSupported", name=androidx.appsearch.app.Features.ADD_PERMISSIONS_AND_GET_VISIBILITY) public static final int READ_SMS = 1; // 0x1
-  }
-
-  public static final class SetSchemaRequest.Builder {
-    ctor public SetSchemaRequest.Builder();
-    method public androidx.appsearch.app.SetSchemaRequest.Builder addDocumentClasses(Class<?>!...) throws androidx.appsearch.exceptions.AppSearchException;
-    method public androidx.appsearch.app.SetSchemaRequest.Builder addDocumentClasses(java.util.Collection<? extends java.lang.Class<?>>) throws androidx.appsearch.exceptions.AppSearchException;
-    method @RequiresFeature(enforcement="androidx.appsearch.app.Features#isFeatureSupported", name=androidx.appsearch.app.Features.ADD_PERMISSIONS_AND_GET_VISIBILITY) public androidx.appsearch.app.SetSchemaRequest.Builder addRequiredPermissionsForDocumentClassVisibility(Class<?>, java.util.Set<java.lang.Integer!>) throws androidx.appsearch.exceptions.AppSearchException;
-    method @RequiresFeature(enforcement="androidx.appsearch.app.Features#isFeatureSupported", name=androidx.appsearch.app.Features.ADD_PERMISSIONS_AND_GET_VISIBILITY) public androidx.appsearch.app.SetSchemaRequest.Builder addRequiredPermissionsForSchemaTypeVisibility(String, java.util.Set<java.lang.Integer!>);
-    method public androidx.appsearch.app.SetSchemaRequest.Builder addSchemas(androidx.appsearch.app.AppSearchSchema!...);
-    method public androidx.appsearch.app.SetSchemaRequest.Builder addSchemas(java.util.Collection<androidx.appsearch.app.AppSearchSchema!>);
-    method public androidx.appsearch.app.SetSchemaRequest build();
-    method @RequiresFeature(enforcement="androidx.appsearch.app.Features#isFeatureSupported", name=androidx.appsearch.app.Features.ADD_PERMISSIONS_AND_GET_VISIBILITY) public androidx.appsearch.app.SetSchemaRequest.Builder clearRequiredPermissionsForDocumentClassVisibility(Class<?>) throws androidx.appsearch.exceptions.AppSearchException;
-    method @RequiresFeature(enforcement="androidx.appsearch.app.Features#isFeatureSupported", name=androidx.appsearch.app.Features.ADD_PERMISSIONS_AND_GET_VISIBILITY) public androidx.appsearch.app.SetSchemaRequest.Builder clearRequiredPermissionsForSchemaTypeVisibility(String);
-    method public androidx.appsearch.app.SetSchemaRequest.Builder setDocumentClassDisplayedBySystem(Class<?>, boolean) throws androidx.appsearch.exceptions.AppSearchException;
-    method public androidx.appsearch.app.SetSchemaRequest.Builder setDocumentClassVisibilityForPackage(Class<?>, boolean, androidx.appsearch.app.PackageIdentifier) throws androidx.appsearch.exceptions.AppSearchException;
-    method public androidx.appsearch.app.SetSchemaRequest.Builder setForceOverride(boolean);
-    method public androidx.appsearch.app.SetSchemaRequest.Builder setMigrator(String, androidx.appsearch.app.Migrator);
-    method public androidx.appsearch.app.SetSchemaRequest.Builder setMigrators(java.util.Map<java.lang.String!,androidx.appsearch.app.Migrator!>);
-    method public androidx.appsearch.app.SetSchemaRequest.Builder setSchemaTypeDisplayedBySystem(String, boolean);
-    method public androidx.appsearch.app.SetSchemaRequest.Builder setSchemaTypeVisibilityForPackage(String, boolean, androidx.appsearch.app.PackageIdentifier);
-    method public androidx.appsearch.app.SetSchemaRequest.Builder setVersion(@IntRange(from=1) int);
-  }
-
-  public class SetSchemaResponse {
-    method public java.util.Set<java.lang.String!> getDeletedTypes();
-    method public java.util.Set<java.lang.String!> getIncompatibleTypes();
-    method public java.util.Set<java.lang.String!> getMigratedTypes();
-    method public java.util.List<androidx.appsearch.app.SetSchemaResponse.MigrationFailure!> getMigrationFailures();
-  }
-
-  public static final class SetSchemaResponse.Builder {
-    ctor public SetSchemaResponse.Builder();
-    method public androidx.appsearch.app.SetSchemaResponse.Builder addDeletedType(String);
-    method public androidx.appsearch.app.SetSchemaResponse.Builder addDeletedTypes(java.util.Collection<java.lang.String!>);
-    method public androidx.appsearch.app.SetSchemaResponse.Builder addIncompatibleType(String);
-    method public androidx.appsearch.app.SetSchemaResponse.Builder addIncompatibleTypes(java.util.Collection<java.lang.String!>);
-    method public androidx.appsearch.app.SetSchemaResponse.Builder addMigratedType(String);
-    method public androidx.appsearch.app.SetSchemaResponse.Builder addMigratedTypes(java.util.Collection<java.lang.String!>);
-    method public androidx.appsearch.app.SetSchemaResponse.Builder addMigrationFailure(androidx.appsearch.app.SetSchemaResponse.MigrationFailure);
-    method public androidx.appsearch.app.SetSchemaResponse.Builder addMigrationFailures(java.util.Collection<androidx.appsearch.app.SetSchemaResponse.MigrationFailure!>);
-    method public androidx.appsearch.app.SetSchemaResponse build();
-  }
-
-  public static class SetSchemaResponse.MigrationFailure {
-    ctor public SetSchemaResponse.MigrationFailure(String, String, String, androidx.appsearch.app.AppSearchResult<?>);
-    method public androidx.appsearch.app.AppSearchResult<java.lang.Void!> getAppSearchResult();
-    method public String getDocumentId();
-    method public String getNamespace();
-    method public String getSchemaType();
-  }
-
-  public class StorageInfo {
-    method public int getAliveDocumentsCount();
-    method public int getAliveNamespacesCount();
-    method public long getSizeBytes();
-  }
-
-  public static final class StorageInfo.Builder {
-    ctor public StorageInfo.Builder();
-    method public androidx.appsearch.app.StorageInfo build();
-    method public androidx.appsearch.app.StorageInfo.Builder setAliveDocumentsCount(int);
-    method public androidx.appsearch.app.StorageInfo.Builder setAliveNamespacesCount(int);
-    method public androidx.appsearch.app.StorageInfo.Builder setSizeBytes(long);
-  }
-
-}
-
-package androidx.appsearch.exceptions {
-
-  public class AppSearchException extends java.lang.Exception {
-    ctor public AppSearchException(int);
-    ctor public AppSearchException(int, String?);
-    ctor public AppSearchException(int, String?, Throwable?);
-    method public int getResultCode();
-    method public <T> androidx.appsearch.app.AppSearchResult<T!> toAppSearchResult();
-  }
-
-}
-
-package androidx.appsearch.observer {
-
-  public final class DocumentChangeInfo {
-    ctor public DocumentChangeInfo(String, String, String, String, java.util.Set<java.lang.String!>);
-    method public java.util.Set<java.lang.String!> getChangedDocumentIds();
-    method public String getDatabaseName();
-    method public String getNamespace();
-    method public String getPackageName();
-    method public String getSchemaName();
-  }
-
-  public interface ObserverCallback {
-    method public void onDocumentChanged(androidx.appsearch.observer.DocumentChangeInfo);
-    method public void onSchemaChanged(androidx.appsearch.observer.SchemaChangeInfo);
-  }
-
-  public final class ObserverSpec {
-    method public java.util.Set<java.lang.String!> getFilterSchemas();
-  }
-
-  public static final class ObserverSpec.Builder {
-    ctor public ObserverSpec.Builder();
-    method public androidx.appsearch.observer.ObserverSpec.Builder addFilterDocumentClasses(Class<?>!...) throws androidx.appsearch.exceptions.AppSearchException;
-    method public androidx.appsearch.observer.ObserverSpec.Builder addFilterDocumentClasses(java.util.Collection<? extends java.lang.Class<?>>) throws androidx.appsearch.exceptions.AppSearchException;
-    method public androidx.appsearch.observer.ObserverSpec.Builder addFilterSchemas(java.lang.String!...);
-    method public androidx.appsearch.observer.ObserverSpec.Builder addFilterSchemas(java.util.Collection<java.lang.String!>);
-    method public androidx.appsearch.observer.ObserverSpec build();
-  }
-
-  public final class SchemaChangeInfo {
-    ctor public SchemaChangeInfo(String, String, java.util.Set<java.lang.String!>);
-    method public java.util.Set<java.lang.String!> getChangedSchemaNames();
-    method public String getDatabaseName();
-    method public String getPackageName();
-  }
-
-}
-
-package androidx.appsearch.util {
-
-  public class DocumentIdUtil {
-    method public static String createQualifiedId(String, String, androidx.appsearch.app.GenericDocument);
-    method public static String createQualifiedId(String, String, String, String);
-  }
-
-}
-
diff --git a/benchmark/benchmark-common/src/main/java/androidx/benchmark/Api21.kt b/benchmark/benchmark-common/src/main/java/androidx/benchmark/Api21.kt
index adb0d14..745a4a9 100644
--- a/benchmark/benchmark-common/src/main/java/androidx/benchmark/Api21.kt
+++ b/benchmark/benchmark-common/src/main/java/androidx/benchmark/Api21.kt
@@ -22,13 +22,15 @@
 import android.os.Debug
 import android.os.Environment
 import androidx.annotation.RequiresApi
+import androidx.annotation.RestrictTo
 import java.io.File
 
 internal fun startMethodTracingSampling(tracePath: String, bufferSize: Int, intervalUs: Int) {
     Debug.startMethodTracingSampling(tracePath, bufferSize, intervalUs)
 }
 
-internal fun Context.getFirstMountedMediaDir(): File? {
+@RestrictTo(RestrictTo.Scope.LIBRARY)
+fun Context.getFirstMountedMediaDir(): File? {
     @Suppress("DEPRECATION")
     return externalMediaDirs.firstOrNull {
         Environment.getExternalStorageState(it) == Environment.MEDIA_MOUNTED
diff --git a/benchmark/benchmark-common/src/main/java/androidx/benchmark/Arguments.kt b/benchmark/benchmark-common/src/main/java/androidx/benchmark/Arguments.kt
index 5b3fe34..126070c 100644
--- a/benchmark/benchmark-common/src/main/java/androidx/benchmark/Arguments.kt
+++ b/benchmark/benchmark-common/src/main/java/androidx/benchmark/Arguments.kt
@@ -64,6 +64,7 @@
     val killProcessDelayMillis: Long
     val enableStartupProfiles: Boolean
     val strictStartupProfiles: Boolean
+    val methodTracingOptions: String
     val dryRunMode: Boolean
 
     // internal properties are microbenchmark only
@@ -196,6 +197,9 @@
 
         strictStartupProfiles =
             arguments.getBenchmarkArgument("startupProfiles.strict")?.toBoolean() ?: false
+
+        methodTracingOptions =
+            arguments.getBenchmarkArgument("methodTracing.options") ?: ""
     }
 
     fun throwIfError() {
diff --git a/benchmark/benchmark-internal/build.gradle b/benchmark/benchmark-internal/build.gradle
new file mode 100644
index 0000000..45da453
--- /dev/null
+++ b/benchmark/benchmark-internal/build.gradle
@@ -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.
+ */
+
+import androidx.build.Publish
+
+plugins {
+    id("AndroidXPlugin")
+    id("com.android.library")
+    id("kotlin-android")
+}
+
+android {
+    namespace "androidx.benchmark.internal"
+}
+
+dependencies {
+    implementation(libs.kotlinStdlib)
+    api("androidx.annotation:annotation:1.1.0")
+    api("androidx.annotation:annotation-experimental:1.0.0")
+    implementation("androidx.tracing:tracing-ktx:1.0.0")
+    implementation(libs.testMonitor)
+    androidTestImplementation(libs.testRules)
+    androidTestImplementation(libs.testExtJunit)
+    androidTestImplementation(libs.kotlinTest)
+}
+
+androidx {
+    name = "Benchmark - Internal"
+    publish = Publish.SNAPSHOT_ONLY
+    inceptionYear = "2023"
+    description = "Android Benchmark - Internal"
+}
diff --git a/benchmark/benchmark-internal/src/main/AndroidManifest.xml b/benchmark/benchmark-internal/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..819d8da
--- /dev/null
+++ b/benchmark/benchmark-internal/src/main/AndroidManifest.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?><!--
+  ~ Copyright (C) 2023 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  -->
+<manifest xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <application>
+        <receiver
+            android:name=".MethodTracingReceiver"
+            android:directBootAware="false"
+            android:enabled="true"
+            android:exported="true"
+            android:permission="android.permission.DUMP">
+            <intent-filter>
+                <action android:name="androidx.benchmark.experiments.ACTION_METHOD_TRACE" />
+            </intent-filter>
+        </receiver>
+    </application>
+
+    <!-- Needed to dump the method traces. -->
+    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
+</manifest>
diff --git a/benchmark/benchmark-internal/src/main/java/androidx/benchmark/internal/MethodTracingReceiver.kt b/benchmark/benchmark-internal/src/main/java/androidx/benchmark/internal/MethodTracingReceiver.kt
new file mode 100644
index 0000000..9cbc912
--- /dev/null
+++ b/benchmark/benchmark-internal/src/main/java/androidx/benchmark/internal/MethodTracingReceiver.kt
@@ -0,0 +1,168 @@
+/*
+ * Copyright 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package androidx.benchmark.internal
+
+import android.content.BroadcastReceiver
+import android.content.Context
+import android.content.Intent
+import android.os.Build
+import android.os.Debug
+import android.os.Environment
+import android.util.Log
+import androidx.annotation.DoNotInline
+import androidx.annotation.RequiresApi
+import androidx.benchmark.internal.MethodTracingApi21.getFirstMountedMediaDir
+import java.io.File
+
+/**
+ * Used to toggle method tracing on the application.
+ */
+class MethodTracingReceiver : BroadcastReceiver() {
+    override fun onReceive(context: Context, intent: Intent?) {
+        val intentAction = intent?.action ?: ""
+        if (intentAction != ACTION_METHOD_TRACE) {
+            val message = "Unknown action $intentAction"
+            Log.w(TAG, message)
+            resultCode = RESULT_CODE_FAILED
+            return
+        }
+        methodTracingRequest(context, intent)
+    }
+
+    private fun methodTracingRequest(context: Context, intent: Intent?) {
+        val packageName = context.packageName
+        val extras = intent?.extras
+        val action = extras?.getString(ACTION)
+        val fileName = extras?.getString(UNIQUE_NAME)
+        if (action.isNullOrBlank()) {
+            Log.d(TAG, "Unknown action.")
+            resultCode = RESULT_CODE_FAILED
+            return
+        }
+        when (action) {
+            METHOD_TRACE_START_SAMPLED -> {
+                require(!fileName.isNullOrBlank()) {
+                    Log.d(TAG, "Missing output file name")
+                    resultCode = RESULT_CODE_FAILED
+                    return
+                }
+                if (Build.VERSION.SDK_INT >= 21) {
+                    MethodTracingApi21.startMethodTracingSampling(
+                        tracePath = outputTracePath(context, fileName),
+                        bufferSize = BUFFER_SIZE_BYTES,
+                        intervalUs = INTERVAL_MICRO_SECONDS
+                    )
+                } else {
+                    // Fallback
+                    startMethodTracing(fileName, context)
+                }
+            }
+
+            METHOD_TRACE_START -> {
+                startMethodTracing(fileName, context)
+            }
+
+            METHOD_TRACE_END -> {
+                Log.d(TAG, "Stopping method tracing for $packageName")
+                Debug.stopMethodTracing()
+                resultCode = RESULT_CODE_SUCCESS
+            }
+
+            else -> {
+                Log.w(TAG, "Unknown request: $intent")
+                resultCode = RESULT_CODE_FAILED
+            }
+        }
+    }
+
+    private fun startMethodTracing(fileName: String?, context: Context) {
+        require(!fileName.isNullOrBlank()) {
+            Log.d(TAG, "Missing output file name")
+            resultCode = RESULT_CODE_FAILED
+            return
+        }
+        Debug.startMethodTracing(
+            outputTracePath(context, fileName),
+            BUFFER_SIZE_BYTES
+        )
+        Log.d(TAG, "Enabling method tracing on ${context.packageName} ($fileName)")
+        resultCode = RESULT_CODE_SUCCESS
+    }
+
+    companion object {
+        private const val TAG = "MethodTracingReceiver"
+
+        // Intents
+        private const val ACTION_METHOD_TRACE = "androidx.benchmark.experiments.ACTION_METHOD_TRACE"
+
+        // Extras
+        private const val ACTION = "ACTION"
+        private const val UNIQUE_NAME = "UNIQUE_NAME"
+
+        // Actions
+        private const val METHOD_TRACE_START = "METHOD_TRACE_START"
+        private const val METHOD_TRACE_START_SAMPLED = "METHOD_TRACE_START_SAMPLED"
+        private const val METHOD_TRACE_END = "ACTION_METHOD_TRACE_END"
+
+        // Result codes
+        private const val RESULT_CODE_FAILED = 0
+        private const val RESULT_CODE_SUCCESS = 10
+
+        // Tracing
+        internal fun outputTracePath(context: Context, fileName: String): String {
+            val basePath = if (Build.VERSION.SDK_INT >= 21) {
+                context.getFirstMountedMediaDir()
+            } else {
+                null
+            }
+            val file = File(basePath, fileName)
+            // Delete file if already exists.
+            file.delete()
+            return file.absolutePath
+        }
+
+        // The maximum size of a trace.
+        // Setting this to 1G because that ought to be enough.
+        private const val BUFFER_SIZE_BYTES = 1024 * 1024 * 1024 // bytes
+
+        // The sampling internal. Set to 1/10th of a millisecond.
+        private const val INTERVAL_MICRO_SECONDS = 1000 // micro-seconds
+    }
+}
+
+@RequiresApi(21)
+internal object MethodTracingApi21 {
+    @DoNotInline
+    fun startMethodTracingSampling(
+        tracePath: String,
+        bufferSize: Int,
+        intervalUs: Int
+    ) {
+        Debug.startMethodTracingSampling(tracePath, bufferSize, intervalUs)
+    }
+
+    @DoNotInline
+    @Suppress("DEPRECATION")
+    fun Context.getFirstMountedMediaDir(): File? {
+        // This is identical to the snippet from Outputs.dirUsableByAppAndShell.
+        // This is the only way to write a trace that can be subsequently copied cleanly
+        // by the Shell.
+        return externalMediaDirs.firstOrNull {
+            Environment.getExternalStorageState(it) == Environment.MEDIA_MOUNTED
+        }
+    }
+}
diff --git a/benchmark/benchmark-macro/src/main/java/androidx/benchmark/macro/Macrobenchmark.kt b/benchmark/benchmark-macro/src/main/java/androidx/benchmark/macro/Macrobenchmark.kt
index f1321d2..2582f2a 100644
--- a/benchmark/benchmark-macro/src/main/java/androidx/benchmark/macro/Macrobenchmark.kt
+++ b/benchmark/benchmark-macro/src/main/java/androidx/benchmark/macro/Macrobenchmark.kt
@@ -43,7 +43,6 @@
 import androidx.test.platform.app.InstrumentationRegistry
 import androidx.tracing.trace
 import java.io.File
-import java.lang.StringBuilder
 
 /**
  * Get package ApplicationInfo, throw if not found
@@ -202,7 +201,8 @@
             it.configure(packageName)
         }
         val measurements = PerfettoTraceProcessor.runServer {
-            List(if (Arguments.dryRunMode) 1 else iterations) { iteration ->
+            val runIterations = if (Arguments.dryRunMode) 1 else iterations
+            List(runIterations) { iteration ->
                 // Wake the device to ensure it stays awake with large iteration count
                 userspaceTrace("wake device") {
                     scope.device.wakeUp()
@@ -214,8 +214,9 @@
                 }
 
                 val iterString = iteration.toString().padStart(3, '0')
+                val fileLabel = "${uniqueName}_iter$iterString"
                 val tracePath = perfettoCollector.record(
-                    fileLabel = "${uniqueName}_iter$iterString",
+                    fileLabel = fileLabel,
                     config = PerfettoConfig.Benchmark(
                         /**
                          * Prior to API 24, every package name was joined into a single setprop
@@ -238,6 +239,19 @@
                 ) {
                     try {
                         trace("start metrics") {
+                            if (Arguments.methodTracingOptions.isNotEmpty()) {
+                                // Once you turn on method tracing its okay to ignore
+                                // the costs of true CompilationMode.COLD as the numbers cannot
+                                // be used for anything reasonable.
+
+                                // It would be nice if our metrics infra supported this use case
+                                // better.
+                                MethodTracing.startTracing(
+                                    packageName = packageName,
+                                    options = Arguments.methodTracingOptions,
+                                    uniqueName = fileLabel
+                                )
+                            }
                             metrics.forEach {
                                 it.start()
                             }
@@ -250,6 +264,12 @@
                             metrics.forEach {
                                 it.stop()
                             }
+                            if (Arguments.methodTracingOptions.isNotEmpty()) {
+                                MethodTracing.stopTracing(
+                                    packageName = packageName,
+                                    uniqueName = fileLabel
+                                )
+                            }
                         }
                     }
                 }!!
@@ -289,7 +309,6 @@
                     appendUiState(uiState)
                 }
                 Log.d(TAG, "Iteration $iteration captured $uiState")
-
                 // report just the metrics
                 measurementList
             }.mergeMultiIterResults()
diff --git a/benchmark/benchmark-macro/src/main/java/androidx/benchmark/macro/MethodTracing.kt b/benchmark/benchmark-macro/src/main/java/androidx/benchmark/macro/MethodTracing.kt
new file mode 100644
index 0000000..7a07561
--- /dev/null
+++ b/benchmark/benchmark-macro/src/main/java/androidx/benchmark/macro/MethodTracing.kt
@@ -0,0 +1,89 @@
+package androidx.benchmark.macro
+
+import android.content.Context
+import androidx.annotation.RestrictTo
+import androidx.benchmark.Outputs
+import androidx.benchmark.Shell
+import androidx.benchmark.getFirstMountedMediaDir
+import androidx.benchmark.userspaceTrace
+import androidx.test.platform.app.InstrumentationRegistry
+import java.io.File
+
+private const val OPTION_SAMPLED = "Sampled"
+private const val RECEIVER_NAME = "androidx.benchmark.internal.MethodTracingReceiver"
+
+// Extras
+private const val ACTION = "ACTION"
+private const val UNIQUE_NAME = "UNIQUE_NAME"
+
+// Actions
+private const val METHOD_TRACE_START = "METHOD_TRACE_START"
+private const val METHOD_TRACE_START_SAMPLED = "METHOD_TRACE_START_SAMPLED"
+private const val METHOD_TRACE_END = "ACTION_METHOD_TRACE_END"
+
+@RestrictTo(RestrictTo.Scope.LIBRARY)
+object MethodTracing {
+    private val context: Context = InstrumentationRegistry.getInstrumentation().context
+
+    /**
+     * Starts method tracing on the [packageName].
+     * <br/>
+     * The only [options] supported are `Full` and `Sampled`.
+     */
+    fun startTracing(packageName: String, uniqueName: String, options: String) {
+        val fileName = fileName(uniqueName)
+        // The only options possible are `Full` and `Sampled`
+        val extras = if (options == (OPTION_SAMPLED)) {
+            "-e $ACTION $METHOD_TRACE_START_SAMPLED -e $UNIQUE_NAME $fileName"
+        } else {
+            "-e $ACTION $METHOD_TRACE_START -e $UNIQUE_NAME $fileName"
+        }
+        broadcast(packageName, extras)
+    }
+
+    /**
+     * Stops method tracing and copies the output trace to the `additionalTestOutputDir`.
+     */
+    fun stopTracing(packageName: String, uniqueName: String) {
+        val fileName = fileName(uniqueName)
+        val extras = "-e $ACTION $METHOD_TRACE_END"
+        broadcast(packageName, extras)
+        // The reason we are doing this is to make trace collection possible.
+        // The target APK stores the method traces in the first media mounted directory.
+        // This is because, that happens to be the only directory accessible to the app and shell.
+        // We then subsequently copy it to the actual `Outputs.dirUsableByAppAndShell` from the
+        // perspective of the test APK.
+        val mediaDirParent = context.getFirstMountedMediaDir()?.parentFile
+        val sourcePath = "$mediaDirParent/$packageName/$fileName"
+        // Staging location before we write it again using Outputs.writeFile(...)
+        // :(
+        val stagingPath = "${Outputs.dirUsableByAppAndShell}/_$fileName"
+        Shell.executeScriptSilent("cp '$sourcePath' '$stagingPath'")
+        // Report
+        Outputs.writeFile(fileName, fileName) {
+            val staging = File(stagingPath)
+            // No need to clean up, here because the clean up happens automatically on subsequent
+            // test runs.
+            staging.copyTo(it, overwrite = true)
+        }
+    }
+
+    private fun fileName(uniqueName: String): String {
+        return "${uniqueName}_method.trace"
+    }
+
+    private fun broadcast(targetPackageName: String, extras: String) {
+        userspaceTrace("methodTracingBroadcast") {
+            val action = "androidx.benchmark.experiments.ACTION_METHOD_TRACE"
+            val result =
+                Shell.amBroadcast("-a $action $extras $targetPackageName/$RECEIVER_NAME") ?: 0
+            require(result > 0) {
+                """
+                    Operation with $extras failed (result code $result).
+                    Make sure you add a dependency on:
+                    `project(":benchmark:benchmark-internal")`
+                """.trimIndent()
+            }
+        }
+    }
+}
diff --git a/benchmark/integration-tests/macrobenchmark-target/build.gradle b/benchmark/integration-tests/macrobenchmark-target/build.gradle
index d455803..10a09b7 100644
--- a/benchmark/integration-tests/macrobenchmark-target/build.gradle
+++ b/benchmark/integration-tests/macrobenchmark-target/build.gradle
@@ -35,6 +35,7 @@
     implementation(libs.kotlinStdlib)
     implementation(libs.constraintLayout)
     implementation(project(":appcompat:appcompat"))
+    implementation(project(":benchmark:benchmark-internal"))
     implementation(project(":activity:activity"))
     implementation(project(":profileinstaller:profileinstaller"))
     implementation(project(":recyclerview:recyclerview"))
diff --git a/bluetooth/bluetooth/src/androidTest/java/androidx/bluetooth/BluetoothGattDescriptorTest.kt b/bluetooth/bluetooth/src/androidTest/java/androidx/bluetooth/BluetoothGattDescriptorTest.kt
new file mode 100644
index 0000000..cdee1e0
--- /dev/null
+++ b/bluetooth/bluetooth/src/androidTest/java/androidx/bluetooth/BluetoothGattDescriptorTest.kt
@@ -0,0 +1,58 @@
+/*
+ * Copyright 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package androidx.bluetooth
+
+import android.bluetooth.BluetoothGattDescriptor as FwkBluetoothGattDescriptor
+import java.util.UUID
+import org.junit.Assert
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.junit.runners.JUnit4
+
+@RunWith(JUnit4::class)
+class BluetoothGattDescriptorTest {
+    @Test
+    fun constructorWithFwkInstance() {
+        val permissionMap = mapOf(
+            FwkBluetoothGattDescriptor.PERMISSION_READ to
+                BluetoothGattDescriptor.PERMISSION_READ,
+            FwkBluetoothGattDescriptor.PERMISSION_READ_ENCRYPTED to
+                BluetoothGattDescriptor.PERMISSION_READ_ENCRYPTED,
+            FwkBluetoothGattDescriptor.PERMISSION_READ_ENCRYPTED_MITM to
+                BluetoothGattDescriptor.PERMISSION_READ_ENCRYPTED_MITM,
+            FwkBluetoothGattDescriptor.PERMISSION_WRITE to
+                BluetoothGattDescriptor.PERMISSION_WRITE,
+            FwkBluetoothGattDescriptor.PERMISSION_WRITE_ENCRYPTED to
+                BluetoothGattDescriptor.PERMISSION_WRITE_ENCRYPTED,
+            FwkBluetoothGattDescriptor.PERMISSION_WRITE_ENCRYPTED_MITM to
+                BluetoothGattDescriptor.PERMISSION_WRITE_ENCRYPTED_MITM,
+            FwkBluetoothGattDescriptor.PERMISSION_WRITE_SIGNED to
+                BluetoothGattDescriptor.PERMISSION_WRITE_SIGNED,
+            FwkBluetoothGattDescriptor.PERMISSION_WRITE_SIGNED_MITM to
+                BluetoothGattDescriptor.PERMISSION_WRITE_SIGNED_MITM
+        )
+
+        permissionMap.forEach {
+            val descUuid = UUID.randomUUID()
+            val fwkGattDescriptor = FwkBluetoothGattDescriptor(descUuid, it.key)
+            val gattDescriptor = BluetoothGattDescriptor(fwkGattDescriptor)
+
+            Assert.assertEquals(fwkGattDescriptor.uuid, gattDescriptor.uuid)
+            Assert.assertEquals(it.value, gattDescriptor.permissions)
+        }
+    }
+}
\ No newline at end of file
diff --git a/bluetooth/bluetooth/src/main/java/androidx/bluetooth/BluetoothGattDescriptor.kt b/bluetooth/bluetooth/src/main/java/androidx/bluetooth/BluetoothGattDescriptor.kt
new file mode 100644
index 0000000..97d123a
--- /dev/null
+++ b/bluetooth/bluetooth/src/main/java/androidx/bluetooth/BluetoothGattDescriptor.kt
@@ -0,0 +1,61 @@
+/*
+ * Copyright 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package androidx.bluetooth
+
+import android.bluetooth.BluetoothGattDescriptor as FwkBluetoothGattDescriptor
+import androidx.annotation.RestrictTo
+import java.util.UUID
+
+/**
+ * Represents a Bluetooth GATT characteristic descriptor
+ *
+ * GATT descriptors contain additional information and attributes of a GATT characteristic,
+ * [BluetoothGattCharacteristic]. They can be used to describe the characteristic's features or
+ * to control certain behaviours of the characteristic.
+ */
+@RestrictTo(RestrictTo.Scope.LIBRARY)
+class BluetoothGattDescriptor internal constructor(
+    internal var fwkDescriptor: FwkBluetoothGattDescriptor
+) {
+    companion object {
+        const val PERMISSION_READ: Int = FwkBluetoothGattDescriptor.PERMISSION_READ
+        const val PERMISSION_READ_ENCRYPTED: Int =
+            FwkBluetoothGattDescriptor.PERMISSION_READ_ENCRYPTED
+        const val PERMISSION_READ_ENCRYPTED_MITM: Int =
+            FwkBluetoothGattDescriptor.PERMISSION_READ_ENCRYPTED_MITM
+        const val PERMISSION_WRITE: Int = FwkBluetoothGattDescriptor.PERMISSION_WRITE
+        const val PERMISSION_WRITE_ENCRYPTED: Int =
+            FwkBluetoothGattDescriptor.PERMISSION_WRITE_ENCRYPTED
+        const val PERMISSION_WRITE_ENCRYPTED_MITM: Int =
+            FwkBluetoothGattDescriptor.PERMISSION_WRITE_ENCRYPTED_MITM
+        const val PERMISSION_WRITE_SIGNED: Int = FwkBluetoothGattDescriptor.PERMISSION_WRITE_SIGNED
+        const val PERMISSION_WRITE_SIGNED_MITM: Int =
+            FwkBluetoothGattDescriptor.PERMISSION_WRITE_SIGNED_MITM
+    }
+
+    /**
+     * The UUID of the descriptor.
+     */
+    val uuid: UUID
+        get() = fwkDescriptor.uuid
+
+    /**
+     * The permissions for the descriptor.
+     */
+    val permissions: Int
+        get() = fwkDescriptor.permissions
+}
\ No newline at end of file
diff --git a/buildSrc-tests/src/test/kotlin/androidx/build/LibraryVersionsServiceTest.kt b/buildSrc-tests/src/test/kotlin/androidx/build/LibraryVersionsServiceTest.kt
index 484ecac..75b061a 100644
--- a/buildSrc-tests/src/test/kotlin/androidx/build/LibraryVersionsServiceTest.kt
+++ b/buildSrc-tests/src/test/kotlin/androidx/build/LibraryVersionsServiceTest.kt
@@ -78,35 +78,6 @@
     }
 
     @Test
-    fun withMultiplatformVersion() {
-        val toml = """
-            [versions]
-            V1 = "1.2.3"
-            V1_KMP = "1.2.3-dev05"
-            [groups]
-            G1 = { group = "g.g1", atomicGroupVersion = "versions.V1", multiplatformGroupVersion = "versions.V1_KMP"}
-        """.trimIndent()
-        val dontUseKmpVersions = createLibraryVersionsService(toml)
-        assertThat(
-            dontUseKmpVersions.libraryGroups["G1"]
-        ).isEqualTo(
-            LibraryGroup(
-                group = "g.g1", atomicGroupVersion = Version("1.2.3")
-            )
-        )
-
-        val useKmpVersions =
-            createLibraryVersionsService(toml, useMultiplatformGroupVersions = true)
-        assertThat(
-            useKmpVersions.libraryGroups["G1"]
-        ).isEqualTo(
-            LibraryGroup(
-                group = "g.g1", atomicGroupVersion = Version("1.2.3-dev05")
-            )
-        )
-    }
-
-    @Test
     fun customComposeVersions() {
         val toml = """
             [versions]
@@ -175,68 +146,6 @@
     }
 
     @Test
-    fun missingVersionReference_multiplatform() {
-        val service = createLibraryVersionsService(
-            """
-            [versions]
-            V1 = "1.2.3"
-            [groups]
-            G1 = { group = "g.g1", atomicGroupVersion = "versions.V1", multiplatformGroupVersion = "versions.doesNotExist2" }
-        """.trimIndent()
-        )
-        val result = runCatching {
-            service.libraryGroups["G1"]
-        }
-        assertThat(
-            result.exceptionOrNull()
-        ).hasMessageThat().contains(
-            "Group entry g.g1 specifies doesNotExist2, but such version doesn't exist"
-        )
-    }
-
-    @Test
-    fun malformedVersionReference_multiplatform() {
-        val service = createLibraryVersionsService(
-            """
-            [versions]
-            V1 = "1.2.3"
-            [groups]
-            G1 = { group = "g.g1", atomicGroupVersion = "versions.V1", multiplatformGroupVersion = "V1" }
-        """.trimIndent()
-        )
-        val result = runCatching {
-            service.libraryGroups["G1"]
-        }
-        assertThat(
-            result.exceptionOrNull()
-        ).hasMessageThat().contains(
-            "Group entry multiplatformGroupVersion is expected to start with versions"
-        )
-    }
-
-    @Test
-    fun atomicMultiplatformGroupWithoutAtomicGroup() {
-        val service = createLibraryVersionsService(
-            """
-            [versions]
-            V1 = "1.2.3"
-            [groups]
-            G1 = { group = "g.g1", multiplatformGroupVersion = "versions.V1" }
-            """.trimIndent()
-        )
-        val result = runCatching {
-            service.libraryGroups["G1"]
-        }
-        assertThat(
-            result.exceptionOrNull()
-        ).hasMessageThat().contains(
-            """
-            Cannot specify multiplatformGroupVersion for G1 without specifying an atomicGroupVersion
-            """.trimIndent()
-        )
-    }
-
-    @Test
     fun overrideInclude() {
         val service = createLibraryVersionsService(
             """
@@ -273,7 +182,8 @@
         assertThrows<Exception> {
             service.libraryGroupsByGroupId["g.g1"]
         }.hasMessageThat().contains(
-            "Duplicate library group g.g1 defined in G2 does not set overrideInclude. Declarations beyond the first can only have an effect if they set overrideInclude"
+            "Duplicate library group g.g1 defined in G2 does not set overrideInclude. " +
+                "Declarations beyond the first can only have an effect if they set overrideInclude"
         )
     }
 
@@ -298,118 +208,6 @@
         )
     }
 
-    @Test
-    fun androidxExtension_noAtomicGroup() {
-        runAndroidExtensionTest(
-            projectPath = "myGroup:project1",
-            tomlFile = """
-                [versions]
-                [groups]
-                G1 = { group = "androidx.myGroup" }
-            """.trimIndent(),
-            validateWithKmp = { extension ->
-                extension.mavenVersion = Version("1.0.0")
-                extension.mavenMultiplatformVersion = Version("1.0.0-dev01")
-                assertThat(
-                    extension.mavenGroup
-                ).isEqualTo(
-                    LibraryGroup("androidx.myGroup", atomicGroupVersion = null)
-                )
-                assertThat(
-                    extension.project.version
-                ).isEqualTo(Version("1.0.0-dev01"))
-                extension.validateMavenVersion()
-            },
-            validateWithoutKmp = { extension ->
-                extension.mavenVersion = Version("1.0.0")
-                extension.mavenMultiplatformVersion = Version("1.0.0-dev01")
-                assertThat(
-                    extension.mavenGroup
-                ).isEqualTo(
-                    LibraryGroup("androidx.myGroup", atomicGroupVersion = null)
-                )
-                assertThat(
-                    extension.project.version
-                ).isEqualTo(Version("1.0.0"))
-                extension.validateMavenVersion()
-            }
-        )
-    }
-
-    @Test
-    fun androidxExtension_noAtomicGroup_setKmpVersionFirst() {
-        runAndroidExtensionTest(
-            projectPath = "myGroup:project1",
-            tomlFile = """
-                [versions]
-                [groups]
-                G1 = { group = "androidx.myGroup" }
-            """.trimIndent(),
-            validateWithKmp = { extension ->
-                extension.mavenMultiplatformVersion = Version("1.0.0-dev01")
-                extension.mavenVersion = Version("1.0.0")
-                assertThat(
-                    extension.mavenGroup
-                ).isEqualTo(
-                    LibraryGroup("androidx.myGroup", atomicGroupVersion = null)
-                )
-                assertThat(
-                    extension.project.version
-                ).isEqualTo(Version("1.0.0-dev01"))
-                extension.validateMavenVersion()
-            },
-            validateWithoutKmp = { extension ->
-                extension.mavenMultiplatformVersion = Version("1.0.0-dev01")
-                extension.mavenVersion = Version("1.0.0")
-                assertThat(
-                    extension.mavenGroup
-                ).isEqualTo(
-                    LibraryGroup("androidx.myGroup", atomicGroupVersion = null)
-                )
-                assertThat(
-                    extension.project.version
-                ).isEqualTo(Version("1.0.0"))
-                extension.validateMavenVersion()
-            }
-        )
-    }
-
-    @Test
-    fun androidxExtension_withAtomicGroup() {
-        runAndroidExtensionTest(
-            projectPath = "myGroup:project1",
-            tomlFile = """
-                [versions]
-                V1 = "1.0.0"
-                V1_KMP = "1.0.0-dev01"
-                [groups]
-                G1 = { group = "androidx.myGroup", atomicGroupVersion = "versions.V1", multiplatformGroupVersion = "versions.V1_KMP" }
-            """.trimIndent(),
-            validateWithKmp = { extension ->
-                assertThat(
-                    extension.mavenGroup
-                ).isEqualTo(
-                    LibraryGroup("androidx.myGroup", atomicGroupVersion = Version("1.0.0-dev01"))
-                )
-                assertThat(
-                    extension.project.version
-                ).isEqualTo(Version("1.0.0-dev01"))
-                extension.validateMavenVersion()
-            },
-            validateWithoutKmp = { extension ->
-                assertThat(
-                    extension.mavenGroup
-                ).isEqualTo(
-                    LibraryGroup("androidx.myGroup", atomicGroupVersion = Version("1.0.0"))
-                )
-                assertThat(
-                    extension.project.version
-                ).isEqualTo(Version("1.0.0"))
-                extension.validateMavenVersion()
-            }
-        )
-    }
-
     private fun runAndroidExtensionTest(
         projectPath: String,
         tomlFile: String,
@@ -430,7 +228,6 @@
             createLibraryVersionsService(
                 tomlFileContents = tomlFile,
                 project = rootProject,
-                useMultiplatformGroupVersions = useKmpVersions
             )
             // needed for AndroidXExtension initialization
             rootProject.setSupportRootFolder(rootProjectDir)
@@ -450,7 +247,6 @@
         tomlFileName: String = "libraryversions.toml",
         composeCustomVersion: String? = null,
         composeCustomGroup: String? = null,
-        useMultiplatformGroupVersions: Boolean = false,
         project: Project = ProjectBuilder.builder().withProjectDir(tempDir.newFolder()).build()
     ): LibraryVersionsService {
         val serviceProvider = project.gradle.sharedServices.registerIfAbsent(
@@ -466,9 +262,6 @@
             spec.parameters.composeCustomGroup = project.provider {
                 composeCustomGroup
             }
-            spec.parameters.useMultiplatformGroupVersions = project.provider {
-                useMultiplatformGroupVersions
-            }
         }
         return serviceProvider.get()
     }
diff --git a/buildSrc/private/src/main/kotlin/androidx/build/AndroidXExtension.kt b/buildSrc/private/src/main/kotlin/androidx/build/AndroidXExtension.kt
index 242b964..f0b5bb6 100644
--- a/buildSrc/private/src/main/kotlin/androidx/build/AndroidXExtension.kt
+++ b/buildSrc/private/src/main/kotlin/androidx/build/AndroidXExtension.kt
@@ -70,9 +70,6 @@
             spec.parameters.tomlFileContents = toml
             spec.parameters.composeCustomVersion = composeCustomVersion
             spec.parameters.composeCustomGroup = composeCustomGroup
-            spec.parameters.useMultiplatformGroupVersions = project.provider {
-                Multiplatform.isKotlinNativeEnabled(project)
-            }
         }.get()
         AllLibraryGroups = versionService.libraryGroups.values.toList()
         LibraryVersions = versionService.libraryVersions
@@ -101,32 +98,12 @@
      * Maven version of the library.
      *
      * Note that, setting this is an error if the library group sets an atomic version.
-     * If the build is a multiplatform build, this value will be overridden by
-     * the [mavenMultiplatformVersion] property when it is provided.
-     *
-     * @see mavenMultiplatformVersion
      */
     var mavenVersion: Version? = null
         set(value) {
             field = value
             chooseProjectVersion()
         }
-        get() = if (versionService.useMultiplatformGroupVersions) {
-            mavenMultiplatformVersion ?: field
-        } else {
-            field
-        }
-
-    /**
-     * If set, this will override the [mavenVersion] property in multiplatform builds.
-     *
-     * @see mavenVersion
-     */
-    var mavenMultiplatformVersion: Version? = null
-        set(value) {
-            field = value
-            chooseProjectVersion()
-        }
 
     internal var projectDirectlySpecifiesMavenVersion: Boolean = false
 
@@ -176,12 +153,10 @@
         explanationBuilder: MutableList<String>? = null
     ): LibraryGroup? {
         val overridden = overrideLibraryGroupsByProjectPath.get(projectPath)
-        if (explanationBuilder != null) {
-            explanationBuilder.add(
-                "Library group (in libraryversions.toml) having" +
+        explanationBuilder?.add(
+            "Library group (in libraryversions.toml) having" +
                 " overrideInclude=[\"$projectPath\"] is $overridden"
-            )
-        }
+        )
         if (overridden != null)
             return overridden
 
@@ -206,8 +181,7 @@
         val parentPath = substringBeforeLastColon(projectPath)
 
         if (parentPath == "") {
-            if (explanationBuilder != null)
-                explanationBuilder.add("Parent path for $projectPath is empty")
+            explanationBuilder?.add("Parent path for $projectPath is empty")
             return null
         }
         // convert parent project path to groupId
@@ -218,12 +192,10 @@
         }
 
         // get the library group having that text
-        val result = libraryGroupsByGroupId.get(groupIdText)
-        if (explanationBuilder != null) {
-            explanationBuilder.add(
-                "Library group (in libraryversions.toml) having group=\"$groupIdText\" is $result"
-            )
-        }
+        val result = libraryGroupsByGroupId[groupIdText]
+        explanationBuilder?.add(
+            "Library group (in libraryversions.toml) having group=\"$groupIdText\" is $result"
+        )
         return result
     }
 
diff --git a/buildSrc/private/src/main/kotlin/androidx/build/AndroidXImplPlugin.kt b/buildSrc/private/src/main/kotlin/androidx/build/AndroidXImplPlugin.kt
index bb7940d..f4339cd 100644
--- a/buildSrc/private/src/main/kotlin/androidx/build/AndroidXImplPlugin.kt
+++ b/buildSrc/private/src/main/kotlin/androidx/build/AndroidXImplPlugin.kt
@@ -40,8 +40,6 @@
 import androidx.build.testConfiguration.addAppApkToTestConfigGeneration
 import androidx.build.testConfiguration.configureTestConfigGeneration
 import com.android.build.api.artifact.SingleArtifact
-import com.android.build.api.dsl.ManagedVirtualDevice
-import com.android.build.api.dsl.TestOptions
 import com.android.build.api.variant.ApplicationAndroidComponentsExtension
 import com.android.build.api.variant.HasAndroidTest
 import com.android.build.api.variant.LibraryAndroidComponentsExtension
@@ -100,8 +98,9 @@
  * This plugin reacts to other plugins being added and adds required and optional functionality.
  */
 
-class AndroidXImplPlugin @Inject constructor(val componentFactory: SoftwareComponentFactory) :
-    Plugin<Project> {
+class AndroidXImplPlugin @Inject constructor(
+    private val componentFactory: SoftwareComponentFactory
+) : Plugin<Project> {
     override fun apply(project: Project) {
         if (project.isRoot)
             throw Exception("Root project should use AndroidXRootImplPlugin instead")
@@ -333,7 +332,6 @@
         }
     }
 
-    @Suppress("UnstableApiUsage") // AGP DSL APIs
     private fun configureWithAppPlugin(project: Project, androidXExtension: AndroidXExtension) {
         project.extensions.getByType<AppExtension>().apply {
             configureAndroidBaseOptions(project, androidXExtension)
@@ -374,6 +372,7 @@
         excludeVersionFilesFromTestApks()
     }
 
+    @Suppress("UnstableApiUsage") // usage of experimentalProperties
     private fun Variant.artRewritingWorkaround() {
         // b/279234807
         experimentalProperties.put(
@@ -404,7 +403,7 @@
         }
     }
 
-    fun Project.configureKotlinStdlibVersion() {
+    private fun Project.configureKotlinStdlibVersion() {
         project.configurations.all { configuration ->
             configuration.resolutionStrategy { strategy ->
                 strategy.eachDependency { details ->
@@ -418,7 +417,7 @@
         }
     }
 
-    @Suppress("UnstableApiUsage", "DEPRECATION") // AGP DSL APIs
+    @Suppress("DEPRECATION") // AGP DSL APIs
     private fun configureWithLibraryPlugin(
         project: Project,
         androidXExtension: AndroidXExtension
@@ -600,25 +599,6 @@
         }
     }
 
-    @Suppress("UnstableApiUsage") // Usage of ManagedVirtualDevice
-    private fun TestOptions.configureVirtualDevices() {
-        managedDevices.devices.register<ManagedVirtualDevice>("pixel2api29") {
-            device = "Pixel 2"
-            apiLevel = 29
-            systemImageSource = "aosp"
-        }
-        managedDevices.devices.register<ManagedVirtualDevice>("pixel2api30") {
-            device = "Pixel 2"
-            apiLevel = 30
-            systemImageSource = "aosp"
-        }
-        managedDevices.devices.register<ManagedVirtualDevice>("pixel2api31") {
-            device = "Pixel 2"
-            apiLevel = 31
-            systemImageSource = "aosp"
-        }
-    }
-
     private fun BaseExtension.configureAndroidBaseOptions(
         project: Project,
         androidXExtension: AndroidXExtension
@@ -647,7 +627,6 @@
             // Robolectric 1.7 increased heap size requirements, see b/207169653.
             task.maxHeapSize = "3g"
         }
-        testOptions.configureVirtualDevices()
 
         // Include resources in Robolectric tests as a workaround for b/184641296 and
         // ensure the build directory exists as a workaround for b/187970292.
@@ -869,13 +848,9 @@
             }
 
             // make sure that the project has a group
-            val projectGroup = extension.mavenGroup
-            if (projectGroup == null)
-                return@afterEvaluate
+            val projectGroup = extension.mavenGroup ?: return@afterEvaluate
             // make sure that this group is configured to use a single version
-            val requiredVersion = projectGroup.atomicGroupVersion
-            if (requiredVersion == null)
-                return@afterEvaluate
+            projectGroup.atomicGroupVersion ?: return@afterEvaluate
 
             // We don't want to emit the same constraint into our .module file more than once,
             // and we don't want to try to apply a constraint to a configuration that doesn't accept them,
diff --git a/buildSrc/private/src/main/kotlin/androidx/build/AndroidXMultiplatformExtension.kt b/buildSrc/private/src/main/kotlin/androidx/build/AndroidXMultiplatformExtension.kt
index db8882a..417e2d5 100644
--- a/buildSrc/private/src/main/kotlin/androidx/build/AndroidXMultiplatformExtension.kt
+++ b/buildSrc/private/src/main/kotlin/androidx/build/AndroidXMultiplatformExtension.kt
@@ -20,6 +20,7 @@
 import org.gradle.api.Action
 import org.gradle.api.NamedDomainObjectCollection
 import org.gradle.api.Project
+import org.gradle.api.provider.Provider
 import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension
 import org.jetbrains.kotlin.gradle.plugin.KotlinMultiplatformPluginWrapper
 import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType
@@ -220,6 +221,6 @@
  * Returns a provider that is set to true if and only if this project has at least 1 kotlin native
  * target (mac, linux, ios).
  */
-internal fun Project.hasKotlinNativeTarget() = project.provider {
+internal fun Project.hasKotlinNativeTarget(): Provider<Boolean> = project.provider {
     project.extensions.getByType(AndroidXMultiplatformExtension::class.java).hasNativeTarget()
-}
\ No newline at end of file
+}
diff --git a/buildSrc/private/src/main/kotlin/androidx/build/AndroidXRootImplPlugin.kt b/buildSrc/private/src/main/kotlin/androidx/build/AndroidXRootImplPlugin.kt
index 1a36ae6..fd28686 100644
--- a/buildSrc/private/src/main/kotlin/androidx/build/AndroidXRootImplPlugin.kt
+++ b/buildSrc/private/src/main/kotlin/androidx/build/AndroidXRootImplPlugin.kt
@@ -47,7 +47,6 @@
 import org.gradle.kotlin.dsl.extra
 
 abstract class AndroidXRootImplPlugin : Plugin<Project> {
-    @Suppress("UnstableApiUsage")
     @get:javax.inject.Inject
     abstract val registry: BuildEventsListenerRegistry
 
diff --git a/buildSrc/private/src/main/kotlin/androidx/build/ErrorProneConfiguration.kt b/buildSrc/private/src/main/kotlin/androidx/build/ErrorProneConfiguration.kt
index 68fb77c..3ccfbcb 100644
--- a/buildSrc/private/src/main/kotlin/androidx/build/ErrorProneConfiguration.kt
+++ b/buildSrc/private/src/main/kotlin/androidx/build/ErrorProneConfiguration.kt
@@ -71,6 +71,7 @@
     var annotationArgs: MapProperty<String, String>? = null
     val extension = extensions.findByType(AndroidComponentsExtension::class.java)
     extension?.onVariants { variant ->
+        @Suppress("UnstableApiUsage")
         annotationArgs = variant.javaCompilation.annotationProcessor.arguments
     }
     val errorProneConfiguration = createErrorProneConfiguration()
diff --git a/buildSrc/private/src/main/kotlin/androidx/build/Ktlint.kt b/buildSrc/private/src/main/kotlin/androidx/build/Ktlint.kt
index d1319ad..e7c6e12 100644
--- a/buildSrc/private/src/main/kotlin/androidx/build/Ktlint.kt
+++ b/buildSrc/private/src/main/kotlin/androidx/build/Ktlint.kt
@@ -178,7 +178,7 @@
 
         overrideDirectory?.let {
             val subdirectories = overrideSubdirectories
-            if (subdirectories == null || subdirectories.isEmpty()) return@let
+            if (subdirectories.isNullOrEmpty()) return@let
             subdirectories.map { arguments.add("$it/$InputDir/$IncludedFiles") }
         } ?: arguments.add("$InputDir/$IncludedFiles")
 
diff --git a/buildSrc/private/src/main/kotlin/androidx/build/LibraryVersionsService.kt b/buildSrc/private/src/main/kotlin/androidx/build/LibraryVersionsService.kt
index e0b4aa8..d886eca 100644
--- a/buildSrc/private/src/main/kotlin/androidx/build/LibraryVersionsService.kt
+++ b/buildSrc/private/src/main/kotlin/androidx/build/LibraryVersionsService.kt
@@ -33,23 +33,19 @@
         var tomlFileContents: Provider<String>
         var composeCustomVersion: Provider<String>
         var composeCustomGroup: Provider<String>
-        var useMultiplatformGroupVersions: Provider<Boolean>
     }
 
     private val parsedTomlFile: TomlParseResult by lazy {
         val result = Toml.parse(parameters.tomlFileContents.get())
         if (result.hasErrors()) {
-            val issues = result.errors().map {
+            val issues = result.errors().joinToString(separator = "\n") {
                 "${parameters.tomlFileName}:${it.position()}: ${it.message}"
-            }.joinToString(separator = "\n")
+            }
             throw Exception("${parameters.tomlFileName} file has issues.\n$issues")
         }
         result
     }
 
-    val useMultiplatformGroupVersions
-        get() = parameters.useMultiplatformGroupVersions.get()
-
     private fun getTable(key: String): TomlTable {
         return parsedTomlFile.getTable(key)
             ?: throw GradleException("Library versions toml file is missing [$key] table")
@@ -78,7 +74,7 @@
     val libraryGroups: Map<String, LibraryGroup> by lazy {
         val result = mutableMapOf<String, LibraryGroup>()
         for (association in libraryGroupAssociations) {
-          result.put(association.declarationName, association.libraryGroup)
+            result[association.declarationName] = association.libraryGroup
         }
         result
     }
@@ -89,9 +85,9 @@
         for (association in libraryGroupAssociations) {
             // Check for duplicate groups
             val groupId = association.libraryGroup.group
-            val existingAssociation = result.get(groupId)
+            val existingAssociation = result[groupId]
             if (existingAssociation != null) {
-                if (association.overrideIncludeInProjectPaths.size < 1) {
+                if (association.overrideIncludeInProjectPaths.isEmpty()) {
                     throw GradleException(
                         "Duplicate library group $groupId defined in " +
                         "${association.declarationName} does not set overrideInclude. " +
@@ -99,7 +95,7 @@
                         "overrideInclude")
                 }
             } else {
-                result.put(groupId, association.libraryGroup)
+                result[groupId] = association.libraryGroup
             }
         }
         result
@@ -110,7 +106,7 @@
        val result = mutableMapOf<String, LibraryGroup>()
        for (association in libraryGroupAssociations) {
            for (overridePath in association.overrideIncludeInProjectPaths) {
-               result.put(overridePath, association.libraryGroup)
+               result[overridePath] = association.libraryGroup
            }
        }
        result
@@ -118,8 +114,6 @@
 
     private val libraryGroupAssociations: List<LibraryGroupAssociation> by lazy {
         val groups = getTable("groups")
-        val useMultiplatformGroupVersion =
-            parameters.useMultiplatformGroupVersions.orElse(false).get()
 
         fun readGroupVersion(groupDefinition: TomlTable, groupName: String, key: String): Version? {
             val versionRef = groupDefinition.getString(key) ?: return null
@@ -154,27 +148,11 @@
                 groupName = groupName,
                 key = AtomicGroupVersion
             )
-            val multiplatformGroupVersion = readGroupVersion(
-                groupDefinition = groupDefinition,
-                groupName = groupName,
-                key = MultiplatformGroupVersion
-            )
-            check(
-                multiplatformGroupVersion == null || atomicGroupVersion != null
-            ) {
-                "Cannot specify $MultiplatformGroupVersion for $name without specifying an " +
-                    AtomicGroupVersion
-            }
-            val groupVersion = when {
-                useMultiplatformGroupVersion -> multiplatformGroupVersion ?: atomicGroupVersion
-                else -> atomicGroupVersion
-            }
-
             val overrideApplyToProjects = (
                 groupDefinition.getArray("overrideInclude")?.toList() ?: listOf()
-            ).map({ it -> it as String })
+            ).map { it as String }
 
-            val group = LibraryGroup(finalGroupName, groupVersion)
+            val group = LibraryGroup(finalGroupName, atomicGroupVersion)
             val association = LibraryGroupAssociation(name, group, overrideApplyToProjects)
             result.add(association)
         }
@@ -194,4 +172,3 @@
 
 private const val VersionReferencePrefix = "versions."
 private const val AtomicGroupVersion = "atomicGroupVersion"
-private const val MultiplatformGroupVersion = "multiplatformGroupVersion"
diff --git a/buildSrc/private/src/main/kotlin/androidx/build/ListAndroidXPropertiesTask.kt b/buildSrc/private/src/main/kotlin/androidx/build/ListAndroidXPropertiesTask.kt
index 11abb36..08bb1d7 100644
--- a/buildSrc/private/src/main/kotlin/androidx/build/ListAndroidXPropertiesTask.kt
+++ b/buildSrc/private/src/main/kotlin/androidx/build/ListAndroidXPropertiesTask.kt
@@ -24,7 +24,7 @@
  * Lists recognized properties whose names start with "androidx"
  */
 @DisableCachingByDefault(because = "Too many inputs to cache, and runs quickly anyway")
-abstract class ListAndroidXPropertiesTask() : DefaultTask() {
+abstract class ListAndroidXPropertiesTask : DefaultTask() {
     init {
         group = "Help"
         description = "Lists AndroidX-specific properties (specifiable via -Pandroidx.*)"
diff --git a/buildSrc/private/src/main/kotlin/androidx/build/ListTaskOutputsTask.kt b/buildSrc/private/src/main/kotlin/androidx/build/ListTaskOutputsTask.kt
index 49a1ff3..27076c2 100644
--- a/buildSrc/private/src/main/kotlin/androidx/build/ListTaskOutputsTask.kt
+++ b/buildSrc/private/src/main/kotlin/androidx/build/ListTaskOutputsTask.kt
@@ -46,7 +46,7 @@
         group = "Help"
         // compute the output text when the taskgraph is ready so that the output text can be
         // saved in the configuration cache and not generate a configuration cache violation
-        project.gradle.taskGraph.whenReady({ outputText.toString() })
+        project.gradle.taskGraph.whenReady { outputText }
     }
 
     fun setOutput(f: File) {
diff --git a/buildSrc/private/src/main/kotlin/androidx/build/PrintProjectCoordinatesTask.kt b/buildSrc/private/src/main/kotlin/androidx/build/PrintProjectCoordinatesTask.kt
index 91ea675..03d56e2 100644
--- a/buildSrc/private/src/main/kotlin/androidx/build/PrintProjectCoordinatesTask.kt
+++ b/buildSrc/private/src/main/kotlin/androidx/build/PrintProjectCoordinatesTask.kt
@@ -54,10 +54,10 @@
     var projectPath: String? = null
 
     @TaskAction
-    public fun printInformation() {
+    fun printInformation() {
         val projectGroup = projectGroup
         val versionFrom =
-            if (projectGroup == null || projectGroup.atomicGroupVersion == null) {
+            if (projectGroup?.atomicGroupVersion == null) {
                 "build.gradle: mavenVersion"
             } else {
                 "group.atomicGroupVersion"
@@ -70,9 +70,9 @@
         // put each component of the explanation on its own line
         groupExplanation.forEachIndexed { i, component ->
             if (i == 0)
-                lines.add(listOf("group   : ${projectGroup?.group} ", "$component"))
+                lines.add(listOf("group   : ${projectGroup?.group} ", component))
             else
-                lines.add(listOf("", "$component"))
+                lines.add(listOf("", component))
         }
         lines.add(listOf("artifact: $projectName ", "(from project name)"))
         lines.add(listOf("version : $version ", "(from $versionFrom)"))
@@ -88,36 +88,32 @@
 
     private fun formatRow(line: List<String>, columnSizes: List<Int>): String {
         var result = ""
-        for (i in 0..(line.size - 1)) {
-            val word = line.get(i)
-            val columnSize = columnSizes.get(i)
+        for (i in line.indices) {
+            val word = line[i]
+            val columnSize = columnSizes[i]
             // only have to pad columns before the last column
-            if (i != line.size - 1)
-                result += word.padEnd(columnSize)
+            result += if (i != line.size - 1)
+                word.padEnd(columnSize)
             else
-                result += word
+                word
         }
         return result
     }
 
     private fun getColumnSizes(lines: List<List<String>>): List<Int> {
-        var maxLengths = mutableListOf<Int>()
+        val maxLengths = mutableListOf<Int>()
         for (line in lines) {
-            for (i in 0..(line.size - 1)) {
-                val word = line.get(i)
+            for (i in line.indices) {
+                val word = line[i]
                 if (maxLengths.size <= i)
                     maxLengths.add(0)
-                if (maxLengths.get(i) < word.length)
-                    maxLengths.set(i, word.length)
+                if (maxLengths[i] < word.length)
+                    maxLengths[i] = word.length
             }
         }
         return maxLengths
     }
 
-    private fun printRow(prefix: String, suffix: String) {
-        println(formatTableLine(prefix, suffix))
-    }
-
     private fun formatTableLine(prefix: String, suffix: String): String {
         return prefix.padEnd(10) + suffix
     }
diff --git a/buildSrc/private/src/main/kotlin/androidx/build/ProjectParser.kt b/buildSrc/private/src/main/kotlin/androidx/build/ProjectParser.kt
index 9bf82ea..836d7f0 100644
--- a/buildSrc/private/src/main/kotlin/androidx/build/ProjectParser.kt
+++ b/buildSrc/private/src/main/kotlin/androidx/build/ProjectParser.kt
@@ -38,7 +38,7 @@
     private fun parseProject(fileLines: List<String>): ParsedProject {
         var libraryType: String? = null
         var publish: String? = null
-        var specifiesVersion: Boolean = false
+        var specifiesVersion = false
         fileLines.forEach { line ->
             if (libraryType == null)
                 libraryType = line.extractVariableValue(" type = LibraryType.")
diff --git a/buildSrc/private/src/main/kotlin/androidx/build/ProjectResolver.kt b/buildSrc/private/src/main/kotlin/androidx/build/ProjectResolver.kt
index 65f0428..a28ad23 100644
--- a/buildSrc/private/src/main/kotlin/androidx/build/ProjectResolver.kt
+++ b/buildSrc/private/src/main/kotlin/androidx/build/ProjectResolver.kt
@@ -21,7 +21,7 @@
 
 // Resolves the given project, and if it is not found,
 // throws an exception that mentions the active project subset, if any (MAIN, COMPOSE, ...)
-public fun Project.resolveProject(projectSpecification: String): Project {
+fun Project.resolveProject(projectSpecification: String): Project {
     try {
         return project.project(projectSpecification)
     } catch (e: UnknownProjectException) {
diff --git a/buildSrc/private/src/main/kotlin/androidx/build/Release.kt b/buildSrc/private/src/main/kotlin/androidx/build/Release.kt
index d6e9baf..24d1dae 100644
--- a/buildSrc/private/src/main/kotlin/androidx/build/Release.kt
+++ b/buildSrc/private/src/main/kotlin/androidx/build/Release.kt
@@ -244,7 +244,7 @@
             zipTask.dependsOn(verifyInputs)
             zipTask.finalizedBy(verifyOutputs)
             val verifyOutputsTask = verifyOutputs.get()
-            verifyOutputsTask.addFile(zipTask.archiveFile.get().getAsFile())
+            verifyOutputsTask.addFile(zipTask.archiveFile.get().asFile)
         }
     }
 
@@ -371,21 +371,19 @@
     private fun getVerifyProjectZipInputsTask(
         project: Project
     ): TaskProvider<VerifyGMavenZipTask> {
-        val taskProvider = project.tasks.register(
-            "verifyInputs" + PROJECT_ARCHIVE_ZIP_TASK_NAME,
+        return project.tasks.register(
+            "verifyInputs$PROJECT_ARCHIVE_ZIP_TASK_NAME",
             VerifyGMavenZipTask::class.java
         )
-        return taskProvider
     }
 
     private fun getVerifyProjectZipOutputsTask(
         project: Project
     ): TaskProvider<VerifyGMavenZipTask> {
-        val taskProvider = project.tasks.register(
-            "verifyOutputs" + PROJECT_ARCHIVE_ZIP_TASK_NAME,
+        return project.tasks.register(
+            "verifyOutputs$PROJECT_ARCHIVE_ZIP_TASK_NAME",
             VerifyGMavenZipTask::class.java
         )
-        return taskProvider
     }
 }
 
@@ -417,7 +415,7 @@
         val projectSubdir = File("$groupSubdir/${artifact.projectName}")
         val androidxRepoOut = project.getRepositoryDirectory()
         val fromDir = project.file("$androidxRepoOut/$projectSubdir")
-        addFile(File(fromDir, "${artifact.version}"))
+        addFile(File(fromDir, artifact.version))
     }
 
     @TaskAction
@@ -426,7 +424,7 @@
         verifyFiles()
     }
 
-    fun verifySettings() {
+    private fun verifySettings() {
         if (!shouldAddGroupConstraints.get() && !isSnapshotBuild()) {
             throw GradleException(
                 """
diff --git a/buildSrc/private/src/main/kotlin/androidx/build/docs/AndroidXDocsImplPlugin.kt b/buildSrc/private/src/main/kotlin/androidx/build/docs/AndroidXDocsImplPlugin.kt
index 21b7fdd..6470c1b 100644
--- a/buildSrc/private/src/main/kotlin/androidx/build/docs/AndroidXDocsImplPlugin.kt
+++ b/buildSrc/private/src/main/kotlin/androidx/build/docs/AndroidXDocsImplPlugin.kt
@@ -432,7 +432,6 @@
             GenerateMetadataTask::class.java
         ) { task ->
 
-            @Suppress("UnstableApiUsage") // getResolvedArtifacts() is marked @Incubating
             val artifacts = docsConfiguration.incoming.artifacts.resolvedArtifacts
             task.getArtifactIds().set(
                 artifacts.map { result -> result.map { it.id } }
diff --git a/buildSrc/private/src/main/kotlin/androidx/build/metalava/UpdateApiTask.kt b/buildSrc/private/src/main/kotlin/androidx/build/metalava/UpdateApiTask.kt
index b900386..635f7df 100644
--- a/buildSrc/private/src/main/kotlin/androidx/build/metalava/UpdateApiTask.kt
+++ b/buildSrc/private/src/main/kotlin/androidx/build/metalava/UpdateApiTask.kt
@@ -181,7 +181,6 @@
             throw GradleException(message)
         }
         if (source.exists()) {
-            @Suppress("UnstableApiUsage")
             Files.copy(source, dest)
             logger?.lifecycle("Copied $source to $dest")
         } else {
diff --git a/buildSrc/private/src/main/kotlin/androidx/build/testConfiguration/TestSuiteConfiguration.kt b/buildSrc/private/src/main/kotlin/androidx/build/testConfiguration/TestSuiteConfiguration.kt
index 3d4d026..ac5aefff 100644
--- a/buildSrc/private/src/main/kotlin/androidx/build/testConfiguration/TestSuiteConfiguration.kt
+++ b/buildSrc/private/src/main/kotlin/androidx/build/testConfiguration/TestSuiteConfiguration.kt
@@ -14,8 +14,6 @@
  * limitations under the License.
  */
 
-@file:Suppress("UnstableApiUsage") // Incubating AGP APIs
-
 package androidx.build.testConfiguration
 
 import androidx.build.AndroidXExtension
@@ -237,6 +235,7 @@
 
             // Recreate the same configuration existing for test modules to pull the artifact
             // from the application module specified in the deviceTests extension.
+            @Suppress("UnstableApiUsage") // Incubating dependencyFactory APIs
             val configuration = configurations.create("${variant.name}TestedApks") { config ->
                 config.isCanBeResolved = true
                 config.isCanBeConsumed = false
diff --git a/buildSrc/private/src/main/kotlin/androidx/build/uptodatedness/TaskUpToDateValidator.kt b/buildSrc/private/src/main/kotlin/androidx/build/uptodatedness/TaskUpToDateValidator.kt
index 5d3287f..f91049f 100644
--- a/buildSrc/private/src/main/kotlin/androidx/build/uptodatedness/TaskUpToDateValidator.kt
+++ b/buildSrc/private/src/main/kotlin/androidx/build/uptodatedness/TaskUpToDateValidator.kt
@@ -167,7 +167,6 @@
     "androidx.build.license.CheckExternalDependencyLicensesTask_Decorated",
 )
 
-@Suppress("UnstableApiUsage") // usage of BuildService that's incubating
 abstract class TaskUpToDateValidator :
     BuildService<TaskUpToDateValidator.Parameters>, OperationCompletionListener {
     interface Parameters : BuildServiceParameters {
diff --git a/buildSrc/public/src/main/kotlin/androidx/build/SingleFileCopy.kt b/buildSrc/public/src/main/kotlin/androidx/build/SingleFileCopy.kt
index 6064dd2..e2121d7 100644
--- a/buildSrc/public/src/main/kotlin/androidx/build/SingleFileCopy.kt
+++ b/buildSrc/public/src/main/kotlin/androidx/build/SingleFileCopy.kt
@@ -36,7 +36,6 @@
 
     @TaskAction
     fun copyFile() {
-        @Suppress("UnstableApiUsage")
         Files.copy(sourceFile, destinationFile)
     }
 }
diff --git a/camera/camera-camera2-pipe-integration/src/main/java/androidx/camera/camera2/pipe/integration/impl/UseCaseManager.kt b/camera/camera-camera2-pipe-integration/src/main/java/androidx/camera/camera2/pipe/integration/impl/UseCaseManager.kt
index a289f28..a8f3c76 100644
--- a/camera/camera-camera2-pipe-integration/src/main/java/androidx/camera/camera2/pipe/integration/impl/UseCaseManager.kt
+++ b/camera/camera-camera2-pipe-integration/src/main/java/androidx/camera/camera2/pipe/integration/impl/UseCaseManager.kt
@@ -16,6 +16,7 @@
 
 package androidx.camera.camera2.pipe.integration.impl
 
+import android.content.Context
 import android.media.MediaCodec
 import android.os.Build
 import androidx.annotation.GuardedBy
@@ -23,6 +24,8 @@
 import androidx.camera.camera2.pipe.CameraGraph
 import androidx.camera.camera2.pipe.core.Log
 import androidx.camera.camera2.pipe.integration.adapter.CameraStateAdapter
+import androidx.camera.camera2.pipe.integration.adapter.EncoderProfilesProviderAdapter
+import androidx.camera.camera2.pipe.integration.adapter.SupportedSurfaceCombination
 import androidx.camera.camera2.pipe.integration.compat.quirk.CameraQuirks
 import androidx.camera.camera2.pipe.integration.config.CameraConfig
 import androidx.camera.camera2.pipe.integration.config.CameraScope
@@ -32,6 +35,7 @@
 import androidx.camera.camera2.pipe.integration.interop.ExperimentalCamera2Interop
 import androidx.camera.core.UseCase
 import androidx.camera.core.impl.CameraInternal
+import androidx.camera.core.impl.CameraMode
 import androidx.camera.core.impl.DeferrableSurface
 import androidx.camera.core.impl.SessionConfig.ValidatingBuilder
 import javax.inject.Inject
@@ -78,6 +82,7 @@
     private val cameraQuirks: CameraQuirks,
     private val cameraGraphFlags: CameraGraph.Flags,
     private val cameraInternal: Provider<CameraInternal>,
+    context: Context,
     cameraProperties: CameraProperties,
     displayInfoManager: DisplayInfoManager,
 ) {
@@ -99,6 +104,14 @@
         ).build()
     }
 
+    private val supportedSurfaceCombination by lazy {
+        SupportedSurfaceCombination(
+            context,
+            cameraProperties.metadata,
+            EncoderProfilesProviderAdapter(cameraConfig.cameraId.value)
+        )
+    }
+
     @Volatile
     private var _activeComponent: UseCaseCameraComponent? = null
     val camera: UseCaseCamera?
@@ -311,12 +324,13 @@
     @GuardedBy("lock")
     private fun shouldAddRepeatingUseCase(runningUseCases: Set<UseCase>): Boolean {
         val meteringRepeatingEnabled = attachedUseCases.contains(meteringRepeating)
-
-        val coreLibraryUseCases = runningUseCases.filterNot { it is MeteringRepeating }
-        val onlyVideoCapture = coreLibraryUseCases.onlyVideoCapture()
-        val requireMeteringRepeating = coreLibraryUseCases.requireMeteringRepeating()
-
-        return !meteringRepeatingEnabled && (onlyVideoCapture || requireMeteringRepeating)
+        if (!meteringRepeatingEnabled) {
+            val activeSurfaces = runningUseCases.withoutMetering().surfaceCount()
+            return activeSurfaces > 0 && with(attachedUseCases.withoutMetering()) {
+                (onlyVideoCapture() || requireMeteringRepeating()) && supportMeteringCombination()
+            }
+        }
+        return false
     }
 
     @GuardedBy("lock")
@@ -330,12 +344,13 @@
     @GuardedBy("lock")
     private fun shouldRemoveRepeatingUseCase(runningUseCases: Set<UseCase>): Boolean {
         val meteringRepeatingEnabled = runningUseCases.contains(meteringRepeating)
-
-        val coreLibraryUseCases = runningUseCases.filterNot { it is MeteringRepeating }
-        val onlyVideoCapture = coreLibraryUseCases.onlyVideoCapture()
-        val requireMeteringRepeating = coreLibraryUseCases.requireMeteringRepeating()
-
-        return meteringRepeatingEnabled && !onlyVideoCapture && !requireMeteringRepeating
+        if (meteringRepeatingEnabled) {
+            val activeSurfaces = runningUseCases.withoutMetering().surfaceCount()
+            return activeSurfaces == 0 || with(attachedUseCases.withoutMetering()) {
+                !(onlyVideoCapture() || requireMeteringRepeating()) || !supportMeteringCombination()
+            }
+        }
+        return false
     }
 
     @GuardedBy("lock")
@@ -353,6 +368,39 @@
         }
     }
 
+    private fun Collection<UseCase>.supportMeteringCombination(): Boolean {
+        val useCases = this.toMutableList().apply { add(meteringRepeating) }
+        if (meteringRepeating.attachedSurfaceResolution == null) {
+            meteringRepeating.setupSession()
+        }
+        return isCombinationSupported(useCases).also {
+            Log.debug { "Combination of $useCases is supported: $it" }
+        }
+    }
+
+    private fun isCombinationSupported(currentUseCases: Collection<UseCase>): Boolean {
+        val surfaceConfigs = currentUseCases.map { useCase ->
+            // TODO: Test with correct Camera Mode when concurrent mode / ultra high resolution is
+            //  implemented.
+            supportedSurfaceCombination.transformSurfaceConfig(
+                CameraMode.DEFAULT,
+                useCase.imageFormat,
+                useCase.attachedSurfaceResolution!!
+            )
+        }
+
+        return supportedSurfaceCombination.checkSupported(CameraMode.DEFAULT, surfaceConfigs)
+    }
+
+    private fun Collection<UseCase>.surfaceCount(): Int =
+        ValidatingBuilder().let { validatingBuilder ->
+            forEach { useCase -> validatingBuilder.add(useCase.sessionConfig) }
+            return validatingBuilder.build().surfaces.size
+        }
+
+    private fun Collection<UseCase>.withoutMetering(): Collection<UseCase> =
+        filterNot { it is MeteringRepeating }
+
     private fun Collection<UseCase>.requireMeteringRepeating(): Boolean {
         return isNotEmpty() && checkSurfaces { repeatingSurfaces, sessionSurfaces ->
             // There is no repeating UseCases
diff --git a/camera/camera-camera2-pipe-integration/src/test/java/androidx/camera/camera2/pipe/integration/impl/UseCaseManagerTest.kt b/camera/camera-camera2-pipe-integration/src/test/java/androidx/camera/camera2/pipe/integration/impl/UseCaseManagerTest.kt
index d4488e2..b155784 100644
--- a/camera/camera-camera2-pipe-integration/src/test/java/androidx/camera/camera2/pipe/integration/impl/UseCaseManagerTest.kt
+++ b/camera/camera-camera2-pipe-integration/src/test/java/androidx/camera/camera2/pipe/integration/impl/UseCaseManagerTest.kt
@@ -16,6 +16,7 @@
 
 package androidx.camera.camera2.pipe.integration.impl
 
+import android.hardware.camera2.CameraCharacteristics
 import android.os.Build
 import android.util.Size
 import androidx.camera.camera2.pipe.CameraGraph
@@ -52,10 +53,15 @@
 import org.junit.Test
 import org.junit.runner.RunWith
 import org.robolectric.annotation.Config
+import org.robolectric.shadows.StreamConfigurationMapBuilder
 
 @RunWith(RobolectricCameraPipeTestRunner::class)
 @Config(minSdk = Build.VERSION_CODES.LOLLIPOP)
 class UseCaseManagerTest {
+    private val supportedSizes = arrayOf(Size(640, 480))
+    private val streamConfigurationMap = StreamConfigurationMapBuilder.newBuilder().apply {
+        supportedSizes.forEach(::addOutputSize)
+    }.build()
     private val useCaseManagerList = mutableListOf<UseCaseManager>()
     private val useCaseList = mutableListOf<UseCase>()
     private val useCaseThreads by lazy {
@@ -173,7 +179,7 @@
         useCaseManager.activate(imageCapture)
 
         // Act
-        useCaseManager.deactivate(preview)
+        useCaseManager.detach(listOf(preview))
 
         // Assert
         val enabledUseCaseClasses = useCaseManager.camera?.runningUseCases?.map {
@@ -201,7 +207,7 @@
         useCaseCameraBuilder.buildInvocationCount = 0
 
         // Act
-        useCaseManager.deactivate(preview)
+        useCaseManager.detach(listOf(preview))
 
         // Assert
         assertThat(useCaseCameraBuilder.buildInvocationCount).isEqualTo(1)
@@ -248,7 +254,9 @@
         // Arrange
         val useCaseManager = createUseCaseManager()
         val imageCapture = createImageCapture()
-        val useCase = FakeUseCase()
+        val useCase = FakeUseCase().also {
+            it.simulateActivation()
+        }
 
         // Act
         useCaseManager.activate(imageCapture)
@@ -313,12 +321,23 @@
         useCaseCameraComponentBuilder: FakeUseCaseCameraComponentBuilder =
             FakeUseCaseCameraComponentBuilder(),
     ): UseCaseManager {
+        val cameraId = CameraId("0")
+        val characteristicsMap: Map<CameraCharacteristics.Key<*>, Any?> = mapOf(
+            CameraCharacteristics.SCALER_STREAM_CONFIGURATION_MAP to streamConfigurationMap,
+        )
+        val fakeCameraMetadata = FakeCameraMetadata(
+            cameraId = cameraId,
+            characteristics = characteristicsMap
+        )
         val fakeCamera = FakeCamera()
         return UseCaseManager(
-            cameraConfig = CameraConfig(CameraId("0")),
+            cameraConfig = CameraConfig(cameraId),
             builder = useCaseCameraComponentBuilder,
             controls = controls as java.util.Set<UseCaseCameraControl>,
-            cameraProperties = FakeCameraProperties(),
+            cameraProperties = FakeCameraProperties(
+                metadata = fakeCameraMetadata,
+                cameraId = cameraId,
+            ),
             camera2CameraControl = Camera2CameraControl.create(
                 FakeCamera2CameraControlCompat(),
                 useCaseThreads,
@@ -328,10 +347,11 @@
             cameraGraphFlags = CameraGraph.Flags(),
             cameraInternal = { fakeCamera },
             cameraQuirks = CameraQuirks(
-                FakeCameraMetadata(),
-                StreamConfigurationMapCompat(null, OutputSizesCorrector(FakeCameraMetadata(), null))
+                fakeCameraMetadata,
+                StreamConfigurationMapCompat(null, OutputSizesCorrector(fakeCameraMetadata, null))
             ),
             displayInfoManager = DisplayInfoManager(ApplicationProvider.getApplicationContext()),
+            context = ApplicationProvider.getApplicationContext(),
         ).also {
             useCaseManagerList.add(it)
         }
@@ -362,6 +382,6 @@
 
     private fun UseCase.simulateActivation() {
         bindToCamera(FakeCamera("0"), null, null)
-        updateSuggestedStreamSpec(StreamSpec.builder(Size(640, 480)).build())
+        updateSuggestedStreamSpec(StreamSpec.builder(supportedSizes[0]).build())
     }
 }
diff --git a/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/internal/Camera2CameraImplTest.java b/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/internal/Camera2CameraImplTest.java
index 37f5b60..e1b1fa5 100644
--- a/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/internal/Camera2CameraImplTest.java
+++ b/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/internal/Camera2CameraImplTest.java
@@ -22,7 +22,7 @@
 import static androidx.camera.core.CameraSelector.DEFAULT_BACK_CAMERA;
 import static androidx.camera.core.concurrent.CameraCoordinator.CAMERA_OPERATING_MODE_CONCURRENT;
 import static androidx.camera.core.concurrent.CameraCoordinator.CAMERA_OPERATING_MODE_SINGLE;
-import static androidx.camera.core.resolutionselector.ResolutionSelector.ALLOWED_RESOLUTIONS_SLOW;
+import static androidx.camera.core.resolutionselector.ResolutionSelector.PREFER_HIGHER_RESOLUTION_OVER_CAPTURE_RATE;
 
 import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.common.base.Preconditions.checkState;
@@ -1077,7 +1077,7 @@
         // Creates a test use case with high resolution enabled.
         ResolutionSelector highResolutionSelector =
                 new ResolutionSelector.Builder().setAllowedResolutionMode(
-                        ALLOWED_RESOLUTIONS_SLOW).build();
+                        PREFER_HIGHER_RESOLUTION_OVER_CAPTURE_RATE).build();
         FakeUseCaseConfig.Builder configBuilder =
                 new FakeUseCaseConfig.Builder().setSessionOptionUnpacker(
                         new Camera2SessionOptionUnpacker()).setTargetName(
diff --git a/camera/camera-core/api/current.txt b/camera/camera-core/api/current.txt
index f235ce6..bf6443f 100644
--- a/camera/camera-core/api/current.txt
+++ b/camera/camera-core/api/current.txt
@@ -560,8 +560,8 @@
     method public androidx.camera.core.resolutionselector.AspectRatioStrategy getAspectRatioStrategy();
     method public androidx.camera.core.resolutionselector.ResolutionFilter? getResolutionFilter();
     method public androidx.camera.core.resolutionselector.ResolutionStrategy? getResolutionStrategy();
-    field public static final int ALLOWED_RESOLUTIONS_NORMAL = 0; // 0x0
-    field public static final int ALLOWED_RESOLUTIONS_SLOW = 1; // 0x1
+    field public static final int PREFER_CAPTURE_RATE_OVER_HIGHER_RESOLUTION = 0; // 0x0
+    field public static final int PREFER_HIGHER_RESOLUTION_OVER_CAPTURE_RATE = 1; // 0x1
   }
 
   public static final class ResolutionSelector.Builder {
diff --git a/camera/camera-core/api/restricted_current.txt b/camera/camera-core/api/restricted_current.txt
index f235ce6..bf6443f 100644
--- a/camera/camera-core/api/restricted_current.txt
+++ b/camera/camera-core/api/restricted_current.txt
@@ -560,8 +560,8 @@
     method public androidx.camera.core.resolutionselector.AspectRatioStrategy getAspectRatioStrategy();
     method public androidx.camera.core.resolutionselector.ResolutionFilter? getResolutionFilter();
     method public androidx.camera.core.resolutionselector.ResolutionStrategy? getResolutionStrategy();
-    field public static final int ALLOWED_RESOLUTIONS_NORMAL = 0; // 0x0
-    field public static final int ALLOWED_RESOLUTIONS_SLOW = 1; // 0x1
+    field public static final int PREFER_CAPTURE_RATE_OVER_HIGHER_RESOLUTION = 0; // 0x0
+    field public static final int PREFER_HIGHER_RESOLUTION_OVER_CAPTURE_RATE = 1; // 0x1
   }
 
   public static final class ResolutionSelector.Builder {
diff --git a/camera/camera-core/src/main/java/androidx/camera/core/UseCase.java b/camera/camera-core/src/main/java/androidx/camera/core/UseCase.java
index acdce0c..396e646 100644
--- a/camera/camera-core/src/main/java/androidx/camera/core/UseCase.java
+++ b/camera/camera-core/src/main/java/androidx/camera/core/UseCase.java
@@ -265,7 +265,7 @@
         if (mergedConfig.containsOption(ImageOutputConfig.OPTION_RESOLUTION_SELECTOR)
                 && mergedConfig.retrieveOption(
                 ImageOutputConfig.OPTION_RESOLUTION_SELECTOR).getAllowedResolutionMode()
-                != ResolutionSelector.ALLOWED_RESOLUTIONS_NORMAL) {
+                != ResolutionSelector.PREFER_CAPTURE_RATE_OVER_HIGHER_RESOLUTION) {
             mergedConfig.insertOption(UseCaseConfig.OPTION_ZSL_DISABLED, true);
         }
 
diff --git a/camera/camera-core/src/main/java/androidx/camera/core/impl/ExtendedCameraConfigProviderStore.java b/camera/camera-core/src/main/java/androidx/camera/core/impl/ExtendedCameraConfigProviderStore.java
index 725d8af..c59fab0 100644
--- a/camera/camera-core/src/main/java/androidx/camera/core/impl/ExtendedCameraConfigProviderStore.java
+++ b/camera/camera-core/src/main/java/androidx/camera/core/impl/ExtendedCameraConfigProviderStore.java
@@ -66,4 +66,13 @@
         }
         return provider;
     }
+
+    /**
+     * Clear all {@link CameraConfigProvider} instances.
+     */
+    public static void clear() {
+        synchronized (LOCK) {
+            CAMERA_CONFIG_PROVIDERS.clear();
+        }
+    }
 }
diff --git a/camera/camera-core/src/main/java/androidx/camera/core/impl/SurfaceConfig.java b/camera/camera-core/src/main/java/androidx/camera/core/impl/SurfaceConfig.java
index 1f98de1..11efbac 100644
--- a/camera/camera-core/src/main/java/androidx/camera/core/impl/SurfaceConfig.java
+++ b/camera/camera-core/src/main/java/androidx/camera/core/impl/SurfaceConfig.java
@@ -40,6 +40,7 @@
 @RequiresApi(21) // TODO(b/200306659): Remove and replace with annotation on package-info.java
 @AutoValue
 public abstract class SurfaceConfig {
+    public static final long DEFAULT_STREAM_USE_CASE_VALUE = 0;
     /** Prevent subclassing */
     SurfaceConfig() {
     }
@@ -49,7 +50,16 @@
      */
     @NonNull
     public static SurfaceConfig create(@NonNull ConfigType type, @NonNull ConfigSize size) {
-        return new AutoValue_SurfaceConfig(type, size);
+        return new AutoValue_SurfaceConfig(type, size, DEFAULT_STREAM_USE_CASE_VALUE);
+    }
+
+    /**
+     * Creates a new instance of SurfaceConfig with the given parameters.
+     */
+    @NonNull
+    public static SurfaceConfig create(@NonNull ConfigType type, @NonNull ConfigSize size,
+            long streamUseCase) {
+        return new AutoValue_SurfaceConfig(type, size, streamUseCase);
     }
 
     /** Returns the configuration type. */
@@ -61,6 +71,21 @@
     public abstract ConfigSize getConfigSize();
 
     /**
+     * Returns the stream use case.
+     * <p>Stream use case constants are implementation-specific constants that allow the
+     * implementation to optimize power and quality characteristics of a stream depending on how
+     * it will be used.
+     * <p> Stream use case is an int flag used to specify the purpose of the stream associated
+     * with this surface. Use cases for the camera2 implementation that are available on devices can
+     * be found in
+     * {@link android.hardware.camera2.CameraCharacteristics#SCALER_AVAILABLE_STREAM_USE_CASES}
+     *
+     * <p>See {@link android.hardware.camera2.params.OutputConfiguration#setStreamUseCase}
+     * to see how Camera2 framework uses this.
+     */
+    public abstract long getStreamUseCase();
+
+    /**
      * Check whether the input surface configuration has a smaller size than this object and can be
      * supported
      *
diff --git a/camera/camera-core/src/main/java/androidx/camera/core/impl/utils/ResolutionSelectorUtil.java b/camera/camera-core/src/main/java/androidx/camera/core/impl/utils/ResolutionSelectorUtil.java
index 20c665f..35b2c7a 100644
--- a/camera/camera-core/src/main/java/androidx/camera/core/impl/utils/ResolutionSelectorUtil.java
+++ b/camera/camera-core/src/main/java/androidx/camera/core/impl/utils/ResolutionSelectorUtil.java
@@ -64,7 +64,7 @@
         }
 
         if (resolutionSelectorToOverride.getAllowedResolutionMode()
-                != ResolutionSelector.ALLOWED_RESOLUTIONS_NORMAL) {
+                != ResolutionSelector.PREFER_CAPTURE_RATE_OVER_HIGHER_RESOLUTION) {
             builder.setAllowedResolutionMode(
                     resolutionSelectorToOverride.getAllowedResolutionMode());
         }
diff --git a/camera/camera-core/src/main/java/androidx/camera/core/internal/SupportedOutputSizesSorter.java b/camera/camera-core/src/main/java/androidx/camera/core/internal/SupportedOutputSizesSorter.java
index d4781ab..7bbe75e 100644
--- a/camera/camera-core/src/main/java/androidx/camera/core/internal/SupportedOutputSizesSorter.java
+++ b/camera/camera-core/src/main/java/androidx/camera/core/internal/SupportedOutputSizesSorter.java
@@ -290,7 +290,7 @@
             @NonNull ResolutionSelector resolutionSelector, int imageFormat) {
         // Appends high resolution output sizes if high resolution is enabled by ResolutionSelector
         if (resolutionSelector.getAllowedResolutionMode()
-                == ResolutionSelector.ALLOWED_RESOLUTIONS_SLOW) {
+                == ResolutionSelector.PREFER_HIGHER_RESOLUTION_OVER_CAPTURE_RATE) {
             List<Size> allSizesList = new ArrayList<>();
             allSizesList.addAll(resolutionCandidateList);
             allSizesList.addAll(mCameraInfoInternal.getSupportedHighResolutions(imageFormat));
diff --git a/camera/camera-core/src/main/java/androidx/camera/core/resolutionselector/ResolutionSelector.java b/camera/camera-core/src/main/java/androidx/camera/core/resolutionselector/ResolutionSelector.java
index 4439a21..971ecf7 100644
--- a/camera/camera-core/src/main/java/androidx/camera/core/resolutionselector/ResolutionSelector.java
+++ b/camera/camera-core/src/main/java/androidx/camera/core/resolutionselector/ResolutionSelector.java
@@ -82,9 +82,9 @@
  * <p>When creating a ResolutionSelector instance, the
  * {@link AspectRatioStrategy#RATIO_4_3_FALLBACK_AUTO_STRATEGY} will be the default
  * {@link AspectRatioStrategy} if it is not set.
- * {@link ResolutionSelector#ALLOWED_RESOLUTIONS_NORMAL} is the default allowed resolution
- * mode. However, if neither the {@link ResolutionStrategy} nor the {@link ResolutionFilter} are
- * set, there will be no default value specified.
+ * {@link ResolutionSelector#PREFER_CAPTURE_RATE_OVER_HIGHER_RESOLUTION} is the default allowed
+ * resolution mode. However, if neither the {@link ResolutionStrategy} nor the
+ * {@link ResolutionFilter} are set, there will be no default value specified.
  */
 @RequiresApi(21) // TODO(b/200306659): Remove and replace with annotation on package-info.java
 public final class ResolutionSelector {
@@ -97,7 +97,7 @@
      * {@link android.hardware.camera2.CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP}
      * camera characteristics.
      */
-    public static final int ALLOWED_RESOLUTIONS_NORMAL = 0;
+    public static final int PREFER_CAPTURE_RATE_OVER_HIGHER_RESOLUTION = 0;
     /**
      * This mode allows CameraX to select the output sizes which might result in slower capture
      * times.
@@ -118,9 +118,10 @@
      * {@link android.hardware.camera2.CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP_MAXIMUM_RESOLUTION}
      * . This mode does not allow applications to select those ultra high resolutions.
      */
-    public static final int ALLOWED_RESOLUTIONS_SLOW = 1;
+    public static final int PREFER_HIGHER_RESOLUTION_OVER_CAPTURE_RATE = 1;
 
-    @IntDef({ALLOWED_RESOLUTIONS_NORMAL, ALLOWED_RESOLUTIONS_SLOW})
+    @IntDef({PREFER_CAPTURE_RATE_OVER_HIGHER_RESOLUTION,
+            PREFER_HIGHER_RESOLUTION_OVER_CAPTURE_RATE})
     @Retention(RetentionPolicy.SOURCE)
     @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)
     public @interface AllowedResolutionMode {
@@ -190,7 +191,7 @@
         @Nullable
         private ResolutionFilter mResolutionFilter = null;
         @AllowedResolutionMode
-        private int mAllowedResolutionMode = ALLOWED_RESOLUTIONS_NORMAL;
+        private int mAllowedResolutionMode = PREFER_CAPTURE_RATE_OVER_HIGHER_RESOLUTION;
 
         /**
          * Creates a Builder instance.
@@ -255,7 +256,7 @@
          * Sets the allowed resolution mode.
          *
          * <p>If not specified, the default setting is
-         * {@link ResolutionSelector#ALLOWED_RESOLUTIONS_NORMAL}.
+         * {@link ResolutionSelector#PREFER_CAPTURE_RATE_OVER_HIGHER_RESOLUTION}.
          */
         @NonNull
         public Builder setAllowedResolutionMode(@AllowedResolutionMode int mode) {
diff --git a/camera/camera-core/src/test/java/androidx/camera/core/internal/SupportedOutputSizesSorterTest.kt b/camera/camera-core/src/test/java/androidx/camera/core/internal/SupportedOutputSizesSorterTest.kt
index 80305323..d4346fc 100644
--- a/camera/camera-core/src/test/java/androidx/camera/core/internal/SupportedOutputSizesSorterTest.kt
+++ b/camera/camera-core/src/test/java/androidx/camera/core/internal/SupportedOutputSizesSorterTest.kt
@@ -27,7 +27,7 @@
 import androidx.camera.core.resolutionselector.AspectRatioStrategy
 import androidx.camera.core.resolutionselector.ResolutionFilter
 import androidx.camera.core.resolutionselector.ResolutionSelector
-import androidx.camera.core.resolutionselector.ResolutionSelector.ALLOWED_RESOLUTIONS_SLOW
+import androidx.camera.core.resolutionselector.ResolutionSelector.PREFER_HIGHER_RESOLUTION_OVER_CAPTURE_RATE
 import androidx.camera.core.resolutionselector.ResolutionStrategy
 import androidx.camera.core.resolutionselector.ResolutionStrategy.FALLBACK_RULE_CLOSEST_HIGHER
 import androidx.camera.core.resolutionselector.ResolutionStrategy.FALLBACK_RULE_CLOSEST_HIGHER_THEN_LOWER
@@ -399,7 +399,7 @@
     fun getSupportedOutputSizes_whenHighResolutionIsEnabled_aspectRatio16x9() {
         verifySupportedOutputSizesWithResolutionSelectorSettings(
             preferredAspectRatio = AspectRatio.RATIO_16_9,
-            allowedResolutionMode = ALLOWED_RESOLUTIONS_SLOW,
+            allowedResolutionMode = PREFER_HIGHER_RESOLUTION_OVER_CAPTURE_RATE,
             expectedList = listOf(
                 // Matched preferred AspectRatio items, sorted by area size.
                 Size(8000, 4500), // 16:9 high resolution size
@@ -427,7 +427,7 @@
     fun highResolutionCanNotBeSelected_whenHighResolutionForceDisabled() {
         verifySupportedOutputSizesWithResolutionSelectorSettings(
             preferredAspectRatio = AspectRatio.RATIO_16_9,
-            allowedResolutionMode = ALLOWED_RESOLUTIONS_SLOW,
+            allowedResolutionMode = PREFER_HIGHER_RESOLUTION_OVER_CAPTURE_RATE,
             highResolutionForceDisabled = true,
             expectedList = listOf(
                 // Matched preferred AspectRatio items, sorted by area size.
@@ -546,7 +546,7 @@
         boundSize: Size? = null,
         resolutionFallbackRule: Int = FALLBACK_RULE_CLOSEST_HIGHER_THEN_LOWER,
         resolutionFilter: ResolutionFilter? = null,
-        allowedResolutionMode: Int = ResolutionSelector.ALLOWED_RESOLUTIONS_NORMAL,
+        allowedResolutionMode: Int = ResolutionSelector.PREFER_CAPTURE_RATE_OVER_HIGHER_RESOLUTION,
         highResolutionForceDisabled: Boolean = false,
         expectedList: List<Size> = Collections.emptyList(),
     ) {
@@ -573,7 +573,7 @@
         boundSize: Size? = null,
         resolutionFallbackRule: Int = FALLBACK_RULE_CLOSEST_HIGHER_THEN_LOWER,
         resolutionFilter: ResolutionFilter? = null,
-        allowedResolutionMode: Int = ResolutionSelector.ALLOWED_RESOLUTIONS_NORMAL,
+        allowedResolutionMode: Int = ResolutionSelector.PREFER_CAPTURE_RATE_OVER_HIGHER_RESOLUTION,
         highResolutionForceDisabled: Boolean = false,
     ): UseCaseConfig<*> {
         val useCaseConfigBuilder = FakeUseCaseConfig.Builder(captureType, ImageFormat.JPEG)
diff --git a/camera/camera-extensions/api/current.txt b/camera/camera-extensions/api/current.txt
index 0db7e93..5c6e740 100644
--- a/camera/camera-extensions/api/current.txt
+++ b/camera/camera-extensions/api/current.txt
@@ -15,6 +15,7 @@
     method public androidx.camera.core.CameraSelector getExtensionEnabledCameraSelector(androidx.camera.core.CameraSelector, int);
     method public static com.google.common.util.concurrent.ListenableFuture<androidx.camera.extensions.ExtensionsManager!> getInstanceAsync(android.content.Context, androidx.camera.core.CameraProvider);
     method public boolean isExtensionAvailable(androidx.camera.core.CameraSelector, int);
+    method public boolean isImageAnalysisSupported(androidx.camera.core.CameraSelector, int);
   }
 
 }
diff --git a/camera/camera-extensions/api/restricted_current.txt b/camera/camera-extensions/api/restricted_current.txt
index 0db7e93..5c6e740 100644
--- a/camera/camera-extensions/api/restricted_current.txt
+++ b/camera/camera-extensions/api/restricted_current.txt
@@ -15,6 +15,7 @@
     method public androidx.camera.core.CameraSelector getExtensionEnabledCameraSelector(androidx.camera.core.CameraSelector, int);
     method public static com.google.common.util.concurrent.ListenableFuture<androidx.camera.extensions.ExtensionsManager!> getInstanceAsync(android.content.Context, androidx.camera.core.CameraProvider);
     method public boolean isExtensionAvailable(androidx.camera.core.CameraSelector, int);
+    method public boolean isImageAnalysisSupported(androidx.camera.core.CameraSelector, int);
   }
 
 }
diff --git a/camera/camera-extensions/src/androidTest/java/androidx/camera/extensions/ExtensionsManagerTest.kt b/camera/camera-extensions/src/androidTest/java/androidx/camera/extensions/ExtensionsManagerTest.kt
index 94f0466..9d75cee 100644
--- a/camera/camera-extensions/src/androidTest/java/androidx/camera/extensions/ExtensionsManagerTest.kt
+++ b/camera/camera-extensions/src/androidTest/java/androidx/camera/extensions/ExtensionsManagerTest.kt
@@ -17,6 +17,8 @@
 package androidx.camera.extensions
 
 import android.hardware.camera2.CameraCharacteristics
+import android.util.Range
+import android.util.Size
 import androidx.annotation.NonNull
 import androidx.camera.camera2.interop.Camera2CameraInfo
 import androidx.camera.core.Camera
@@ -26,6 +28,7 @@
 import androidx.camera.core.impl.CameraInfoInternal
 import androidx.camera.core.impl.MutableStateObservable
 import androidx.camera.extensions.internal.ExtensionVersion
+import androidx.camera.extensions.internal.VendorExtender
 import androidx.camera.extensions.internal.Version
 import androidx.camera.extensions.internal.VersionName
 import androidx.camera.extensions.util.ExtensionsTestUtil
@@ -267,7 +270,42 @@
     }
 
     @Test
-    fun getEstimatedCaptureLatencyRangeThrowsException_whenExtensionAvailabilityIsNotAvailable() {
+    fun getEstimatedCaptureLatencyRange_returnValueFromExtender() {
+        extensionsManager = ExtensionsManager.getInstanceAsync(
+            context,
+            cameraProvider,
+        )[10000, TimeUnit.MILLISECONDS]
+
+        assumeTrue(
+            extensionsManager.extensionsAvailability
+                == ExtensionsManager.ExtensionsAvailability.LIBRARY_AVAILABLE
+        )
+        val estimatedCaptureLatency = Range(100L, 1000L)
+
+        val fakeVendorExtender = object : VendorExtender {
+            override fun isExtensionAvailable(
+                cameraId: String,
+                characteristicsMap: MutableMap<String, CameraCharacteristics>
+            ): Boolean {
+                return true
+            }
+
+            override fun getEstimatedCaptureLatencyRange(size: Size?): Range<Long>? {
+                return estimatedCaptureLatency
+            }
+        }
+        extensionsManager.setVendorExtenderFactory {
+            fakeVendorExtender
+        }
+
+        assertThat(extensionsManager.getEstimatedCaptureLatencyRange(
+            baseCameraSelector,
+            extensionMode)
+        ).isEqualTo(estimatedCaptureLatency)
+    }
+
+    @Test
+    fun getEstimatedCaptureLatencyRangeReturnNull_whenExtensionAvailabilityIsNotAvailable() {
         extensionsManager = ExtensionsManager.getInstanceAsync(
             context,
             cameraProvider,
@@ -279,12 +317,10 @@
                 != ExtensionsManager.ExtensionsAvailability.LIBRARY_AVAILABLE
         )
 
-        assertThrows<IllegalArgumentException> {
-            extensionsManager.getEstimatedCaptureLatencyRange(
+        assertThat(extensionsManager.getEstimatedCaptureLatencyRange(
                 baseCameraSelector,
-                extensionMode
-            )
-        }
+                extensionMode)
+        ).isNull()
     }
 
     @Test
@@ -306,19 +342,19 @@
     }
 
     @Test
-    fun getEstimatedCaptureLatencyRangeThrowsException_whenNoCameraCanBeFound() {
+    fun getEstimatedCaptureLatencyRangeReturnsNull_whenNoCameraCanBeFound() {
         checkExtensionAvailabilityAndInit()
 
         val emptyCameraSelector = CameraSelector.Builder()
             .addCameraFilter { _ -> ArrayList<CameraInfo>() }
             .build()
 
-        assertThrows<IllegalArgumentException> {
+        assertThat(
             extensionsManager.getEstimatedCaptureLatencyRange(
                 emptyCameraSelector,
                 extensionMode
             )
-        }
+        ).isNull()
     }
 
     @Test
@@ -424,6 +460,107 @@
         }
     }
 
+    @Test
+    fun isImageAnalysisSupportedReturnsFalse_whenHasNoAnalysisSizes() {
+        extensionsManager = ExtensionsManager.getInstanceAsync(
+            context,
+            cameraProvider,
+        )[10000, TimeUnit.MILLISECONDS]
+
+        val fakeVendorExtender = object : VendorExtender {
+            override fun isExtensionAvailable(
+                cameraId: String,
+                characteristicsMap: MutableMap<String, CameraCharacteristics>
+            ): Boolean {
+                return true
+            }
+
+            override fun getSupportedYuvAnalysisResolutions(): Array<Size> {
+                return emptyArray()
+            }
+        }
+        extensionsManager.setVendorExtenderFactory {
+            fakeVendorExtender
+        }
+
+        assumeTrue(
+            extensionsManager.extensionsAvailability
+                == ExtensionsManager.ExtensionsAvailability.LIBRARY_AVAILABLE
+        )
+
+        assertThat(extensionsManager.isImageAnalysisSupported(
+            baseCameraSelector,
+            extensionMode)
+        ).isFalse()
+    }
+
+    @Test
+    fun isImageAnalysisSupportedReturnsTrue_whenHasAnalysisSizes() {
+        extensionsManager = ExtensionsManager.getInstanceAsync(
+            context,
+            cameraProvider,
+        )[10000, TimeUnit.MILLISECONDS]
+
+        val fakeVendorExtender = object : VendorExtender {
+            override fun isExtensionAvailable(
+                cameraId: String,
+                characteristicsMap: MutableMap<String, CameraCharacteristics>
+            ): Boolean {
+                return true
+            }
+
+            override fun getSupportedYuvAnalysisResolutions(): Array<Size> {
+                return arrayOf(Size(1920, 1080))
+            }
+        }
+        extensionsManager.setVendorExtenderFactory {
+            fakeVendorExtender
+        }
+
+        assumeTrue(
+            extensionsManager.extensionsAvailability
+                == ExtensionsManager.ExtensionsAvailability.LIBRARY_AVAILABLE
+        )
+
+        assertThat(extensionsManager.isImageAnalysisSupported(
+            baseCameraSelector,
+            extensionMode)
+        ).isTrue()
+    }
+    @Test
+    fun isImageAnalysisSupportedIsFalse_whenExtensionAvailabilityIsNotAvailable() {
+        extensionsManager = ExtensionsManager.getInstanceAsync(
+            context,
+            cameraProvider,
+            VersionName("99.0.0")
+        )[10000, TimeUnit.MILLISECONDS]
+
+        assumeTrue(
+            extensionsManager.extensionsAvailability
+                != ExtensionsManager.ExtensionsAvailability.LIBRARY_AVAILABLE
+        )
+
+        assertThat(extensionsManager.isImageAnalysisSupported(
+            baseCameraSelector,
+            extensionMode)
+        ).isFalse()
+    }
+
+    @Test
+    fun isImageAnalysisSupportedIsFalse_whenNoCameraCanBeFound() {
+        checkExtensionAvailabilityAndInit()
+        val emptyCameraSelector = CameraSelector.Builder()
+            .addCameraFilter { _ -> ArrayList<CameraInfo>() }
+            .build()
+
+        assertThat(
+            extensionsManager.isImageAnalysisSupported(
+                emptyCameraSelector,
+                extensionMode
+            )
+        ).isFalse()
+    }
+
     private fun checkExtensionAvailabilityAndInit(): CameraSelector {
         extensionsManager = ExtensionsManager.getInstanceAsync(
             context,
@@ -444,21 +581,13 @@
     }
 
     private fun isExtensionAvailableByCameraInfo(cameraInfo: CameraInfo): Boolean {
-        val characteristics = Camera2CameraInfo.extractCameraCharacteristics(cameraInfo)
-        val cameraId = (cameraInfo as CameraInfoInternal).cameraId
-        val imageCaptureExtenderImpl =
-            ExtensionsTestUtil.createImageCaptureExtenderImpl(
-                extensionMode,
-                cameraId,
-                characteristics
-            )
-        val previewExtenderImpl =
-            ExtensionsTestUtil.createPreviewExtenderImpl(extensionMode, cameraId, characteristics)
+        var vendorExtender = ExtensionsTestUtil.createVendorExtender(extensionMode)
+        vendorExtender.init(cameraInfo)
+        val camera2CameraInfo = Camera2CameraInfo.from(cameraInfo)
+        val cameraId = camera2CameraInfo.cameraId
 
-        return imageCaptureExtenderImpl.isExtensionAvailable(
-            cameraId,
-            characteristics
-        ) && previewExtenderImpl.isExtensionAvailable(cameraId, characteristics)
+        return vendorExtender.isExtensionAvailable(cameraId,
+            camera2CameraInfo.cameraCharacteristicsMap)
     }
 
     private fun createVideoCapture(): VideoCapture<TestVideoOutput> {
diff --git a/camera/camera-extensions/src/androidTest/java/androidx/camera/extensions/ImageAnalysisTest.kt b/camera/camera-extensions/src/androidTest/java/androidx/camera/extensions/ImageAnalysisTest.kt
new file mode 100644
index 0000000..5ca9ee9
--- /dev/null
+++ b/camera/camera-extensions/src/androidTest/java/androidx/camera/extensions/ImageAnalysisTest.kt
@@ -0,0 +1,275 @@
+/*
+ * Copyright 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package androidx.camera.extensions
+
+import android.content.Context
+import android.graphics.ImageFormat
+import android.hardware.camera2.CameraCharacteristics
+import android.util.Pair
+import android.util.Size
+import androidx.camera.camera2.Camera2Config
+import androidx.camera.camera2.interop.Camera2CameraInfo
+import androidx.camera.core.Camera
+import androidx.camera.core.CameraSelector
+import androidx.camera.core.ImageAnalysis
+import androidx.camera.core.ImageCapture
+import androidx.camera.core.Preview
+import androidx.camera.core.impl.ImageFormatConstants
+import androidx.camera.core.impl.utils.executor.CameraXExecutors
+import androidx.camera.extensions.internal.VendorExtender
+import androidx.camera.extensions.util.ExtensionsTestUtil
+import androidx.camera.lifecycle.ProcessCameraProvider
+import androidx.camera.testing.CameraUtil
+import androidx.camera.testing.SurfaceTextureProvider
+import androidx.camera.testing.fakes.FakeLifecycleOwner
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.filters.LargeTest
+import androidx.test.filters.SdkSuppress
+import androidx.testutils.assertThrows
+import com.google.common.truth.Truth.assertThat
+import java.util.concurrent.CountDownLatch
+import java.util.concurrent.TimeUnit
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.runBlocking
+import kotlinx.coroutines.withContext
+import org.junit.After
+import org.junit.Assume
+import org.junit.Before
+import org.junit.Rule
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.junit.runners.Parameterized
+
+@LargeTest
+@RunWith(Parameterized::class)
+@SdkSuppress(minSdkVersion = 21)
+class ImageAnalysisTest(
+    @ExtensionMode.Mode private val extensionMode: Int,
+    @CameraSelector.LensFacing private val lensFacing: Int
+) {
+    companion object {
+        @JvmStatic
+        @get:Parameterized.Parameters(name = "extension = {0}, facing = {1}")
+        val parameters: Collection<Array<Any>>
+            get() = ExtensionsTestUtil.getAllExtensionsLensFacingCombinations()
+    }
+
+    @get:Rule
+    val useCamera = CameraUtil.grantCameraPermissionAndPreTest(
+        CameraUtil.PreTestCameraIdList(Camera2Config.defaultConfig())
+    )
+
+    private val context = ApplicationProvider.getApplicationContext<Context>()
+    private lateinit var cameraProvider: ProcessCameraProvider
+    private lateinit var extensionsManager: ExtensionsManager
+    private lateinit var baseCameraSelector: CameraSelector
+    private lateinit var extensionsCameraSelector: CameraSelector
+    private lateinit var fakeLifecycleOwner: FakeLifecycleOwner
+    private lateinit var camera: Camera
+
+    @Before
+    fun setUp(): Unit = runBlocking {
+        Assume.assumeTrue(
+            ExtensionsTestUtil.isTargetDeviceAvailableForExtensions(
+                lensFacing,
+                extensionMode
+            )
+        )
+
+        cameraProvider = ProcessCameraProvider.getInstance(context)[10000, TimeUnit.MILLISECONDS]
+        baseCameraSelector = CameraSelector.Builder().requireLensFacing(lensFacing).build()
+        extensionsManager = ExtensionsManager.getInstanceAsync(
+            context,
+            cameraProvider
+        )[10000, TimeUnit.MILLISECONDS]
+
+        Assume.assumeTrue(extensionsManager.isExtensionAvailable(baseCameraSelector, extensionMode))
+
+        withContext(Dispatchers.Main) {
+            fakeLifecycleOwner = FakeLifecycleOwner().apply { startAndResume() }
+            camera = withContext(Dispatchers.Main) {
+                cameraProvider.bindToLifecycle(fakeLifecycleOwner, baseCameraSelector)
+            }
+        }
+    }
+
+    @After
+    fun teardown(): Unit = runBlocking {
+        if (::cameraProvider.isInitialized) {
+            cameraProvider.shutdown()[10000, TimeUnit.MILLISECONDS]
+        }
+
+        if (::extensionsManager.isInitialized) {
+            extensionsManager.shutdown()[10000, TimeUnit.MILLISECONDS]
+        }
+    }
+
+    @Test
+    fun canBindImageAnalysis_ifIsImageAnalysisSupportedReturnsTrue(): Unit = runBlocking {
+        // 1. Arrange
+        extensionsCameraSelector = extensionsManager.getExtensionEnabledCameraSelector(
+            baseCameraSelector,
+            extensionMode
+        )
+        Assume.assumeTrue(extensionsManager
+            .isImageAnalysisSupported(extensionsCameraSelector, extensionMode))
+
+        val analysisLatch = CountDownLatch(2)
+        withContext(Dispatchers.Main) {
+            val preview = Preview.Builder().build()
+            val imageCapture = ImageCapture.Builder().build()
+            val imageAnalysis = ImageAnalysis.Builder().build()
+
+            preview.setSurfaceProvider(
+                SurfaceTextureProvider.createSurfaceTextureProvider()
+            )
+
+            imageAnalysis.setAnalyzer(CameraXExecutors.ioExecutor()) {
+                analysisLatch.countDown()
+                it.close()
+            }
+
+            // 2. Act
+            cameraProvider.bindToLifecycle(
+                fakeLifecycleOwner,
+                extensionsCameraSelector,
+                preview, imageCapture, imageAnalysis
+            )
+        }
+
+        // 3. Assert
+        assertThat(analysisLatch.await(10000, TimeUnit.MILLISECONDS)).isTrue()
+    }
+
+    private fun getOutputSizes(imageFormat: Int): Array<Size> {
+        val map = Camera2CameraInfo.from(camera.cameraInfo)
+            .getCameraCharacteristic(CameraCharacteristics.SCALER_STREAM_CONFIGURATION_MAP)!!
+        return map.getOutputSizes(imageFormat)
+    }
+
+    @Test
+    fun imageAnalysisResolutionIsFromVendorExtender(): Unit = runBlocking {
+        // 1. Arrange
+        val injectAnalysisSize = getOutputSizes(ImageFormat.YUV_420_888)
+            .minBy { it.width * it.height }
+        // Inject a fake VendorExtender that reports empty supported size for imageAnalysis.
+        extensionsManager.setVendorExtenderFactory {
+            object : VendorExtender {
+                override fun isExtensionAvailable(
+                    cameraId: String,
+                    characteristicsMap: MutableMap<String, CameraCharacteristics>
+                ) = true
+
+                override fun getSupportedYuvAnalysisResolutions(): Array<Size> {
+                    return arrayOf(injectAnalysisSize)
+                }
+
+                override fun getSupportedPreviewOutputResolutions(): List<Pair<Int, Array<Size>>> {
+                    return listOf(
+                        Pair(ImageFormatConstants.INTERNAL_DEFINED_IMAGE_FORMAT_PRIVATE,
+                            getOutputSizes(
+                                ImageFormatConstants.INTERNAL_DEFINED_IMAGE_FORMAT_PRIVATE))
+                    )
+                }
+
+                override fun getSupportedCaptureOutputResolutions(): List<Pair<Int, Array<Size>>> {
+                    return listOf(
+                        Pair(ImageFormat.JPEG,
+                            getOutputSizes(ImageFormat.JPEG))
+                    )
+                }
+            }
+        }
+
+        extensionsCameraSelector = extensionsManager.getExtensionEnabledCameraSelector(
+            baseCameraSelector,
+            extensionMode
+        )
+        assertThat(extensionsManager
+            .isImageAnalysisSupported(baseCameraSelector, extensionMode)).isTrue()
+        withContext(Dispatchers.Main) {
+            val preview = Preview.Builder().build()
+            val imageCapture = ImageCapture.Builder().build()
+            val imageAnalysis = ImageAnalysis.Builder().build()
+
+            // 2. Act
+            cameraProvider.bindToLifecycle(
+                    fakeLifecycleOwner,
+                    extensionsCameraSelector,
+                    preview, imageCapture, imageAnalysis
+            )
+
+            // 3. Assert
+            assertThat(imageAnalysis.resolutionInfo!!.resolution).isEqualTo(injectAnalysisSize)
+        }
+    }
+
+    @Test
+    fun bindImageAnalysisThrowException_ifIsImageAnalysisSupportedReturnsFalse():
+        Unit = runBlocking {
+        // 1. Arrange
+        // Inject a fake VendorExtender that reports empty supported size for imageAnalysis.
+        extensionsManager.setVendorExtenderFactory {
+            object : VendorExtender {
+                override fun isExtensionAvailable(
+                    cameraId: String,
+                    characteristicsMap: MutableMap<String, CameraCharacteristics>
+                ) = true
+
+                override fun getSupportedYuvAnalysisResolutions(): Array<Size> {
+                    return emptyArray()
+                }
+
+                override fun getSupportedPreviewOutputResolutions(): List<Pair<Int, Array<Size>>> {
+                    return listOf(
+                        Pair(ImageFormatConstants.INTERNAL_DEFINED_IMAGE_FORMAT_PRIVATE,
+                            getOutputSizes(
+                                ImageFormatConstants.INTERNAL_DEFINED_IMAGE_FORMAT_PRIVATE))
+                    )
+                }
+
+                override fun getSupportedCaptureOutputResolutions(): List<Pair<Int, Array<Size>>> {
+                    return listOf(
+                        Pair(ImageFormat.JPEG,
+                            getOutputSizes(ImageFormat.JPEG))
+                    )
+                }
+            }
+        }
+
+        extensionsCameraSelector = extensionsManager.getExtensionEnabledCameraSelector(
+            baseCameraSelector,
+            extensionMode
+        )
+        assertThat(extensionsManager
+            .isImageAnalysisSupported(baseCameraSelector, extensionMode)).isFalse()
+        withContext(Dispatchers.Main) {
+            val preview = Preview.Builder().build()
+            val imageCapture = ImageCapture.Builder().build()
+            val imageAnalysis = ImageAnalysis.Builder().build()
+
+            // 3. Act && Assert
+            assertThrows<IllegalArgumentException> {
+                cameraProvider.bindToLifecycle(
+                    fakeLifecycleOwner,
+                    extensionsCameraSelector,
+                    preview, imageCapture, imageAnalysis
+                )
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/camera/camera-extensions/src/androidTest/java/androidx/camera/extensions/util/ExtensionsTestUtil.java b/camera/camera-extensions/src/androidTest/java/androidx/camera/extensions/util/ExtensionsTestUtil.java
index 676b46a..0f50e2e 100644
--- a/camera/camera-extensions/src/androidTest/java/androidx/camera/extensions/util/ExtensionsTestUtil.java
+++ b/camera/camera-extensions/src/androidTest/java/androidx/camera/extensions/util/ExtensionsTestUtil.java
@@ -22,8 +22,6 @@
 import static androidx.camera.extensions.ExtensionMode.HDR;
 import static androidx.camera.extensions.ExtensionMode.NIGHT;
 
-import static junit.framework.TestCase.assertNotNull;
-
 import android.hardware.camera2.CameraCharacteristics;
 import android.os.Build;
 
@@ -31,18 +29,11 @@
 import androidx.annotation.RequiresApi;
 import androidx.camera.core.CameraSelector;
 import androidx.camera.extensions.ExtensionMode;
-import androidx.camera.extensions.impl.AutoImageCaptureExtenderImpl;
-import androidx.camera.extensions.impl.AutoPreviewExtenderImpl;
-import androidx.camera.extensions.impl.BeautyImageCaptureExtenderImpl;
-import androidx.camera.extensions.impl.BeautyPreviewExtenderImpl;
-import androidx.camera.extensions.impl.BokehImageCaptureExtenderImpl;
-import androidx.camera.extensions.impl.BokehPreviewExtenderImpl;
-import androidx.camera.extensions.impl.HdrImageCaptureExtenderImpl;
-import androidx.camera.extensions.impl.HdrPreviewExtenderImpl;
-import androidx.camera.extensions.impl.ImageCaptureExtenderImpl;
-import androidx.camera.extensions.impl.NightImageCaptureExtenderImpl;
-import androidx.camera.extensions.impl.NightPreviewExtenderImpl;
-import androidx.camera.extensions.impl.PreviewExtenderImpl;
+import androidx.camera.extensions.internal.AdvancedVendorExtender;
+import androidx.camera.extensions.internal.BasicVendorExtender;
+import androidx.camera.extensions.internal.ExtensionVersion;
+import androidx.camera.extensions.internal.VendorExtender;
+import androidx.camera.extensions.internal.Version;
 import androidx.camera.extensions.internal.compat.workaround.ExtensionDisabledValidator;
 import androidx.camera.testing.CameraUtil;
 
@@ -71,84 +62,6 @@
     }
 
     /**
-     * Creates an {@link ImageCaptureExtenderImpl} object for specific {@link ExtensionMode} and
-     * camera id.
-     *
-     * @param extensionMode The extension mode for the created object.
-     * @param cameraId The target camera id.
-     * @param cameraCharacteristics The camera characteristics of the target camera.
-     * @return An {@link ImageCaptureExtenderImpl} object.
-     */
-    @NonNull
-    public static ImageCaptureExtenderImpl createImageCaptureExtenderImpl(
-            @ExtensionMode.Mode int extensionMode, @NonNull String cameraId,
-            @NonNull CameraCharacteristics cameraCharacteristics) {
-        ImageCaptureExtenderImpl impl = null;
-
-        switch (extensionMode) {
-            case HDR:
-                impl = new HdrImageCaptureExtenderImpl();
-                break;
-            case BOKEH:
-                impl = new BokehImageCaptureExtenderImpl();
-                break;
-            case FACE_RETOUCH:
-                impl = new BeautyImageCaptureExtenderImpl();
-                break;
-            case NIGHT:
-                impl = new NightImageCaptureExtenderImpl();
-                break;
-            case AUTO:
-                impl = new AutoImageCaptureExtenderImpl();
-                break;
-        }
-        assertNotNull(impl);
-
-        impl.init(cameraId, cameraCharacteristics);
-
-        return impl;
-    }
-
-    /**
-     * Creates a {@link PreviewExtenderImpl} object for specific {@link ExtensionMode} and
-     * camera id.
-     *
-     * @param extensionMode The extension mode for the created object.
-     * @param cameraId The target camera id.
-     * @param cameraCharacteristics The camera characteristics of the target camera.
-     * @return A {@link PreviewExtenderImpl} object.
-     */
-    @NonNull
-    public static PreviewExtenderImpl createPreviewExtenderImpl(
-            @ExtensionMode.Mode int extensionMode, @NonNull String cameraId,
-            @NonNull CameraCharacteristics cameraCharacteristics) {
-        PreviewExtenderImpl impl = null;
-
-        switch (extensionMode) {
-            case HDR:
-                impl = new HdrPreviewExtenderImpl();
-                break;
-            case BOKEH:
-                impl = new BokehPreviewExtenderImpl();
-                break;
-            case FACE_RETOUCH:
-                impl = new BeautyPreviewExtenderImpl();
-                break;
-            case NIGHT:
-                impl = new NightPreviewExtenderImpl();
-                break;
-            case AUTO:
-                impl = new AutoPreviewExtenderImpl();
-                break;
-        }
-        assertNotNull(impl);
-
-        impl.init(cameraId, cameraCharacteristics);
-
-        return impl;
-    }
-
-    /**
      * Returns whether the target camera device can support the test for a specific extension mode.
      */
     public static boolean isTargetDeviceAvailableForExtensions(
@@ -157,6 +70,20 @@
                 && !isSpecificSkippedDevice() && !isSpecificSkippedDeviceWithExtensionMode(mode);
     }
 
+    private static boolean isAdvancedExtenderSupported() {
+        if (ExtensionVersion.getRuntimeVersion().compareTo(Version.VERSION_1_2) < 0) {
+            return false;
+        }
+        return ExtensionVersion.isAdvancedExtenderSupported();
+    }
+
+    public static VendorExtender createVendorExtender(@ExtensionMode.Mode int mode) {
+        if (isAdvancedExtenderSupported()) {
+            return new AdvancedVendorExtender(mode);
+        }
+        return new BasicVendorExtender(mode);
+    }
+
     /**
      * Returns whether the device is LIMITED hardware level above.
      *
diff --git a/camera/camera-extensions/src/main/java/androidx/camera/extensions/ExtensionsInfo.java b/camera/camera-extensions/src/main/java/androidx/camera/extensions/ExtensionsInfo.java
index 912592b0..6ef8e616 100644
--- a/camera/camera-extensions/src/main/java/androidx/camera/extensions/ExtensionsInfo.java
+++ b/camera/camera-extensions/src/main/java/androidx/camera/extensions/ExtensionsInfo.java
@@ -25,6 +25,7 @@
 import androidx.annotation.Nullable;
 import androidx.annotation.OptIn;
 import androidx.annotation.RequiresApi;
+import androidx.annotation.VisibleForTesting;
 import androidx.camera.camera2.interop.ExperimentalCamera2Interop;
 import androidx.camera.core.CameraFilter;
 import androidx.camera.core.CameraInfo;
@@ -60,9 +61,12 @@
     private static final String EXTENDED_CAMERA_CONFIG_PROVIDER_ID_PREFIX = ":camera:camera"
             + "-extensions-";
     private final CameraProvider mCameraProvider;
+    @NonNull
+    private VendorExtenderFactory mVendorExtenderFactory;
 
     ExtensionsInfo(@NonNull CameraProvider cameraProvider) {
         mCameraProvider = cameraProvider;
+        mVendorExtenderFactory = (extensionMode) -> getVendorExtender(extensionMode);
     }
 
     /**
@@ -163,7 +167,8 @@
                 newCameraSelector.filter(mCameraProvider.getAvailableCameraInfos());
 
         if (cameraInfos.isEmpty()) {
-            throw new IllegalArgumentException("No cameras found for given CameraSelector");
+            // Returns null if the specified extension mode is not available.
+            return null;
         }
 
         extensionsCameraInfo = cameraInfos.get(0);
@@ -174,7 +179,7 @@
         }
 
         try {
-            VendorExtender vendorExtender = getVendorExtender(mode);
+            VendorExtender vendorExtender = mVendorExtenderFactory.createVendorExtender(mode);
             vendorExtender.init(extensionsCameraInfo);
 
             return vendorExtender.getEstimatedCaptureLatencyRange(resolution);
@@ -183,11 +188,36 @@
         }
     }
 
-    private static CameraFilter getFilter(@ExtensionMode.Mode int mode) {
+    boolean isImageAnalysisSupported(@NonNull CameraSelector cameraSelector,
+            @ExtensionMode.Mode int mode) {
+        CameraSelector newCameraSelector = CameraSelector.Builder.fromSelector(
+                cameraSelector).addCameraFilter(getFilter(mode)).build();
+        CameraInfo extensionsCameraInfo;
+        List<CameraInfo> cameraInfos =
+                newCameraSelector.filter(mCameraProvider.getAvailableCameraInfos());
+
+        if (cameraInfos.isEmpty()) {
+            // Returns false if the specified extension mode is not available on this camera.
+            return false;
+        }
+
+        extensionsCameraInfo = cameraInfos.get(0);
+        VendorExtender vendorExtender = mVendorExtenderFactory.createVendorExtender(mode);
+        vendorExtender.init(extensionsCameraInfo);
+        Size[] supportedYuvSizes = vendorExtender.getSupportedYuvAnalysisResolutions();
+        return supportedYuvSizes != null && supportedYuvSizes.length > 0;
+    }
+
+    @VisibleForTesting
+    void setVendorExtenderFactory(@NonNull VendorExtenderFactory factory) {
+        mVendorExtenderFactory = factory;
+    }
+
+    private CameraFilter getFilter(@ExtensionMode.Mode int mode) {
         CameraFilter filter;
         String id = getExtendedCameraConfigProviderId(mode);
 
-        VendorExtender vendorExtender = getVendorExtender(mode);
+        VendorExtender vendorExtender = mVendorExtenderFactory.createVendorExtender(mode);
         filter = new ExtensionCameraFilter(id, vendorExtender);
         return filter;
     }
@@ -196,12 +226,12 @@
      * Injects {@link CameraConfigProvider} for specified extension mode to the
      * {@link ExtendedCameraConfigProviderStore}.
      */
-    private static void injectExtensionCameraConfig(@ExtensionMode.Mode int mode) {
+    private void injectExtensionCameraConfig(@ExtensionMode.Mode int mode) {
         Identifier id = Identifier.create(getExtendedCameraConfigProviderId(mode));
 
         if (ExtendedCameraConfigProviderStore.getConfigProvider(id) == CameraConfigProvider.EMPTY) {
             ExtendedCameraConfigProviderStore.addConfig(id, (cameraInfo, context) -> {
-                VendorExtender vendorExtender = getVendorExtender(mode);
+                VendorExtender vendorExtender = mVendorExtenderFactory.createVendorExtender(mode);
                 vendorExtender.init(cameraInfo);
 
                 ExtensionsUseCaseConfigFactory factory = new
@@ -226,7 +256,7 @@
     }
 
     @NonNull
-    private static VendorExtender getVendorExtender(int mode) {
+    static VendorExtender getVendorExtender(@ExtensionMode.Mode int mode) {
         boolean isAdvancedExtenderSupported = isAdvancedExtenderSupported();
 
         VendorExtender vendorExtender;
diff --git a/camera/camera-extensions/src/main/java/androidx/camera/extensions/ExtensionsManager.java b/camera/camera-extensions/src/main/java/androidx/camera/extensions/ExtensionsManager.java
index b6c7ced..9020456 100644
--- a/camera/camera-extensions/src/main/java/androidx/camera/extensions/ExtensionsManager.java
+++ b/camera/camera-extensions/src/main/java/androidx/camera/extensions/ExtensionsManager.java
@@ -31,6 +31,7 @@
 import androidx.camera.core.ImageCapture;
 import androidx.camera.core.Logger;
 import androidx.camera.core.Preview;
+import androidx.camera.core.impl.ExtendedCameraConfigProviderStore;
 import androidx.camera.core.impl.utils.ContextUtil;
 import androidx.camera.core.impl.utils.executor.CameraXExecutors;
 import androidx.camera.core.impl.utils.futures.Futures;
@@ -312,6 +313,7 @@
 
             // Once extension has been initialized start the deinit call
             if (availability == ExtensionsAvailability.LIBRARY_AVAILABLE) {
+                ExtendedCameraConfigProviderStore.clear();
                 sDeinitializeFuture = CallbackToFutureAdapter.getFuture(completer -> {
                     try {
                         InitializerImpl.deinit(
@@ -423,29 +425,59 @@
      *                          specified extension mode.
      * @param mode              The extension mode to check.
      * @return the range of estimated minimal and maximal capture latency in milliseconds.
-     * Returns null if no capture latency info can be provided.
-     * @throws IllegalArgumentException If this device doesn't support extensions function, or no
-     *                                  camera can be found to support the specified extension mode.
+     * Returns null if no capture latency info can be provided or if the device doesn't support
+     * the extension mode on this camera.
      */
     @Nullable
     public Range<Long> getEstimatedCaptureLatencyRange(@NonNull CameraSelector cameraSelector,
             @ExtensionMode.Mode int mode) {
         if (mode == ExtensionMode.NONE
                 || mExtensionsAvailability != ExtensionsAvailability.LIBRARY_AVAILABLE) {
-            throw new IllegalArgumentException(
-                    "No camera can be found to support the specified extensions mode! "
-                            + "isExtensionAvailable should be checked first before calling "
-                            + "getEstimatedCaptureLatencyRange.");
+            // Returns null for non-Extensions mode or if Extensions are not supported on this
+            // device.
+            return null;
         }
 
         return mExtensionsInfo.getEstimatedCaptureLatencyRange(cameraSelector, mode, null);
     }
 
+    /**
+     * Returns whether the given extension mode supports the {@link ImageAnalysis} use case on
+     * the camera specified by the given {@link CameraSelector}. If it returns false, invoking
+     * {@code ProcessCameraProvider.bindToLifecycle} with an {@link ImageAnalysis} use case will
+     * throw an {@link IllegalArgumentException}.
+     *
+     * @param cameraSelector    The {@link CameraSelector} to find a camera which supports the
+     *                          specified extension mode.
+     * @param mode              The extension mode to check.
+     * @return true if {@link ImageAnalysis} can be bound when the specified extension mode is
+     * enabled on the camera specified by the given {@link CameraSelector}. Returns false
+     * otherwise. If the device doesn't support this extension mode on this camera, it will also
+     * return false.
+     */
+    public boolean isImageAnalysisSupported(@NonNull CameraSelector cameraSelector,
+            @ExtensionMode.Mode int mode) {
+        if (mode == ExtensionMode.NONE) {
+            return true;
+        }
+
+        // Returns false if Extensions are not supported on this device.
+        if (mExtensionsAvailability != ExtensionsAvailability.LIBRARY_AVAILABLE) {
+            return false;
+        }
+
+        return mExtensionsInfo.isImageAnalysisSupported(cameraSelector, mode);
+    }
+
     @VisibleForTesting
     @NonNull
     ExtensionsAvailability getExtensionsAvailability() {
         return mExtensionsAvailability;
     }
+    @VisibleForTesting
+    void setVendorExtenderFactory(VendorExtenderFactory vendorExtenderFactory) {
+        mExtensionsInfo.setVendorExtenderFactory(vendorExtenderFactory);
+    }
 
     private ExtensionsManager(@NonNull ExtensionsAvailability extensionsAvailability,
             @NonNull CameraProvider cameraProvider) {
diff --git a/camera/camera-extensions/src/main/java/androidx/camera/extensions/VendorExtenderFactory.java b/camera/camera-extensions/src/main/java/androidx/camera/extensions/VendorExtenderFactory.java
new file mode 100644
index 0000000..f8715c35
--- /dev/null
+++ b/camera/camera-extensions/src/main/java/androidx/camera/extensions/VendorExtenderFactory.java
@@ -0,0 +1,29 @@
+/*
+ * Copyright 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package androidx.camera.extensions;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.RequiresApi;
+import androidx.annotation.RestrictTo;
+import androidx.camera.extensions.internal.VendorExtender;
+
+@RequiresApi(21) // TODO(b/200306659): Remove and replace with annotation on package-info.java
+@RestrictTo(RestrictTo.Scope.LIBRARY)
+interface VendorExtenderFactory {
+    @NonNull
+    VendorExtender createVendorExtender(@ExtensionMode.Mode int extensionMode);
+}
diff --git a/camera/camera-extensions/src/main/java/androidx/camera/extensions/internal/BasicVendorExtender.java b/camera/camera-extensions/src/main/java/androidx/camera/extensions/internal/BasicVendorExtender.java
index 61f0550..d78bc97 100644
--- a/camera/camera-extensions/src/main/java/androidx/camera/extensions/internal/BasicVendorExtender.java
+++ b/camera/camera-extensions/src/main/java/androidx/camera/extensions/internal/BasicVendorExtender.java
@@ -35,6 +35,7 @@
 import androidx.camera.camera2.interop.ExperimentalCamera2Interop;
 import androidx.camera.core.CameraInfo;
 import androidx.camera.core.Logger;
+import androidx.camera.core.impl.ImageFormatConstants;
 import androidx.camera.core.impl.SessionProcessor;
 import androidx.camera.extensions.ExtensionMode;
 import androidx.camera.extensions.impl.AutoImageCaptureExtenderImpl;
@@ -63,8 +64,7 @@
 /**
  * Basic vendor interface implementation
  */
-@RequiresApi(23) // TODO(b/200306659): Remove and replace with annotation on package-info.java
-// replaceImageFormatIfMissing accesses ImageFormat#PRIVATE which is public since API level 23.
+@RequiresApi(21) // TODO(b/200306659): Remove and replace with annotation on package-info.java
 public class BasicVendorExtender implements VendorExtender {
     private static final String TAG = "BasicVendorExtender";
     private final ExtensionDisabledValidator mExtensionDisabledValidator =
@@ -208,7 +208,7 @@
                 == PreviewExtenderImpl.ProcessorType.PROCESSOR_TYPE_IMAGE_PROCESSOR) {
             return ImageFormat.YUV_420_888;
         } else {
-            return ImageFormat.PRIVATE;
+            return ImageFormatConstants.INTERNAL_DEFINED_IMAGE_FORMAT_PRIVATE /* PRIVATE */;
         }
     }
 
@@ -227,8 +227,10 @@
                     // PreviewExtenderImpl.getSupportedResolutions() returns the supported size
                     // for input surface. We need to ensure output surface format is supported.
                     return replaceImageFormatIfMissing(result,
-                            ImageFormat.YUV_420_888 /* formatToBeReplaced */,
-                            ImageFormat.PRIVATE /* newFormat */);
+                            /* formatToBeReplaced */
+                            ImageFormat.YUV_420_888,
+                            /* newFormat */
+                            ImageFormatConstants.INTERNAL_DEFINED_IMAGE_FORMAT_PRIVATE);
                 }
             } catch (NoSuchMethodError e) {
             }
@@ -241,7 +243,8 @@
         // able to output to the output surface, therefore we fetch the sizes from the
         // input image format for the output format.
         int inputImageFormat = getPreviewInputImageFormat();
-        return Arrays.asList(new Pair<>(ImageFormat.PRIVATE, getOutputSizes(inputImageFormat)));
+        return Arrays.asList(new Pair<>(ImageFormatConstants.INTERNAL_DEFINED_IMAGE_FORMAT_PRIVATE,
+                getOutputSizes(inputImageFormat)));
     }
 
 
diff --git a/camera/camera-extensions/src/main/java/androidx/camera/extensions/internal/ExtensionsUseCaseConfigFactory.java b/camera/camera-extensions/src/main/java/androidx/camera/extensions/internal/ExtensionsUseCaseConfigFactory.java
index 35f2a92..a3d601c 100644
--- a/camera/camera-extensions/src/main/java/androidx/camera/extensions/internal/ExtensionsUseCaseConfigFactory.java
+++ b/camera/camera-extensions/src/main/java/androidx/camera/extensions/internal/ExtensionsUseCaseConfigFactory.java
@@ -18,16 +18,23 @@
 
 import static androidx.camera.core.impl.UseCaseConfig.OPTION_ZSL_DISABLED;
 
+import android.graphics.ImageFormat;
+import android.util.Pair;
+import android.util.Size;
+
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
 import androidx.annotation.RequiresApi;
 import androidx.camera.core.ImageCapture.CaptureMode;
 import androidx.camera.core.impl.Config;
+import androidx.camera.core.impl.ImageAnalysisConfig;
 import androidx.camera.core.impl.MutableOptionsBundle;
 import androidx.camera.core.impl.OptionsBundle;
 import androidx.camera.core.impl.UseCaseConfigFactory;
 import androidx.camera.extensions.ExtensionMode;
 
+import java.util.List;
+
 /**
  * Implementation of UseCaseConfigFactory to provide the default extensions configurations for use
  * cases.
@@ -36,12 +43,33 @@
 public final class ExtensionsUseCaseConfigFactory implements UseCaseConfigFactory {
     private final ImageCaptureConfigProvider mImageCaptureConfigProvider;
     private final PreviewConfigProvider mPreviewConfigProvider;
+    private final ImageAnalysisConfigProvider mImageAnalysisConfigProvider;
 
     public ExtensionsUseCaseConfigFactory(
             @ExtensionMode.Mode int mode,
             @NonNull VendorExtender vendorExtender) {
         mImageCaptureConfigProvider = new ImageCaptureConfigProvider(mode, vendorExtender);
         mPreviewConfigProvider = new PreviewConfigProvider(mode, vendorExtender);
+        mImageAnalysisConfigProvider = new ImageAnalysisConfigProvider(vendorExtender);
+    }
+
+    private boolean isImageAnalysisSupported(
+            @Nullable List<Pair<Integer, Size[]>> supportedResolutions) {
+        if (supportedResolutions == null) {
+            return false;
+        }
+
+        for (Pair<Integer, Size[]> pair : supportedResolutions) {
+            int imageFormat = pair.first;
+            Size[] sizes = pair.second;
+            if (imageFormat == ImageFormat.YUV_420_888) {
+                if (sizes != null && sizes.length > 0) {
+                    return true;
+                }
+            }
+        }
+
+        return false;
     }
 
     /**
@@ -65,6 +93,20 @@
                 mutableOptionsBundle =
                         MutableOptionsBundle.from(mPreviewConfigProvider.getConfig());
                 break;
+            case IMAGE_ANALYSIS: // invoked when ImageAnalysis is bound.
+                ImageAnalysisConfig config =  mImageAnalysisConfigProvider.getConfig();
+                List<Pair<Integer, Size[]>> supportedResolutions =
+                        config.getSupportedResolutions(/* valueIfMissing */ null);
+                if (!isImageAnalysisSupported(supportedResolutions)) {
+                    // This will be thrown when invoking bindToLifecycle.
+                    throw new IllegalArgumentException(
+                            "ImageAnalysis is not supported when Extension is enabled on "
+                                    + "this device. Check "
+                                    + "ExtensionsManager.isImageAnalysisSupported before binding "
+                                    + "the ImageAnalysis use case.");
+                }
+                mutableOptionsBundle = MutableOptionsBundle.from(config);
+                break;
             case VIDEO_CAPTURE:
                 throw new IllegalArgumentException("CameraX Extensions doesn't support "
                         + "VideoCapture!");
diff --git a/camera/camera-extensions/src/main/java/androidx/camera/extensions/internal/ImageAnalysisConfigProvider.java b/camera/camera-extensions/src/main/java/androidx/camera/extensions/internal/ImageAnalysisConfigProvider.java
new file mode 100644
index 0000000..e2d6a64
--- /dev/null
+++ b/camera/camera-extensions/src/main/java/androidx/camera/extensions/internal/ImageAnalysisConfigProvider.java
@@ -0,0 +1,55 @@
+/*
+ * Copyright 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package androidx.camera.extensions.internal;
+
+import android.graphics.ImageFormat;
+import android.util.Pair;
+import android.util.Size;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.RequiresApi;
+import androidx.camera.core.ImageAnalysis;
+import androidx.camera.core.impl.ConfigProvider;
+import androidx.camera.core.impl.ImageAnalysisConfig;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Provides extensions related configs for image analysis
+ */
+@RequiresApi(21) // TODO(b/200306659): Remove and replace with annotation on package-info.java
+public class ImageAnalysisConfigProvider implements ConfigProvider<ImageAnalysisConfig> {
+    private final VendorExtender mVendorExtender;
+    public ImageAnalysisConfigProvider(
+            @NonNull VendorExtender vendorExtender) {
+        mVendorExtender = vendorExtender;
+    }
+
+    @NonNull
+    @Override
+    public ImageAnalysisConfig getConfig() {
+        ImageAnalysis.Builder builder = new ImageAnalysis.Builder();
+        Size[] sizes = mVendorExtender.getSupportedYuvAnalysisResolutions();
+        List<Pair<Integer, Size[]>> sizeList = new ArrayList<>();
+        if (sizes != null && sizes.length > 0) {
+            sizeList.add(new Pair<>(ImageFormat.YUV_420_888, sizes));
+        }
+        builder.setSupportedResolutions(sizeList);
+        return builder.getUseCaseConfig();
+    }
+}
diff --git a/camera/camera-video/src/androidTest/java/androidx/camera/video/internal/config/VideoEncoderConfigDefaultResolverTest.kt b/camera/camera-video/src/androidTest/java/androidx/camera/video/internal/config/VideoEncoderConfigDefaultResolverTest.kt
index 354f38a..639bc32 100644
--- a/camera/camera-video/src/androidTest/java/androidx/camera/video/internal/config/VideoEncoderConfigDefaultResolverTest.kt
+++ b/camera/camera-video/src/androidTest/java/androidx/camera/video/internal/config/VideoEncoderConfigDefaultResolverTest.kt
@@ -16,8 +16,12 @@
 
 package androidx.camera.video.internal.config
 
+import android.media.MediaCodecInfo.CodecProfileLevel
+import android.media.MediaFormat
 import android.util.Range
+import androidx.camera.core.DynamicRange
 import androidx.camera.core.SurfaceRequest
+import androidx.camera.core.impl.EncoderProfilesProxy
 import androidx.camera.core.impl.Timebase
 import androidx.camera.testing.EncoderProfilesUtil
 import androidx.camera.video.VideoSpec
@@ -34,7 +38,8 @@
 class VideoEncoderConfigDefaultResolverTest {
 
     companion object {
-        const val MIME_TYPE = "video/avc"
+        const val DEFAULT_MIME_TYPE = MediaFormat.MIMETYPE_VIDEO_AVC
+        const val UNSUPPORTED_MIME_TYPE = MediaFormat.MIMETYPE_VIDEO_SCRAMBLED
         val TIMEBASE = Timebase.UPTIME
         const val FRAME_RATE_30 = 30
         const val FRAME_RATE_45 = 45
@@ -53,43 +58,46 @@
 
         val configSupplierCif =
             VideoEncoderConfigDefaultResolver(
-                MIME_TYPE,
+                DEFAULT_MIME_TYPE,
                 TIMEBASE,
                 DEFAULT_VIDEO_SPEC,
                 surfaceSizeCif,
+                DynamicRange.SDR,
                 expectedFrameRateRange
             )
         val configSupplier720p =
             VideoEncoderConfigDefaultResolver(
-                MIME_TYPE,
+                DEFAULT_MIME_TYPE,
                 TIMEBASE,
                 DEFAULT_VIDEO_SPEC,
                 surfaceSize720p,
+                DynamicRange.SDR,
                 expectedFrameRateRange
             )
         val configSupplier1080p =
             VideoEncoderConfigDefaultResolver(
-                MIME_TYPE,
+                DEFAULT_MIME_TYPE,
                 TIMEBASE,
                 DEFAULT_VIDEO_SPEC,
                 surfaceSize1080p,
+                DynamicRange.SDR,
                 expectedFrameRateRange
             )
 
         val configCif = configSupplierCif.get()
-        assertThat(configCif.mimeType).isEqualTo(MIME_TYPE)
+        assertThat(configCif.mimeType).isEqualTo(DEFAULT_MIME_TYPE)
         assertThat(configCif.bitrate).isGreaterThan(0)
         assertThat(configCif.resolution).isEqualTo(surfaceSizeCif)
         assertThat(configCif.frameRate).isEqualTo(FRAME_RATE_30)
 
         val config720p = configSupplier720p.get()
-        assertThat(config720p.mimeType).isEqualTo(MIME_TYPE)
+        assertThat(config720p.mimeType).isEqualTo(DEFAULT_MIME_TYPE)
         assertThat(config720p.bitrate).isGreaterThan(0)
         assertThat(config720p.resolution).isEqualTo(surfaceSize720p)
         assertThat(config720p.frameRate).isEqualTo(FRAME_RATE_30)
 
         val config1080p = configSupplier1080p.get()
-        assertThat(config1080p.mimeType).isEqualTo(MIME_TYPE)
+        assertThat(config1080p.mimeType).isEqualTo(DEFAULT_MIME_TYPE)
         assertThat(config1080p.bitrate).isGreaterThan(0)
         assertThat(config1080p.resolution).isEqualTo(surfaceSize1080p)
         assertThat(config1080p.frameRate).isEqualTo(FRAME_RATE_30)
@@ -102,10 +110,11 @@
         // Get default bit rate for this size
         val defaultConfig =
             VideoEncoderConfigDefaultResolver(
-                MIME_TYPE,
+                DEFAULT_MIME_TYPE,
                 TIMEBASE,
                 DEFAULT_VIDEO_SPEC,
                 surfaceSize720p,
+                DynamicRange.SDR,
                 SurfaceRequest.FRAME_RATE_RANGE_UNSPECIFIED
             ).get()
         val defaultBitrate = defaultConfig.bitrate
@@ -121,20 +130,22 @@
 
         assertThat(
             VideoEncoderConfigDefaultResolver(
-                MIME_TYPE,
+                DEFAULT_MIME_TYPE,
                 TIMEBASE,
                 higherVideoSpec,
                 surfaceSize720p,
+                DynamicRange.SDR,
                 SurfaceRequest.FRAME_RATE_RANGE_UNSPECIFIED
             ).get().bitrate
         ).isEqualTo(higherBitrate)
 
         assertThat(
             VideoEncoderConfigDefaultResolver(
-                MIME_TYPE,
+                DEFAULT_MIME_TYPE,
                 TIMEBASE,
                 lowerVideoSpec,
                 surfaceSize720p,
+                DynamicRange.SDR,
                 SurfaceRequest.FRAME_RATE_RANGE_UNSPECIFIED
             ).get().bitrate
         ).isEqualTo(lowerBitrate)
@@ -146,10 +157,11 @@
 
         assertThat(
             VideoEncoderConfigDefaultResolver(
-                MIME_TYPE,
+                DEFAULT_MIME_TYPE,
                 TIMEBASE,
                 DEFAULT_VIDEO_SPEC,
                 size,
+                DynamicRange.SDR,
                 SurfaceRequest.FRAME_RATE_RANGE_UNSPECIFIED
             ).get().frameRate
         ).isEqualTo(
@@ -166,14 +178,132 @@
         // Expected frame rate range takes precedence over VideoSpec
         assertThat(
             VideoEncoderConfigDefaultResolver(
-                MIME_TYPE,
+                DEFAULT_MIME_TYPE,
                 TIMEBASE,
                 DEFAULT_VIDEO_SPEC,
                 size,
+                DynamicRange.SDR,
                 expectedFrameRateRange
             ).get().frameRate
         ).isEqualTo(
             FRAME_RATE_45
         )
     }
+
+    @Test
+    fun avcMimeType_producesNoProfile_forHdrDynamicRange() {
+        testMimeAndDynamicRangeResolveToProfile(
+            MediaFormat.MIMETYPE_VIDEO_AVC,
+            DynamicRange.HLG_10_BIT, // AVC does not support HLG10
+            EncoderProfilesProxy.CODEC_PROFILE_NONE
+        )
+    }
+
+    @Test
+    fun unsupportedDynamicRange_producesNoProfile() {
+        testMimeAndDynamicRangeResolveToProfile(
+            MediaFormat.MIMETYPE_VIDEO_HEVC,
+            DynamicRange.DOLBY_VISION_10_BIT, // Dolby vision not supported by HEVC
+            EncoderProfilesProxy.CODEC_PROFILE_NONE
+        )
+    }
+
+    @Test
+    fun unsupportedMime_producesNoProfile() {
+        testMimeAndDynamicRangeResolveToProfile(
+            UNSUPPORTED_MIME_TYPE,
+            DynamicRange.HLG_10_BIT,
+            EncoderProfilesProxy.CODEC_PROFILE_NONE
+        )
+    }
+
+    @Test
+    fun codecProfileIsChosenFromMimeAndDynamicRange_hevc() {
+        val dynamicRangeToExpectedProfiles = mapOf(
+            DynamicRange.SDR to CodecProfileLevel.HEVCProfileMain,
+            DynamicRange.HLG_10_BIT to CodecProfileLevel.HEVCProfileMain10,
+            DynamicRange.HDR10_10_BIT to CodecProfileLevel.HEVCProfileMain10HDR10,
+            DynamicRange.HDR10_PLUS_10_BIT to CodecProfileLevel.HEVCProfileMain10HDR10Plus
+        )
+
+        for (entry in dynamicRangeToExpectedProfiles) {
+            testMimeAndDynamicRangeResolveToProfile(
+                MediaFormat.MIMETYPE_VIDEO_HEVC,
+                entry.key,
+                entry.value
+            )
+        }
+    }
+
+    @Test
+    fun codecProfileIsChosenFromMimeAndDynamicRange_av1() {
+        val dynamicRangeToExpectedProfiles = mapOf(
+            DynamicRange.SDR to CodecProfileLevel.AV1ProfileMain8,
+            DynamicRange.HLG_10_BIT to CodecProfileLevel.AV1ProfileMain10,
+            DynamicRange.HDR10_10_BIT to CodecProfileLevel.AV1ProfileMain10HDR10,
+            DynamicRange.HDR10_PLUS_10_BIT to CodecProfileLevel.AV1ProfileMain10HDR10Plus
+        )
+
+        for (entry in dynamicRangeToExpectedProfiles) {
+            testMimeAndDynamicRangeResolveToProfile(
+                MediaFormat.MIMETYPE_VIDEO_HEVC,
+                entry.key,
+                entry.value
+            )
+        }
+    }
+
+    @Test
+    fun codecProfileIsChosenFromMimeAndDynamicRange_vp9() {
+        val dynamicRangeToExpectedProfiles = mapOf(
+            DynamicRange.SDR to CodecProfileLevel.VP9Profile0,
+            DynamicRange.HLG_10_BIT to CodecProfileLevel.VP9Profile2,
+            DynamicRange.HDR10_10_BIT to CodecProfileLevel.VP9Profile2HDR,
+            DynamicRange.HDR10_PLUS_10_BIT to CodecProfileLevel.VP9Profile2HDR10Plus
+        )
+
+        for (entry in dynamicRangeToExpectedProfiles) {
+            testMimeAndDynamicRangeResolveToProfile(
+                MediaFormat.MIMETYPE_VIDEO_VP9,
+                entry.key,
+                entry.value
+            )
+        }
+    }
+
+    @Test
+    fun codecProfileIsChosenFromMimeAndDynamicRange_dolbyVision() {
+        val dynamicRangeToExpectedProfiles = mapOf(
+            DynamicRange.DOLBY_VISION_10_BIT to CodecProfileLevel.DolbyVisionProfileDvheSt,
+            DynamicRange.DOLBY_VISION_8_BIT to CodecProfileLevel.DolbyVisionProfileDvavSe,
+        )
+
+        for (entry in dynamicRangeToExpectedProfiles) {
+            testMimeAndDynamicRangeResolveToProfile(
+                MediaFormat.MIMETYPE_VIDEO_DOLBY_VISION,
+                entry.key,
+                entry.value
+            )
+        }
+    }
+
+    private fun testMimeAndDynamicRangeResolveToProfile(
+        mime: String,
+        dynamicRange: DynamicRange,
+        expectedProfile: Int
+    ) {
+        // Expected frame rate range takes precedence over VideoSpec
+        assertThat(
+            VideoEncoderConfigDefaultResolver(
+                mime,
+                TIMEBASE,
+                DEFAULT_VIDEO_SPEC,
+                EncoderProfilesUtil.RESOLUTION_1080P,
+                dynamicRange,
+                SurfaceRequest.FRAME_RATE_RANGE_UNSPECIFIED
+            ).get().profile
+        ).isEqualTo(
+            expectedProfile
+        )
+    }
 }
\ No newline at end of file
diff --git a/camera/camera-video/src/androidTest/java/androidx/camera/video/internal/config/VideoEncoderConfigVideoProfileResolverTest.kt b/camera/camera-video/src/androidTest/java/androidx/camera/video/internal/config/VideoEncoderConfigVideoProfileResolverTest.kt
index 8bd09e7..e32b19f 100644
--- a/camera/camera-video/src/androidTest/java/androidx/camera/video/internal/config/VideoEncoderConfigVideoProfileResolverTest.kt
+++ b/camera/camera-video/src/androidTest/java/androidx/camera/video/internal/config/VideoEncoderConfigVideoProfileResolverTest.kt
@@ -75,9 +75,7 @@
     private val defaultVideoSpec = VideoSpec.builder().build()
     private val timebase = Timebase.UPTIME
 
-    // TODO(b/278168212): Only SDR is checked by now. Need to extend to HDR dynamic ranges.
-    private val dynamicRange = DynamicRange.SDR
-
+    private lateinit var dynamicRanges: Set<DynamicRange>
     private lateinit var cameraUseCaseAdapter: CameraUseCaseAdapter
     private lateinit var videoCapabilities: VideoCapabilities
 
@@ -92,7 +90,10 @@
 
         val cameraInfo = CameraUtil.createCameraUseCaseAdapter(context, cameraSelector).cameraInfo
         videoCapabilities = Recorder.getVideoCapabilities(cameraInfo)
-        Assume.assumeTrue(videoCapabilities.getSupportedQualities(dynamicRange).isNotEmpty())
+        dynamicRanges = videoCapabilities.supportedDynamicRanges
+        dynamicRanges.forEach {
+            Assume.assumeTrue(videoCapabilities.getSupportedQualities(it).isNotEmpty())
+        }
     }
 
     @After
@@ -108,190 +109,243 @@
 
     @Test
     fun defaultVideoSpecProducesValidSettings_forSurfaceSizeEquivalentToQuality() {
-        val supportedProfiles = videoCapabilities.getSupportedQualities(dynamicRange).map {
-            videoCapabilities.getProfiles(it, dynamicRange)!!
-        }
+        dynamicRanges.forEach { dynamicRange ->
+            val supportedProfiles = videoCapabilities.getSupportedQualities(dynamicRange).map {
+                videoCapabilities.getProfiles(it, dynamicRange)!!
+            }
 
-        supportedProfiles.forEach {
-            val videoProfile = it.defaultVideoProfile
-            val config = VideoEncoderConfigVideoProfileResolver(
-                videoProfile.mediaType,
-                timebase,
-                defaultVideoSpec,
-                Size(videoProfile.width, videoProfile.height),
-                videoProfile,
-                SurfaceRequest.FRAME_RATE_RANGE_UNSPECIFIED
-            ).get()
+            supportedProfiles.forEach {
+                val videoProfile = it.defaultVideoProfile
+                val config = VideoEncoderConfigVideoProfileResolver(
+                    videoProfile.mediaType,
+                    timebase,
+                    defaultVideoSpec,
+                    Size(videoProfile.width, videoProfile.height),
+                    videoProfile,
+                    dynamicRange,
+                    SurfaceRequest.FRAME_RATE_RANGE_UNSPECIFIED
+                ).get()
 
-            assertThat(config.mimeType).isEqualTo(videoProfile.mediaType)
-            assertThat(config.bitrate).isEqualTo(videoProfile.bitrate)
-            assertThat(config.resolution).isEqualTo(Size(videoProfile.width, videoProfile.height))
-            assertThat(config.frameRate).isEqualTo(videoProfile.frameRate)
+                assertThat(config.mimeType).isEqualTo(videoProfile.mediaType)
+                assertThat(config.bitrate).isEqualTo(videoProfile.bitrate)
+                assertThat(config.resolution).isEqualTo(
+                    Size(
+                        videoProfile.width,
+                        videoProfile.height
+                    )
+                )
+                assertThat(config.frameRate).isEqualTo(videoProfile.frameRate)
+            }
         }
     }
 
     @Test
     fun bitrateIncreasesOrDecreasesWithIncreaseOrDecreaseInSurfaceSize() {
-        val profile =
-            videoCapabilities.getProfiles(Quality.HIGHEST, dynamicRange)!!.defaultVideoProfile
-        val surfaceSize = Size(profile.width, profile.height)
+        dynamicRanges.forEach { dynamicRange ->
+            val profile =
+                videoCapabilities.getProfiles(Quality.HIGHEST, dynamicRange)!!.defaultVideoProfile
+            val surfaceSize = Size(profile.width, profile.height)
 
-        val defaultBitrate = VideoEncoderConfigVideoProfileResolver(
-            profile.mediaType,
-            timebase,
-            defaultVideoSpec,
-            surfaceSize,
-            profile,
-            SurfaceRequest.FRAME_RATE_RANGE_UNSPECIFIED
-        ).get().bitrate
-
-        val increasedSurfaceSize = Size(surfaceSize.width + 100, surfaceSize.height + 100)
-        val decreasedSurfaceSize = Size(surfaceSize.width - 100, surfaceSize.height - 100)
-
-        assertThat(
-            VideoEncoderConfigVideoProfileResolver(
+            val defaultBitrate = VideoEncoderConfigVideoProfileResolver(
                 profile.mediaType,
                 timebase,
                 defaultVideoSpec,
-                increasedSurfaceSize,
+                surfaceSize,
                 profile,
+                dynamicRange,
                 SurfaceRequest.FRAME_RATE_RANGE_UNSPECIFIED
             ).get().bitrate
-        ).isGreaterThan(defaultBitrate)
 
-        assertThat(
-            VideoEncoderConfigVideoProfileResolver(
-                profile.mediaType,
-                timebase,
-                defaultVideoSpec,
-                decreasedSurfaceSize,
-                profile,
-                SurfaceRequest.FRAME_RATE_RANGE_UNSPECIFIED
-            ).get().bitrate
-        ).isLessThan(defaultBitrate)
+            val increasedSurfaceSize = Size(surfaceSize.width + 100, surfaceSize.height + 100)
+            val decreasedSurfaceSize = Size(surfaceSize.width - 100, surfaceSize.height - 100)
+
+            assertThat(
+                VideoEncoderConfigVideoProfileResolver(
+                    profile.mediaType,
+                    timebase,
+                    defaultVideoSpec,
+                    increasedSurfaceSize,
+                    profile,
+                    dynamicRange,
+                    SurfaceRequest.FRAME_RATE_RANGE_UNSPECIFIED
+                ).get().bitrate
+            ).isGreaterThan(defaultBitrate)
+
+            assertThat(
+                VideoEncoderConfigVideoProfileResolver(
+                    profile.mediaType,
+                    timebase,
+                    defaultVideoSpec,
+                    decreasedSurfaceSize,
+                    profile,
+                    dynamicRange,
+                    SurfaceRequest.FRAME_RATE_RANGE_UNSPECIFIED
+                ).get().bitrate
+            ).isLessThan(defaultBitrate)
+        }
     }
 
     @Test
     fun bitrateRangeInVideoSpecClampsBitrate() {
-        val profile =
-            videoCapabilities.getProfiles(Quality.HIGHEST, dynamicRange)!!.defaultVideoProfile
-        val surfaceSize = Size(profile.width, profile.height)
+        dynamicRanges.forEach { dynamicRange ->
+            val profile =
+                videoCapabilities.getProfiles(Quality.HIGHEST, dynamicRange)!!.defaultVideoProfile
+            val surfaceSize = Size(profile.width, profile.height)
 
-        val defaultBitrate = VideoEncoderConfigVideoProfileResolver(
-            profile.mediaType,
-            timebase,
-            defaultVideoSpec,
-            surfaceSize,
-            profile,
-            SurfaceRequest.FRAME_RATE_RANGE_UNSPECIFIED
-        ).get().bitrate
-
-        // Create video spec with limit 20% higher than default.
-        val higherBitrate = (defaultBitrate * 1.2).toInt()
-        val higherVideoSpec =
-            VideoSpec.builder().setBitrate(Range(higherBitrate, Int.MAX_VALUE)).build()
-
-        // Create video spec with limit 20% lower than default.
-        val lowerBitrate = (defaultBitrate * 0.8).toInt()
-        val lowerVideoSpec = VideoSpec.builder().setBitrate(Range(0, lowerBitrate)).build()
-
-        assertThat(
-            VideoEncoderConfigVideoProfileResolver(
+            val defaultBitrate = VideoEncoderConfigVideoProfileResolver(
                 profile.mediaType,
                 timebase,
-                higherVideoSpec,
+                defaultVideoSpec,
                 surfaceSize,
                 profile,
+                dynamicRange,
                 SurfaceRequest.FRAME_RATE_RANGE_UNSPECIFIED
             ).get().bitrate
-        ).isEqualTo(higherBitrate)
 
-        assertThat(
-            VideoEncoderConfigVideoProfileResolver(
-                profile.mediaType,
-                timebase,
-                lowerVideoSpec,
-                surfaceSize,
-                profile,
-                SurfaceRequest.FRAME_RATE_RANGE_UNSPECIFIED
-            ).get().bitrate
-        ).isEqualTo(lowerBitrate)
+            // Create video spec with limit 20% higher than default.
+            val higherBitrate = (defaultBitrate * 1.2).toInt()
+            val higherVideoSpec =
+                VideoSpec.builder().setBitrate(Range(higherBitrate, Int.MAX_VALUE)).build()
+
+            // Create video spec with limit 20% lower than default.
+            val lowerBitrate = (defaultBitrate * 0.8).toInt()
+            val lowerVideoSpec = VideoSpec.builder().setBitrate(Range(0, lowerBitrate)).build()
+
+            assertThat(
+                VideoEncoderConfigVideoProfileResolver(
+                    profile.mediaType,
+                    timebase,
+                    higherVideoSpec,
+                    surfaceSize,
+                    profile,
+                    dynamicRange,
+                    SurfaceRequest.FRAME_RATE_RANGE_UNSPECIFIED
+                ).get().bitrate
+            ).isEqualTo(higherBitrate)
+
+            assertThat(
+                VideoEncoderConfigVideoProfileResolver(
+                    profile.mediaType,
+                    timebase,
+                    lowerVideoSpec,
+                    surfaceSize,
+                    profile,
+                    dynamicRange,
+                    SurfaceRequest.FRAME_RATE_RANGE_UNSPECIFIED
+                ).get().bitrate
+            ).isEqualTo(lowerBitrate)
+        }
     }
 
     @Test
     fun resolvedFrameRateIsClampedToOperatingRate() {
-        val profile =
-            videoCapabilities.getProfiles(Quality.HIGHEST, dynamicRange)!!.defaultVideoProfile
-        val surfaceSize = Size(profile.width, profile.height)
+        dynamicRanges.forEach { dynamicRange ->
+            val profile =
+                videoCapabilities.getProfiles(Quality.HIGHEST, dynamicRange)!!.defaultVideoProfile
+            val surfaceSize = Size(profile.width, profile.height)
 
-        // Construct operating ranges that are both lower and higher than the profile FPS
-        val lowerOperatingRange = Range(profile.frameRate / 4, profile.frameRate / 2)
-        val higherOperatingRange = Range(profile.frameRate * 2, profile.frameRate * 4)
+            // Construct operating ranges that are both lower and higher than the profile FPS
+            val lowerOperatingRange = Range(profile.frameRate / 4, profile.frameRate / 2)
+            val higherOperatingRange = Range(profile.frameRate * 2, profile.frameRate * 4)
 
-        val clampedDownFrameRate = VideoEncoderConfigVideoProfileResolver(
-            profile.mediaType,
-            timebase,
-            defaultVideoSpec,
-            surfaceSize,
-            profile,
-            lowerOperatingRange
-        ).get().frameRate
+            val clampedDownFrameRate = VideoEncoderConfigVideoProfileResolver(
+                profile.mediaType,
+                timebase,
+                defaultVideoSpec,
+                surfaceSize,
+                profile,
+                dynamicRange,
+                lowerOperatingRange
+            ).get().frameRate
 
-        val clampedUpFrameRate = VideoEncoderConfigVideoProfileResolver(
-            profile.mediaType,
-            timebase,
-            defaultVideoSpec,
-            surfaceSize,
-            profile,
-            higherOperatingRange
-        ).get().frameRate
+            val clampedUpFrameRate = VideoEncoderConfigVideoProfileResolver(
+                profile.mediaType,
+                timebase,
+                defaultVideoSpec,
+                surfaceSize,
+                profile,
+                dynamicRange,
+                higherOperatingRange
+            ).get().frameRate
 
-        assertThat(clampedDownFrameRate).isEqualTo(lowerOperatingRange.upper)
-        assertThat(clampedUpFrameRate).isEqualTo(higherOperatingRange.lower)
+            assertThat(clampedDownFrameRate).isEqualTo(lowerOperatingRange.upper)
+            assertThat(clampedUpFrameRate).isEqualTo(higherOperatingRange.lower)
+        }
     }
 
     @Test
     fun resolvedFrameRateInsideOperatingRangeIsUnchanged() {
-        val profile =
-            videoCapabilities.getProfiles(Quality.HIGHEST, dynamicRange)!!.defaultVideoProfile
-        val surfaceSize = Size(profile.width, profile.height)
+        dynamicRanges.forEach { dynamicRange ->
+            val profile =
+                videoCapabilities.getProfiles(Quality.HIGHEST, dynamicRange)!!.defaultVideoProfile
+            val surfaceSize = Size(profile.width, profile.height)
 
-        // Construct a range that includes the profile FPS
-        val operatingRange = Range(profile.frameRate / 2, profile.frameRate * 2)
+            // Construct a range that includes the profile FPS
+            val operatingRange = Range(profile.frameRate / 2, profile.frameRate * 2)
 
-        val resolvedFrameRate = VideoEncoderConfigVideoProfileResolver(
-            profile.mediaType,
-            timebase,
-            defaultVideoSpec,
-            surfaceSize,
-            profile,
-            operatingRange
-        ).get().frameRate
+            val resolvedFrameRate = VideoEncoderConfigVideoProfileResolver(
+                profile.mediaType,
+                timebase,
+                defaultVideoSpec,
+                surfaceSize,
+                profile,
+                dynamicRange,
+                operatingRange
+            ).get().frameRate
 
-        assertThat(resolvedFrameRate).isEqualTo(profile.frameRate)
+            assertThat(resolvedFrameRate).isEqualTo(profile.frameRate)
+        }
     }
 
     @Test
     fun bitrateScalesWithFrameRateOperatingRange() {
-        val profile =
-            videoCapabilities.getProfiles(Quality.HIGHEST, dynamicRange)!!.defaultVideoProfile
-        val surfaceSize = Size(profile.width, profile.height)
+        dynamicRanges.forEach { dynamicRange ->
+            val profile =
+                videoCapabilities.getProfiles(Quality.HIGHEST, dynamicRange)!!.defaultVideoProfile
+            val surfaceSize = Size(profile.width, profile.height)
 
-        // Construct a range which is constant and half the profile FPS
-        val operatingFrameRate = profile.frameRate / 2
-        val operatingRange = Range(operatingFrameRate, operatingFrameRate)
+            // Construct a range which is constant and half the profile FPS
+            val operatingFrameRate = profile.frameRate / 2
+            val operatingRange = Range(operatingFrameRate, operatingFrameRate)
 
-        val resolvedBitrate = VideoEncoderConfigVideoProfileResolver(
-            profile.mediaType,
-            timebase,
-            defaultVideoSpec,
-            surfaceSize,
-            profile,
-            operatingRange
-        ).get().bitrate
+            val resolvedBitrate = VideoEncoderConfigVideoProfileResolver(
+                profile.mediaType,
+                timebase,
+                defaultVideoSpec,
+                surfaceSize,
+                profile,
+                dynamicRange,
+                operatingRange
+            ).get().bitrate
 
-        assertThat(resolvedBitrate).isEqualTo(
-            (profile.bitrate * (operatingFrameRate.toDouble() / profile.frameRate)).toInt()
-        )
+            assertThat(resolvedBitrate).isEqualTo(
+                (profile.bitrate * (operatingFrameRate.toDouble() / profile.frameRate)).toInt()
+            )
+        }
+    }
+
+    @Test
+    fun codecProfileLevel_isResolvedFromVideoProfile() {
+        dynamicRanges.forEach { dynamicRange ->
+            val supportedProfiles = videoCapabilities.getSupportedQualities(dynamicRange).flatMap {
+                videoCapabilities.getProfiles(it, dynamicRange)!!.videoProfiles
+            }
+
+            supportedProfiles.forEach { videoProfile ->
+                val surfaceSize = Size(videoProfile.width, videoProfile.height)
+
+                val resolvedProfile = VideoEncoderConfigVideoProfileResolver(
+                    videoProfile.mediaType,
+                    timebase,
+                    defaultVideoSpec,
+                    surfaceSize,
+                    videoProfile,
+                    dynamicRange,
+                    Range(videoProfile.frameRate, videoProfile.frameRate)
+                ).get().profile
+
+                assertThat(resolvedProfile).isEqualTo(videoProfile.profile)
+            }
+        }
     }
 }
\ No newline at end of file
diff --git a/camera/camera-video/src/androidTest/java/androidx/camera/video/internal/workaround/EncoderFinderTest.kt b/camera/camera-video/src/androidTest/java/androidx/camera/video/internal/workaround/EncoderFinderTest.kt
index d6c35d2..16c14bb 100644
--- a/camera/camera-video/src/androidTest/java/androidx/camera/video/internal/workaround/EncoderFinderTest.kt
+++ b/camera/camera-video/src/androidTest/java/androidx/camera/video/internal/workaround/EncoderFinderTest.kt
@@ -169,6 +169,7 @@
                 videoSpec,
                 resolution,
                 videoProfile,
+                dynamicRange,
                 SurfaceRequest.FRAME_RATE_RANGE_UNSPECIFIED
             ).get().toMediaFormat()
 
diff --git a/camera/camera-video/src/main/java/androidx/camera/video/VideoCapture.java b/camera/camera-video/src/main/java/androidx/camera/video/VideoCapture.java
index a10d019..3858066 100644
--- a/camera/camera-video/src/main/java/androidx/camera/video/VideoCapture.java
+++ b/camera/camera-video/src/main/java/androidx/camera/video/VideoCapture.java
@@ -1179,6 +1179,7 @@
                 Timebase.UPTIME,
                 mediaSpec.getVideoSpec(),
                 resolution,
+                dynamicRange,
                 expectedFrameRate);
 
         return videoEncoderInfoFinder.apply(videoEncoderConfig);
diff --git a/camera/camera-video/src/main/java/androidx/camera/video/VideoEncoderSession.java b/camera/camera-video/src/main/java/androidx/camera/video/VideoEncoderSession.java
index c908b8a..1985020 100644
--- a/camera/camera-video/src/main/java/androidx/camera/video/VideoEncoderSession.java
+++ b/camera/camera-video/src/main/java/androidx/camera/video/VideoEncoderSession.java
@@ -24,6 +24,7 @@
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
 import androidx.annotation.RequiresApi;
+import androidx.camera.core.DynamicRange;
 import androidx.camera.core.Logger;
 import androidx.camera.core.SurfaceRequest;
 import androidx.camera.core.impl.Timebase;
@@ -288,8 +289,9 @@
             @Nullable VideoValidatedEncoderProfilesProxy resolvedEncoderProfiles,
             @NonNull MediaSpec mediaSpec,
             @NonNull CallbackToFutureAdapter.Completer<Encoder> configureCompleter) {
-        VideoMimeInfo videoMimeInfo = resolveVideoMimeInfo(mediaSpec,
-                surfaceRequest.getDynamicRange(), resolvedEncoderProfiles);
+        DynamicRange dynamicRange = surfaceRequest.getDynamicRange();
+        VideoMimeInfo videoMimeInfo = resolveVideoMimeInfo(mediaSpec, dynamicRange,
+                resolvedEncoderProfiles);
 
         // The VideoSpec from mediaSpec only contains settings requested by the recorder, but
         // the actual settings may need to differ depending on the FPS chosen by the camera.
@@ -299,6 +301,7 @@
                 timebase,
                 mediaSpec.getVideoSpec(),
                 surfaceRequest.getResolution(),
+                dynamicRange,
                 surfaceRequest.getExpectedFrameRate());
 
         try {
diff --git a/camera/camera-video/src/main/java/androidx/camera/video/internal/config/VideoConfigUtil.java b/camera/camera-video/src/main/java/androidx/camera/video/internal/config/VideoConfigUtil.java
index 3d10c5b..6d7d97f6 100644
--- a/camera/camera-video/src/main/java/androidx/camera/video/internal/config/VideoConfigUtil.java
+++ b/camera/camera-video/src/main/java/androidx/camera/video/internal/config/VideoConfigUtil.java
@@ -171,16 +171,18 @@
     @NonNull
     public static VideoEncoderConfig resolveVideoEncoderConfig(@NonNull VideoMimeInfo videoMimeInfo,
             @NonNull Timebase inputTimebase, @NonNull VideoSpec videoSpec,
-            @NonNull Size surfaceSize, @NonNull Range<Integer> expectedFrameRateRange) {
+            @NonNull Size surfaceSize, @NonNull DynamicRange dynamicRange,
+            @NonNull Range<Integer> expectedFrameRateRange
+    ) {
         Supplier<VideoEncoderConfig> configSupplier;
         VideoProfileProxy videoProfile = videoMimeInfo.getCompatibleVideoProfile();
         if (videoProfile != null) {
             configSupplier = new VideoEncoderConfigVideoProfileResolver(
                     videoMimeInfo.getMimeType(), inputTimebase, videoSpec, surfaceSize,
-                    videoProfile, expectedFrameRateRange);
+                    videoProfile, dynamicRange, expectedFrameRateRange);
         } else {
             configSupplier = new VideoEncoderConfigDefaultResolver(videoMimeInfo.getMimeType(),
-                    inputTimebase, videoSpec, surfaceSize, expectedFrameRateRange);
+                    inputTimebase, videoSpec, surfaceSize, dynamicRange, expectedFrameRateRange);
         }
 
         return configSupplier.get();
@@ -188,10 +190,13 @@
 
     static int scaleAndClampBitrate(
             int baseBitrate,
+            int actualBitDepth, int baseBitDepth,
             int actualFrameRate, int baseFrameRate,
             int actualWidth, int baseWidth,
             int actualHeight, int baseHeight,
             @NonNull Range<Integer> clampedRange) {
+        //  Scale bit depth to match new bit depth
+        Rational bitDepthRatio = new Rational(actualBitDepth, baseBitDepth);
         // Scale bitrate to match current frame rate
         Rational frameRateRatio = new Rational(actualFrameRate, baseFrameRate);
         // Scale bitrate depending on number of actual pixels relative to profile's
@@ -201,14 +206,15 @@
         Rational widthRatio = new Rational(actualWidth, baseWidth);
         Rational heightRatio = new Rational(actualHeight, baseHeight);
         int resolvedBitrate =
-                (int) (baseBitrate * frameRateRatio.doubleValue() * widthRatio.doubleValue()
-                        * heightRatio.doubleValue());
+                (int) (baseBitrate * bitDepthRatio.doubleValue() * frameRateRatio.doubleValue()
+                        * widthRatio.doubleValue() * heightRatio.doubleValue());
 
         String debugString = "";
         if (Logger.isDebugEnabled(TAG)) {
-            debugString = String.format("Base Bitrate(%dbps) * Frame Rate Ratio(%d / %d) * Width "
-                            + "Ratio(%d / %d) * Height Ratio(%d / %d) = %d", baseBitrate,
-                    actualFrameRate,
+            debugString = String.format("Base Bitrate(%dbps) * Bit Depth Ratio (%d / %d) * "
+                            + "Frame Rate Ratio(%d / %d) * Width Ratio(%d / %d) * "
+                            + "Height Ratio(%d / %d) = %d", baseBitrate,
+                    actualBitDepth, baseBitDepth, actualFrameRate,
                     baseFrameRate, actualWidth, baseWidth, actualHeight, baseHeight,
                     resolvedBitrate);
         }
diff --git a/camera/camera-video/src/main/java/androidx/camera/video/internal/config/VideoEncoderConfigDefaultResolver.java b/camera/camera-video/src/main/java/androidx/camera/video/internal/config/VideoEncoderConfigDefaultResolver.java
index 7d09ed2..8aed0f6 100644
--- a/camera/camera-video/src/main/java/androidx/camera/video/internal/config/VideoEncoderConfigDefaultResolver.java
+++ b/camera/camera-video/src/main/java/androidx/camera/video/internal/config/VideoEncoderConfigDefaultResolver.java
@@ -21,11 +21,13 @@
 
 import androidx.annotation.NonNull;
 import androidx.annotation.RequiresApi;
+import androidx.camera.core.DynamicRange;
 import androidx.camera.core.Logger;
 import androidx.camera.core.SurfaceRequest;
 import androidx.camera.core.impl.Timebase;
 import androidx.camera.video.VideoSpec;
 import androidx.camera.video.internal.encoder.VideoEncoderConfig;
+import androidx.camera.video.internal.utils.DynamicRangeUtil;
 import androidx.core.util.Supplier;
 
 import java.util.Objects;
@@ -45,6 +47,7 @@
     private static final Size VIDEO_SIZE_BASE = new Size(1280, 720);
     private static final int VIDEO_FRAME_RATE_BASE = 30;
     static final int VIDEO_FRAME_RATE_FIXED_DEFAULT = 30;
+    private static final int VIDEO_BIT_DEPTH_BASE = 8;
     private static final Range<Integer> VALID_FRAME_RATE_RANGE = new Range<>(1, 60);
 
     private final String mMimeType;
@@ -52,6 +55,7 @@
     private final Timebase mInputTimebase;
     private final VideoSpec mVideoSpec;
     private final Size mSurfaceSize;
+    private final DynamicRange mDynamicRange;
     private final Range<Integer> mExpectedFrameRateRange;
 
     /**
@@ -63,6 +67,7 @@
      *                               be used with the video encoder.
      * @param surfaceSize            The size of the surface required by the camera for the video
      *                               encoder.
+     * @param dynamicRange           The dynamic range of input frames.
      * @param expectedFrameRateRange The expected source frame rate range. This should act as an
      *                               envelope for any frame rate calculated from {@code videoSpec
      *                               } and {@code videoProfile} since the source should not
@@ -73,11 +78,13 @@
      */
     public VideoEncoderConfigDefaultResolver(@NonNull String mimeType,
             @NonNull Timebase inputTimebase, @NonNull VideoSpec videoSpec,
-            @NonNull Size surfaceSize, @NonNull Range<Integer> expectedFrameRateRange) {
+            @NonNull Size surfaceSize, @NonNull DynamicRange dynamicRange,
+            @NonNull Range<Integer> expectedFrameRateRange) {
         mMimeType = mimeType;
         mInputTimebase = inputTimebase;
         mVideoSpec = videoSpec;
         mSurfaceSize = surfaceSize;
+        mDynamicRange = dynamicRange;
         mExpectedFrameRateRange = expectedFrameRateRange;
     }
 
@@ -92,17 +99,22 @@
         // We have no other information to go off of. Scale based on fallback defaults.
         int resolvedBitrate = VideoConfigUtil.scaleAndClampBitrate(
                 VIDEO_BITRATE_BASE,
+                mDynamicRange.getBitDepth(), VIDEO_BIT_DEPTH_BASE,
                 resolvedFrameRate, VIDEO_FRAME_RATE_BASE,
                 mSurfaceSize.getWidth(), VIDEO_SIZE_BASE.getWidth(),
                 mSurfaceSize.getHeight(), VIDEO_SIZE_BASE.getHeight(),
                 videoSpecBitrateRange);
 
+        int resolvedProfile = DynamicRangeUtil.dynamicRangeToCodecProfileLevelForMime(
+                mMimeType, mDynamicRange);
+
         return VideoEncoderConfig.builder()
                 .setMimeType(mMimeType)
                 .setInputTimebase(mInputTimebase)
                 .setResolution(mSurfaceSize)
                 .setBitrate(resolvedBitrate)
                 .setFrameRate(resolvedFrameRate)
+                .setProfile(resolvedProfile)
                 .build();
     }
 
diff --git a/camera/camera-video/src/main/java/androidx/camera/video/internal/config/VideoEncoderConfigVideoProfileResolver.java b/camera/camera-video/src/main/java/androidx/camera/video/internal/config/VideoEncoderConfigVideoProfileResolver.java
index dc374ae..4b1a958 100644
--- a/camera/camera-video/src/main/java/androidx/camera/video/internal/config/VideoEncoderConfigVideoProfileResolver.java
+++ b/camera/camera-video/src/main/java/androidx/camera/video/internal/config/VideoEncoderConfigVideoProfileResolver.java
@@ -21,6 +21,7 @@
 
 import androidx.annotation.NonNull;
 import androidx.annotation.RequiresApi;
+import androidx.camera.core.DynamicRange;
 import androidx.camera.core.Logger;
 import androidx.camera.core.SurfaceRequest;
 import androidx.camera.core.impl.EncoderProfilesProxy.VideoProfileProxy;
@@ -38,7 +39,6 @@
  */
 @RequiresApi(21) // TODO(b/200306659): Remove and replace with annotation on package-info.java
 public class VideoEncoderConfigVideoProfileResolver implements Supplier<VideoEncoderConfig> {
-
     private static final String TAG = "VidEncVdPrflRslvr";
 
     private final String mMimeType;
@@ -46,6 +46,7 @@
     private final VideoSpec mVideoSpec;
     private final Size mSurfaceSize;
     private final VideoProfileProxy mVideoProfile;
+    private final DynamicRange mDynamicRange;
     private final Range<Integer> mExpectedFrameRateRange;
 
     /**
@@ -58,6 +59,7 @@
      * @param surfaceSize      The size of the surface required by the camera for the video encoder.
      * @param videoProfile     The {@link VideoProfileProxy} used to resolve automatic and range
      *                         settings.
+     * @param dynamicRange     The dynamic range of input frames.
      * @param expectedFrameRateRange The expected source frame rate range. This should act as an
      *                               envelope for any frame rate calculated from {@code videoSpec}
      *                               and {@code videoProfile} since the source should not
@@ -71,12 +73,14 @@
             @NonNull VideoSpec videoSpec,
             @NonNull Size surfaceSize,
             @NonNull VideoProfileProxy videoProfile,
+            @NonNull DynamicRange dynamicRange,
             @NonNull Range<Integer> expectedFrameRateRange) {
         mMimeType = mimeType;
         mInputTimebase = inputTimebase;
         mVideoSpec = videoSpec;
         mSurfaceSize = surfaceSize;
         mVideoProfile = videoProfile;
+        mDynamicRange = dynamicRange;
         mExpectedFrameRateRange = expectedFrameRateRange;
     }
 
@@ -90,17 +94,21 @@
         Logger.d(TAG, "Using resolved VIDEO bitrate from EncoderProfiles");
         int resolvedBitrate = VideoConfigUtil.scaleAndClampBitrate(
                 mVideoProfile.getBitrate(),
+                mDynamicRange.getBitDepth(), mVideoProfile.getBitDepth(),
                 resolvedFrameRate, mVideoProfile.getFrameRate(),
                 mSurfaceSize.getWidth(), mVideoProfile.getWidth(),
                 mSurfaceSize.getHeight(), mVideoProfile.getHeight(),
                 videoSpecBitrateRange);
 
+        int resolvedProfile = mVideoProfile.getProfile();
+
         return VideoEncoderConfig.builder()
                 .setMimeType(mMimeType)
                 .setInputTimebase(mInputTimebase)
                 .setResolution(mSurfaceSize)
                 .setBitrate(resolvedBitrate)
                 .setFrameRate(resolvedFrameRate)
+                .setProfile(resolvedProfile)
                 .build();
     }
 
diff --git a/camera/camera-video/src/main/java/androidx/camera/video/internal/utils/DynamicRangeUtil.java b/camera/camera-video/src/main/java/androidx/camera/video/internal/utils/DynamicRangeUtil.java
index 0f27e50..3cd26a3 100644
--- a/camera/camera-video/src/main/java/androidx/camera/video/internal/utils/DynamicRangeUtil.java
+++ b/camera/camera-video/src/main/java/androidx/camera/video/internal/utils/DynamicRangeUtil.java
@@ -21,10 +21,26 @@
 import static android.media.EncoderProfiles.VideoProfile.HDR_HDR10PLUS;
 import static android.media.EncoderProfiles.VideoProfile.HDR_HLG;
 import static android.media.EncoderProfiles.VideoProfile.HDR_NONE;
+import static android.media.MediaCodecInfo.CodecProfileLevel.AV1ProfileMain10;
+import static android.media.MediaCodecInfo.CodecProfileLevel.AV1ProfileMain10HDR10;
+import static android.media.MediaCodecInfo.CodecProfileLevel.AV1ProfileMain10HDR10Plus;
+import static android.media.MediaCodecInfo.CodecProfileLevel.AV1ProfileMain8;
+import static android.media.MediaCodecInfo.CodecProfileLevel.DolbyVisionProfileDvavSe;
+import static android.media.MediaCodecInfo.CodecProfileLevel.DolbyVisionProfileDvheSt;
+import static android.media.MediaCodecInfo.CodecProfileLevel.HEVCProfileMain;
+import static android.media.MediaCodecInfo.CodecProfileLevel.HEVCProfileMain10;
+import static android.media.MediaCodecInfo.CodecProfileLevel.HEVCProfileMain10HDR10;
+import static android.media.MediaCodecInfo.CodecProfileLevel.HEVCProfileMain10HDR10Plus;
+import static android.media.MediaCodecInfo.CodecProfileLevel.VP9Profile0;
+import static android.media.MediaCodecInfo.CodecProfileLevel.VP9Profile2;
+import static android.media.MediaCodecInfo.CodecProfileLevel.VP9Profile2HDR;
+import static android.media.MediaCodecInfo.CodecProfileLevel.VP9Profile2HDR10Plus;
 
 import static androidx.camera.core.DynamicRange.BIT_DEPTH_10_BIT;
 import static androidx.camera.core.DynamicRange.BIT_DEPTH_8_BIT;
 import static androidx.camera.core.DynamicRange.BIT_DEPTH_UNSPECIFIED;
+import static androidx.camera.core.DynamicRange.DOLBY_VISION_10_BIT;
+import static androidx.camera.core.DynamicRange.DOLBY_VISION_8_BIT;
 import static androidx.camera.core.DynamicRange.ENCODING_DOLBY_VISION;
 import static androidx.camera.core.DynamicRange.ENCODING_HDR10;
 import static androidx.camera.core.DynamicRange.ENCODING_HDR10_PLUS;
@@ -32,15 +48,22 @@
 import static androidx.camera.core.DynamicRange.ENCODING_HLG;
 import static androidx.camera.core.DynamicRange.ENCODING_SDR;
 import static androidx.camera.core.DynamicRange.ENCODING_UNSPECIFIED;
+import static androidx.camera.core.DynamicRange.HDR10_10_BIT;
+import static androidx.camera.core.DynamicRange.HDR10_PLUS_10_BIT;
+import static androidx.camera.core.DynamicRange.HLG_10_BIT;
+import static androidx.camera.core.DynamicRange.SDR;
 import static androidx.camera.core.impl.EncoderProfilesProxy.VideoProfileProxy.BIT_DEPTH_10;
 import static androidx.camera.core.impl.EncoderProfilesProxy.VideoProfileProxy.BIT_DEPTH_8;
 
 import static java.util.Arrays.asList;
 import static java.util.Collections.singletonList;
 
+import android.media.MediaFormat;
+
 import androidx.annotation.NonNull;
 import androidx.annotation.RequiresApi;
 import androidx.camera.core.DynamicRange;
+import androidx.camera.core.impl.EncoderProfilesProxy;
 
 import java.util.Collections;
 import java.util.HashMap;
@@ -53,10 +76,11 @@
  */
 @RequiresApi(21) // TODO(b/200306659): Remove and replace with annotation on package-info.java
 public class DynamicRangeUtil {
-
     public static final Map<Integer, Set<Integer>> DR_TO_VP_BIT_DEPTH_MAP = new HashMap<>();
     public static final Map<Integer, Set<Integer>> DR_TO_VP_FORMAT_MAP = new HashMap<>();
     public static final Map<Integer, Integer> VP_TO_DR_FORMAT_MAP = new HashMap<>();
+    private static final Map<String, Map<DynamicRange, Integer>> MIME_TO_DEFAULT_PROFILE_LEVEL_MAP =
+            new HashMap<>();
 
     private DynamicRangeUtil() {
     }
@@ -86,6 +110,46 @@
         VP_TO_DR_FORMAT_MAP.put(HDR_HDR10, ENCODING_HDR10);
         VP_TO_DR_FORMAT_MAP.put(HDR_HDR10PLUS, ENCODING_HDR10_PLUS);
         VP_TO_DR_FORMAT_MAP.put(HDR_DOLBY_VISION, ENCODING_DOLBY_VISION);
+
+        //--------------------------------------------------------------------------------------//
+        // Default CodecProfileLevel mappings from                                              //
+        // frameworks/av/media/codec2/sfplugin/utils/Codec2Mapper.cpp                           //
+        //--------------------------------------------------------------------------------------//
+        // DynamicRange encodings to HEVC profiles
+        Map<DynamicRange, Integer> hevcMap = new HashMap<>();
+        hevcMap.put(SDR, HEVCProfileMain);
+        hevcMap.put(HLG_10_BIT, HEVCProfileMain10);
+        hevcMap.put(HDR10_10_BIT, HEVCProfileMain10HDR10);
+        hevcMap.put(HDR10_PLUS_10_BIT, HEVCProfileMain10HDR10Plus);
+
+        // DynamicRange encodings to AV1 profiles for YUV 4:2:0 chroma subsampling
+        Map<DynamicRange, Integer> av1420Map = new HashMap<>();
+        av1420Map.put(SDR, AV1ProfileMain8);
+        av1420Map.put(HLG_10_BIT, AV1ProfileMain10);
+        av1420Map.put(HDR10_10_BIT, AV1ProfileMain10HDR10);
+        av1420Map.put(HDR10_PLUS_10_BIT, AV1ProfileMain10HDR10Plus);
+
+        // DynamicRange encodings to VP9 profile for YUV 4:2:0 chroma subsampling
+        Map<DynamicRange, Integer> vp9420Map = new HashMap<>();
+        vp9420Map.put(SDR, VP9Profile0);
+        vp9420Map.put(HLG_10_BIT, VP9Profile2);
+        vp9420Map.put(HDR10_10_BIT, VP9Profile2HDR);
+        vp9420Map.put(HDR10_PLUS_10_BIT, VP9Profile2HDR10Plus);
+
+        // Dolby vision encodings to dolby vision profiles
+        Map<DynamicRange, Integer> dvMap = new HashMap<>();
+        // Taken from the (now deprecated) Dolby Vision Profile Specification 1.3.3
+        // DV Profile 8 (10-bit HEVC)
+        dvMap.put(DOLBY_VISION_10_BIT, DolbyVisionProfileDvheSt);
+        // DV Profile 9 (8-bit AVC)
+        dvMap.put(DOLBY_VISION_8_BIT, DolbyVisionProfileDvavSe);
+
+        // Combine all mime type maps
+        MIME_TO_DEFAULT_PROFILE_LEVEL_MAP.put(MediaFormat.MIMETYPE_VIDEO_HEVC, hevcMap);
+        MIME_TO_DEFAULT_PROFILE_LEVEL_MAP.put(MediaFormat.MIMETYPE_VIDEO_AV1, av1420Map);
+        MIME_TO_DEFAULT_PROFILE_LEVEL_MAP.put(MediaFormat.MIMETYPE_VIDEO_VP9, vp9420Map);
+        MIME_TO_DEFAULT_PROFILE_LEVEL_MAP.put(MediaFormat.MIMETYPE_VIDEO_DOLBY_VISION, dvMap);
+        //--------------------------------------------------------------------------------------//
     }
 
     /**
@@ -126,4 +190,26 @@
         }
         return bitDepths;
     }
+
+    /**
+     * Returns a codec profile level for a given mime type and dynamic range.
+     *
+     * <p>If the mime type or dynamic range is not supported, returns
+     * {@link EncoderProfilesProxy#CODEC_PROFILE_NONE}.
+     *
+     * <p>Only fully-specified dynamic ranges are supported. All other dynamic ranges will return
+     * {@link EncoderProfilesProxy#CODEC_PROFILE_NONE}.
+     */
+    public static int dynamicRangeToCodecProfileLevelForMime(@NonNull String mimeType,
+            @NonNull DynamicRange dynamicRange) {
+        Map<DynamicRange, Integer> hdrToProfile = MIME_TO_DEFAULT_PROFILE_LEVEL_MAP.get(mimeType);
+        if (hdrToProfile != null) {
+            Integer profile = hdrToProfile.get(dynamicRange);
+            if (profile != null) {
+                return profile;
+            }
+        }
+
+        return EncoderProfilesProxy.CODEC_PROFILE_NONE;
+    }
 }
diff --git a/camera/integration-tests/coretestapp/src/androidTest/java/androidx/camera/integration/core/ImageAnalysisTest.kt b/camera/integration-tests/coretestapp/src/androidTest/java/androidx/camera/integration/core/ImageAnalysisTest.kt
index 074dda1..4b963f7 100644
--- a/camera/integration-tests/coretestapp/src/androidTest/java/androidx/camera/integration/core/ImageAnalysisTest.kt
+++ b/camera/integration-tests/coretestapp/src/androidTest/java/androidx/camera/integration/core/ImageAnalysisTest.kt
@@ -35,7 +35,7 @@
 import androidx.camera.core.impl.ImageOutputConfig
 import androidx.camera.core.impl.utils.executor.CameraXExecutors
 import androidx.camera.core.resolutionselector.ResolutionSelector
-import androidx.camera.core.resolutionselector.ResolutionSelector.ALLOWED_RESOLUTIONS_SLOW
+import androidx.camera.core.resolutionselector.ResolutionSelector.PREFER_HIGHER_RESOLUTION_OVER_CAPTURE_RATE
 import androidx.camera.lifecycle.ProcessCameraProvider
 import androidx.camera.testing.CameraPipeConfigTestRule
 import androidx.camera.testing.CameraUtil
@@ -434,7 +434,7 @@
         assumeTrue(maxHighResolutionOutputSize != null)
 
         val resolutionSelector = ResolutionSelector.Builder()
-            .setAllowedResolutionMode(ALLOWED_RESOLUTIONS_SLOW)
+            .setAllowedResolutionMode(PREFER_HIGHER_RESOLUTION_OVER_CAPTURE_RATE)
             .setResolutionFilter { _, _ ->
                 listOf(maxHighResolutionOutputSize)
             }
diff --git a/camera/integration-tests/coretestapp/src/androidTest/java/androidx/camera/integration/core/ImageCaptureTest.kt b/camera/integration-tests/coretestapp/src/androidTest/java/androidx/camera/integration/core/ImageCaptureTest.kt
index e65b41d..e2377a3 100644
--- a/camera/integration-tests/coretestapp/src/androidTest/java/androidx/camera/integration/core/ImageCaptureTest.kt
+++ b/camera/integration-tests/coretestapp/src/androidTest/java/androidx/camera/integration/core/ImageCaptureTest.kt
@@ -63,7 +63,7 @@
 import androidx.camera.core.impl.utils.Exif
 import androidx.camera.core.internal.compat.workaround.ExifRotationAvailability
 import androidx.camera.core.resolutionselector.ResolutionSelector
-import androidx.camera.core.resolutionselector.ResolutionSelector.ALLOWED_RESOLUTIONS_SLOW
+import androidx.camera.core.resolutionselector.ResolutionSelector.PREFER_HIGHER_RESOLUTION_OVER_CAPTURE_RATE
 import androidx.camera.integration.core.util.CameraPipeUtil
 import androidx.camera.lifecycle.ProcessCameraProvider
 import androidx.camera.testing.CameraPipeConfigTestRule
@@ -1659,7 +1659,7 @@
         assumeTrue(maxHighResolutionOutputSize != null)
 
         val resolutionSelector = ResolutionSelector.Builder()
-            .setAllowedResolutionMode(ALLOWED_RESOLUTIONS_SLOW)
+            .setAllowedResolutionMode(PREFER_HIGHER_RESOLUTION_OVER_CAPTURE_RATE)
             .setResolutionFilter { _, _ ->
                 listOf(maxHighResolutionOutputSize)
             }
diff --git a/camera/integration-tests/coretestapp/src/androidTest/java/androidx/camera/integration/core/camera2/PreviewTest.kt b/camera/integration-tests/coretestapp/src/androidTest/java/androidx/camera/integration/core/camera2/PreviewTest.kt
index 885d25e..f3bba36 100644
--- a/camera/integration-tests/coretestapp/src/androidTest/java/androidx/camera/integration/core/camera2/PreviewTest.kt
+++ b/camera/integration-tests/coretestapp/src/androidTest/java/androidx/camera/integration/core/camera2/PreviewTest.kt
@@ -34,7 +34,7 @@
 import androidx.camera.core.impl.utils.executor.CameraXExecutors
 import androidx.camera.core.internal.CameraUseCaseAdapter
 import androidx.camera.core.resolutionselector.ResolutionSelector
-import androidx.camera.core.resolutionselector.ResolutionSelector.ALLOWED_RESOLUTIONS_SLOW
+import androidx.camera.core.resolutionselector.ResolutionSelector.PREFER_HIGHER_RESOLUTION_OVER_CAPTURE_RATE
 import androidx.camera.testing.CameraPipeConfigTestRule
 import androidx.camera.testing.CameraUtil
 import androidx.camera.testing.CameraUtil.PreTestCameraIdList
@@ -557,7 +557,7 @@
         // Arrange.
         val resolutionSelector =
             ResolutionSelector.Builder()
-                .setAllowedResolutionMode(ALLOWED_RESOLUTIONS_SLOW)
+                .setAllowedResolutionMode(PREFER_HIGHER_RESOLUTION_OVER_CAPTURE_RATE)
                 .setResolutionFilter { _, _ ->
                     listOf(maxHighResolutionOutputSize)
                 }
diff --git a/camera/integration-tests/extensionstestapp/src/main/java/androidx/camera/integration/extensions/CameraExtensionsActivity.java b/camera/integration-tests/extensionstestapp/src/main/java/androidx/camera/integration/extensions/CameraExtensionsActivity.java
index 85d64c1..d41cdc5 100644
--- a/camera/integration-tests/extensionstestapp/src/main/java/androidx/camera/integration/extensions/CameraExtensionsActivity.java
+++ b/camera/integration-tests/extensionstestapp/src/main/java/androidx/camera/integration/extensions/CameraExtensionsActivity.java
@@ -65,10 +65,12 @@
 import androidx.camera.core.CameraInfo;
 import androidx.camera.core.CameraSelector;
 import androidx.camera.core.FocusMeteringAction;
+import androidx.camera.core.ImageAnalysis;
 import androidx.camera.core.ImageCapture;
 import androidx.camera.core.ImageCaptureException;
 import androidx.camera.core.MeteringPoint;
 import androidx.camera.core.Preview;
+import androidx.camera.core.UseCaseGroup;
 import androidx.camera.core.impl.utils.executor.CameraXExecutors;
 import androidx.camera.extensions.ExtensionMode;
 import androidx.camera.extensions.ExtensionsManager;
@@ -271,7 +273,23 @@
                 mCurrentCameraSelector, mCurrentExtensionMode);
 
         mCameraProvider.unbindAll();
-        mCamera = mCameraProvider.bindToLifecycle(this, cameraSelector, mImageCapture, mPreview);
+
+        UseCaseGroup.Builder useCaseGroupBuilder =
+                new UseCaseGroup.Builder()
+                        .addUseCase(mPreview)
+                        .addUseCase(mImageCapture);
+
+        if (mExtensionsManager.isImageAnalysisSupported(cameraSelector,
+                mCurrentExtensionMode)) {
+            ImageAnalysis imageAnalysis = new ImageAnalysis.Builder().build();
+            imageAnalysis.setAnalyzer(CameraXExecutors.ioExecutor(),  img -> {
+                img.close();
+            });
+            useCaseGroupBuilder.addUseCase(imageAnalysis);
+        }
+
+        mCamera = mCameraProvider.bindToLifecycle(this, cameraSelector,
+                useCaseGroupBuilder.build());
 
         // Update the UI and save location for ImageCapture
         Button toggleButton = findViewById(R.id.PhotoToggle);
diff --git a/camera/integration-tests/viewtestapp/src/main/java/androidx/camera/integration/view/ToneMappingSurfaceEffect.kt b/camera/integration-tests/viewtestapp/src/main/java/androidx/camera/integration/view/ToneMappingSurfaceEffect.kt
index 50291a7..d250fc8 100644
--- a/camera/integration-tests/viewtestapp/src/main/java/androidx/camera/integration/view/ToneMappingSurfaceEffect.kt
+++ b/camera/integration-tests/viewtestapp/src/main/java/androidx/camera/integration/view/ToneMappingSurfaceEffect.kt
@@ -17,16 +17,19 @@
 package androidx.camera.integration.view
 
 import androidx.camera.core.CameraEffect
-import androidx.camera.core.impl.utils.executor.CameraXExecutors.mainThreadExecutor
 
 /**
  * A tone mapping effect for Preview/VideoCapture UseCase.
  */
-internal class ToneMappingSurfaceEffect : CameraEffect(
-    PREVIEW or VIDEO_CAPTURE, mainThreadExecutor(), ToneMappingSurfaceProcessor(), {}
-) {
+internal class ToneMappingSurfaceEffect(
+    targets: Int = PREVIEW or VIDEO_CAPTURE,
+    private val processor: ToneMappingSurfaceProcessor = ToneMappingSurfaceProcessor()
+) :
+    CameraEffect(
+        targets, processor.getGlExecutor(), processor, {}
+    ) {
 
     fun release() {
-        (surfaceProcessor as? ToneMappingSurfaceProcessor)?.release()
+        processor.release()
     }
 }
\ No newline at end of file
diff --git a/camera/integration-tests/viewtestapp/src/main/java/androidx/camera/integration/view/ToneMappingSurfaceProcessor.kt b/camera/integration-tests/viewtestapp/src/main/java/androidx/camera/integration/view/ToneMappingSurfaceProcessor.kt
index 9dc5199..33ac70c 100644
--- a/camera/integration-tests/viewtestapp/src/main/java/androidx/camera/integration/view/ToneMappingSurfaceProcessor.kt
+++ b/camera/integration-tests/viewtestapp/src/main/java/androidx/camera/integration/view/ToneMappingSurfaceProcessor.kt
@@ -19,16 +19,17 @@
 import android.graphics.SurfaceTexture
 import android.graphics.SurfaceTexture.OnFrameAvailableListener
 import android.os.Handler
-import android.os.Looper
+import android.os.HandlerThread
 import android.view.Surface
 import androidx.annotation.VisibleForTesting
 import androidx.camera.core.SurfaceOutput
 import androidx.camera.core.SurfaceProcessor
 import androidx.camera.core.SurfaceRequest
-import androidx.camera.core.impl.utils.Threads.checkMainThread
-import androidx.camera.core.impl.utils.executor.CameraXExecutors.mainThreadExecutor
+import androidx.camera.core.impl.utils.executor.CameraXExecutors.newHandlerExecutor
 import androidx.camera.core.processing.OpenGlRenderer
 import androidx.camera.core.processing.ShaderProvider
+import androidx.core.util.Preconditions.checkState
+import java.util.concurrent.Executor
 
 /**
  * A processor that applies tone mapping on camera output.
@@ -57,28 +58,36 @@
                     """
             }
         }
+
+        private const val GL_THREAD_NAME = "ToneMappingSurfaceProcessor"
     }
 
-    private val mainThreadHandler: Handler = Handler(Looper.getMainLooper())
+    private val glThread: HandlerThread = HandlerThread(GL_THREAD_NAME)
+    private var glHandler: Handler
+    private var glExecutor: Executor
+
+    // Members below are only accessed on GL thread.
     private val glRenderer: OpenGlRenderer = OpenGlRenderer()
     private val outputSurfaces: MutableMap<SurfaceOutput, Surface> = mutableMapOf()
     private val textureTransform: FloatArray = FloatArray(16)
     private val surfaceTransform: FloatArray = FloatArray(16)
     private var isReleased = false
 
-    // For testing.
+    // For testing only
     private var surfaceRequested = false
-    // For testing.
     private var outputSurfaceProvided = false
 
     init {
-        mainThreadExecutor().execute {
+        glThread.start()
+        glHandler = Handler(glThread.looper)
+        glExecutor = newHandlerExecutor(glHandler)
+        glExecutor.execute {
             glRenderer.init(TONE_MAPPING_SHADER_PROVIDER)
         }
     }
 
     override fun onInputSurface(surfaceRequest: SurfaceRequest) {
-        checkMainThread()
+        checkGlThread()
         if (isReleased) {
             surfaceRequest.willNotProvideSurface()
             return
@@ -89,22 +98,22 @@
             surfaceRequest.resolution.width, surfaceRequest.resolution.height
         )
         val surface = Surface(surfaceTexture)
-        surfaceRequest.provideSurface(surface, mainThreadExecutor()) {
+        surfaceRequest.provideSurface(surface, glExecutor) {
             surfaceTexture.setOnFrameAvailableListener(null)
             surfaceTexture.release()
             surface.release()
         }
-        surfaceTexture.setOnFrameAvailableListener(this, mainThreadHandler)
+        surfaceTexture.setOnFrameAvailableListener(this, glHandler)
     }
 
     override fun onOutputSurface(surfaceOutput: SurfaceOutput) {
-        checkMainThread()
+        checkGlThread()
         outputSurfaceProvided = true
         if (isReleased) {
             surfaceOutput.close()
             return
         }
-        val surface = surfaceOutput.getSurface(mainThreadExecutor()) {
+        val surface = surfaceOutput.getSurface(glExecutor) {
             surfaceOutput.close()
             outputSurfaces.remove(surfaceOutput)?.let { removedSurface ->
                 glRenderer.unregisterOutputSurface(removedSurface)
@@ -120,22 +129,35 @@
     }
 
     fun release() {
-        checkMainThread()
-        if (isReleased) {
-            return
+        glExecutor.execute {
+            releaseInternal()
         }
+    }
 
-        // Once release is called, we can stop sending frame to output surfaces.
-        for (surfaceOutput in outputSurfaces.keys) {
-            surfaceOutput.close()
+    private fun releaseInternal() {
+        checkGlThread()
+        if (!isReleased) {
+            // Once release is called, we can stop sending frame to output surfaces.
+            for (surfaceOutput in outputSurfaces.keys) {
+                surfaceOutput.close()
+            }
+            outputSurfaces.clear()
+            glRenderer.release()
+            glThread.quitSafely()
+            isReleased = true
         }
-        outputSurfaces.clear()
-        glRenderer.release()
-        isReleased = true
+    }
+
+    private fun checkGlThread() {
+        checkState(GL_THREAD_NAME == Thread.currentThread().name)
+    }
+
+    fun getGlExecutor(): Executor {
+        return glExecutor
     }
 
     override fun onFrameAvailable(surfaceTexture: SurfaceTexture) {
-        checkMainThread()
+        checkGlThread()
         if (isReleased) {
             return
         }
diff --git a/car/app/app-samples/showcase/common/src/main/res/values-fr-rCA/strings.xml b/car/app/app-samples/showcase/common/src/main/res/values-fr-rCA/strings.xml
index 641aa81..cec9d82 100644
--- a/car/app/app-samples/showcase/common/src/main/res/values-fr-rCA/strings.xml
+++ b/car/app/app-samples/showcase/common/src/main/res/values-fr-rCA/strings.xml
@@ -243,7 +243,7 @@
     <string name="sign_in_template_not_supported_text" msgid="7184733753948837646">"Votre hôte ne prend pas en charge le modèle de connexion"</string>
     <string name="sign_in_template_not_supported_title" msgid="4892883228898541764">"Hôte incompatible"</string>
     <string name="email_hint" msgid="7205549445477319606">"Courriel"</string>
-    <string name="sign_in_title" msgid="4551967308262681703">"Connexion"</string>
+    <string name="sign_in_title" msgid="4551967308262681703">"Se connecter"</string>
     <string name="sign_in_instructions" msgid="9044850228284294762">"Entrez vos authentifiants"</string>
     <string name="invalid_email_error_msg" msgid="5261362663718987167">"Le nom d\'utilisateur doit être une adresse de courriel valide"</string>
     <string name="invalid_length_error_msg" msgid="8238905276326976425">"Le nom d\'utilisateur doit comporter au moins %s caractères"</string>
diff --git a/car/app/app-samples/showcase/common/src/main/res/values-kn/strings.xml b/car/app/app-samples/showcase/common/src/main/res/values-kn/strings.xml
index 58f4596..3cfdc4b 100644
--- a/car/app/app-samples/showcase/common/src/main/res/values-kn/strings.xml
+++ b/car/app/app-samples/showcase/common/src/main/res/values-kn/strings.xml
@@ -140,7 +140,7 @@
     <string name="send_notification_title" msgid="4731688444696028193">"ಅಧಿಸೂಚನೆಯನ್ನು ಕಳುಹಿಸಿ"</string>
     <string name="start_notifications_title" msgid="8699668027543530460">"ಅಧಿಸೂಚನೆಗಳನ್ನು ಪ್ರಾರಂಭಿಸಿ"</string>
     <string name="stop_notifications_title" msgid="3703892710275206239">"ಅಧಿಸೂಚನೆಗಳನ್ನು ನಿಲ್ಲಿಸಿ"</string>
-    <string name="notification_title" msgid="5507590705935298176">"ಅಧಿಸೂಚನೆ"</string>
+    <string name="notification_title" msgid="5507590705935298176">"ನೋಟಿಫಿಕೇಶನ್"</string>
     <string name="importance_title" msgid="9034862997821839831">"ಪ್ರಾಮುಖ್ಯತೆ"</string>
     <string name="category_title" msgid="4783851267093259949">"ವರ್ಗ"</string>
     <string name="ongoing_title" msgid="4957996003270280496">"ಚಾಲ್ತಿಯಲ್ಲಿದೆ"</string>
@@ -148,7 +148,7 @@
     <string name="high_importance" msgid="5009120714837304882">"ಅಧಿಕ"</string>
     <string name="low_importance" msgid="4721161314404294033">"ಕಡಿಮೆ"</string>
     <string name="unknown_importance" msgid="909001735933359216">"ಅಪರಿಚಿತ"</string>
-    <string name="notification_demo" msgid="1819496937832036387">"ಅಧಿಸೂಚನೆ ಡೆಮೋ"</string>
+    <string name="notification_demo" msgid="1819496937832036387">"ನೋಟಿಫಿಕೇಶನ್ ಡೆಮೋ"</string>
     <string name="misc_demo_title" msgid="7399959062407349380">"ಇತರ ಡೆಮೋಗಳು"</string>
     <string name="navigating_demo_title" msgid="7454579665387386476">"ನ್ಯಾವಿಗೇಶನ್ ಪ್ರಕ್ರಿಯೆಯ ಡೆಮೋ"</string>
     <string name="arrived_demo_title" msgid="6708013121387053838">"ತಲುಪಲಾದ ಸ್ಥಿತಿಯನ್ನು ತೋರಿಸುವ ಡೆಮೋ"</string>
@@ -158,7 +158,7 @@
     <string name="map_template_list_demo_title" msgid="1473810899303903185">"ಲಿಸ್ಟ್ ಡೆಮೋ ಜೊತೆಗೆ ನಕ್ಷೆ ಟೆಂಪ್ಲೇಟ್"</string>
     <string name="start_notification_title" msgid="2208831088632818681">"ಅಧಿಸೂಚನೆಯನ್ನು ಪ್ರಾರಂಭಿಸಿ"</string>
     <string name="stop_notification_title" msgid="3709643750540881176">"ಅಧಿಸೂಚನೆಯನ್ನು ನಿಲ್ಲಿಸಿ"</string>
-    <string name="nav_notification_demo_title" msgid="4448683262984308442">"ನ್ಯಾವಿಗೇಶನ್ ಅಧಿಸೂಚನೆ ಡೆಮೋ"</string>
+    <string name="nav_notification_demo_title" msgid="4448683262984308442">"ನ್ಯಾವಿಗೇಶನ್ ನೋಟಿಫಿಕೇಶನ್ ಡೆಮೋ"</string>
     <string name="go_straight" msgid="2301747728609198718">"ನೇರವಾಗಿ ಹೋಗಿ"</string>
     <string name="turn_right" msgid="4710562732720109969">"ಬಲಕ್ಕೆ ತಿರುಗಿ"</string>
     <string name="take_520" msgid="3804796387195842741">"520 ಗೆ ಹೋಗಿ"</string>
@@ -172,7 +172,7 @@
     <string name="routes_title" msgid="7799772149932075357">"ಮಾರ್ಗಗಳು"</string>
     <string name="place_list_nav_template_demo_title" msgid="8019588508812955290">"ಸ್ಥಳ ಪಟ್ಟಿಯ ನ್ಯಾವಿಗೇಶನ್ ಟೆಂಪ್ಲೇಟ್ ಡೆಮೋ"</string>
     <string name="route_preview_template_demo_title" msgid="7878704357953167555">"ಮಾರ್ಗ ಪೂರ್ವವೀಕ್ಷಣೆಯ ಟೆಂಪ್ಲೇಟ್ ಡೆಮೋ"</string>
-    <string name="notification_template_demo_title" msgid="5076051497316030274">"ಅಧಿಸೂಚನೆ ಟೆಂಪ್ಲೇಟ್ ಡೆಮೋ"</string>
+    <string name="notification_template_demo_title" msgid="5076051497316030274">"ನೋಟಿಫಿಕೇಶನ್ ಟೆಂಪ್ಲೇಟ್ ಡೆಮೋ"</string>
     <string name="nav_map_template_demo_title" msgid="344985380763975398">"ನಕ್ಷೆ-ಮಾತ್ರ ನ್ಯಾವಿಗೇಶನ್ ಟೆಂಪ್ಲೇಟ್ ಡೆಮೋ"</string>
     <string name="nav_demos_title" msgid="72781206086461004">"ನ್ಯಾವಿಗೇಶನ್ ಡೆಮೋಗಳು"</string>
     <string name="navigation_alert_title" msgid="8306554249264200848">"ಈಗಲೂ ಸ್ಪೀಡ್ ಟ್ರ್ಯಾಪ್ ಅಗತ್ಯವಿದೆಯೇ?"</string>
diff --git a/compose/animation/animation-core/api/public_plus_experimental_current.txt b/compose/animation/animation-core/api/1.5.0-beta01.txt
similarity index 100%
rename from compose/animation/animation-core/api/public_plus_experimental_current.txt
rename to compose/animation/animation-core/api/1.5.0-beta01.txt
diff --git a/compose/animation/animation-core/api/current.txt b/compose/animation/animation-core/api/current.txt
index 1bb4425..595b3e9 100644
--- a/compose/animation/animation-core/api/current.txt
+++ b/compose/animation/animation-core/api/current.txt
@@ -333,6 +333,9 @@
     property public static final androidx.compose.animation.core.Easing LinearOutSlowInEasing;
   }
 
+  @kotlin.RequiresOptIn(message="This is an experimental animation API for Transition. It may change in the future.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface ExperimentalTransitionApi {
+  }
+
   public interface FiniteAnimationSpec<T> extends androidx.compose.animation.core.AnimationSpec<T> {
     method public <V extends androidx.compose.animation.core.AnimationVector> androidx.compose.animation.core.VectorizedFiniteAnimationSpec<V> vectorize(androidx.compose.animation.core.TwoWayConverter<T,V> converter);
   }
@@ -432,6 +435,9 @@
     method @androidx.compose.runtime.Composable public static androidx.compose.animation.core.InfiniteTransition rememberInfiniteTransition(optional String label);
   }
 
+  @kotlin.RequiresOptIn(message="This API is internal to library.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.CLASS, kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.PROPERTY, kotlin.annotation.AnnotationTarget.FIELD, kotlin.annotation.AnnotationTarget.PROPERTY_GETTER}) public @interface InternalAnimationApi {
+  }
+
   @androidx.compose.runtime.Immutable public final class KeyframesSpec<T> implements androidx.compose.animation.core.DurationBasedAnimationSpec<T> {
     ctor public KeyframesSpec(androidx.compose.animation.core.KeyframesSpec.KeyframesSpecConfig<T> config);
     method public androidx.compose.animation.core.KeyframesSpec.KeyframesSpecConfig<T> getConfig();
@@ -615,6 +621,7 @@
     method @androidx.compose.runtime.Composable public static inline <S> androidx.compose.runtime.State<androidx.compose.ui.geometry.Rect> animateRect(androidx.compose.animation.core.Transition<S>, optional kotlin.jvm.functions.Function1<? super androidx.compose.animation.core.Transition.Segment<S>,? extends androidx.compose.animation.core.FiniteAnimationSpec<androidx.compose.ui.geometry.Rect>> transitionSpec, optional String label, kotlin.jvm.functions.Function1<? super S,androidx.compose.ui.geometry.Rect> targetValueByState);
     method @androidx.compose.runtime.Composable public static inline <S> androidx.compose.runtime.State<androidx.compose.ui.geometry.Size> animateSize(androidx.compose.animation.core.Transition<S>, optional kotlin.jvm.functions.Function1<? super androidx.compose.animation.core.Transition.Segment<S>,? extends androidx.compose.animation.core.FiniteAnimationSpec<androidx.compose.ui.geometry.Size>> transitionSpec, optional String label, kotlin.jvm.functions.Function1<? super S,androidx.compose.ui.geometry.Size> targetValueByState);
     method @androidx.compose.runtime.Composable public static inline <S, T, V extends androidx.compose.animation.core.AnimationVector> androidx.compose.runtime.State<T> animateValue(androidx.compose.animation.core.Transition<S>, androidx.compose.animation.core.TwoWayConverter<T,V> typeConverter, optional kotlin.jvm.functions.Function1<? super androidx.compose.animation.core.Transition.Segment<S>,? extends androidx.compose.animation.core.FiniteAnimationSpec<T>> transitionSpec, optional String label, kotlin.jvm.functions.Function1<? super S,? extends T> targetValueByState);
+    method @androidx.compose.animation.core.ExperimentalTransitionApi @androidx.compose.runtime.Composable public static inline <S, T> androidx.compose.animation.core.Transition<T> createChildTransition(androidx.compose.animation.core.Transition<S>, optional String label, kotlin.jvm.functions.Function1<? super S,? extends T> transformToChildState);
     method @androidx.compose.runtime.Composable public static <T> androidx.compose.animation.core.Transition<T> updateTransition(androidx.compose.animation.core.MutableTransitionState<T> transitionState, optional String? label);
     method @androidx.compose.runtime.Composable public static <T> androidx.compose.animation.core.Transition<T> updateTransition(T targetState, optional String? label);
   }
diff --git a/compose/animation/animation-core/api/res-1.5.0-beta01.txt b/compose/animation/animation-core/api/res-1.5.0-beta01.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/compose/animation/animation-core/api/res-1.5.0-beta01.txt
diff --git a/compose/animation/animation-core/api/restricted_1.5.0-beta01.txt b/compose/animation/animation-core/api/restricted_1.5.0-beta01.txt
new file mode 100644
index 0000000..b96faf7
--- /dev/null
+++ b/compose/animation/animation-core/api/restricted_1.5.0-beta01.txt
@@ -0,0 +1,771 @@
+// Signature format: 4.0
+package androidx.compose.animation.core {
+
+  public final class Animatable<T, V extends androidx.compose.animation.core.AnimationVector> {
+    ctor @Deprecated public Animatable(T initialValue, androidx.compose.animation.core.TwoWayConverter<T,V> typeConverter, optional T? visibilityThreshold);
+    ctor public Animatable(T initialValue, androidx.compose.animation.core.TwoWayConverter<T,V> typeConverter, optional T? visibilityThreshold, optional String label);
+    method public suspend Object? animateDecay(T initialVelocity, androidx.compose.animation.core.DecayAnimationSpec<T> animationSpec, optional kotlin.jvm.functions.Function1<? super androidx.compose.animation.core.Animatable<T,V>,kotlin.Unit>? block, optional kotlin.coroutines.Continuation<? super androidx.compose.animation.core.AnimationResult<T,V>>);
+    method public suspend Object? animateTo(T targetValue, optional androidx.compose.animation.core.AnimationSpec<T> animationSpec, optional T initialVelocity, optional kotlin.jvm.functions.Function1<? super androidx.compose.animation.core.Animatable<T,V>,kotlin.Unit>? block, optional kotlin.coroutines.Continuation<? super androidx.compose.animation.core.AnimationResult<T,V>>);
+    method public androidx.compose.runtime.State<T> asState();
+    method public String getLabel();
+    method public T? getLowerBound();
+    method public T getTargetValue();
+    method public androidx.compose.animation.core.TwoWayConverter<T,V> getTypeConverter();
+    method public T? getUpperBound();
+    method public T getValue();
+    method public T getVelocity();
+    method public V getVelocityVector();
+    method public boolean isRunning();
+    method public suspend Object? snapTo(T targetValue, kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    method public suspend Object? stop(kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    method public void updateBounds(optional T? lowerBound, optional T? upperBound);
+    property public final boolean isRunning;
+    property public final String label;
+    property public final T? lowerBound;
+    property public final T targetValue;
+    property public final androidx.compose.animation.core.TwoWayConverter<T,V> typeConverter;
+    property public final T? upperBound;
+    property public final T value;
+    property public final T velocity;
+    property public final V velocityVector;
+  }
+
+  public final class AnimatableKt {
+    method public static androidx.compose.animation.core.Animatable<java.lang.Float,androidx.compose.animation.core.AnimationVector1D> Animatable(float initialValue, optional float visibilityThreshold);
+  }
+
+  public final class AnimateAsStateKt {
+    method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State<androidx.compose.ui.unit.Dp> animateDpAsState(float targetValue, optional androidx.compose.animation.core.AnimationSpec<androidx.compose.ui.unit.Dp> animationSpec, optional String label, optional kotlin.jvm.functions.Function1<? super androidx.compose.ui.unit.Dp,kotlin.Unit>? finishedListener);
+    method @Deprecated @androidx.compose.runtime.Composable public static androidx.compose.runtime.State<androidx.compose.ui.unit.Dp> animateDpAsState(float targetValue, optional androidx.compose.animation.core.AnimationSpec<androidx.compose.ui.unit.Dp> animationSpec, optional kotlin.jvm.functions.Function1<? super androidx.compose.ui.unit.Dp,kotlin.Unit>? finishedListener);
+    method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State<java.lang.Float> animateFloatAsState(float targetValue, optional androidx.compose.animation.core.AnimationSpec<java.lang.Float> animationSpec, optional float visibilityThreshold, optional String label, optional kotlin.jvm.functions.Function1<? super java.lang.Float,kotlin.Unit>? finishedListener);
+    method @Deprecated @androidx.compose.runtime.Composable public static androidx.compose.runtime.State<java.lang.Float> animateFloatAsState(float targetValue, optional androidx.compose.animation.core.AnimationSpec<java.lang.Float> animationSpec, optional float visibilityThreshold, optional kotlin.jvm.functions.Function1<? super java.lang.Float,kotlin.Unit>? finishedListener);
+    method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State<java.lang.Integer> animateIntAsState(int targetValue, optional androidx.compose.animation.core.AnimationSpec<java.lang.Integer> animationSpec, optional String label, optional kotlin.jvm.functions.Function1<? super java.lang.Integer,kotlin.Unit>? finishedListener);
+    method @Deprecated @androidx.compose.runtime.Composable public static androidx.compose.runtime.State<java.lang.Integer> animateIntAsState(int targetValue, optional androidx.compose.animation.core.AnimationSpec<java.lang.Integer> animationSpec, optional kotlin.jvm.functions.Function1<? super java.lang.Integer,kotlin.Unit>? finishedListener);
+    method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State<androidx.compose.ui.unit.IntOffset> animateIntOffsetAsState(long targetValue, optional androidx.compose.animation.core.AnimationSpec<androidx.compose.ui.unit.IntOffset> animationSpec, optional String label, optional kotlin.jvm.functions.Function1<? super androidx.compose.ui.unit.IntOffset,kotlin.Unit>? finishedListener);
+    method @Deprecated @androidx.compose.runtime.Composable public static androidx.compose.runtime.State<androidx.compose.ui.unit.IntOffset> animateIntOffsetAsState(long targetValue, optional androidx.compose.animation.core.AnimationSpec<androidx.compose.ui.unit.IntOffset> animationSpec, optional kotlin.jvm.functions.Function1<? super androidx.compose.ui.unit.IntOffset,kotlin.Unit>? finishedListener);
+    method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State<androidx.compose.ui.unit.IntSize> animateIntSizeAsState(long targetValue, optional androidx.compose.animation.core.AnimationSpec<androidx.compose.ui.unit.IntSize> animationSpec, optional String label, optional kotlin.jvm.functions.Function1<? super androidx.compose.ui.unit.IntSize,kotlin.Unit>? finishedListener);
+    method @Deprecated @androidx.compose.runtime.Composable public static androidx.compose.runtime.State<androidx.compose.ui.unit.IntSize> animateIntSizeAsState(long targetValue, optional androidx.compose.animation.core.AnimationSpec<androidx.compose.ui.unit.IntSize> animationSpec, optional kotlin.jvm.functions.Function1<? super androidx.compose.ui.unit.IntSize,kotlin.Unit>? finishedListener);
+    method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State<androidx.compose.ui.geometry.Offset> animateOffsetAsState(long targetValue, optional androidx.compose.animation.core.AnimationSpec<androidx.compose.ui.geometry.Offset> animationSpec, optional String label, optional kotlin.jvm.functions.Function1<? super androidx.compose.ui.geometry.Offset,kotlin.Unit>? finishedListener);
+    method @Deprecated @androidx.compose.runtime.Composable public static androidx.compose.runtime.State<androidx.compose.ui.geometry.Offset> animateOffsetAsState(long targetValue, optional androidx.compose.animation.core.AnimationSpec<androidx.compose.ui.geometry.Offset> animationSpec, optional kotlin.jvm.functions.Function1<? super androidx.compose.ui.geometry.Offset,kotlin.Unit>? finishedListener);
+    method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State<androidx.compose.ui.geometry.Rect> animateRectAsState(androidx.compose.ui.geometry.Rect targetValue, optional androidx.compose.animation.core.AnimationSpec<androidx.compose.ui.geometry.Rect> animationSpec, optional String label, optional kotlin.jvm.functions.Function1<? super androidx.compose.ui.geometry.Rect,kotlin.Unit>? finishedListener);
+    method @Deprecated @androidx.compose.runtime.Composable public static androidx.compose.runtime.State<androidx.compose.ui.geometry.Rect> animateRectAsState(androidx.compose.ui.geometry.Rect targetValue, optional androidx.compose.animation.core.AnimationSpec<androidx.compose.ui.geometry.Rect> animationSpec, optional kotlin.jvm.functions.Function1<? super androidx.compose.ui.geometry.Rect,kotlin.Unit>? finishedListener);
+    method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State<androidx.compose.ui.geometry.Size> animateSizeAsState(long targetValue, optional androidx.compose.animation.core.AnimationSpec<androidx.compose.ui.geometry.Size> animationSpec, optional String label, optional kotlin.jvm.functions.Function1<? super androidx.compose.ui.geometry.Size,kotlin.Unit>? finishedListener);
+    method @Deprecated @androidx.compose.runtime.Composable public static androidx.compose.runtime.State<androidx.compose.ui.geometry.Size> animateSizeAsState(long targetValue, optional androidx.compose.animation.core.AnimationSpec<androidx.compose.ui.geometry.Size> animationSpec, optional kotlin.jvm.functions.Function1<? super androidx.compose.ui.geometry.Size,kotlin.Unit>? finishedListener);
+    method @androidx.compose.runtime.Composable public static <T, V extends androidx.compose.animation.core.AnimationVector> androidx.compose.runtime.State<T> animateValueAsState(T targetValue, androidx.compose.animation.core.TwoWayConverter<T,V> typeConverter, optional androidx.compose.animation.core.AnimationSpec<T> animationSpec, optional T? visibilityThreshold, optional String label, optional kotlin.jvm.functions.Function1<? super T,kotlin.Unit>? finishedListener);
+    method @Deprecated @androidx.compose.runtime.Composable public static <T, V extends androidx.compose.animation.core.AnimationVector> androidx.compose.runtime.State<T> animateValueAsState(T targetValue, androidx.compose.animation.core.TwoWayConverter<T,V> typeConverter, optional androidx.compose.animation.core.AnimationSpec<T> animationSpec, optional T? visibilityThreshold, optional kotlin.jvm.functions.Function1<? super T,kotlin.Unit>? finishedListener);
+  }
+
+  @kotlin.jvm.JvmDefaultWithCompatibility public interface Animation<T, V extends androidx.compose.animation.core.AnimationVector> {
+    method public long getDurationNanos();
+    method public T getTargetValue();
+    method public androidx.compose.animation.core.TwoWayConverter<T,V> getTypeConverter();
+    method public T getValueFromNanos(long playTimeNanos);
+    method public V getVelocityVectorFromNanos(long playTimeNanos);
+    method public default boolean isFinishedFromNanos(long playTimeNanos);
+    method public boolean isInfinite();
+    property public abstract long durationNanos;
+    property public abstract boolean isInfinite;
+    property public abstract T targetValue;
+    property public abstract androidx.compose.animation.core.TwoWayConverter<T,V> typeConverter;
+  }
+
+  public final class AnimationConstants {
+    field public static final int DefaultDurationMillis = 300; // 0x12c
+    field public static final androidx.compose.animation.core.AnimationConstants INSTANCE;
+    field public static final long UnspecifiedTime = -9223372036854775808L; // 0x8000000000000000L
+  }
+
+  public enum AnimationEndReason {
+    method public static androidx.compose.animation.core.AnimationEndReason valueOf(String value) throws java.lang.IllegalArgumentException, java.lang.NullPointerException;
+    method public static androidx.compose.animation.core.AnimationEndReason[] values();
+    enum_constant public static final androidx.compose.animation.core.AnimationEndReason BoundReached;
+    enum_constant public static final androidx.compose.animation.core.AnimationEndReason Finished;
+  }
+
+  public final class AnimationKt {
+    method public static androidx.compose.animation.core.DecayAnimation<java.lang.Float,androidx.compose.animation.core.AnimationVector1D> DecayAnimation(androidx.compose.animation.core.FloatDecayAnimationSpec animationSpec, float initialValue, optional float initialVelocity);
+    method public static <T, V extends androidx.compose.animation.core.AnimationVector> androidx.compose.animation.core.TargetBasedAnimation<T,V> TargetBasedAnimation(androidx.compose.animation.core.AnimationSpec<T> animationSpec, androidx.compose.animation.core.TwoWayConverter<T,V> typeConverter, T initialValue, T targetValue, T initialVelocity);
+    method public static <T, V extends androidx.compose.animation.core.AnimationVector> T getVelocityFromNanos(androidx.compose.animation.core.Animation<T,V>, long playTimeNanos);
+  }
+
+  public final class AnimationResult<T, V extends androidx.compose.animation.core.AnimationVector> {
+    ctor public AnimationResult(androidx.compose.animation.core.AnimationState<T,V> endState, androidx.compose.animation.core.AnimationEndReason endReason);
+    method public androidx.compose.animation.core.AnimationEndReason getEndReason();
+    method public androidx.compose.animation.core.AnimationState<T,V> getEndState();
+    property public final androidx.compose.animation.core.AnimationEndReason endReason;
+    property public final androidx.compose.animation.core.AnimationState<T,V> endState;
+  }
+
+  public final class AnimationScope<T, V extends androidx.compose.animation.core.AnimationVector> {
+    method public void cancelAnimation();
+    method public long getFinishedTimeNanos();
+    method public long getLastFrameTimeNanos();
+    method public long getStartTimeNanos();
+    method public T getTargetValue();
+    method public androidx.compose.animation.core.TwoWayConverter<T,V> getTypeConverter();
+    method public T getValue();
+    method public T getVelocity();
+    method public V getVelocityVector();
+    method public boolean isRunning();
+    method public androidx.compose.animation.core.AnimationState<T,V> toAnimationState();
+    property public final long finishedTimeNanos;
+    property public final boolean isRunning;
+    property public final long lastFrameTimeNanos;
+    property public final long startTimeNanos;
+    property public final T targetValue;
+    property public final androidx.compose.animation.core.TwoWayConverter<T,V> typeConverter;
+    property public final T value;
+    property public final T velocity;
+    property public final V velocityVector;
+  }
+
+  public interface AnimationSpec<T> {
+    method public <V extends androidx.compose.animation.core.AnimationVector> androidx.compose.animation.core.VectorizedAnimationSpec<V> vectorize(androidx.compose.animation.core.TwoWayConverter<T,V> converter);
+  }
+
+  public final class AnimationSpecKt {
+    method @Deprecated @androidx.compose.runtime.Stable public static <T> androidx.compose.animation.core.InfiniteRepeatableSpec<T> infiniteRepeatable(androidx.compose.animation.core.DurationBasedAnimationSpec<T> animation, optional androidx.compose.animation.core.RepeatMode repeatMode);
+    method @androidx.compose.runtime.Stable public static <T> androidx.compose.animation.core.InfiniteRepeatableSpec<T> infiniteRepeatable(androidx.compose.animation.core.DurationBasedAnimationSpec<T> animation, optional androidx.compose.animation.core.RepeatMode repeatMode, optional long initialStartOffset);
+    method @androidx.compose.runtime.Stable public static <T> androidx.compose.animation.core.KeyframesSpec<T> keyframes(kotlin.jvm.functions.Function1<? super androidx.compose.animation.core.KeyframesSpec.KeyframesSpecConfig<T>,kotlin.Unit> init);
+    method @Deprecated @androidx.compose.runtime.Stable public static <T> androidx.compose.animation.core.RepeatableSpec<T> repeatable(int iterations, androidx.compose.animation.core.DurationBasedAnimationSpec<T> animation, optional androidx.compose.animation.core.RepeatMode repeatMode);
+    method @androidx.compose.runtime.Stable public static <T> androidx.compose.animation.core.RepeatableSpec<T> repeatable(int iterations, androidx.compose.animation.core.DurationBasedAnimationSpec<T> animation, optional androidx.compose.animation.core.RepeatMode repeatMode, optional long initialStartOffset);
+    method @androidx.compose.runtime.Stable public static <T> androidx.compose.animation.core.SnapSpec<T> snap(optional int delayMillis);
+    method @androidx.compose.runtime.Stable public static <T> androidx.compose.animation.core.SpringSpec<T> spring(optional float dampingRatio, optional float stiffness, optional T? visibilityThreshold);
+    method @androidx.compose.runtime.Stable public static <T> androidx.compose.animation.core.TweenSpec<T> tween(optional int durationMillis, optional int delayMillis, optional androidx.compose.animation.core.Easing easing);
+  }
+
+  public final class AnimationState<T, V extends androidx.compose.animation.core.AnimationVector> implements androidx.compose.runtime.State<T> {
+    ctor public AnimationState(androidx.compose.animation.core.TwoWayConverter<T,V> typeConverter, T initialValue, optional V? initialVelocityVector, optional long lastFrameTimeNanos, optional long finishedTimeNanos, optional boolean isRunning);
+    method public long getFinishedTimeNanos();
+    method public long getLastFrameTimeNanos();
+    method public androidx.compose.animation.core.TwoWayConverter<T,V> getTypeConverter();
+    method public T getValue();
+    method public T getVelocity();
+    method public V getVelocityVector();
+    method public boolean isRunning();
+    property public final long finishedTimeNanos;
+    property public final boolean isRunning;
+    property public final long lastFrameTimeNanos;
+    property public final androidx.compose.animation.core.TwoWayConverter<T,V> typeConverter;
+    property public T value;
+    property public final T velocity;
+    property public final V velocityVector;
+  }
+
+  public final class AnimationStateKt {
+    method public static <T, V extends androidx.compose.animation.core.AnimationVector> androidx.compose.animation.core.AnimationState<T,V> AnimationState(androidx.compose.animation.core.TwoWayConverter<T,V> typeConverter, T initialValue, T initialVelocity, optional long lastFrameTimeNanos, optional long finishedTimeNanos, optional boolean isRunning);
+    method public static androidx.compose.animation.core.AnimationState<java.lang.Float,androidx.compose.animation.core.AnimationVector1D> AnimationState(float initialValue, optional float initialVelocity, optional long lastFrameTimeNanos, optional long finishedTimeNanos, optional boolean isRunning);
+    method public static androidx.compose.animation.core.AnimationState<java.lang.Float,androidx.compose.animation.core.AnimationVector1D> copy(androidx.compose.animation.core.AnimationState<java.lang.Float,androidx.compose.animation.core.AnimationVector1D>, optional float value, optional float velocity, optional long lastFrameTimeNanos, optional long finishedTimeNanos, optional boolean isRunning);
+    method public static <T, V extends androidx.compose.animation.core.AnimationVector> androidx.compose.animation.core.AnimationState<T,V> copy(androidx.compose.animation.core.AnimationState<T,V>, optional T value, optional V? velocityVector, optional long lastFrameTimeNanos, optional long finishedTimeNanos, optional boolean isRunning);
+    method public static <T, V extends androidx.compose.animation.core.AnimationVector> V createZeroVectorFrom(androidx.compose.animation.core.TwoWayConverter<T,V>, T value);
+    method public static boolean isFinished(androidx.compose.animation.core.AnimationState<?,?>);
+  }
+
+  public abstract sealed class AnimationVector {
+  }
+
+  public final class AnimationVector1D extends androidx.compose.animation.core.AnimationVector {
+    ctor public AnimationVector1D(float initVal);
+    method public float getValue();
+    property public final float value;
+  }
+
+  public final class AnimationVector2D extends androidx.compose.animation.core.AnimationVector {
+    ctor public AnimationVector2D(float v1, float v2);
+    method public float getV1();
+    method public float getV2();
+    property public final float v1;
+    property public final float v2;
+  }
+
+  public final class AnimationVector3D extends androidx.compose.animation.core.AnimationVector {
+    ctor public AnimationVector3D(float v1, float v2, float v3);
+    method public float getV1();
+    method public float getV2();
+    method public float getV3();
+    property public final float v1;
+    property public final float v2;
+    property public final float v3;
+  }
+
+  public final class AnimationVector4D extends androidx.compose.animation.core.AnimationVector {
+    ctor public AnimationVector4D(float v1, float v2, float v3, float v4);
+    method public float getV1();
+    method public float getV2();
+    method public float getV3();
+    method public float getV4();
+    property public final float v1;
+    property public final float v2;
+    property public final float v3;
+    property public final float v4;
+  }
+
+  public final class AnimationVectorsKt {
+    method public static androidx.compose.animation.core.AnimationVector1D AnimationVector(float v1);
+    method public static androidx.compose.animation.core.AnimationVector2D AnimationVector(float v1, float v2);
+    method public static androidx.compose.animation.core.AnimationVector3D AnimationVector(float v1, float v2, float v3);
+    method public static androidx.compose.animation.core.AnimationVector4D AnimationVector(float v1, float v2, float v3, float v4);
+  }
+
+  @androidx.compose.runtime.Immutable public final class CubicBezierEasing implements androidx.compose.animation.core.Easing {
+    ctor public CubicBezierEasing(float a, float b, float c, float d);
+    method public float transform(float fraction);
+  }
+
+  public final class DecayAnimation<T, V extends androidx.compose.animation.core.AnimationVector> implements androidx.compose.animation.core.Animation<T,V> {
+    ctor public DecayAnimation(androidx.compose.animation.core.DecayAnimationSpec<T> animationSpec, androidx.compose.animation.core.TwoWayConverter<T,V> typeConverter, T initialValue, T initialVelocity);
+    ctor public DecayAnimation(androidx.compose.animation.core.DecayAnimationSpec<T> animationSpec, androidx.compose.animation.core.TwoWayConverter<T,V> typeConverter, T initialValue, V initialVelocityVector);
+    ctor public DecayAnimation(androidx.compose.animation.core.VectorizedDecayAnimationSpec<V> animationSpec, androidx.compose.animation.core.TwoWayConverter<T,V> typeConverter, T initialValue, V initialVelocityVector);
+    method public long getDurationNanos();
+    method public T getInitialValue();
+    method public V getInitialVelocityVector();
+    method public T getTargetValue();
+    method public androidx.compose.animation.core.TwoWayConverter<T,V> getTypeConverter();
+    method public T getValueFromNanos(long playTimeNanos);
+    method public V getVelocityVectorFromNanos(long playTimeNanos);
+    method public boolean isInfinite();
+    property public long durationNanos;
+    property public final T initialValue;
+    property public final V initialVelocityVector;
+    property public boolean isInfinite;
+    property public T targetValue;
+    property public androidx.compose.animation.core.TwoWayConverter<T,V> typeConverter;
+  }
+
+  public interface DecayAnimationSpec<T> {
+    method public <V extends androidx.compose.animation.core.AnimationVector> androidx.compose.animation.core.VectorizedDecayAnimationSpec<V> vectorize(androidx.compose.animation.core.TwoWayConverter<T,V> typeConverter);
+  }
+
+  public final class DecayAnimationSpecKt {
+    method public static float calculateTargetValue(androidx.compose.animation.core.DecayAnimationSpec<java.lang.Float>, float initialValue, float initialVelocity);
+    method public static <T, V extends androidx.compose.animation.core.AnimationVector> T calculateTargetValue(androidx.compose.animation.core.DecayAnimationSpec<T>, androidx.compose.animation.core.TwoWayConverter<T,V> typeConverter, T initialValue, T initialVelocity);
+    method public static <T> androidx.compose.animation.core.DecayAnimationSpec<T> exponentialDecay(optional float frictionMultiplier, optional float absVelocityThreshold);
+    method public static <T> androidx.compose.animation.core.DecayAnimationSpec<T> generateDecayAnimationSpec(androidx.compose.animation.core.FloatDecayAnimationSpec);
+  }
+
+  public interface DurationBasedAnimationSpec<T> extends androidx.compose.animation.core.FiniteAnimationSpec<T> {
+    method public <V extends androidx.compose.animation.core.AnimationVector> androidx.compose.animation.core.VectorizedDurationBasedAnimationSpec<V> vectorize(androidx.compose.animation.core.TwoWayConverter<T,V> converter);
+  }
+
+  @androidx.compose.runtime.Stable public fun interface Easing {
+    method public float transform(float fraction);
+  }
+
+  public final class EasingFunctionsKt {
+    method public static androidx.compose.animation.core.Easing getEase();
+    method public static androidx.compose.animation.core.Easing getEaseIn();
+    method public static androidx.compose.animation.core.Easing getEaseInBack();
+    method public static androidx.compose.animation.core.Easing getEaseInBounce();
+    method public static androidx.compose.animation.core.Easing getEaseInCirc();
+    method public static androidx.compose.animation.core.Easing getEaseInCubic();
+    method public static androidx.compose.animation.core.Easing getEaseInElastic();
+    method public static androidx.compose.animation.core.Easing getEaseInExpo();
+    method public static androidx.compose.animation.core.Easing getEaseInOut();
+    method public static androidx.compose.animation.core.Easing getEaseInOutBack();
+    method public static androidx.compose.animation.core.Easing getEaseInOutBounce();
+    method public static androidx.compose.animation.core.Easing getEaseInOutCirc();
+    method public static androidx.compose.animation.core.Easing getEaseInOutCubic();
+    method public static androidx.compose.animation.core.Easing getEaseInOutElastic();
+    method public static androidx.compose.animation.core.Easing getEaseInOutExpo();
+    method public static androidx.compose.animation.core.Easing getEaseInOutQuad();
+    method public static androidx.compose.animation.core.Easing getEaseInOutQuart();
+    method public static androidx.compose.animation.core.Easing getEaseInOutQuint();
+    method public static androidx.compose.animation.core.Easing getEaseInOutSine();
+    method public static androidx.compose.animation.core.Easing getEaseInQuad();
+    method public static androidx.compose.animation.core.Easing getEaseInQuart();
+    method public static androidx.compose.animation.core.Easing getEaseInQuint();
+    method public static androidx.compose.animation.core.Easing getEaseInSine();
+    method public static androidx.compose.animation.core.Easing getEaseOut();
+    method public static androidx.compose.animation.core.Easing getEaseOutBack();
+    method public static androidx.compose.animation.core.Easing getEaseOutBounce();
+    method public static androidx.compose.animation.core.Easing getEaseOutCirc();
+    method public static androidx.compose.animation.core.Easing getEaseOutCubic();
+    method public static androidx.compose.animation.core.Easing getEaseOutElastic();
+    method public static androidx.compose.animation.core.Easing getEaseOutExpo();
+    method public static androidx.compose.animation.core.Easing getEaseOutQuad();
+    method public static androidx.compose.animation.core.Easing getEaseOutQuart();
+    method public static androidx.compose.animation.core.Easing getEaseOutQuint();
+    method public static androidx.compose.animation.core.Easing getEaseOutSine();
+    property public static final androidx.compose.animation.core.Easing Ease;
+    property public static final androidx.compose.animation.core.Easing EaseIn;
+    property public static final androidx.compose.animation.core.Easing EaseInBack;
+    property public static final androidx.compose.animation.core.Easing EaseInBounce;
+    property public static final androidx.compose.animation.core.Easing EaseInCirc;
+    property public static final androidx.compose.animation.core.Easing EaseInCubic;
+    property public static final androidx.compose.animation.core.Easing EaseInElastic;
+    property public static final androidx.compose.animation.core.Easing EaseInExpo;
+    property public static final androidx.compose.animation.core.Easing EaseInOut;
+    property public static final androidx.compose.animation.core.Easing EaseInOutBack;
+    property public static final androidx.compose.animation.core.Easing EaseInOutBounce;
+    property public static final androidx.compose.animation.core.Easing EaseInOutCirc;
+    property public static final androidx.compose.animation.core.Easing EaseInOutCubic;
+    property public static final androidx.compose.animation.core.Easing EaseInOutElastic;
+    property public static final androidx.compose.animation.core.Easing EaseInOutExpo;
+    property public static final androidx.compose.animation.core.Easing EaseInOutQuad;
+    property public static final androidx.compose.animation.core.Easing EaseInOutQuart;
+    property public static final androidx.compose.animation.core.Easing EaseInOutQuint;
+    property public static final androidx.compose.animation.core.Easing EaseInOutSine;
+    property public static final androidx.compose.animation.core.Easing EaseInQuad;
+    property public static final androidx.compose.animation.core.Easing EaseInQuart;
+    property public static final androidx.compose.animation.core.Easing EaseInQuint;
+    property public static final androidx.compose.animation.core.Easing EaseInSine;
+    property public static final androidx.compose.animation.core.Easing EaseOut;
+    property public static final androidx.compose.animation.core.Easing EaseOutBack;
+    property public static final androidx.compose.animation.core.Easing EaseOutBounce;
+    property public static final androidx.compose.animation.core.Easing EaseOutCirc;
+    property public static final androidx.compose.animation.core.Easing EaseOutCubic;
+    property public static final androidx.compose.animation.core.Easing EaseOutElastic;
+    property public static final androidx.compose.animation.core.Easing EaseOutExpo;
+    property public static final androidx.compose.animation.core.Easing EaseOutQuad;
+    property public static final androidx.compose.animation.core.Easing EaseOutQuart;
+    property public static final androidx.compose.animation.core.Easing EaseOutQuint;
+    property public static final androidx.compose.animation.core.Easing EaseOutSine;
+  }
+
+  public final class EasingKt {
+    method public static androidx.compose.animation.core.Easing getFastOutLinearInEasing();
+    method public static androidx.compose.animation.core.Easing getFastOutSlowInEasing();
+    method public static androidx.compose.animation.core.Easing getLinearEasing();
+    method public static androidx.compose.animation.core.Easing getLinearOutSlowInEasing();
+    property public static final androidx.compose.animation.core.Easing FastOutLinearInEasing;
+    property public static final androidx.compose.animation.core.Easing FastOutSlowInEasing;
+    property public static final androidx.compose.animation.core.Easing LinearEasing;
+    property public static final androidx.compose.animation.core.Easing LinearOutSlowInEasing;
+  }
+
+  @kotlin.RequiresOptIn(message="This is an experimental animation API for Transition. It may change in the future.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface ExperimentalTransitionApi {
+  }
+
+  public interface FiniteAnimationSpec<T> extends androidx.compose.animation.core.AnimationSpec<T> {
+    method public <V extends androidx.compose.animation.core.AnimationVector> androidx.compose.animation.core.VectorizedFiniteAnimationSpec<V> vectorize(androidx.compose.animation.core.TwoWayConverter<T,V> converter);
+  }
+
+  @kotlin.jvm.JvmDefaultWithCompatibility public interface FloatAnimationSpec extends androidx.compose.animation.core.AnimationSpec<java.lang.Float> {
+    method public long getDurationNanos(float initialValue, float targetValue, float initialVelocity);
+    method public default float getEndVelocity(float initialValue, float targetValue, float initialVelocity);
+    method public float getValueFromNanos(long playTimeNanos, float initialValue, float targetValue, float initialVelocity);
+    method public float getVelocityFromNanos(long playTimeNanos, float initialValue, float targetValue, float initialVelocity);
+    method public default <V extends androidx.compose.animation.core.AnimationVector> androidx.compose.animation.core.VectorizedFloatAnimationSpec<V> vectorize(androidx.compose.animation.core.TwoWayConverter<java.lang.Float,V> converter);
+  }
+
+  public interface FloatDecayAnimationSpec {
+    method public float getAbsVelocityThreshold();
+    method public long getDurationNanos(float initialValue, float initialVelocity);
+    method public float getTargetValue(float initialValue, float initialVelocity);
+    method public float getValueFromNanos(long playTimeNanos, float initialValue, float initialVelocity);
+    method public float getVelocityFromNanos(long playTimeNanos, float initialValue, float initialVelocity);
+    property public abstract float absVelocityThreshold;
+  }
+
+  public final class FloatExponentialDecaySpec implements androidx.compose.animation.core.FloatDecayAnimationSpec {
+    ctor public FloatExponentialDecaySpec(optional float frictionMultiplier, optional float absVelocityThreshold);
+    method public float getAbsVelocityThreshold();
+    method public long getDurationNanos(float initialValue, float initialVelocity);
+    method public float getTargetValue(float initialValue, float initialVelocity);
+    method public float getValueFromNanos(long playTimeNanos, float initialValue, float initialVelocity);
+    method public float getVelocityFromNanos(long playTimeNanos, float initialValue, float initialVelocity);
+    property public float absVelocityThreshold;
+  }
+
+  public final class FloatSpringSpec implements androidx.compose.animation.core.FloatAnimationSpec {
+    ctor public FloatSpringSpec(optional float dampingRatio, optional float stiffness, optional float visibilityThreshold);
+    method public float getDampingRatio();
+    method public long getDurationNanos(float initialValue, float targetValue, float initialVelocity);
+    method public float getStiffness();
+    method public float getValueFromNanos(long playTimeNanos, float initialValue, float targetValue, float initialVelocity);
+    method public float getVelocityFromNanos(long playTimeNanos, float initialValue, float targetValue, float initialVelocity);
+    property public final float dampingRatio;
+    property public final float stiffness;
+  }
+
+  public final class FloatTweenSpec implements androidx.compose.animation.core.FloatAnimationSpec {
+    ctor public FloatTweenSpec(optional int duration, optional int delay, optional androidx.compose.animation.core.Easing easing);
+    method public int getDelay();
+    method public int getDuration();
+    method public long getDurationNanos(float initialValue, float targetValue, float initialVelocity);
+    method public float getValueFromNanos(long playTimeNanos, float initialValue, float targetValue, float initialVelocity);
+    method public float getVelocityFromNanos(long playTimeNanos, float initialValue, float targetValue, float initialVelocity);
+    property public final int delay;
+    property public final int duration;
+  }
+
+  public final class InfiniteAnimationPolicyKt {
+    method public static suspend inline <R> Object? withInfiniteAnimationFrameMillis(kotlin.jvm.functions.Function1<? super java.lang.Long,? extends R> onFrame, kotlin.coroutines.Continuation<? super R>);
+    method public static suspend <R> Object? withInfiniteAnimationFrameNanos(kotlin.jvm.functions.Function1<? super java.lang.Long,? extends R> onFrame, kotlin.coroutines.Continuation<? super R>);
+  }
+
+  public final class InfiniteRepeatableSpec<T> implements androidx.compose.animation.core.AnimationSpec<T> {
+    ctor @Deprecated public InfiniteRepeatableSpec(androidx.compose.animation.core.DurationBasedAnimationSpec<T> animation, optional androidx.compose.animation.core.RepeatMode repeatMode);
+    ctor public InfiniteRepeatableSpec(androidx.compose.animation.core.DurationBasedAnimationSpec<T> animation, optional androidx.compose.animation.core.RepeatMode repeatMode, optional long initialStartOffset);
+    method public androidx.compose.animation.core.DurationBasedAnimationSpec<T> getAnimation();
+    method public long getInitialStartOffset();
+    method public androidx.compose.animation.core.RepeatMode getRepeatMode();
+    method public <V extends androidx.compose.animation.core.AnimationVector> androidx.compose.animation.core.VectorizedAnimationSpec<V> vectorize(androidx.compose.animation.core.TwoWayConverter<T,V> converter);
+    property public final androidx.compose.animation.core.DurationBasedAnimationSpec<T> animation;
+    property public final long initialStartOffset;
+    property public final androidx.compose.animation.core.RepeatMode repeatMode;
+  }
+
+  public final class InfiniteTransition {
+    method public java.util.List<androidx.compose.animation.core.InfiniteTransition.TransitionAnimationState<?,?>> getAnimations();
+    method public String getLabel();
+    property public final java.util.List<androidx.compose.animation.core.InfiniteTransition.TransitionAnimationState<?,?>> animations;
+    property public final String label;
+  }
+
+  public final class InfiniteTransition.TransitionAnimationState<T, V extends androidx.compose.animation.core.AnimationVector> implements androidx.compose.runtime.State<T> {
+    method public androidx.compose.animation.core.TargetBasedAnimation<T,V> getAnimation();
+    method public androidx.compose.animation.core.AnimationSpec<T> getAnimationSpec();
+    method public String getLabel();
+    method public androidx.compose.animation.core.TwoWayConverter<T,V> getTypeConverter();
+    method public T getValue();
+    property public final androidx.compose.animation.core.TargetBasedAnimation<T,V> animation;
+    property public final androidx.compose.animation.core.AnimationSpec<T> animationSpec;
+    property public final String label;
+    property public final androidx.compose.animation.core.TwoWayConverter<T,V> typeConverter;
+    property public T value;
+  }
+
+  public final class InfiniteTransitionKt {
+    method @Deprecated @androidx.compose.runtime.Composable public static androidx.compose.runtime.State<java.lang.Float> animateFloat(androidx.compose.animation.core.InfiniteTransition, float initialValue, float targetValue, androidx.compose.animation.core.InfiniteRepeatableSpec<java.lang.Float> animationSpec);
+    method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State<java.lang.Float> animateFloat(androidx.compose.animation.core.InfiniteTransition, float initialValue, float targetValue, androidx.compose.animation.core.InfiniteRepeatableSpec<java.lang.Float> animationSpec, optional String label);
+    method @Deprecated @androidx.compose.runtime.Composable public static <T, V extends androidx.compose.animation.core.AnimationVector> androidx.compose.runtime.State<T> animateValue(androidx.compose.animation.core.InfiniteTransition, T initialValue, T targetValue, androidx.compose.animation.core.TwoWayConverter<T,V> typeConverter, androidx.compose.animation.core.InfiniteRepeatableSpec<T> animationSpec);
+    method @androidx.compose.runtime.Composable public static <T, V extends androidx.compose.animation.core.AnimationVector> androidx.compose.runtime.State<T> animateValue(androidx.compose.animation.core.InfiniteTransition, T initialValue, T targetValue, androidx.compose.animation.core.TwoWayConverter<T,V> typeConverter, androidx.compose.animation.core.InfiniteRepeatableSpec<T> animationSpec, optional String label);
+    method @Deprecated @androidx.compose.runtime.Composable public static androidx.compose.animation.core.InfiniteTransition rememberInfiniteTransition();
+    method @androidx.compose.runtime.Composable public static androidx.compose.animation.core.InfiniteTransition rememberInfiniteTransition(optional String label);
+  }
+
+  @kotlin.RequiresOptIn(message="This API is internal to library.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.CLASS, kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.PROPERTY, kotlin.annotation.AnnotationTarget.FIELD, kotlin.annotation.AnnotationTarget.PROPERTY_GETTER}) public @interface InternalAnimationApi {
+  }
+
+  @androidx.compose.runtime.Immutable public final class KeyframesSpec<T> implements androidx.compose.animation.core.DurationBasedAnimationSpec<T> {
+    ctor public KeyframesSpec(androidx.compose.animation.core.KeyframesSpec.KeyframesSpecConfig<T> config);
+    method public androidx.compose.animation.core.KeyframesSpec.KeyframesSpecConfig<T> getConfig();
+    method public <V extends androidx.compose.animation.core.AnimationVector> androidx.compose.animation.core.VectorizedKeyframesSpec<V> vectorize(androidx.compose.animation.core.TwoWayConverter<T,V> converter);
+    property public final androidx.compose.animation.core.KeyframesSpec.KeyframesSpecConfig<T> config;
+  }
+
+  public static final class KeyframesSpec.KeyframeEntity<T> {
+  }
+
+  public static final class KeyframesSpec.KeyframesSpecConfig<T> {
+    ctor public KeyframesSpec.KeyframesSpecConfig();
+    method public infix androidx.compose.animation.core.KeyframesSpec.KeyframeEntity<T> at(T, int timeStamp);
+    method public infix androidx.compose.animation.core.KeyframesSpec.KeyframeEntity<T> atFraction(T, float fraction);
+    method public int getDelayMillis();
+    method public int getDurationMillis();
+    method public void setDelayMillis(int);
+    method public void setDurationMillis(int);
+    method public infix void with(androidx.compose.animation.core.KeyframesSpec.KeyframeEntity<T>, androidx.compose.animation.core.Easing easing);
+    property public final int delayMillis;
+    property public final int durationMillis;
+  }
+
+  public final class MutableTransitionState<S> {
+    ctor public MutableTransitionState(S initialState);
+    method public S getCurrentState();
+    method public S getTargetState();
+    method public boolean isIdle();
+    method public void setTargetState(S!);
+    property public final S currentState;
+    property public final boolean isIdle;
+    property public final S targetState;
+  }
+
+  public enum RepeatMode {
+    method public static androidx.compose.animation.core.RepeatMode valueOf(String value) throws java.lang.IllegalArgumentException, java.lang.NullPointerException;
+    method public static androidx.compose.animation.core.RepeatMode[] values();
+    enum_constant public static final androidx.compose.animation.core.RepeatMode Restart;
+    enum_constant public static final androidx.compose.animation.core.RepeatMode Reverse;
+  }
+
+  @androidx.compose.runtime.Immutable public final class RepeatableSpec<T> implements androidx.compose.animation.core.FiniteAnimationSpec<T> {
+    ctor @Deprecated public RepeatableSpec(int iterations, androidx.compose.animation.core.DurationBasedAnimationSpec<T> animation, optional androidx.compose.animation.core.RepeatMode repeatMode);
+    ctor public RepeatableSpec(int iterations, androidx.compose.animation.core.DurationBasedAnimationSpec<T> animation, optional androidx.compose.animation.core.RepeatMode repeatMode, optional long initialStartOffset);
+    method public androidx.compose.animation.core.DurationBasedAnimationSpec<T> getAnimation();
+    method public long getInitialStartOffset();
+    method public int getIterations();
+    method public androidx.compose.animation.core.RepeatMode getRepeatMode();
+    method public <V extends androidx.compose.animation.core.AnimationVector> androidx.compose.animation.core.VectorizedFiniteAnimationSpec<V> vectorize(androidx.compose.animation.core.TwoWayConverter<T,V> converter);
+    property public final androidx.compose.animation.core.DurationBasedAnimationSpec<T> animation;
+    property public final long initialStartOffset;
+    property public final int iterations;
+    property public final androidx.compose.animation.core.RepeatMode repeatMode;
+  }
+
+  @androidx.compose.runtime.Immutable public final class SnapSpec<T> implements androidx.compose.animation.core.DurationBasedAnimationSpec<T> {
+    ctor public SnapSpec(optional int delay);
+    method public int getDelay();
+    method public <V extends androidx.compose.animation.core.AnimationVector> androidx.compose.animation.core.VectorizedDurationBasedAnimationSpec<V> vectorize(androidx.compose.animation.core.TwoWayConverter<T,V> converter);
+    property public final int delay;
+  }
+
+  public final class Spring {
+    field public static final float DampingRatioHighBouncy = 0.2f;
+    field public static final float DampingRatioLowBouncy = 0.75f;
+    field public static final float DampingRatioMediumBouncy = 0.5f;
+    field public static final float DampingRatioNoBouncy = 1.0f;
+    field public static final float DefaultDisplacementThreshold = 0.01f;
+    field public static final androidx.compose.animation.core.Spring INSTANCE;
+    field public static final float StiffnessHigh = 10000.0f;
+    field public static final float StiffnessLow = 200.0f;
+    field public static final float StiffnessMedium = 1500.0f;
+    field public static final float StiffnessMediumLow = 400.0f;
+    field public static final float StiffnessVeryLow = 50.0f;
+  }
+
+  public final class SpringEstimationKt {
+  }
+
+  @androidx.compose.runtime.Immutable public final class SpringSpec<T> implements androidx.compose.animation.core.FiniteAnimationSpec<T> {
+    ctor public SpringSpec(optional float dampingRatio, optional float stiffness, optional T? visibilityThreshold);
+    method public float getDampingRatio();
+    method public float getStiffness();
+    method public T? getVisibilityThreshold();
+    method public <V extends androidx.compose.animation.core.AnimationVector> androidx.compose.animation.core.VectorizedSpringSpec<V> vectorize(androidx.compose.animation.core.TwoWayConverter<T,V> converter);
+    property public final float dampingRatio;
+    property public final float stiffness;
+    property public final T? visibilityThreshold;
+  }
+
+  @kotlin.jvm.JvmInline public final value class StartOffset {
+    ctor public StartOffset(int offsetMillis, optional int offsetType);
+    method public int getOffsetMillis();
+    method public int getOffsetType();
+    property public final int offsetMillis;
+    property public final int offsetType;
+  }
+
+  @kotlin.jvm.JvmInline public final value class StartOffsetType {
+    field public static final androidx.compose.animation.core.StartOffsetType.Companion Companion;
+  }
+
+  public static final class StartOffsetType.Companion {
+    method public int getDelay();
+    method public int getFastForward();
+    property public final int Delay;
+    property public final int FastForward;
+  }
+
+  public final class SuspendAnimationKt {
+    method public static suspend <T, V extends androidx.compose.animation.core.AnimationVector> Object? animate(androidx.compose.animation.core.TwoWayConverter<T,V> typeConverter, T initialValue, T targetValue, optional T? initialVelocity, optional androidx.compose.animation.core.AnimationSpec<T> animationSpec, kotlin.jvm.functions.Function2<? super T,? super T,kotlin.Unit> block, kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    method public static suspend Object? animate(float initialValue, float targetValue, optional float initialVelocity, optional androidx.compose.animation.core.AnimationSpec<java.lang.Float> animationSpec, kotlin.jvm.functions.Function2<? super java.lang.Float,? super java.lang.Float,kotlin.Unit> block, kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    method public static suspend <T, V extends androidx.compose.animation.core.AnimationVector> Object? animateDecay(androidx.compose.animation.core.AnimationState<T,V>, androidx.compose.animation.core.DecayAnimationSpec<T> animationSpec, optional boolean sequentialAnimation, optional kotlin.jvm.functions.Function1<? super androidx.compose.animation.core.AnimationScope<T,V>,kotlin.Unit> block, optional kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    method public static suspend Object? animateDecay(float initialValue, float initialVelocity, androidx.compose.animation.core.FloatDecayAnimationSpec animationSpec, kotlin.jvm.functions.Function2<? super java.lang.Float,? super java.lang.Float,kotlin.Unit> block, kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    method public static suspend <T, V extends androidx.compose.animation.core.AnimationVector> Object? animateTo(androidx.compose.animation.core.AnimationState<T,V>, T targetValue, optional androidx.compose.animation.core.AnimationSpec<T> animationSpec, optional boolean sequentialAnimation, optional kotlin.jvm.functions.Function1<? super androidx.compose.animation.core.AnimationScope<T,V>,kotlin.Unit> block, optional kotlin.coroutines.Continuation<? super kotlin.Unit>);
+  }
+
+  public final class TargetBasedAnimation<T, V extends androidx.compose.animation.core.AnimationVector> implements androidx.compose.animation.core.Animation<T,V> {
+    ctor public TargetBasedAnimation(androidx.compose.animation.core.AnimationSpec<T> animationSpec, androidx.compose.animation.core.TwoWayConverter<T,V> typeConverter, T initialValue, T targetValue, optional V? initialVelocityVector);
+    method public long getDurationNanos();
+    method public T getInitialValue();
+    method public T getTargetValue();
+    method public androidx.compose.animation.core.TwoWayConverter<T,V> getTypeConverter();
+    method public T getValueFromNanos(long playTimeNanos);
+    method public V getVelocityVectorFromNanos(long playTimeNanos);
+    method public boolean isInfinite();
+    property public long durationNanos;
+    property public final T initialValue;
+    property public boolean isInfinite;
+    property public T targetValue;
+    property public androidx.compose.animation.core.TwoWayConverter<T,V> typeConverter;
+  }
+
+  @androidx.compose.runtime.Stable public final class Transition<S> {
+    ctor @kotlin.PublishedApi internal Transition(androidx.compose.animation.core.MutableTransitionState<S> transitionState, optional String? label);
+    method public java.util.List<androidx.compose.animation.core.Transition<S>.TransitionAnimationState<?,?>> getAnimations();
+    method public S getCurrentState();
+    method public String? getLabel();
+    method public androidx.compose.animation.core.Transition.Segment<S> getSegment();
+    method public S getTargetState();
+    method public long getTotalDurationNanos();
+    method public java.util.List<androidx.compose.animation.core.Transition<?>> getTransitions();
+    method public boolean isRunning();
+    property public final java.util.List<androidx.compose.animation.core.Transition<S>.TransitionAnimationState<?,?>> animations;
+    property public final S currentState;
+    property public final boolean isRunning;
+    property public final String? label;
+    property public final androidx.compose.animation.core.Transition.Segment<S> segment;
+    property public final S targetState;
+    property public final long totalDurationNanos;
+    property public final java.util.List<androidx.compose.animation.core.Transition<?>> transitions;
+  }
+
+  @kotlin.jvm.JvmDefaultWithCompatibility public static interface Transition.Segment<S> {
+    method public S getInitialState();
+    method public S getTargetState();
+    method public default infix boolean isTransitioningTo(S, S targetState);
+    property public abstract S initialState;
+    property public abstract S targetState;
+  }
+
+  @androidx.compose.runtime.Stable public final class Transition.TransitionAnimationState<T, V extends androidx.compose.animation.core.AnimationVector> implements androidx.compose.runtime.State<T> {
+    method public androidx.compose.animation.core.TargetBasedAnimation<T,V> getAnimation();
+    method public androidx.compose.animation.core.FiniteAnimationSpec<T> getAnimationSpec();
+    method public String getLabel();
+    method public androidx.compose.animation.core.TwoWayConverter<T,V> getTypeConverter();
+    method public T getValue();
+    property public final androidx.compose.animation.core.TargetBasedAnimation<T,V> animation;
+    property public final androidx.compose.animation.core.FiniteAnimationSpec<T> animationSpec;
+    property public final String label;
+    property public final androidx.compose.animation.core.TwoWayConverter<T,V> typeConverter;
+    property public T value;
+  }
+
+  public final class TransitionKt {
+    method @androidx.compose.runtime.Composable public static inline <S> androidx.compose.runtime.State<androidx.compose.ui.unit.Dp> animateDp(androidx.compose.animation.core.Transition<S>, optional kotlin.jvm.functions.Function1<? super androidx.compose.animation.core.Transition.Segment<S>,? extends androidx.compose.animation.core.FiniteAnimationSpec<androidx.compose.ui.unit.Dp>> transitionSpec, optional String label, kotlin.jvm.functions.Function1<? super S,androidx.compose.ui.unit.Dp> targetValueByState);
+    method @androidx.compose.runtime.Composable public static inline <S> androidx.compose.runtime.State<java.lang.Float> animateFloat(androidx.compose.animation.core.Transition<S>, optional kotlin.jvm.functions.Function1<? super androidx.compose.animation.core.Transition.Segment<S>,? extends androidx.compose.animation.core.FiniteAnimationSpec<java.lang.Float>> transitionSpec, optional String label, kotlin.jvm.functions.Function1<? super S,java.lang.Float> targetValueByState);
+    method @androidx.compose.runtime.Composable public static inline <S> androidx.compose.runtime.State<java.lang.Integer> animateInt(androidx.compose.animation.core.Transition<S>, optional kotlin.jvm.functions.Function1<? super androidx.compose.animation.core.Transition.Segment<S>,? extends androidx.compose.animation.core.FiniteAnimationSpec<java.lang.Integer>> transitionSpec, optional String label, kotlin.jvm.functions.Function1<? super S,java.lang.Integer> targetValueByState);
+    method @androidx.compose.runtime.Composable public static inline <S> androidx.compose.runtime.State<androidx.compose.ui.unit.IntOffset> animateIntOffset(androidx.compose.animation.core.Transition<S>, optional kotlin.jvm.functions.Function1<? super androidx.compose.animation.core.Transition.Segment<S>,? extends androidx.compose.animation.core.FiniteAnimationSpec<androidx.compose.ui.unit.IntOffset>> transitionSpec, optional String label, kotlin.jvm.functions.Function1<? super S,androidx.compose.ui.unit.IntOffset> targetValueByState);
+    method @androidx.compose.runtime.Composable public static inline <S> androidx.compose.runtime.State<androidx.compose.ui.unit.IntSize> animateIntSize(androidx.compose.animation.core.Transition<S>, optional kotlin.jvm.functions.Function1<? super androidx.compose.animation.core.Transition.Segment<S>,? extends androidx.compose.animation.core.FiniteAnimationSpec<androidx.compose.ui.unit.IntSize>> transitionSpec, optional String label, kotlin.jvm.functions.Function1<? super S,androidx.compose.ui.unit.IntSize> targetValueByState);
+    method @androidx.compose.runtime.Composable public static inline <S> androidx.compose.runtime.State<androidx.compose.ui.geometry.Offset> animateOffset(androidx.compose.animation.core.Transition<S>, optional kotlin.jvm.functions.Function1<? super androidx.compose.animation.core.Transition.Segment<S>,? extends androidx.compose.animation.core.FiniteAnimationSpec<androidx.compose.ui.geometry.Offset>> transitionSpec, optional String label, kotlin.jvm.functions.Function1<? super S,androidx.compose.ui.geometry.Offset> targetValueByState);
+    method @androidx.compose.runtime.Composable public static inline <S> androidx.compose.runtime.State<androidx.compose.ui.geometry.Rect> animateRect(androidx.compose.animation.core.Transition<S>, optional kotlin.jvm.functions.Function1<? super androidx.compose.animation.core.Transition.Segment<S>,? extends androidx.compose.animation.core.FiniteAnimationSpec<androidx.compose.ui.geometry.Rect>> transitionSpec, optional String label, kotlin.jvm.functions.Function1<? super S,androidx.compose.ui.geometry.Rect> targetValueByState);
+    method @androidx.compose.runtime.Composable public static inline <S> androidx.compose.runtime.State<androidx.compose.ui.geometry.Size> animateSize(androidx.compose.animation.core.Transition<S>, optional kotlin.jvm.functions.Function1<? super androidx.compose.animation.core.Transition.Segment<S>,? extends androidx.compose.animation.core.FiniteAnimationSpec<androidx.compose.ui.geometry.Size>> transitionSpec, optional String label, kotlin.jvm.functions.Function1<? super S,androidx.compose.ui.geometry.Size> targetValueByState);
+    method @androidx.compose.runtime.Composable public static inline <S, T, V extends androidx.compose.animation.core.AnimationVector> androidx.compose.runtime.State<T> animateValue(androidx.compose.animation.core.Transition<S>, androidx.compose.animation.core.TwoWayConverter<T,V> typeConverter, optional kotlin.jvm.functions.Function1<? super androidx.compose.animation.core.Transition.Segment<S>,? extends androidx.compose.animation.core.FiniteAnimationSpec<T>> transitionSpec, optional String label, kotlin.jvm.functions.Function1<? super S,? extends T> targetValueByState);
+    method @androidx.compose.animation.core.ExperimentalTransitionApi @androidx.compose.runtime.Composable public static inline <S, T> androidx.compose.animation.core.Transition<T> createChildTransition(androidx.compose.animation.core.Transition<S>, optional String label, kotlin.jvm.functions.Function1<? super S,? extends T> transformToChildState);
+    method @androidx.compose.runtime.Composable @kotlin.PublishedApi internal static <S, T> androidx.compose.animation.core.Transition<T> createChildTransitionInternal(androidx.compose.animation.core.Transition<S>, T initialState, T targetState, String childLabel);
+    method @androidx.compose.runtime.Composable @kotlin.PublishedApi internal static <S, T, V extends androidx.compose.animation.core.AnimationVector> androidx.compose.runtime.State<T> createTransitionAnimation(androidx.compose.animation.core.Transition<S>, T initialValue, T targetValue, androidx.compose.animation.core.FiniteAnimationSpec<T> animationSpec, androidx.compose.animation.core.TwoWayConverter<T,V> typeConverter, String label);
+    method @androidx.compose.runtime.Composable public static <T> androidx.compose.animation.core.Transition<T> updateTransition(androidx.compose.animation.core.MutableTransitionState<T> transitionState, optional String? label);
+    method @androidx.compose.runtime.Composable public static <T> androidx.compose.animation.core.Transition<T> updateTransition(T targetState, optional String? label);
+  }
+
+  @androidx.compose.runtime.Immutable public final class TweenSpec<T> implements androidx.compose.animation.core.DurationBasedAnimationSpec<T> {
+    ctor public TweenSpec(optional int durationMillis, optional int delay, optional androidx.compose.animation.core.Easing easing);
+    method public int getDelay();
+    method public int getDurationMillis();
+    method public androidx.compose.animation.core.Easing getEasing();
+    method public <V extends androidx.compose.animation.core.AnimationVector> androidx.compose.animation.core.VectorizedTweenSpec<V> vectorize(androidx.compose.animation.core.TwoWayConverter<T,V> converter);
+    property public final int delay;
+    property public final int durationMillis;
+    property public final androidx.compose.animation.core.Easing easing;
+  }
+
+  public interface TwoWayConverter<T, V extends androidx.compose.animation.core.AnimationVector> {
+    method public kotlin.jvm.functions.Function1<V,T> getConvertFromVector();
+    method public kotlin.jvm.functions.Function1<T,V> getConvertToVector();
+    property public abstract kotlin.jvm.functions.Function1<V,T> convertFromVector;
+    property public abstract kotlin.jvm.functions.Function1<T,V> convertToVector;
+  }
+
+  public final class VectorConvertersKt {
+    method public static <T, V extends androidx.compose.animation.core.AnimationVector> androidx.compose.animation.core.TwoWayConverter<T,V> TwoWayConverter(kotlin.jvm.functions.Function1<? super T,? extends V> convertToVector, kotlin.jvm.functions.Function1<? super V,? extends T> convertFromVector);
+    method public static androidx.compose.animation.core.TwoWayConverter<androidx.compose.ui.geometry.Offset,androidx.compose.animation.core.AnimationVector2D> getVectorConverter(androidx.compose.ui.geometry.Offset.Companion);
+    method public static androidx.compose.animation.core.TwoWayConverter<androidx.compose.ui.geometry.Rect,androidx.compose.animation.core.AnimationVector4D> getVectorConverter(androidx.compose.ui.geometry.Rect.Companion);
+    method public static androidx.compose.animation.core.TwoWayConverter<androidx.compose.ui.geometry.Size,androidx.compose.animation.core.AnimationVector2D> getVectorConverter(androidx.compose.ui.geometry.Size.Companion);
+    method public static androidx.compose.animation.core.TwoWayConverter<androidx.compose.ui.unit.Dp,androidx.compose.animation.core.AnimationVector1D> getVectorConverter(androidx.compose.ui.unit.Dp.Companion);
+    method public static androidx.compose.animation.core.TwoWayConverter<androidx.compose.ui.unit.DpOffset,androidx.compose.animation.core.AnimationVector2D> getVectorConverter(androidx.compose.ui.unit.DpOffset.Companion);
+    method public static androidx.compose.animation.core.TwoWayConverter<androidx.compose.ui.unit.IntOffset,androidx.compose.animation.core.AnimationVector2D> getVectorConverter(androidx.compose.ui.unit.IntOffset.Companion);
+    method public static androidx.compose.animation.core.TwoWayConverter<androidx.compose.ui.unit.IntSize,androidx.compose.animation.core.AnimationVector2D> getVectorConverter(androidx.compose.ui.unit.IntSize.Companion);
+    method public static androidx.compose.animation.core.TwoWayConverter<java.lang.Float,androidx.compose.animation.core.AnimationVector1D> getVectorConverter(kotlin.jvm.internal.FloatCompanionObject);
+    method public static androidx.compose.animation.core.TwoWayConverter<java.lang.Integer,androidx.compose.animation.core.AnimationVector1D> getVectorConverter(kotlin.jvm.internal.IntCompanionObject);
+  }
+
+  @kotlin.jvm.JvmDefaultWithCompatibility public interface VectorizedAnimationSpec<V extends androidx.compose.animation.core.AnimationVector> {
+    method public long getDurationNanos(V initialValue, V targetValue, V initialVelocity);
+    method public default V getEndVelocity(V initialValue, V targetValue, V initialVelocity);
+    method public V getValueFromNanos(long playTimeNanos, V initialValue, V targetValue, V initialVelocity);
+    method public V getVelocityFromNanos(long playTimeNanos, V initialValue, V targetValue, V initialVelocity);
+    method public boolean isInfinite();
+    property public abstract boolean isInfinite;
+  }
+
+  public interface VectorizedDecayAnimationSpec<V extends androidx.compose.animation.core.AnimationVector> {
+    method public float getAbsVelocityThreshold();
+    method public long getDurationNanos(V initialValue, V initialVelocity);
+    method public V getTargetValue(V initialValue, V initialVelocity);
+    method public V getValueFromNanos(long playTimeNanos, V initialValue, V initialVelocity);
+    method public V getVelocityFromNanos(long playTimeNanos, V initialValue, V initialVelocity);
+    property public abstract float absVelocityThreshold;
+  }
+
+  @kotlin.jvm.JvmDefaultWithCompatibility public interface VectorizedDurationBasedAnimationSpec<V extends androidx.compose.animation.core.AnimationVector> extends androidx.compose.animation.core.VectorizedFiniteAnimationSpec<V> {
+    method public int getDelayMillis();
+    method public int getDurationMillis();
+    method public default long getDurationNanos(V initialValue, V targetValue, V initialVelocity);
+    property public abstract int delayMillis;
+    property public abstract int durationMillis;
+  }
+
+  @kotlin.jvm.JvmDefaultWithCompatibility public interface VectorizedFiniteAnimationSpec<V extends androidx.compose.animation.core.AnimationVector> extends androidx.compose.animation.core.VectorizedAnimationSpec<V> {
+    method public default boolean isInfinite();
+    property public default boolean isInfinite;
+  }
+
+  public final class VectorizedFloatAnimationSpec<V extends androidx.compose.animation.core.AnimationVector> implements androidx.compose.animation.core.VectorizedFiniteAnimationSpec<V> {
+    ctor public VectorizedFloatAnimationSpec(androidx.compose.animation.core.FloatAnimationSpec anim);
+    method public long getDurationNanos(V initialValue, V targetValue, V initialVelocity);
+    method public V getValueFromNanos(long playTimeNanos, V initialValue, V targetValue, V initialVelocity);
+    method public V getVelocityFromNanos(long playTimeNanos, V initialValue, V targetValue, V initialVelocity);
+  }
+
+  public final class VectorizedInfiniteRepeatableSpec<V extends androidx.compose.animation.core.AnimationVector> implements androidx.compose.animation.core.VectorizedAnimationSpec<V> {
+    ctor @Deprecated public VectorizedInfiniteRepeatableSpec(androidx.compose.animation.core.VectorizedDurationBasedAnimationSpec<V> animation, optional androidx.compose.animation.core.RepeatMode repeatMode);
+    ctor public VectorizedInfiniteRepeatableSpec(androidx.compose.animation.core.VectorizedDurationBasedAnimationSpec<V> animation, optional androidx.compose.animation.core.RepeatMode repeatMode, optional long initialStartOffset);
+    method public long getDurationNanos(V initialValue, V targetValue, V initialVelocity);
+    method public V getValueFromNanos(long playTimeNanos, V initialValue, V targetValue, V initialVelocity);
+    method public V getVelocityFromNanos(long playTimeNanos, V initialValue, V targetValue, V initialVelocity);
+    method public boolean isInfinite();
+    property public boolean isInfinite;
+  }
+
+  public final class VectorizedKeyframesSpec<V extends androidx.compose.animation.core.AnimationVector> implements androidx.compose.animation.core.VectorizedDurationBasedAnimationSpec<V> {
+    ctor public VectorizedKeyframesSpec(java.util.Map<java.lang.Integer,? extends kotlin.Pair<? extends V,? extends androidx.compose.animation.core.Easing>> keyframes, int durationMillis, optional int delayMillis);
+    method public int getDelayMillis();
+    method public int getDurationMillis();
+    method public V getValueFromNanos(long playTimeNanos, V initialValue, V targetValue, V initialVelocity);
+    method public V getVelocityFromNanos(long playTimeNanos, V initialValue, V targetValue, V initialVelocity);
+    property public int delayMillis;
+    property public int durationMillis;
+  }
+
+  public final class VectorizedRepeatableSpec<V extends androidx.compose.animation.core.AnimationVector> implements androidx.compose.animation.core.VectorizedFiniteAnimationSpec<V> {
+    ctor @Deprecated public VectorizedRepeatableSpec(int iterations, androidx.compose.animation.core.VectorizedDurationBasedAnimationSpec<V> animation, optional androidx.compose.animation.core.RepeatMode repeatMode);
+    ctor public VectorizedRepeatableSpec(int iterations, androidx.compose.animation.core.VectorizedDurationBasedAnimationSpec<V> animation, optional androidx.compose.animation.core.RepeatMode repeatMode, optional long initialStartOffset);
+    method public long getDurationNanos(V initialValue, V targetValue, V initialVelocity);
+    method public V getValueFromNanos(long playTimeNanos, V initialValue, V targetValue, V initialVelocity);
+    method public V getVelocityFromNanos(long playTimeNanos, V initialValue, V targetValue, V initialVelocity);
+  }
+
+  public final class VectorizedSnapSpec<V extends androidx.compose.animation.core.AnimationVector> implements androidx.compose.animation.core.VectorizedDurationBasedAnimationSpec<V> {
+    ctor public VectorizedSnapSpec(optional int delayMillis);
+    method public int getDelayMillis();
+    method public int getDurationMillis();
+    method public V getValueFromNanos(long playTimeNanos, V initialValue, V targetValue, V initialVelocity);
+    method public V getVelocityFromNanos(long playTimeNanos, V initialValue, V targetValue, V initialVelocity);
+    property public int delayMillis;
+    property public int durationMillis;
+  }
+
+  public final class VectorizedSpringSpec<V extends androidx.compose.animation.core.AnimationVector> implements androidx.compose.animation.core.VectorizedFiniteAnimationSpec<V> {
+    ctor public VectorizedSpringSpec(optional float dampingRatio, optional float stiffness, optional V? visibilityThreshold);
+    method public float getDampingRatio();
+    method public float getStiffness();
+    property public final float dampingRatio;
+    property public final float stiffness;
+  }
+
+  public final class VectorizedTweenSpec<V extends androidx.compose.animation.core.AnimationVector> implements androidx.compose.animation.core.VectorizedDurationBasedAnimationSpec<V> {
+    ctor public VectorizedTweenSpec(optional int durationMillis, optional int delayMillis, optional androidx.compose.animation.core.Easing easing);
+    method public int getDelayMillis();
+    method public int getDurationMillis();
+    method public androidx.compose.animation.core.Easing getEasing();
+    method public V getValueFromNanos(long playTimeNanos, V initialValue, V targetValue, V initialVelocity);
+    method public V getVelocityFromNanos(long playTimeNanos, V initialValue, V targetValue, V initialVelocity);
+    property public int delayMillis;
+    property public int durationMillis;
+    property public final androidx.compose.animation.core.Easing easing;
+  }
+
+  public final class VisibilityThresholdsKt {
+    method public static long getVisibilityThreshold(androidx.compose.ui.geometry.Offset.Companion);
+    method public static androidx.compose.ui.geometry.Rect getVisibilityThreshold(androidx.compose.ui.geometry.Rect.Companion);
+    method public static long getVisibilityThreshold(androidx.compose.ui.geometry.Size.Companion);
+    method public static float getVisibilityThreshold(androidx.compose.ui.unit.Dp.Companion);
+    method public static long getVisibilityThreshold(androidx.compose.ui.unit.DpOffset.Companion);
+    method public static long getVisibilityThreshold(androidx.compose.ui.unit.IntOffset.Companion);
+    method public static long getVisibilityThreshold(androidx.compose.ui.unit.IntSize.Companion);
+    method public static int getVisibilityThreshold(kotlin.jvm.internal.IntCompanionObject);
+  }
+
+}
+
diff --git a/compose/animation/animation-core/api/restricted_current.txt b/compose/animation/animation-core/api/restricted_current.txt
index 0d3bd05..b96faf7 100644
--- a/compose/animation/animation-core/api/restricted_current.txt
+++ b/compose/animation/animation-core/api/restricted_current.txt
@@ -333,6 +333,9 @@
     property public static final androidx.compose.animation.core.Easing LinearOutSlowInEasing;
   }
 
+  @kotlin.RequiresOptIn(message="This is an experimental animation API for Transition. It may change in the future.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface ExperimentalTransitionApi {
+  }
+
   public interface FiniteAnimationSpec<T> extends androidx.compose.animation.core.AnimationSpec<T> {
     method public <V extends androidx.compose.animation.core.AnimationVector> androidx.compose.animation.core.VectorizedFiniteAnimationSpec<V> vectorize(androidx.compose.animation.core.TwoWayConverter<T,V> converter);
   }
@@ -432,6 +435,9 @@
     method @androidx.compose.runtime.Composable public static androidx.compose.animation.core.InfiniteTransition rememberInfiniteTransition(optional String label);
   }
 
+  @kotlin.RequiresOptIn(message="This API is internal to library.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.CLASS, kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.PROPERTY, kotlin.annotation.AnnotationTarget.FIELD, kotlin.annotation.AnnotationTarget.PROPERTY_GETTER}) public @interface InternalAnimationApi {
+  }
+
   @androidx.compose.runtime.Immutable public final class KeyframesSpec<T> implements androidx.compose.animation.core.DurationBasedAnimationSpec<T> {
     ctor public KeyframesSpec(androidx.compose.animation.core.KeyframesSpec.KeyframesSpecConfig<T> config);
     method public androidx.compose.animation.core.KeyframesSpec.KeyframesSpecConfig<T> getConfig();
@@ -616,6 +622,7 @@
     method @androidx.compose.runtime.Composable public static inline <S> androidx.compose.runtime.State<androidx.compose.ui.geometry.Rect> animateRect(androidx.compose.animation.core.Transition<S>, optional kotlin.jvm.functions.Function1<? super androidx.compose.animation.core.Transition.Segment<S>,? extends androidx.compose.animation.core.FiniteAnimationSpec<androidx.compose.ui.geometry.Rect>> transitionSpec, optional String label, kotlin.jvm.functions.Function1<? super S,androidx.compose.ui.geometry.Rect> targetValueByState);
     method @androidx.compose.runtime.Composable public static inline <S> androidx.compose.runtime.State<androidx.compose.ui.geometry.Size> animateSize(androidx.compose.animation.core.Transition<S>, optional kotlin.jvm.functions.Function1<? super androidx.compose.animation.core.Transition.Segment<S>,? extends androidx.compose.animation.core.FiniteAnimationSpec<androidx.compose.ui.geometry.Size>> transitionSpec, optional String label, kotlin.jvm.functions.Function1<? super S,androidx.compose.ui.geometry.Size> targetValueByState);
     method @androidx.compose.runtime.Composable public static inline <S, T, V extends androidx.compose.animation.core.AnimationVector> androidx.compose.runtime.State<T> animateValue(androidx.compose.animation.core.Transition<S>, androidx.compose.animation.core.TwoWayConverter<T,V> typeConverter, optional kotlin.jvm.functions.Function1<? super androidx.compose.animation.core.Transition.Segment<S>,? extends androidx.compose.animation.core.FiniteAnimationSpec<T>> transitionSpec, optional String label, kotlin.jvm.functions.Function1<? super S,? extends T> targetValueByState);
+    method @androidx.compose.animation.core.ExperimentalTransitionApi @androidx.compose.runtime.Composable public static inline <S, T> androidx.compose.animation.core.Transition<T> createChildTransition(androidx.compose.animation.core.Transition<S>, optional String label, kotlin.jvm.functions.Function1<? super S,? extends T> transformToChildState);
     method @androidx.compose.runtime.Composable @kotlin.PublishedApi internal static <S, T> androidx.compose.animation.core.Transition<T> createChildTransitionInternal(androidx.compose.animation.core.Transition<S>, T initialState, T targetState, String childLabel);
     method @androidx.compose.runtime.Composable @kotlin.PublishedApi internal static <S, T, V extends androidx.compose.animation.core.AnimationVector> androidx.compose.runtime.State<T> createTransitionAnimation(androidx.compose.animation.core.Transition<S>, T initialValue, T targetValue, androidx.compose.animation.core.FiniteAnimationSpec<T> animationSpec, androidx.compose.animation.core.TwoWayConverter<T,V> typeConverter, String label);
     method @androidx.compose.runtime.Composable public static <T> androidx.compose.animation.core.Transition<T> updateTransition(androidx.compose.animation.core.MutableTransitionState<T> transitionState, optional String? label);
diff --git a/compose/animation/animation-graphics/api/public_plus_experimental_current.txt b/compose/animation/animation-graphics/api/1.5.0-beta01.txt
similarity index 100%
rename from compose/animation/animation-graphics/api/public_plus_experimental_current.txt
rename to compose/animation/animation-graphics/api/1.5.0-beta01.txt
diff --git a/compose/animation/animation-graphics/api/current.txt b/compose/animation/animation-graphics/api/current.txt
index e6f50d0..cf4d086 100644
--- a/compose/animation/animation-graphics/api/current.txt
+++ b/compose/animation/animation-graphics/api/current.txt
@@ -1 +1,35 @@
 // Signature format: 4.0
+package androidx.compose.animation.graphics {
+
+  @kotlin.RequiresOptIn(message="This is an experimental animation graphics API.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.CLASS, kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.PROPERTY}) public @interface ExperimentalAnimationGraphicsApi {
+  }
+
+}
+
+package androidx.compose.animation.graphics.res {
+
+  public final class AnimatedVectorPainterResources_androidKt {
+    method @androidx.compose.animation.graphics.ExperimentalAnimationGraphicsApi @androidx.compose.runtime.Composable public static androidx.compose.ui.graphics.painter.Painter rememberAnimatedVectorPainter(androidx.compose.animation.graphics.vector.AnimatedImageVector animatedImageVector, boolean atEnd);
+  }
+
+  public final class AnimatedVectorResources_androidKt {
+    method @androidx.compose.animation.graphics.ExperimentalAnimationGraphicsApi @androidx.compose.runtime.Composable public static androidx.compose.animation.graphics.vector.AnimatedImageVector animatedVectorResource(androidx.compose.animation.graphics.vector.AnimatedImageVector.Companion, @DrawableRes int id);
+  }
+
+}
+
+package androidx.compose.animation.graphics.vector {
+
+  @androidx.compose.animation.graphics.ExperimentalAnimationGraphicsApi @androidx.compose.runtime.Immutable public final class AnimatedImageVector {
+    method public androidx.compose.ui.graphics.vector.ImageVector getImageVector();
+    method public int getTotalDuration();
+    property public final androidx.compose.ui.graphics.vector.ImageVector imageVector;
+    property public final int totalDuration;
+    field public static final androidx.compose.animation.graphics.vector.AnimatedImageVector.Companion Companion;
+  }
+
+  public static final class AnimatedImageVector.Companion {
+  }
+
+}
+
diff --git a/compose/animation/animation-graphics/api/res-1.5.0-beta01.txt b/compose/animation/animation-graphics/api/res-1.5.0-beta01.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/compose/animation/animation-graphics/api/res-1.5.0-beta01.txt
diff --git a/compose/animation/animation-graphics/api/public_plus_experimental_current.txt b/compose/animation/animation-graphics/api/restricted_1.5.0-beta01.txt
similarity index 100%
copy from compose/animation/animation-graphics/api/public_plus_experimental_current.txt
copy to compose/animation/animation-graphics/api/restricted_1.5.0-beta01.txt
diff --git a/compose/animation/animation-graphics/api/restricted_current.txt b/compose/animation/animation-graphics/api/restricted_current.txt
index e6f50d0..cf4d086 100644
--- a/compose/animation/animation-graphics/api/restricted_current.txt
+++ b/compose/animation/animation-graphics/api/restricted_current.txt
@@ -1 +1,35 @@
 // Signature format: 4.0
+package androidx.compose.animation.graphics {
+
+  @kotlin.RequiresOptIn(message="This is an experimental animation graphics API.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.CLASS, kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.PROPERTY}) public @interface ExperimentalAnimationGraphicsApi {
+  }
+
+}
+
+package androidx.compose.animation.graphics.res {
+
+  public final class AnimatedVectorPainterResources_androidKt {
+    method @androidx.compose.animation.graphics.ExperimentalAnimationGraphicsApi @androidx.compose.runtime.Composable public static androidx.compose.ui.graphics.painter.Painter rememberAnimatedVectorPainter(androidx.compose.animation.graphics.vector.AnimatedImageVector animatedImageVector, boolean atEnd);
+  }
+
+  public final class AnimatedVectorResources_androidKt {
+    method @androidx.compose.animation.graphics.ExperimentalAnimationGraphicsApi @androidx.compose.runtime.Composable public static androidx.compose.animation.graphics.vector.AnimatedImageVector animatedVectorResource(androidx.compose.animation.graphics.vector.AnimatedImageVector.Companion, @DrawableRes int id);
+  }
+
+}
+
+package androidx.compose.animation.graphics.vector {
+
+  @androidx.compose.animation.graphics.ExperimentalAnimationGraphicsApi @androidx.compose.runtime.Immutable public final class AnimatedImageVector {
+    method public androidx.compose.ui.graphics.vector.ImageVector getImageVector();
+    method public int getTotalDuration();
+    property public final androidx.compose.ui.graphics.vector.ImageVector imageVector;
+    property public final int totalDuration;
+    field public static final androidx.compose.animation.graphics.vector.AnimatedImageVector.Companion Companion;
+  }
+
+  public static final class AnimatedImageVector.Companion {
+  }
+
+}
+
diff --git a/compose/animation/animation-tooling-internal/api/public_plus_experimental_current.txt b/compose/animation/animation-tooling-internal/api/1.5.0-beta01.txt
similarity index 100%
rename from compose/animation/animation-tooling-internal/api/public_plus_experimental_current.txt
rename to compose/animation/animation-tooling-internal/api/1.5.0-beta01.txt
diff --git a/compose/animation/animation-tooling-internal/api/public_plus_experimental_current.txt b/compose/animation/animation-tooling-internal/api/restricted_1.5.0-beta01.txt
similarity index 100%
copy from compose/animation/animation-tooling-internal/api/public_plus_experimental_current.txt
copy to compose/animation/animation-tooling-internal/api/restricted_1.5.0-beta01.txt
diff --git a/compose/animation/animation/api/public_plus_experimental_current.txt b/compose/animation/animation/api/1.5.0-beta01.txt
similarity index 100%
rename from compose/animation/animation/api/public_plus_experimental_current.txt
rename to compose/animation/animation/api/1.5.0-beta01.txt
diff --git a/compose/animation/animation/api/current.txt b/compose/animation/animation/api/current.txt
index f8122ac..21baa95 100644
--- a/compose/animation/animation/api/current.txt
+++ b/compose/animation/animation/api/current.txt
@@ -10,6 +10,7 @@
     method @androidx.compose.runtime.Composable public static <S> void AnimatedContent(S targetState, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function1<? super androidx.compose.animation.AnimatedContentTransitionScope<S>,androidx.compose.animation.ContentTransform> transitionSpec, optional androidx.compose.ui.Alignment contentAlignment, optional String label, optional kotlin.jvm.functions.Function1<? super S,?> contentKey, kotlin.jvm.functions.Function2<? super androidx.compose.animation.AnimatedContentScope,? super S,kotlin.Unit> content);
     method public static androidx.compose.animation.SizeTransform SizeTransform(optional boolean clip, optional kotlin.jvm.functions.Function2<? super androidx.compose.ui.unit.IntSize,? super androidx.compose.ui.unit.IntSize,? extends androidx.compose.animation.core.FiniteAnimationSpec<androidx.compose.ui.unit.IntSize>> sizeAnimationSpec);
     method public static infix androidx.compose.animation.ContentTransform togetherWith(androidx.compose.animation.EnterTransition, androidx.compose.animation.ExitTransition exit);
+    method @Deprecated @androidx.compose.animation.ExperimentalAnimationApi public static infix androidx.compose.animation.ContentTransform with(androidx.compose.animation.EnterTransition, androidx.compose.animation.ExitTransition exit);
   }
 
   public sealed interface AnimatedContentScope extends androidx.compose.animation.AnimatedVisibilityScope {
@@ -42,14 +43,19 @@
 
   public final class AnimatedVisibilityKt {
     method @androidx.compose.runtime.Composable public static void AnimatedVisibility(androidx.compose.animation.core.MutableTransitionState<java.lang.Boolean> visibleState, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.animation.EnterTransition enter, optional androidx.compose.animation.ExitTransition exit, optional String label, kotlin.jvm.functions.Function1<? super androidx.compose.animation.AnimatedVisibilityScope,kotlin.Unit> content);
+    method @androidx.compose.animation.ExperimentalAnimationApi @androidx.compose.runtime.Composable public static <T> void AnimatedVisibility(androidx.compose.animation.core.Transition<T>, kotlin.jvm.functions.Function1<? super T,java.lang.Boolean> visible, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.animation.EnterTransition enter, optional androidx.compose.animation.ExitTransition exit, kotlin.jvm.functions.Function1<? super androidx.compose.animation.AnimatedVisibilityScope,kotlin.Unit> content);
     method @androidx.compose.runtime.Composable public static void AnimatedVisibility(androidx.compose.foundation.layout.ColumnScope, androidx.compose.animation.core.MutableTransitionState<java.lang.Boolean> visibleState, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.animation.EnterTransition enter, optional androidx.compose.animation.ExitTransition exit, optional String label, kotlin.jvm.functions.Function1<? super androidx.compose.animation.AnimatedVisibilityScope,kotlin.Unit> content);
     method @androidx.compose.runtime.Composable public static void AnimatedVisibility(androidx.compose.foundation.layout.ColumnScope, boolean visible, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.animation.EnterTransition enter, optional androidx.compose.animation.ExitTransition exit, optional String label, kotlin.jvm.functions.Function1<? super androidx.compose.animation.AnimatedVisibilityScope,kotlin.Unit> content);
     method @androidx.compose.runtime.Composable public static void AnimatedVisibility(androidx.compose.foundation.layout.RowScope, androidx.compose.animation.core.MutableTransitionState<java.lang.Boolean> visibleState, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.animation.EnterTransition enter, optional androidx.compose.animation.ExitTransition exit, optional String label, kotlin.jvm.functions.Function1<? super androidx.compose.animation.AnimatedVisibilityScope,kotlin.Unit> content);
     method @androidx.compose.runtime.Composable public static void AnimatedVisibility(androidx.compose.foundation.layout.RowScope, boolean visible, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.animation.EnterTransition enter, optional androidx.compose.animation.ExitTransition exit, optional String label, kotlin.jvm.functions.Function1<? super androidx.compose.animation.AnimatedVisibilityScope,kotlin.Unit> content);
+    method @Deprecated @androidx.compose.animation.ExperimentalAnimationApi @androidx.compose.runtime.Composable public static void AnimatedVisibility(boolean visible, optional androidx.compose.ui.Modifier modifier, androidx.compose.animation.EnterTransition enter, androidx.compose.animation.ExitTransition exit, boolean initiallyVisible, kotlin.jvm.functions.Function0<kotlin.Unit> content);
     method @androidx.compose.runtime.Composable public static void AnimatedVisibility(boolean visible, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.animation.EnterTransition enter, optional androidx.compose.animation.ExitTransition exit, optional String label, kotlin.jvm.functions.Function1<? super androidx.compose.animation.AnimatedVisibilityScope,kotlin.Unit> content);
   }
 
   @kotlin.jvm.JvmDefaultWithCompatibility public interface AnimatedVisibilityScope {
+    method @androidx.compose.animation.ExperimentalAnimationApi public default androidx.compose.ui.Modifier animateEnterExit(androidx.compose.ui.Modifier, optional androidx.compose.animation.EnterTransition enter, optional androidx.compose.animation.ExitTransition exit, optional String label);
+    method @androidx.compose.animation.ExperimentalAnimationApi public androidx.compose.animation.core.Transition<androidx.compose.animation.EnterExitState> getTransition();
+    property @androidx.compose.animation.ExperimentalAnimationApi public abstract androidx.compose.animation.core.Transition<androidx.compose.animation.EnterExitState> transition;
   }
 
   public final class AnimationModifierKt {
@@ -74,10 +80,19 @@
   }
 
   public final class CrossfadeKt {
+    method @androidx.compose.animation.ExperimentalAnimationApi @androidx.compose.runtime.Composable public static <T> void Crossfade(androidx.compose.animation.core.Transition<T>, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.animation.core.FiniteAnimationSpec<java.lang.Float> animationSpec, optional kotlin.jvm.functions.Function1<? super T,?> contentKey, kotlin.jvm.functions.Function1<? super T,kotlin.Unit> content);
     method @androidx.compose.runtime.Composable public static <T> void Crossfade(T targetState, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.animation.core.FiniteAnimationSpec<java.lang.Float> animationSpec, optional String label, kotlin.jvm.functions.Function1<? super T,kotlin.Unit> content);
     method @Deprecated @androidx.compose.runtime.Composable public static <T> void Crossfade(T targetState, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.animation.core.FiniteAnimationSpec<java.lang.Float> animationSpec, kotlin.jvm.functions.Function1<? super T,kotlin.Unit> content);
   }
 
+  @androidx.compose.animation.ExperimentalAnimationApi public enum EnterExitState {
+    method public static androidx.compose.animation.EnterExitState valueOf(String value) throws java.lang.IllegalArgumentException, java.lang.NullPointerException;
+    method public static androidx.compose.animation.EnterExitState[] values();
+    enum_constant public static final androidx.compose.animation.EnterExitState PostExit;
+    enum_constant public static final androidx.compose.animation.EnterExitState PreEnter;
+    enum_constant public static final androidx.compose.animation.EnterExitState Visible;
+  }
+
   public final class EnterExitTransitionKt {
     method @androidx.compose.runtime.Stable public static androidx.compose.animation.EnterTransition expandHorizontally(optional androidx.compose.animation.core.FiniteAnimationSpec<androidx.compose.ui.unit.IntSize> animationSpec, optional androidx.compose.ui.Alignment.Horizontal expandFrom, optional boolean clip, optional kotlin.jvm.functions.Function1<? super java.lang.Integer,java.lang.Integer> initialWidth);
     method @androidx.compose.runtime.Stable public static androidx.compose.animation.EnterTransition expandIn(optional androidx.compose.animation.core.FiniteAnimationSpec<androidx.compose.ui.unit.IntSize> animationSpec, optional androidx.compose.ui.Alignment expandFrom, optional boolean clip, optional kotlin.jvm.functions.Function1<? super androidx.compose.ui.unit.IntSize,androidx.compose.ui.unit.IntSize> initialSize);
@@ -117,6 +132,9 @@
     property public final androidx.compose.animation.ExitTransition None;
   }
 
+  @kotlin.RequiresOptIn(message="This is an experimental animation API.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.CLASS, kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.PROPERTY, kotlin.annotation.AnnotationTarget.FIELD, kotlin.annotation.AnnotationTarget.PROPERTY_GETTER}) public @interface ExperimentalAnimationApi {
+  }
+
   public final class SingleValueAnimationKt {
     method public static androidx.compose.animation.core.Animatable<androidx.compose.ui.graphics.Color,androidx.compose.animation.core.AnimationVector4D> Animatable(long initialValue);
     method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State<androidx.compose.ui.graphics.Color> animateColorAsState(long targetValue, optional androidx.compose.animation.core.AnimationSpec<androidx.compose.ui.graphics.Color> animationSpec, optional String label, optional kotlin.jvm.functions.Function1<? super androidx.compose.ui.graphics.Color,kotlin.Unit>? finishedListener);
diff --git a/compose/animation/animation/api/res-1.5.0-beta01.txt b/compose/animation/animation/api/res-1.5.0-beta01.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/compose/animation/animation/api/res-1.5.0-beta01.txt
diff --git a/compose/animation/animation/api/public_plus_experimental_current.txt b/compose/animation/animation/api/restricted_1.5.0-beta01.txt
similarity index 100%
copy from compose/animation/animation/api/public_plus_experimental_current.txt
copy to compose/animation/animation/api/restricted_1.5.0-beta01.txt
diff --git a/compose/animation/animation/api/restricted_current.txt b/compose/animation/animation/api/restricted_current.txt
index f8122ac..21baa95 100644
--- a/compose/animation/animation/api/restricted_current.txt
+++ b/compose/animation/animation/api/restricted_current.txt
@@ -10,6 +10,7 @@
     method @androidx.compose.runtime.Composable public static <S> void AnimatedContent(S targetState, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function1<? super androidx.compose.animation.AnimatedContentTransitionScope<S>,androidx.compose.animation.ContentTransform> transitionSpec, optional androidx.compose.ui.Alignment contentAlignment, optional String label, optional kotlin.jvm.functions.Function1<? super S,?> contentKey, kotlin.jvm.functions.Function2<? super androidx.compose.animation.AnimatedContentScope,? super S,kotlin.Unit> content);
     method public static androidx.compose.animation.SizeTransform SizeTransform(optional boolean clip, optional kotlin.jvm.functions.Function2<? super androidx.compose.ui.unit.IntSize,? super androidx.compose.ui.unit.IntSize,? extends androidx.compose.animation.core.FiniteAnimationSpec<androidx.compose.ui.unit.IntSize>> sizeAnimationSpec);
     method public static infix androidx.compose.animation.ContentTransform togetherWith(androidx.compose.animation.EnterTransition, androidx.compose.animation.ExitTransition exit);
+    method @Deprecated @androidx.compose.animation.ExperimentalAnimationApi public static infix androidx.compose.animation.ContentTransform with(androidx.compose.animation.EnterTransition, androidx.compose.animation.ExitTransition exit);
   }
 
   public sealed interface AnimatedContentScope extends androidx.compose.animation.AnimatedVisibilityScope {
@@ -42,14 +43,19 @@
 
   public final class AnimatedVisibilityKt {
     method @androidx.compose.runtime.Composable public static void AnimatedVisibility(androidx.compose.animation.core.MutableTransitionState<java.lang.Boolean> visibleState, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.animation.EnterTransition enter, optional androidx.compose.animation.ExitTransition exit, optional String label, kotlin.jvm.functions.Function1<? super androidx.compose.animation.AnimatedVisibilityScope,kotlin.Unit> content);
+    method @androidx.compose.animation.ExperimentalAnimationApi @androidx.compose.runtime.Composable public static <T> void AnimatedVisibility(androidx.compose.animation.core.Transition<T>, kotlin.jvm.functions.Function1<? super T,java.lang.Boolean> visible, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.animation.EnterTransition enter, optional androidx.compose.animation.ExitTransition exit, kotlin.jvm.functions.Function1<? super androidx.compose.animation.AnimatedVisibilityScope,kotlin.Unit> content);
     method @androidx.compose.runtime.Composable public static void AnimatedVisibility(androidx.compose.foundation.layout.ColumnScope, androidx.compose.animation.core.MutableTransitionState<java.lang.Boolean> visibleState, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.animation.EnterTransition enter, optional androidx.compose.animation.ExitTransition exit, optional String label, kotlin.jvm.functions.Function1<? super androidx.compose.animation.AnimatedVisibilityScope,kotlin.Unit> content);
     method @androidx.compose.runtime.Composable public static void AnimatedVisibility(androidx.compose.foundation.layout.ColumnScope, boolean visible, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.animation.EnterTransition enter, optional androidx.compose.animation.ExitTransition exit, optional String label, kotlin.jvm.functions.Function1<? super androidx.compose.animation.AnimatedVisibilityScope,kotlin.Unit> content);
     method @androidx.compose.runtime.Composable public static void AnimatedVisibility(androidx.compose.foundation.layout.RowScope, androidx.compose.animation.core.MutableTransitionState<java.lang.Boolean> visibleState, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.animation.EnterTransition enter, optional androidx.compose.animation.ExitTransition exit, optional String label, kotlin.jvm.functions.Function1<? super androidx.compose.animation.AnimatedVisibilityScope,kotlin.Unit> content);
     method @androidx.compose.runtime.Composable public static void AnimatedVisibility(androidx.compose.foundation.layout.RowScope, boolean visible, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.animation.EnterTransition enter, optional androidx.compose.animation.ExitTransition exit, optional String label, kotlin.jvm.functions.Function1<? super androidx.compose.animation.AnimatedVisibilityScope,kotlin.Unit> content);
+    method @Deprecated @androidx.compose.animation.ExperimentalAnimationApi @androidx.compose.runtime.Composable public static void AnimatedVisibility(boolean visible, optional androidx.compose.ui.Modifier modifier, androidx.compose.animation.EnterTransition enter, androidx.compose.animation.ExitTransition exit, boolean initiallyVisible, kotlin.jvm.functions.Function0<kotlin.Unit> content);
     method @androidx.compose.runtime.Composable public static void AnimatedVisibility(boolean visible, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.animation.EnterTransition enter, optional androidx.compose.animation.ExitTransition exit, optional String label, kotlin.jvm.functions.Function1<? super androidx.compose.animation.AnimatedVisibilityScope,kotlin.Unit> content);
   }
 
   @kotlin.jvm.JvmDefaultWithCompatibility public interface AnimatedVisibilityScope {
+    method @androidx.compose.animation.ExperimentalAnimationApi public default androidx.compose.ui.Modifier animateEnterExit(androidx.compose.ui.Modifier, optional androidx.compose.animation.EnterTransition enter, optional androidx.compose.animation.ExitTransition exit, optional String label);
+    method @androidx.compose.animation.ExperimentalAnimationApi public androidx.compose.animation.core.Transition<androidx.compose.animation.EnterExitState> getTransition();
+    property @androidx.compose.animation.ExperimentalAnimationApi public abstract androidx.compose.animation.core.Transition<androidx.compose.animation.EnterExitState> transition;
   }
 
   public final class AnimationModifierKt {
@@ -74,10 +80,19 @@
   }
 
   public final class CrossfadeKt {
+    method @androidx.compose.animation.ExperimentalAnimationApi @androidx.compose.runtime.Composable public static <T> void Crossfade(androidx.compose.animation.core.Transition<T>, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.animation.core.FiniteAnimationSpec<java.lang.Float> animationSpec, optional kotlin.jvm.functions.Function1<? super T,?> contentKey, kotlin.jvm.functions.Function1<? super T,kotlin.Unit> content);
     method @androidx.compose.runtime.Composable public static <T> void Crossfade(T targetState, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.animation.core.FiniteAnimationSpec<java.lang.Float> animationSpec, optional String label, kotlin.jvm.functions.Function1<? super T,kotlin.Unit> content);
     method @Deprecated @androidx.compose.runtime.Composable public static <T> void Crossfade(T targetState, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.animation.core.FiniteAnimationSpec<java.lang.Float> animationSpec, kotlin.jvm.functions.Function1<? super T,kotlin.Unit> content);
   }
 
+  @androidx.compose.animation.ExperimentalAnimationApi public enum EnterExitState {
+    method public static androidx.compose.animation.EnterExitState valueOf(String value) throws java.lang.IllegalArgumentException, java.lang.NullPointerException;
+    method public static androidx.compose.animation.EnterExitState[] values();
+    enum_constant public static final androidx.compose.animation.EnterExitState PostExit;
+    enum_constant public static final androidx.compose.animation.EnterExitState PreEnter;
+    enum_constant public static final androidx.compose.animation.EnterExitState Visible;
+  }
+
   public final class EnterExitTransitionKt {
     method @androidx.compose.runtime.Stable public static androidx.compose.animation.EnterTransition expandHorizontally(optional androidx.compose.animation.core.FiniteAnimationSpec<androidx.compose.ui.unit.IntSize> animationSpec, optional androidx.compose.ui.Alignment.Horizontal expandFrom, optional boolean clip, optional kotlin.jvm.functions.Function1<? super java.lang.Integer,java.lang.Integer> initialWidth);
     method @androidx.compose.runtime.Stable public static androidx.compose.animation.EnterTransition expandIn(optional androidx.compose.animation.core.FiniteAnimationSpec<androidx.compose.ui.unit.IntSize> animationSpec, optional androidx.compose.ui.Alignment expandFrom, optional boolean clip, optional kotlin.jvm.functions.Function1<? super androidx.compose.ui.unit.IntSize,androidx.compose.ui.unit.IntSize> initialSize);
@@ -117,6 +132,9 @@
     property public final androidx.compose.animation.ExitTransition None;
   }
 
+  @kotlin.RequiresOptIn(message="This is an experimental animation API.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.CLASS, kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.PROPERTY, kotlin.annotation.AnnotationTarget.FIELD, kotlin.annotation.AnnotationTarget.PROPERTY_GETTER}) public @interface ExperimentalAnimationApi {
+  }
+
   public final class SingleValueAnimationKt {
     method public static androidx.compose.animation.core.Animatable<androidx.compose.ui.graphics.Color,androidx.compose.animation.core.AnimationVector4D> Animatable(long initialValue);
     method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State<androidx.compose.ui.graphics.Color> animateColorAsState(long targetValue, optional androidx.compose.animation.core.AnimationSpec<androidx.compose.ui.graphics.Color> animationSpec, optional String label, optional kotlin.jvm.functions.Function1<? super androidx.compose.ui.graphics.Color,kotlin.Unit>? finishedListener);
diff --git a/compose/foundation/foundation-layout/api/public_plus_experimental_current.txt b/compose/foundation/foundation-layout/api/1.5.0-beta01.txt
similarity index 100%
rename from compose/foundation/foundation-layout/api/public_plus_experimental_current.txt
rename to compose/foundation/foundation-layout/api/1.5.0-beta01.txt
diff --git a/compose/foundation/foundation-layout/api/current.txt b/compose/foundation/foundation-layout/api/current.txt
index 147caf6..ec4aa19d 100644
--- a/compose/foundation/foundation-layout/api/current.txt
+++ b/compose/foundation/foundation-layout/api/current.txt
@@ -111,6 +111,20 @@
     method @androidx.compose.runtime.Stable public androidx.compose.ui.Modifier weight(androidx.compose.ui.Modifier, float weight, optional boolean fill);
   }
 
+  @kotlin.RequiresOptIn(message="The API of this layout is experimental and is likely to change in the future.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface ExperimentalLayoutApi {
+  }
+
+  @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.foundation.layout.LayoutScopeMarker @androidx.compose.runtime.Immutable public interface FlowColumnScope extends androidx.compose.foundation.layout.ColumnScope {
+  }
+
+  public final class FlowLayoutKt {
+    method @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable public static inline void FlowColumn(optional androidx.compose.ui.Modifier modifier, optional androidx.compose.foundation.layout.Arrangement.Vertical verticalArrangement, optional androidx.compose.foundation.layout.Arrangement.Horizontal horizontalArrangement, optional int maxItemsInEachColumn, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.FlowColumnScope,kotlin.Unit> content);
+    method @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable public static inline void FlowRow(optional androidx.compose.ui.Modifier modifier, optional androidx.compose.foundation.layout.Arrangement.Horizontal horizontalArrangement, optional androidx.compose.foundation.layout.Arrangement.Vertical verticalArrangement, optional int maxItemsInEachRow, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.FlowRowScope,kotlin.Unit> content);
+  }
+
+  @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.foundation.layout.LayoutScopeMarker @androidx.compose.runtime.Immutable public interface FlowRowScope extends androidx.compose.foundation.layout.RowScope {
+  }
+
   public final class IntrinsicKt {
     method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier height(androidx.compose.ui.Modifier, androidx.compose.foundation.layout.IntrinsicSize intrinsicSize);
     method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier requiredHeight(androidx.compose.ui.Modifier, androidx.compose.foundation.layout.IntrinsicSize intrinsicSize);
@@ -128,6 +142,17 @@
   @kotlin.DslMarker public @interface LayoutScopeMarker {
   }
 
+  @androidx.compose.foundation.layout.ExperimentalLayoutApi public final class MutableWindowInsets implements androidx.compose.foundation.layout.WindowInsets {
+    ctor public MutableWindowInsets(optional androidx.compose.foundation.layout.WindowInsets initialInsets);
+    method public int getBottom(androidx.compose.ui.unit.Density density);
+    method public androidx.compose.foundation.layout.WindowInsets getInsets();
+    method public int getLeft(androidx.compose.ui.unit.Density density, androidx.compose.ui.unit.LayoutDirection layoutDirection);
+    method public int getRight(androidx.compose.ui.unit.Density density, androidx.compose.ui.unit.LayoutDirection layoutDirection);
+    method public int getTop(androidx.compose.ui.unit.Density density);
+    method public void setInsets(androidx.compose.foundation.layout.WindowInsets);
+    property public final androidx.compose.foundation.layout.WindowInsets insets;
+  }
+
   public final class OffsetKt {
     method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier absoluteOffset(androidx.compose.ui.Modifier, optional float x, optional float y);
     method public static androidx.compose.ui.Modifier absoluteOffset(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1<? super androidx.compose.ui.unit.Density,androidx.compose.ui.unit.IntOffset> offset);
@@ -216,6 +241,10 @@
   public static final class WindowInsets.Companion {
   }
 
+  public final class WindowInsetsConnection_androidKt {
+    method @androidx.compose.foundation.layout.ExperimentalLayoutApi public static androidx.compose.ui.Modifier imeNestedScroll(androidx.compose.ui.Modifier);
+  }
+
   public final class WindowInsetsKt {
     method public static androidx.compose.foundation.layout.WindowInsets WindowInsets(optional float left, optional float top, optional float right, optional float bottom);
     method public static androidx.compose.foundation.layout.WindowInsets WindowInsets(optional int left, optional int top, optional int right, optional int bottom);
@@ -228,9 +257,13 @@
   }
 
   public final class WindowInsetsPaddingKt {
+    method @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier consumeWindowInsets(androidx.compose.ui.Modifier, androidx.compose.foundation.layout.PaddingValues paddingValues);
     method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier consumeWindowInsets(androidx.compose.ui.Modifier, androidx.compose.foundation.layout.WindowInsets insets);
+    method @Deprecated @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier consumedWindowInsets(androidx.compose.ui.Modifier, androidx.compose.foundation.layout.PaddingValues paddingValues);
+    method @Deprecated @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier consumedWindowInsets(androidx.compose.ui.Modifier, androidx.compose.foundation.layout.WindowInsets insets);
     method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier onConsumedWindowInsetsChanged(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.WindowInsets,kotlin.Unit> block);
     method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier windowInsetsPadding(androidx.compose.ui.Modifier, androidx.compose.foundation.layout.WindowInsets insets);
+    method @Deprecated @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier withConsumedWindowInsets(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.WindowInsets,kotlin.Unit> block);
   }
 
   public final class WindowInsetsPadding_androidKt {
@@ -280,20 +313,33 @@
   }
 
   public final class WindowInsets_androidKt {
+    method @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static boolean getAreNavigationBarsVisible(androidx.compose.foundation.layout.WindowInsets.Companion);
+    method @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static boolean getAreStatusBarsVisible(androidx.compose.foundation.layout.WindowInsets.Companion);
+    method @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static boolean getAreSystemBarsVisible(androidx.compose.foundation.layout.WindowInsets.Companion);
     method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getCaptionBar(androidx.compose.foundation.layout.WindowInsets.Companion);
+    method @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getCaptionBarIgnoringVisibility(androidx.compose.foundation.layout.WindowInsets.Companion);
     method public static boolean getConsumeWindowInsets(androidx.compose.ui.platform.ComposeView);
     method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getDisplayCutout(androidx.compose.foundation.layout.WindowInsets.Companion);
     method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getIme(androidx.compose.foundation.layout.WindowInsets.Companion);
+    method @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getImeAnimationSource(androidx.compose.foundation.layout.WindowInsets.Companion);
+    method @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getImeAnimationTarget(androidx.compose.foundation.layout.WindowInsets.Companion);
     method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getMandatorySystemGestures(androidx.compose.foundation.layout.WindowInsets.Companion);
     method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getNavigationBars(androidx.compose.foundation.layout.WindowInsets.Companion);
+    method @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getNavigationBarsIgnoringVisibility(androidx.compose.foundation.layout.WindowInsets.Companion);
     method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getSafeContent(androidx.compose.foundation.layout.WindowInsets.Companion);
     method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getSafeDrawing(androidx.compose.foundation.layout.WindowInsets.Companion);
     method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getSafeGestures(androidx.compose.foundation.layout.WindowInsets.Companion);
     method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getStatusBars(androidx.compose.foundation.layout.WindowInsets.Companion);
+    method @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getStatusBarsIgnoringVisibility(androidx.compose.foundation.layout.WindowInsets.Companion);
     method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getSystemBars(androidx.compose.foundation.layout.WindowInsets.Companion);
+    method @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getSystemBarsIgnoringVisibility(androidx.compose.foundation.layout.WindowInsets.Companion);
     method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getSystemGestures(androidx.compose.foundation.layout.WindowInsets.Companion);
     method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getTappableElement(androidx.compose.foundation.layout.WindowInsets.Companion);
+    method @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getTappableElementIgnoringVisibility(androidx.compose.foundation.layout.WindowInsets.Companion);
     method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getWaterfall(androidx.compose.foundation.layout.WindowInsets.Companion);
+    method @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static boolean isCaptionBarVisible(androidx.compose.foundation.layout.WindowInsets.Companion);
+    method @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static boolean isImeVisible(androidx.compose.foundation.layout.WindowInsets.Companion);
+    method @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static boolean isTappableElementVisible(androidx.compose.foundation.layout.WindowInsets.Companion);
     method public static void setConsumeWindowInsets(androidx.compose.ui.platform.ComposeView, boolean);
   }
 
diff --git a/compose/foundation/foundation-layout/api/res-1.5.0-beta01.txt b/compose/foundation/foundation-layout/api/res-1.5.0-beta01.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/compose/foundation/foundation-layout/api/res-1.5.0-beta01.txt
diff --git a/compose/foundation/foundation-layout/api/restricted_1.5.0-beta01.txt b/compose/foundation/foundation-layout/api/restricted_1.5.0-beta01.txt
new file mode 100644
index 0000000..6fe644c
--- /dev/null
+++ b/compose/foundation/foundation-layout/api/restricted_1.5.0-beta01.txt
@@ -0,0 +1,354 @@
+// Signature format: 4.0
+package androidx.compose.foundation.layout {
+
+  public final class AlignmentLineKt {
+    method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier paddingFrom(androidx.compose.ui.Modifier, androidx.compose.ui.layout.AlignmentLine alignmentLine, optional float before, optional float after);
+    method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier paddingFrom(androidx.compose.ui.Modifier, androidx.compose.ui.layout.AlignmentLine alignmentLine, optional long before, optional long after);
+    method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier paddingFromBaseline(androidx.compose.ui.Modifier, optional float top, optional float bottom);
+    method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier paddingFromBaseline(androidx.compose.ui.Modifier, optional long top, optional long bottom);
+  }
+
+  @androidx.compose.runtime.Immutable public final class Arrangement {
+    method @androidx.compose.runtime.Stable public androidx.compose.foundation.layout.Arrangement.Horizontal aligned(androidx.compose.ui.Alignment.Horizontal alignment);
+    method @androidx.compose.runtime.Stable public androidx.compose.foundation.layout.Arrangement.Vertical aligned(androidx.compose.ui.Alignment.Vertical alignment);
+    method public androidx.compose.foundation.layout.Arrangement.Vertical getBottom();
+    method public androidx.compose.foundation.layout.Arrangement.HorizontalOrVertical getCenter();
+    method public androidx.compose.foundation.layout.Arrangement.Horizontal getEnd();
+    method public androidx.compose.foundation.layout.Arrangement.HorizontalOrVertical getSpaceAround();
+    method public androidx.compose.foundation.layout.Arrangement.HorizontalOrVertical getSpaceBetween();
+    method public androidx.compose.foundation.layout.Arrangement.HorizontalOrVertical getSpaceEvenly();
+    method public androidx.compose.foundation.layout.Arrangement.Horizontal getStart();
+    method public androidx.compose.foundation.layout.Arrangement.Vertical getTop();
+    method @androidx.compose.runtime.Stable public androidx.compose.foundation.layout.Arrangement.HorizontalOrVertical spacedBy(float space);
+    method @androidx.compose.runtime.Stable public androidx.compose.foundation.layout.Arrangement.Horizontal spacedBy(float space, androidx.compose.ui.Alignment.Horizontal alignment);
+    method @androidx.compose.runtime.Stable public androidx.compose.foundation.layout.Arrangement.Vertical spacedBy(float space, androidx.compose.ui.Alignment.Vertical alignment);
+    property public final androidx.compose.foundation.layout.Arrangement.Vertical Bottom;
+    property public final androidx.compose.foundation.layout.Arrangement.HorizontalOrVertical Center;
+    property public final androidx.compose.foundation.layout.Arrangement.Horizontal End;
+    property public final androidx.compose.foundation.layout.Arrangement.HorizontalOrVertical SpaceAround;
+    property public final androidx.compose.foundation.layout.Arrangement.HorizontalOrVertical SpaceBetween;
+    property public final androidx.compose.foundation.layout.Arrangement.HorizontalOrVertical SpaceEvenly;
+    property public final androidx.compose.foundation.layout.Arrangement.Horizontal Start;
+    property public final androidx.compose.foundation.layout.Arrangement.Vertical Top;
+    field public static final androidx.compose.foundation.layout.Arrangement INSTANCE;
+  }
+
+  @androidx.compose.runtime.Immutable public static final class Arrangement.Absolute {
+    method @androidx.compose.runtime.Stable public androidx.compose.foundation.layout.Arrangement.Horizontal aligned(androidx.compose.ui.Alignment.Horizontal alignment);
+    method public androidx.compose.foundation.layout.Arrangement.Horizontal getCenter();
+    method public androidx.compose.foundation.layout.Arrangement.Horizontal getLeft();
+    method public androidx.compose.foundation.layout.Arrangement.Horizontal getRight();
+    method public androidx.compose.foundation.layout.Arrangement.Horizontal getSpaceAround();
+    method public androidx.compose.foundation.layout.Arrangement.Horizontal getSpaceBetween();
+    method public androidx.compose.foundation.layout.Arrangement.Horizontal getSpaceEvenly();
+    method @androidx.compose.runtime.Stable public androidx.compose.foundation.layout.Arrangement.HorizontalOrVertical spacedBy(float space);
+    method @androidx.compose.runtime.Stable public androidx.compose.foundation.layout.Arrangement.Horizontal spacedBy(float space, androidx.compose.ui.Alignment.Horizontal alignment);
+    method @androidx.compose.runtime.Stable public androidx.compose.foundation.layout.Arrangement.Vertical spacedBy(float space, androidx.compose.ui.Alignment.Vertical alignment);
+    property public final androidx.compose.foundation.layout.Arrangement.Horizontal Center;
+    property public final androidx.compose.foundation.layout.Arrangement.Horizontal Left;
+    property public final androidx.compose.foundation.layout.Arrangement.Horizontal Right;
+    property public final androidx.compose.foundation.layout.Arrangement.Horizontal SpaceAround;
+    property public final androidx.compose.foundation.layout.Arrangement.Horizontal SpaceBetween;
+    property public final androidx.compose.foundation.layout.Arrangement.Horizontal SpaceEvenly;
+    field public static final androidx.compose.foundation.layout.Arrangement.Absolute INSTANCE;
+  }
+
+  @androidx.compose.runtime.Stable @kotlin.jvm.JvmDefaultWithCompatibility public static interface Arrangement.Horizontal {
+    method public void arrange(androidx.compose.ui.unit.Density, int totalSize, int[] sizes, androidx.compose.ui.unit.LayoutDirection layoutDirection, int[] outPositions);
+    method public default float getSpacing();
+    property public default float spacing;
+  }
+
+  @androidx.compose.runtime.Stable @kotlin.jvm.JvmDefaultWithCompatibility public static interface Arrangement.HorizontalOrVertical extends androidx.compose.foundation.layout.Arrangement.Horizontal androidx.compose.foundation.layout.Arrangement.Vertical {
+    property public default float spacing;
+  }
+
+  @androidx.compose.runtime.Stable @kotlin.jvm.JvmDefaultWithCompatibility public static interface Arrangement.Vertical {
+    method public void arrange(androidx.compose.ui.unit.Density, int totalSize, int[] sizes, int[] outPositions);
+    method public default float getSpacing();
+    property public default float spacing;
+  }
+
+  public final class AspectRatioKt {
+    method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier aspectRatio(androidx.compose.ui.Modifier, float ratio, optional boolean matchHeightConstraintsFirst);
+  }
+
+  public final class BoxKt {
+    method @androidx.compose.runtime.Composable public static void Box(androidx.compose.ui.Modifier modifier);
+    method @androidx.compose.runtime.Composable public static inline void Box(optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.Alignment contentAlignment, optional boolean propagateMinConstraints, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.BoxScope,kotlin.Unit> content);
+    method @androidx.compose.runtime.Composable @kotlin.PublishedApi internal static androidx.compose.ui.layout.MeasurePolicy rememberBoxMeasurePolicy(androidx.compose.ui.Alignment alignment, boolean propagateMinConstraints);
+  }
+
+  @androidx.compose.foundation.layout.LayoutScopeMarker @androidx.compose.runtime.Immutable public interface BoxScope {
+    method @androidx.compose.runtime.Stable public androidx.compose.ui.Modifier align(androidx.compose.ui.Modifier, androidx.compose.ui.Alignment alignment);
+    method @androidx.compose.runtime.Stable public androidx.compose.ui.Modifier matchParentSize(androidx.compose.ui.Modifier);
+  }
+
+  public final class BoxWithConstraintsKt {
+    method @androidx.compose.runtime.Composable @androidx.compose.ui.UiComposable public static void BoxWithConstraints(optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.Alignment contentAlignment, optional boolean propagateMinConstraints, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.BoxWithConstraintsScope,kotlin.Unit> content);
+  }
+
+  @androidx.compose.runtime.Stable public interface BoxWithConstraintsScope extends androidx.compose.foundation.layout.BoxScope {
+    method public long getConstraints();
+    method public float getMaxHeight();
+    method public float getMaxWidth();
+    method public float getMinHeight();
+    method public float getMinWidth();
+    property public abstract long constraints;
+    property public abstract float maxHeight;
+    property public abstract float maxWidth;
+    property public abstract float minHeight;
+    property public abstract float minWidth;
+  }
+
+  public final class ColumnKt {
+    method @androidx.compose.runtime.Composable public static inline void Column(optional androidx.compose.ui.Modifier modifier, optional androidx.compose.foundation.layout.Arrangement.Vertical verticalArrangement, optional androidx.compose.ui.Alignment.Horizontal horizontalAlignment, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit> content);
+    method @androidx.compose.runtime.Composable @kotlin.PublishedApi internal static androidx.compose.ui.layout.MeasurePolicy columnMeasurePolicy(androidx.compose.foundation.layout.Arrangement.Vertical verticalArrangement, androidx.compose.ui.Alignment.Horizontal horizontalAlignment);
+    field @kotlin.PublishedApi internal static final androidx.compose.ui.layout.MeasurePolicy DefaultColumnMeasurePolicy;
+  }
+
+  @androidx.compose.foundation.layout.LayoutScopeMarker @androidx.compose.runtime.Immutable @kotlin.jvm.JvmDefaultWithCompatibility public interface ColumnScope {
+    method @androidx.compose.runtime.Stable public androidx.compose.ui.Modifier align(androidx.compose.ui.Modifier, androidx.compose.ui.Alignment.Horizontal alignment);
+    method @androidx.compose.runtime.Stable public androidx.compose.ui.Modifier alignBy(androidx.compose.ui.Modifier, androidx.compose.ui.layout.VerticalAlignmentLine alignmentLine);
+    method @androidx.compose.runtime.Stable public androidx.compose.ui.Modifier alignBy(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1<? super androidx.compose.ui.layout.Measured,java.lang.Integer> alignmentLineBlock);
+    method @androidx.compose.runtime.Stable public androidx.compose.ui.Modifier weight(androidx.compose.ui.Modifier, float weight, optional boolean fill);
+  }
+
+  @kotlin.RequiresOptIn(message="The API of this layout is experimental and is likely to change in the future.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface ExperimentalLayoutApi {
+  }
+
+  @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.foundation.layout.LayoutScopeMarker @androidx.compose.runtime.Immutable public interface FlowColumnScope extends androidx.compose.foundation.layout.ColumnScope {
+  }
+
+  public final class FlowLayoutKt {
+    method @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable public static inline void FlowColumn(optional androidx.compose.ui.Modifier modifier, optional androidx.compose.foundation.layout.Arrangement.Vertical verticalArrangement, optional androidx.compose.foundation.layout.Arrangement.Horizontal horizontalArrangement, optional int maxItemsInEachColumn, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.FlowColumnScope,kotlin.Unit> content);
+    method @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable public static inline void FlowRow(optional androidx.compose.ui.Modifier modifier, optional androidx.compose.foundation.layout.Arrangement.Horizontal horizontalArrangement, optional androidx.compose.foundation.layout.Arrangement.Vertical verticalArrangement, optional int maxItemsInEachRow, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.FlowRowScope,kotlin.Unit> content);
+    method @androidx.compose.runtime.Composable @kotlin.PublishedApi internal static androidx.compose.ui.layout.MeasurePolicy columnMeasurementHelper(androidx.compose.foundation.layout.Arrangement.Vertical verticalArrangement, androidx.compose.foundation.layout.Arrangement.Horizontal horizontalArrangement, int maxItemsInMainAxis);
+    method @androidx.compose.runtime.Composable @kotlin.PublishedApi internal static androidx.compose.ui.layout.MeasurePolicy rowMeasurementHelper(androidx.compose.foundation.layout.Arrangement.Horizontal horizontalArrangement, androidx.compose.foundation.layout.Arrangement.Vertical verticalArrangement, int maxItemsInMainAxis);
+  }
+
+  @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.foundation.layout.LayoutScopeMarker @androidx.compose.runtime.Immutable public interface FlowRowScope extends androidx.compose.foundation.layout.RowScope {
+  }
+
+  public final class IntrinsicKt {
+    method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier height(androidx.compose.ui.Modifier, androidx.compose.foundation.layout.IntrinsicSize intrinsicSize);
+    method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier requiredHeight(androidx.compose.ui.Modifier, androidx.compose.foundation.layout.IntrinsicSize intrinsicSize);
+    method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier requiredWidth(androidx.compose.ui.Modifier, androidx.compose.foundation.layout.IntrinsicSize intrinsicSize);
+    method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier width(androidx.compose.ui.Modifier, androidx.compose.foundation.layout.IntrinsicSize intrinsicSize);
+  }
+
+  public enum IntrinsicSize {
+    method public static androidx.compose.foundation.layout.IntrinsicSize valueOf(String value) throws java.lang.IllegalArgumentException, java.lang.NullPointerException;
+    method public static androidx.compose.foundation.layout.IntrinsicSize[] values();
+    enum_constant public static final androidx.compose.foundation.layout.IntrinsicSize Max;
+    enum_constant public static final androidx.compose.foundation.layout.IntrinsicSize Min;
+  }
+
+  @kotlin.DslMarker public @interface LayoutScopeMarker {
+  }
+
+  @androidx.compose.foundation.layout.ExperimentalLayoutApi public final class MutableWindowInsets implements androidx.compose.foundation.layout.WindowInsets {
+    ctor public MutableWindowInsets(optional androidx.compose.foundation.layout.WindowInsets initialInsets);
+    method public int getBottom(androidx.compose.ui.unit.Density density);
+    method public androidx.compose.foundation.layout.WindowInsets getInsets();
+    method public int getLeft(androidx.compose.ui.unit.Density density, androidx.compose.ui.unit.LayoutDirection layoutDirection);
+    method public int getRight(androidx.compose.ui.unit.Density density, androidx.compose.ui.unit.LayoutDirection layoutDirection);
+    method public int getTop(androidx.compose.ui.unit.Density density);
+    method public void setInsets(androidx.compose.foundation.layout.WindowInsets);
+    property public final androidx.compose.foundation.layout.WindowInsets insets;
+  }
+
+  public final class OffsetKt {
+    method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier absoluteOffset(androidx.compose.ui.Modifier, optional float x, optional float y);
+    method public static androidx.compose.ui.Modifier absoluteOffset(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1<? super androidx.compose.ui.unit.Density,androidx.compose.ui.unit.IntOffset> offset);
+    method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier offset(androidx.compose.ui.Modifier, optional float x, optional float y);
+    method public static androidx.compose.ui.Modifier offset(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1<? super androidx.compose.ui.unit.Density,androidx.compose.ui.unit.IntOffset> offset);
+  }
+
+  public final class PaddingKt {
+    method @androidx.compose.runtime.Stable public static androidx.compose.foundation.layout.PaddingValues PaddingValues(float all);
+    method @androidx.compose.runtime.Stable public static androidx.compose.foundation.layout.PaddingValues PaddingValues(optional float horizontal, optional float vertical);
+    method @androidx.compose.runtime.Stable public static androidx.compose.foundation.layout.PaddingValues PaddingValues(optional float start, optional float top, optional float end, optional float bottom);
+    method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier absolutePadding(androidx.compose.ui.Modifier, optional float left, optional float top, optional float right, optional float bottom);
+    method @androidx.compose.runtime.Stable public static float calculateEndPadding(androidx.compose.foundation.layout.PaddingValues, androidx.compose.ui.unit.LayoutDirection layoutDirection);
+    method @androidx.compose.runtime.Stable public static float calculateStartPadding(androidx.compose.foundation.layout.PaddingValues, androidx.compose.ui.unit.LayoutDirection layoutDirection);
+    method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier padding(androidx.compose.ui.Modifier, androidx.compose.foundation.layout.PaddingValues paddingValues);
+    method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier padding(androidx.compose.ui.Modifier, float all);
+    method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier padding(androidx.compose.ui.Modifier, optional float horizontal, optional float vertical);
+    method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier padding(androidx.compose.ui.Modifier, optional float start, optional float top, optional float end, optional float bottom);
+  }
+
+  @androidx.compose.runtime.Stable public interface PaddingValues {
+    method public float calculateBottomPadding();
+    method public float calculateLeftPadding(androidx.compose.ui.unit.LayoutDirection layoutDirection);
+    method public float calculateRightPadding(androidx.compose.ui.unit.LayoutDirection layoutDirection);
+    method public float calculateTopPadding();
+  }
+
+  @androidx.compose.runtime.Immutable public static final class PaddingValues.Absolute implements androidx.compose.foundation.layout.PaddingValues {
+    ctor public PaddingValues.Absolute(optional @androidx.compose.runtime.Stable float left, optional @androidx.compose.runtime.Stable float top, optional @androidx.compose.runtime.Stable float right, optional @androidx.compose.runtime.Stable float bottom);
+    method public float calculateBottomPadding();
+    method public float calculateLeftPadding(androidx.compose.ui.unit.LayoutDirection layoutDirection);
+    method public float calculateRightPadding(androidx.compose.ui.unit.LayoutDirection layoutDirection);
+    method public float calculateTopPadding();
+  }
+
+  public final class RowKt {
+    method @androidx.compose.runtime.Composable public static inline void Row(optional androidx.compose.ui.Modifier modifier, optional androidx.compose.foundation.layout.Arrangement.Horizontal horizontalArrangement, optional androidx.compose.ui.Alignment.Vertical verticalAlignment, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit> content);
+    method @androidx.compose.runtime.Composable @kotlin.PublishedApi internal static androidx.compose.ui.layout.MeasurePolicy rowMeasurePolicy(androidx.compose.foundation.layout.Arrangement.Horizontal horizontalArrangement, androidx.compose.ui.Alignment.Vertical verticalAlignment);
+    field @kotlin.PublishedApi internal static final androidx.compose.ui.layout.MeasurePolicy DefaultRowMeasurePolicy;
+  }
+
+  @androidx.compose.foundation.layout.LayoutScopeMarker @androidx.compose.runtime.Immutable @kotlin.jvm.JvmDefaultWithCompatibility public interface RowScope {
+    method @androidx.compose.runtime.Stable public androidx.compose.ui.Modifier align(androidx.compose.ui.Modifier, androidx.compose.ui.Alignment.Vertical alignment);
+    method @androidx.compose.runtime.Stable public androidx.compose.ui.Modifier alignBy(androidx.compose.ui.Modifier, androidx.compose.ui.layout.HorizontalAlignmentLine alignmentLine);
+    method @androidx.compose.runtime.Stable public androidx.compose.ui.Modifier alignBy(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1<? super androidx.compose.ui.layout.Measured,java.lang.Integer> alignmentLineBlock);
+    method @androidx.compose.runtime.Stable public androidx.compose.ui.Modifier alignByBaseline(androidx.compose.ui.Modifier);
+    method @androidx.compose.runtime.Stable public androidx.compose.ui.Modifier weight(androidx.compose.ui.Modifier, float weight, optional boolean fill);
+  }
+
+  public final class SizeKt {
+    method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier defaultMinSize(androidx.compose.ui.Modifier, optional float minWidth, optional float minHeight);
+    method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier fillMaxHeight(androidx.compose.ui.Modifier, optional float fraction);
+    method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier fillMaxSize(androidx.compose.ui.Modifier, optional float fraction);
+    method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier fillMaxWidth(androidx.compose.ui.Modifier, optional float fraction);
+    method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier height(androidx.compose.ui.Modifier, float height);
+    method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier heightIn(androidx.compose.ui.Modifier, optional float min, optional float max);
+    method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier requiredHeight(androidx.compose.ui.Modifier, float height);
+    method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier requiredHeightIn(androidx.compose.ui.Modifier, optional float min, optional float max);
+    method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier requiredSize(androidx.compose.ui.Modifier, float size);
+    method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier requiredSize(androidx.compose.ui.Modifier, float width, float height);
+    method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier requiredSize(androidx.compose.ui.Modifier, long size);
+    method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier requiredSizeIn(androidx.compose.ui.Modifier, optional float minWidth, optional float minHeight, optional float maxWidth, optional float maxHeight);
+    method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier requiredWidth(androidx.compose.ui.Modifier, float width);
+    method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier requiredWidthIn(androidx.compose.ui.Modifier, optional float min, optional float max);
+    method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier size(androidx.compose.ui.Modifier, float size);
+    method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier size(androidx.compose.ui.Modifier, float width, float height);
+    method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier size(androidx.compose.ui.Modifier, long size);
+    method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier sizeIn(androidx.compose.ui.Modifier, optional float minWidth, optional float minHeight, optional float maxWidth, optional float maxHeight);
+    method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier width(androidx.compose.ui.Modifier, float width);
+    method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier widthIn(androidx.compose.ui.Modifier, optional float min, optional float max);
+    method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier wrapContentHeight(androidx.compose.ui.Modifier, optional androidx.compose.ui.Alignment.Vertical align, optional boolean unbounded);
+    method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier wrapContentSize(androidx.compose.ui.Modifier, optional androidx.compose.ui.Alignment align, optional boolean unbounded);
+    method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier wrapContentWidth(androidx.compose.ui.Modifier, optional androidx.compose.ui.Alignment.Horizontal align, optional boolean unbounded);
+  }
+
+  public final class SpacerKt {
+    method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static void Spacer(androidx.compose.ui.Modifier modifier);
+  }
+
+  @androidx.compose.runtime.Stable public interface WindowInsets {
+    method public int getBottom(androidx.compose.ui.unit.Density density);
+    method public int getLeft(androidx.compose.ui.unit.Density density, androidx.compose.ui.unit.LayoutDirection layoutDirection);
+    method public int getRight(androidx.compose.ui.unit.Density density, androidx.compose.ui.unit.LayoutDirection layoutDirection);
+    method public int getTop(androidx.compose.ui.unit.Density density);
+    field public static final androidx.compose.foundation.layout.WindowInsets.Companion Companion;
+  }
+
+  public static final class WindowInsets.Companion {
+  }
+
+  public final class WindowInsetsConnection_androidKt {
+    method @androidx.compose.foundation.layout.ExperimentalLayoutApi public static androidx.compose.ui.Modifier imeNestedScroll(androidx.compose.ui.Modifier);
+  }
+
+  public final class WindowInsetsKt {
+    method public static androidx.compose.foundation.layout.WindowInsets WindowInsets(optional float left, optional float top, optional float right, optional float bottom);
+    method public static androidx.compose.foundation.layout.WindowInsets WindowInsets(optional int left, optional int top, optional int right, optional int bottom);
+    method public static androidx.compose.foundation.layout.WindowInsets add(androidx.compose.foundation.layout.WindowInsets, androidx.compose.foundation.layout.WindowInsets insets);
+    method @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public static androidx.compose.foundation.layout.PaddingValues asPaddingValues(androidx.compose.foundation.layout.WindowInsets);
+    method public static androidx.compose.foundation.layout.PaddingValues asPaddingValues(androidx.compose.foundation.layout.WindowInsets, androidx.compose.ui.unit.Density density);
+    method public static androidx.compose.foundation.layout.WindowInsets exclude(androidx.compose.foundation.layout.WindowInsets, androidx.compose.foundation.layout.WindowInsets insets);
+    method public static androidx.compose.foundation.layout.WindowInsets only(androidx.compose.foundation.layout.WindowInsets, int sides);
+    method public static androidx.compose.foundation.layout.WindowInsets union(androidx.compose.foundation.layout.WindowInsets, androidx.compose.foundation.layout.WindowInsets insets);
+  }
+
+  public final class WindowInsetsPaddingKt {
+    method @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier consumeWindowInsets(androidx.compose.ui.Modifier, androidx.compose.foundation.layout.PaddingValues paddingValues);
+    method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier consumeWindowInsets(androidx.compose.ui.Modifier, androidx.compose.foundation.layout.WindowInsets insets);
+    method @Deprecated @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier consumedWindowInsets(androidx.compose.ui.Modifier, androidx.compose.foundation.layout.PaddingValues paddingValues);
+    method @Deprecated @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier consumedWindowInsets(androidx.compose.ui.Modifier, androidx.compose.foundation.layout.WindowInsets insets);
+    method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier onConsumedWindowInsetsChanged(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.WindowInsets,kotlin.Unit> block);
+    method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier windowInsetsPadding(androidx.compose.ui.Modifier, androidx.compose.foundation.layout.WindowInsets insets);
+    method @Deprecated @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier withConsumedWindowInsets(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.WindowInsets,kotlin.Unit> block);
+  }
+
+  public final class WindowInsetsPadding_androidKt {
+    method public static androidx.compose.ui.Modifier captionBarPadding(androidx.compose.ui.Modifier);
+    method public static androidx.compose.ui.Modifier displayCutoutPadding(androidx.compose.ui.Modifier);
+    method public static androidx.compose.ui.Modifier imePadding(androidx.compose.ui.Modifier);
+    method public static androidx.compose.ui.Modifier mandatorySystemGesturesPadding(androidx.compose.ui.Modifier);
+    method public static androidx.compose.ui.Modifier navigationBarsPadding(androidx.compose.ui.Modifier);
+    method public static androidx.compose.ui.Modifier safeContentPadding(androidx.compose.ui.Modifier);
+    method public static androidx.compose.ui.Modifier safeDrawingPadding(androidx.compose.ui.Modifier);
+    method public static androidx.compose.ui.Modifier safeGesturesPadding(androidx.compose.ui.Modifier);
+    method public static androidx.compose.ui.Modifier statusBarsPadding(androidx.compose.ui.Modifier);
+    method public static androidx.compose.ui.Modifier systemBarsPadding(androidx.compose.ui.Modifier);
+    method public static androidx.compose.ui.Modifier systemGesturesPadding(androidx.compose.ui.Modifier);
+    method public static androidx.compose.ui.Modifier waterfallPadding(androidx.compose.ui.Modifier);
+  }
+
+  @kotlin.jvm.JvmInline public final value class WindowInsetsSides {
+    method public operator int plus(int sides);
+    field public static final androidx.compose.foundation.layout.WindowInsetsSides.Companion Companion;
+  }
+
+  public static final class WindowInsetsSides.Companion {
+    method public int getBottom();
+    method public int getEnd();
+    method public int getHorizontal();
+    method public int getLeft();
+    method public int getRight();
+    method public int getStart();
+    method public int getTop();
+    method public int getVertical();
+    property public final int Bottom;
+    property public final int End;
+    property public final int Horizontal;
+    property public final int Left;
+    property public final int Right;
+    property public final int Start;
+    property public final int Top;
+    property public final int Vertical;
+  }
+
+  public final class WindowInsetsSizeKt {
+    method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier windowInsetsBottomHeight(androidx.compose.ui.Modifier, androidx.compose.foundation.layout.WindowInsets insets);
+    method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier windowInsetsEndWidth(androidx.compose.ui.Modifier, androidx.compose.foundation.layout.WindowInsets insets);
+    method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier windowInsetsStartWidth(androidx.compose.ui.Modifier, androidx.compose.foundation.layout.WindowInsets insets);
+    method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier windowInsetsTopHeight(androidx.compose.ui.Modifier, androidx.compose.foundation.layout.WindowInsets insets);
+  }
+
+  public final class WindowInsets_androidKt {
+    method @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static boolean getAreNavigationBarsVisible(androidx.compose.foundation.layout.WindowInsets.Companion);
+    method @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static boolean getAreStatusBarsVisible(androidx.compose.foundation.layout.WindowInsets.Companion);
+    method @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static boolean getAreSystemBarsVisible(androidx.compose.foundation.layout.WindowInsets.Companion);
+    method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getCaptionBar(androidx.compose.foundation.layout.WindowInsets.Companion);
+    method @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getCaptionBarIgnoringVisibility(androidx.compose.foundation.layout.WindowInsets.Companion);
+    method public static boolean getConsumeWindowInsets(androidx.compose.ui.platform.ComposeView);
+    method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getDisplayCutout(androidx.compose.foundation.layout.WindowInsets.Companion);
+    method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getIme(androidx.compose.foundation.layout.WindowInsets.Companion);
+    method @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getImeAnimationSource(androidx.compose.foundation.layout.WindowInsets.Companion);
+    method @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getImeAnimationTarget(androidx.compose.foundation.layout.WindowInsets.Companion);
+    method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getMandatorySystemGestures(androidx.compose.foundation.layout.WindowInsets.Companion);
+    method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getNavigationBars(androidx.compose.foundation.layout.WindowInsets.Companion);
+    method @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getNavigationBarsIgnoringVisibility(androidx.compose.foundation.layout.WindowInsets.Companion);
+    method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getSafeContent(androidx.compose.foundation.layout.WindowInsets.Companion);
+    method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getSafeDrawing(androidx.compose.foundation.layout.WindowInsets.Companion);
+    method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getSafeGestures(androidx.compose.foundation.layout.WindowInsets.Companion);
+    method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getStatusBars(androidx.compose.foundation.layout.WindowInsets.Companion);
+    method @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getStatusBarsIgnoringVisibility(androidx.compose.foundation.layout.WindowInsets.Companion);
+    method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getSystemBars(androidx.compose.foundation.layout.WindowInsets.Companion);
+    method @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getSystemBarsIgnoringVisibility(androidx.compose.foundation.layout.WindowInsets.Companion);
+    method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getSystemGestures(androidx.compose.foundation.layout.WindowInsets.Companion);
+    method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getTappableElement(androidx.compose.foundation.layout.WindowInsets.Companion);
+    method @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getTappableElementIgnoringVisibility(androidx.compose.foundation.layout.WindowInsets.Companion);
+    method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getWaterfall(androidx.compose.foundation.layout.WindowInsets.Companion);
+    method @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static boolean isCaptionBarVisible(androidx.compose.foundation.layout.WindowInsets.Companion);
+    method @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static boolean isImeVisible(androidx.compose.foundation.layout.WindowInsets.Companion);
+    method @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static boolean isTappableElementVisible(androidx.compose.foundation.layout.WindowInsets.Companion);
+    method public static void setConsumeWindowInsets(androidx.compose.ui.platform.ComposeView, boolean);
+  }
+
+}
+
diff --git a/compose/foundation/foundation-layout/api/restricted_current.txt b/compose/foundation/foundation-layout/api/restricted_current.txt
index ee1efa2..6fe644c 100644
--- a/compose/foundation/foundation-layout/api/restricted_current.txt
+++ b/compose/foundation/foundation-layout/api/restricted_current.txt
@@ -114,11 +114,22 @@
     method @androidx.compose.runtime.Stable public androidx.compose.ui.Modifier weight(androidx.compose.ui.Modifier, float weight, optional boolean fill);
   }
 
+  @kotlin.RequiresOptIn(message="The API of this layout is experimental and is likely to change in the future.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface ExperimentalLayoutApi {
+  }
+
+  @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.foundation.layout.LayoutScopeMarker @androidx.compose.runtime.Immutable public interface FlowColumnScope extends androidx.compose.foundation.layout.ColumnScope {
+  }
+
   public final class FlowLayoutKt {
+    method @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable public static inline void FlowColumn(optional androidx.compose.ui.Modifier modifier, optional androidx.compose.foundation.layout.Arrangement.Vertical verticalArrangement, optional androidx.compose.foundation.layout.Arrangement.Horizontal horizontalArrangement, optional int maxItemsInEachColumn, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.FlowColumnScope,kotlin.Unit> content);
+    method @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable public static inline void FlowRow(optional androidx.compose.ui.Modifier modifier, optional androidx.compose.foundation.layout.Arrangement.Horizontal horizontalArrangement, optional androidx.compose.foundation.layout.Arrangement.Vertical verticalArrangement, optional int maxItemsInEachRow, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.FlowRowScope,kotlin.Unit> content);
     method @androidx.compose.runtime.Composable @kotlin.PublishedApi internal static androidx.compose.ui.layout.MeasurePolicy columnMeasurementHelper(androidx.compose.foundation.layout.Arrangement.Vertical verticalArrangement, androidx.compose.foundation.layout.Arrangement.Horizontal horizontalArrangement, int maxItemsInMainAxis);
     method @androidx.compose.runtime.Composable @kotlin.PublishedApi internal static androidx.compose.ui.layout.MeasurePolicy rowMeasurementHelper(androidx.compose.foundation.layout.Arrangement.Horizontal horizontalArrangement, androidx.compose.foundation.layout.Arrangement.Vertical verticalArrangement, int maxItemsInMainAxis);
   }
 
+  @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.foundation.layout.LayoutScopeMarker @androidx.compose.runtime.Immutable public interface FlowRowScope extends androidx.compose.foundation.layout.RowScope {
+  }
+
   public final class IntrinsicKt {
     method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier height(androidx.compose.ui.Modifier, androidx.compose.foundation.layout.IntrinsicSize intrinsicSize);
     method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier requiredHeight(androidx.compose.ui.Modifier, androidx.compose.foundation.layout.IntrinsicSize intrinsicSize);
@@ -136,6 +147,17 @@
   @kotlin.DslMarker public @interface LayoutScopeMarker {
   }
 
+  @androidx.compose.foundation.layout.ExperimentalLayoutApi public final class MutableWindowInsets implements androidx.compose.foundation.layout.WindowInsets {
+    ctor public MutableWindowInsets(optional androidx.compose.foundation.layout.WindowInsets initialInsets);
+    method public int getBottom(androidx.compose.ui.unit.Density density);
+    method public androidx.compose.foundation.layout.WindowInsets getInsets();
+    method public int getLeft(androidx.compose.ui.unit.Density density, androidx.compose.ui.unit.LayoutDirection layoutDirection);
+    method public int getRight(androidx.compose.ui.unit.Density density, androidx.compose.ui.unit.LayoutDirection layoutDirection);
+    method public int getTop(androidx.compose.ui.unit.Density density);
+    method public void setInsets(androidx.compose.foundation.layout.WindowInsets);
+    property public final androidx.compose.foundation.layout.WindowInsets insets;
+  }
+
   public final class OffsetKt {
     method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier absoluteOffset(androidx.compose.ui.Modifier, optional float x, optional float y);
     method public static androidx.compose.ui.Modifier absoluteOffset(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1<? super androidx.compose.ui.unit.Density,androidx.compose.ui.unit.IntOffset> offset);
@@ -226,6 +248,10 @@
   public static final class WindowInsets.Companion {
   }
 
+  public final class WindowInsetsConnection_androidKt {
+    method @androidx.compose.foundation.layout.ExperimentalLayoutApi public static androidx.compose.ui.Modifier imeNestedScroll(androidx.compose.ui.Modifier);
+  }
+
   public final class WindowInsetsKt {
     method public static androidx.compose.foundation.layout.WindowInsets WindowInsets(optional float left, optional float top, optional float right, optional float bottom);
     method public static androidx.compose.foundation.layout.WindowInsets WindowInsets(optional int left, optional int top, optional int right, optional int bottom);
@@ -238,9 +264,13 @@
   }
 
   public final class WindowInsetsPaddingKt {
+    method @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier consumeWindowInsets(androidx.compose.ui.Modifier, androidx.compose.foundation.layout.PaddingValues paddingValues);
     method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier consumeWindowInsets(androidx.compose.ui.Modifier, androidx.compose.foundation.layout.WindowInsets insets);
+    method @Deprecated @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier consumedWindowInsets(androidx.compose.ui.Modifier, androidx.compose.foundation.layout.PaddingValues paddingValues);
+    method @Deprecated @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier consumedWindowInsets(androidx.compose.ui.Modifier, androidx.compose.foundation.layout.WindowInsets insets);
     method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier onConsumedWindowInsetsChanged(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.WindowInsets,kotlin.Unit> block);
     method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier windowInsetsPadding(androidx.compose.ui.Modifier, androidx.compose.foundation.layout.WindowInsets insets);
+    method @Deprecated @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier withConsumedWindowInsets(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.WindowInsets,kotlin.Unit> block);
   }
 
   public final class WindowInsetsPadding_androidKt {
@@ -290,20 +320,33 @@
   }
 
   public final class WindowInsets_androidKt {
+    method @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static boolean getAreNavigationBarsVisible(androidx.compose.foundation.layout.WindowInsets.Companion);
+    method @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static boolean getAreStatusBarsVisible(androidx.compose.foundation.layout.WindowInsets.Companion);
+    method @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static boolean getAreSystemBarsVisible(androidx.compose.foundation.layout.WindowInsets.Companion);
     method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getCaptionBar(androidx.compose.foundation.layout.WindowInsets.Companion);
+    method @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getCaptionBarIgnoringVisibility(androidx.compose.foundation.layout.WindowInsets.Companion);
     method public static boolean getConsumeWindowInsets(androidx.compose.ui.platform.ComposeView);
     method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getDisplayCutout(androidx.compose.foundation.layout.WindowInsets.Companion);
     method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getIme(androidx.compose.foundation.layout.WindowInsets.Companion);
+    method @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getImeAnimationSource(androidx.compose.foundation.layout.WindowInsets.Companion);
+    method @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getImeAnimationTarget(androidx.compose.foundation.layout.WindowInsets.Companion);
     method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getMandatorySystemGestures(androidx.compose.foundation.layout.WindowInsets.Companion);
     method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getNavigationBars(androidx.compose.foundation.layout.WindowInsets.Companion);
+    method @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getNavigationBarsIgnoringVisibility(androidx.compose.foundation.layout.WindowInsets.Companion);
     method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getSafeContent(androidx.compose.foundation.layout.WindowInsets.Companion);
     method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getSafeDrawing(androidx.compose.foundation.layout.WindowInsets.Companion);
     method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getSafeGestures(androidx.compose.foundation.layout.WindowInsets.Companion);
     method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getStatusBars(androidx.compose.foundation.layout.WindowInsets.Companion);
+    method @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getStatusBarsIgnoringVisibility(androidx.compose.foundation.layout.WindowInsets.Companion);
     method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getSystemBars(androidx.compose.foundation.layout.WindowInsets.Companion);
+    method @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getSystemBarsIgnoringVisibility(androidx.compose.foundation.layout.WindowInsets.Companion);
     method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getSystemGestures(androidx.compose.foundation.layout.WindowInsets.Companion);
     method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getTappableElement(androidx.compose.foundation.layout.WindowInsets.Companion);
+    method @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getTappableElementIgnoringVisibility(androidx.compose.foundation.layout.WindowInsets.Companion);
     method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getWaterfall(androidx.compose.foundation.layout.WindowInsets.Companion);
+    method @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static boolean isCaptionBarVisible(androidx.compose.foundation.layout.WindowInsets.Companion);
+    method @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static boolean isImeVisible(androidx.compose.foundation.layout.WindowInsets.Companion);
+    method @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static boolean isTappableElementVisible(androidx.compose.foundation.layout.WindowInsets.Companion);
     method public static void setConsumeWindowInsets(androidx.compose.ui.platform.ComposeView, boolean);
   }
 
diff --git a/compose/foundation/foundation-layout/src/androidAndroidTest/kotlin/androidx/compose/foundation/layout/RowColumnTest.kt b/compose/foundation/foundation-layout/src/androidAndroidTest/kotlin/androidx/compose/foundation/layout/RowColumnTest.kt
index 80bd902..c896de1 100644
--- a/compose/foundation/foundation-layout/src/androidAndroidTest/kotlin/androidx/compose/foundation/layout/RowColumnTest.kt
+++ b/compose/foundation/foundation-layout/src/androidAndroidTest/kotlin/androidx/compose/foundation/layout/RowColumnTest.kt
@@ -56,6 +56,7 @@
 import org.junit.After
 import org.junit.Assert.assertEquals
 import org.junit.Assert.assertNotNull
+import org.junit.Assert.assertThrows
 import org.junit.Assert.assertTrue
 import org.junit.Before
 import org.junit.Ignore
@@ -233,6 +234,133 @@
     }
 
     @Test
+    fun testRow_withChildrenWithMaxValueWeight() = with(density) {
+        val width = 50.toDp()
+        val height = 80.toDp()
+        val childrenHeight = height.roundToPx()
+
+        val drawLatch = CountDownLatch(2)
+        val childSize = arrayOfNulls<IntSize>(2)
+        val childPosition = arrayOfNulls<Offset>(2)
+        show {
+            Container(alignment = Alignment.TopStart) {
+                Row {
+                    Container(
+                        Modifier.weight(Float.MAX_VALUE)
+                            .onGloballyPositioned { coordinates ->
+                                childSize[0] = coordinates.size
+                                childPosition[0] = coordinates.positionInRoot()
+                                drawLatch.countDown()
+                            },
+                        width = width,
+                        height = height
+                    ) {
+                    }
+
+                    Container(
+                        Modifier.weight(1f)
+                            .onGloballyPositioned { coordinates ->
+                                childSize[1] = coordinates.size
+                                childPosition[1] = coordinates.positionInRoot()
+                                drawLatch.countDown()
+                            },
+                        width = width,
+                        height = height
+                    ) {
+                    }
+                }
+            }
+        }
+        assertTrue(drawLatch.await(1, TimeUnit.SECONDS))
+
+        val root = findComposeView()
+        waitForDraw(root)
+        val rootWidth = root.width
+
+        assertEquals(
+            IntSize(rootWidth, childrenHeight),
+            childSize[0]
+        )
+        assertEquals(
+            IntSize(0, childrenHeight),
+            childSize[1]
+        )
+        assertEquals(Offset(0f, 0f), childPosition[0])
+        assertEquals(Offset((rootWidth).toFloat(), 0f), childPosition[1])
+    }
+
+    @Test
+    fun testRow_withChildrenWithPositiveInfinityWeight() = with(density) {
+        val width = 50.toDp()
+        val height = 80.toDp()
+        val childrenHeight = height.roundToPx()
+
+        val drawLatch = CountDownLatch(2)
+        val childSize = arrayOfNulls<IntSize>(2)
+        val childPosition = arrayOfNulls<Offset>(2)
+        show {
+            Container(alignment = Alignment.TopStart) {
+                Row {
+                    Container(
+                        Modifier.weight(Float.POSITIVE_INFINITY)
+                            .onGloballyPositioned { coordinates ->
+                                childSize[0] = coordinates.size
+                                childPosition[0] = coordinates.positionInRoot()
+                                drawLatch.countDown()
+                            },
+                        width = width,
+                        height = height
+                    ) {
+                    }
+
+                    Container(
+                        Modifier.weight(1f)
+                            .onGloballyPositioned { coordinates ->
+                                childSize[1] = coordinates.size
+                                childPosition[1] = coordinates.positionInRoot()
+                                drawLatch.countDown()
+                            },
+                        width = width,
+                        height = height
+                    ) {
+                    }
+                }
+            }
+        }
+        assertTrue(drawLatch.await(1, TimeUnit.SECONDS))
+
+        val root = findComposeView()
+        waitForDraw(root)
+        val rootWidth = root.width
+
+        assertEquals(
+            IntSize(rootWidth, childrenHeight),
+            childSize[0]
+        )
+        assertEquals(
+            IntSize(0, childrenHeight),
+            childSize[1]
+        )
+        assertEquals(Offset(0f, 0f), childPosition[0])
+        assertEquals(Offset((rootWidth).toFloat(), 0f), childPosition[1])
+    }
+
+    @Test
+    fun testRow_invalidWeight() {
+        with(RowScopeInstance) {
+            assertThrows(IllegalArgumentException::class.java) {
+                Modifier.weight(-1f)
+            }
+            assertThrows(IllegalArgumentException::class.java) {
+                Modifier.weight(Float.NaN)
+            }
+            assertThrows(IllegalArgumentException::class.java) {
+                Modifier.weight(Float.NEGATIVE_INFINITY)
+            }
+        }
+    }
+
+    @Test
     fun testColumn() = with(density) {
         val sizeDp = 50.toDp()
         val size = sizeDp.roundToPx()
@@ -386,6 +514,129 @@
     }
 
     @Test
+    fun testColumn_withChildrenWithMaxValueWeight() = with(density) {
+        val width = 80.toDp()
+        val childrenWidth = width.roundToPx()
+        val height = 50.toDp()
+
+        val drawLatch = CountDownLatch(2)
+        val childSize = arrayOfNulls<IntSize>(2)
+        val childPosition = arrayOfNulls<Offset>(2)
+        show {
+            Container(alignment = Alignment.TopStart) {
+                Column {
+                    Container(
+                        Modifier.weight(Float.MAX_VALUE)
+                            .onGloballyPositioned { coordinates ->
+                                childSize[0] = coordinates.size
+                                childPosition[0] = coordinates.positionInRoot()
+                                drawLatch.countDown()
+                            },
+                        width = width,
+                        height = height
+                    ) {
+                    }
+
+                    Container(
+                        Modifier.weight(1f)
+                            .onGloballyPositioned { coordinates ->
+                                childSize[1] = coordinates.size
+                                childPosition[1] = coordinates.positionInRoot()
+                                drawLatch.countDown()
+                            },
+                        width = width,
+                        height = height
+                    ) {
+                    }
+                }
+            }
+        }
+        assertTrue(drawLatch.await(1, TimeUnit.SECONDS))
+
+        val root = findComposeView()
+        waitForDraw(root)
+        val rootHeight = root.height
+
+        assertEquals(
+            IntSize(childrenWidth, rootHeight), childSize[0]
+        )
+        assertEquals(
+            IntSize(childrenWidth, 0), childSize[1]
+        )
+        assertEquals(Offset(0f, 0f), childPosition[0])
+        assertEquals(Offset(0f, rootHeight.toFloat()), childPosition[1])
+    }
+
+    @Test
+    fun testColumn_withChildrenWithPositiveInfinityWeight() = with(density) {
+        val width = 80.toDp()
+        val childrenWidth = width.roundToPx()
+        val height = 50.toDp()
+
+        val drawLatch = CountDownLatch(2)
+        val childSize = arrayOfNulls<IntSize>(2)
+        val childPosition = arrayOfNulls<Offset>(2)
+        show {
+            Container(alignment = Alignment.TopStart) {
+                Column {
+                    Container(
+                        Modifier.weight(Float.POSITIVE_INFINITY)
+                            .onGloballyPositioned { coordinates ->
+                                childSize[0] = coordinates.size
+                                childPosition[0] = coordinates.positionInRoot()
+                                drawLatch.countDown()
+                            },
+                        width = width,
+                        height = height
+                    ) {
+                    }
+
+                    Container(
+                        Modifier.weight(1f)
+                            .onGloballyPositioned { coordinates ->
+                                childSize[1] = coordinates.size
+                                childPosition[1] = coordinates.positionInRoot()
+                                drawLatch.countDown()
+                            },
+                        width = width,
+                        height = height
+                    ) {
+                    }
+                }
+            }
+        }
+        assertTrue(drawLatch.await(1, TimeUnit.SECONDS))
+
+        val root = findComposeView()
+        waitForDraw(root)
+        val rootHeight = root.height
+
+        assertEquals(
+            IntSize(childrenWidth, rootHeight), childSize[0]
+        )
+        assertEquals(
+            IntSize(childrenWidth, 0), childSize[1]
+        )
+        assertEquals(Offset(0f, 0f), childPosition[0])
+        assertEquals(Offset(0f, rootHeight.toFloat()), childPosition[1])
+    }
+
+    @Test
+    fun testColumn_invalidWeight() {
+        with(ColumnScopeInstance) {
+            assertThrows(IllegalArgumentException::class.java) {
+                Modifier.weight(-1f)
+            }
+            assertThrows(IllegalArgumentException::class.java) {
+                Modifier.weight(Float.NaN)
+            }
+            assertThrows(IllegalArgumentException::class.java) {
+                Modifier.weight(Float.NEGATIVE_INFINITY)
+            }
+        }
+    }
+
+    @Test
     fun testRow_doesNotPlaceChildrenOutOfBounds_becauseOfRoundings() = with(density) {
         val expectedRowWidth = 11f
         val leftPadding = 1f
diff --git a/compose/foundation/foundation-layout/src/androidAndroidTest/kotlin/androidx/compose/foundation/layout/WindowInsetsPaddingTest.kt b/compose/foundation/foundation-layout/src/androidAndroidTest/kotlin/androidx/compose/foundation/layout/WindowInsetsPaddingTest.kt
index ca4f233..3aba669 100644
--- a/compose/foundation/foundation-layout/src/androidAndroidTest/kotlin/androidx/compose/foundation/layout/WindowInsetsPaddingTest.kt
+++ b/compose/foundation/foundation-layout/src/androidAndroidTest/kotlin/androidx/compose/foundation/layout/WindowInsetsPaddingTest.kt
@@ -349,11 +349,19 @@
             with(LocalDensity.current) {
                 CompositionLocalProvider(LocalLayoutDirection provides LayoutDirection.Ltr) {
                     Box(
-                        Modifier.fillMaxSize().padding(5.toDp(), 4.toDp(), 3.toDp(), 2.toDp())
+                        Modifier
+                            .fillMaxSize()
+                            .padding(5.toDp(), 4.toDp(), 3.toDp(), 2.toDp())
                             .consumeWindowInsets(WindowInsets(5, 4, 3, 2))
                     ) {
-                        Box(Modifier.fillMaxSize().systemBarsPadding()) {
-                            Box(Modifier.fillMaxSize().onGloballyPositioned { coordinates = it })
+                        Box(
+                            Modifier
+                                .fillMaxSize()
+                                .systemBarsPadding()) {
+                            Box(
+                                Modifier
+                                    .fillMaxSize()
+                                    .onGloballyPositioned { coordinates = it })
                         }
                     }
                 }
@@ -382,7 +390,10 @@
             CompositionLocalProvider(LocalLayoutDirection provides LayoutDirection.Ltr) {
                 Box(Modifier.statusBarsPadding()) {
                     Box(Modifier.systemBarsPadding()) {
-                        Box(Modifier.fillMaxSize().onGloballyPositioned { coordinates = it })
+                        Box(
+                            Modifier
+                                .fillMaxSize()
+                                .onGloballyPositioned { coordinates = it })
                     }
                 }
             }
@@ -415,9 +426,12 @@
             CompositionLocalProvider(LocalLayoutDirection provides LayoutDirection.Ltr) {
                 Box(consumingModifier) {
                     val density = LocalDensity.current
-                    Box(Modifier.fillMaxSize().onConsumedWindowInsetsChanged {
-                        top = it.getTop(density)
-                    })
+                    Box(
+                        Modifier
+                            .fillMaxSize()
+                            .onConsumedWindowInsetsChanged {
+                                top = it.getTop(density)
+                            })
                 }
             }
         }
@@ -517,7 +531,10 @@
     @Test
     fun animateImeInsets() {
         with(Api30Methods(rule)) {
-            val coordinates = setInsetContent { Modifier.systemBarsPadding().imePadding() }
+            val coordinates = setInsetContent {
+                Modifier
+                    .systemBarsPadding()
+                    .imePadding() }
 
             sendInsets(WindowInsetsCompat.Type.systemBars())
 
@@ -568,8 +585,14 @@
 
         setContent {
             val padding = WindowInsets.systemBars.asPaddingValues()
-            Box(Modifier.fillMaxSize().padding(padding)) {
-                Box(Modifier.fillMaxSize().onGloballyPositioned { coordinates = it })
+            Box(
+                Modifier
+                    .fillMaxSize()
+                    .padding(padding)) {
+                Box(
+                    Modifier
+                        .fillMaxSize()
+                        .onGloballyPositioned { coordinates = it })
             }
         }
 
@@ -602,8 +625,15 @@
                     .statusBarsPadding()
                     .onGloballyPositioned { statusBar = it }
             ) {
-                Box(Modifier.navigationBarsPadding().onGloballyPositioned { navigationBar = it }) {
-                    Box(Modifier.imePadding().fillMaxSize().onGloballyPositioned { ime = it })
+                Box(
+                    Modifier
+                        .navigationBarsPadding()
+                        .onGloballyPositioned { navigationBar = it }) {
+                    Box(
+                        Modifier
+                            .imePadding()
+                            .fillMaxSize()
+                            .onGloballyPositioned { ime = it })
                 }
             }
         }
@@ -692,10 +722,11 @@
                     .windowInsetsPadding(WindowInsets(top = 10))
                     .onGloballyPositioned { outer = it }
             ) {
-                Box(Modifier
-                    .consumeWindowInsets(WindowInsets(top = 10))
-                    .windowInsetsPadding(WindowInsets(top = 20))
-                    .onGloballyPositioned { middle = it }
+                Box(
+                    Modifier
+                        .consumeWindowInsets(WindowInsets(top = 10))
+                        .windowInsetsPadding(WindowInsets(top = 20))
+                        .onGloballyPositioned { middle = it }
                 ) {
                     Box(
                         Modifier
@@ -773,7 +804,10 @@
                 ComposeView(context).also {
                     it.consumeWindowInsets = false
                     it.setContent {
-                        Box(Modifier.fillMaxSize().statusBarsPadding())
+                        Box(
+                            Modifier
+                                .fillMaxSize()
+                                .statusBarsPadding())
                     }
                 }
             })
@@ -812,6 +846,36 @@
         assertThat(bottomInset).isEqualTo(0)
     }
 
+    @OptIn(ExperimentalLayoutApi::class)
+    @Test
+    fun reuseModifier() {
+        var consumed1 = WindowInsets(0, 0, 0, 0)
+        var consumed2 = WindowInsets(0, 0, 0, 0)
+        setContent {
+            with(LocalDensity.current) {
+                val modifier = Modifier.consumeWindowInsets(PaddingValues(10.toDp()))
+                Box(
+                    modifier
+                        .fillMaxSize()
+                        .onConsumedWindowInsetsChanged { consumed1 = it }
+                ) {
+                    Box(
+                        modifier
+                            .fillMaxSize()
+                            .onConsumedWindowInsetsChanged { consumed2 = it }
+                    )
+                }
+            }
+        }
+
+        rule.waitForIdle()
+        sendInsets(WindowInsetsCompat.Type.statusBars(), AndroidXInsets.of(0, 30, 0, 0))
+        rule.runOnIdle {
+            assertThat(consumed1.getTop(rule.density)).isEqualTo(10)
+            assertThat(consumed2.getTop(rule.density)).isEqualTo(20)
+        }
+    }
+
     private fun sendInsets(
         type: Int,
         sentInsets: AndroidXInsets = AndroidXInsets.of(10, 11, 12, 13)
@@ -838,10 +902,17 @@
         lateinit var coordinates: LayoutCoordinates
 
         setContent {
-            Box(Modifier.fillMaxSize().background(Color.Blue).then(insetsModifier())) {
-                Box(Modifier.fillMaxSize().onGloballyPositioned {
-                    coordinates = it
-                })
+            Box(
+                Modifier
+                    .fillMaxSize()
+                    .background(Color.Blue)
+                    .then(insetsModifier())) {
+                Box(
+                    Modifier
+                        .fillMaxSize()
+                        .onGloballyPositioned {
+                            coordinates = it
+                        })
             }
         }
 
diff --git a/compose/foundation/foundation-layout/src/commonMain/kotlin/androidx/compose/foundation/layout/Column.kt b/compose/foundation/foundation-layout/src/commonMain/kotlin/androidx/compose/foundation/layout/Column.kt
index 2a6ba7c..10f1128 100644
--- a/compose/foundation/foundation-layout/src/commonMain/kotlin/androidx/compose/foundation/layout/Column.kt
+++ b/compose/foundation/foundation-layout/src/commonMain/kotlin/androidx/compose/foundation/layout/Column.kt
@@ -200,7 +200,8 @@
         require(weight > 0.0) { "invalid weight $weight; must be greater than zero" }
         return this.then(
             LayoutWeightElement(
-                weight = weight,
+                // Coerce Float.POSITIVE_INFINITY to Float.MAX_VALUE to avoid errors
+                weight = weight.coerceAtMost(Float.MAX_VALUE),
                 fill = fill
             )
         )
diff --git a/compose/foundation/foundation-layout/src/commonMain/kotlin/androidx/compose/foundation/layout/Row.kt b/compose/foundation/foundation-layout/src/commonMain/kotlin/androidx/compose/foundation/layout/Row.kt
index 1c7b93b..02bd8ec 100644
--- a/compose/foundation/foundation-layout/src/commonMain/kotlin/androidx/compose/foundation/layout/Row.kt
+++ b/compose/foundation/foundation-layout/src/commonMain/kotlin/androidx/compose/foundation/layout/Row.kt
@@ -220,7 +220,8 @@
         require(weight > 0.0) { "invalid weight $weight; must be greater than zero" }
         return this.then(
             LayoutWeightElement(
-                weight = weight,
+                // Coerce Float.POSITIVE_INFINITY to Float.MAX_VALUE to avoid errors
+                weight = weight.coerceAtMost(Float.MAX_VALUE),
                 fill = fill
             )
         )
diff --git a/compose/foundation/foundation-layout/src/commonMain/kotlin/androidx/compose/foundation/layout/WindowInsetsPadding.kt b/compose/foundation/foundation-layout/src/commonMain/kotlin/androidx/compose/foundation/layout/WindowInsetsPadding.kt
index f8e7312..5f64e2d 100644
--- a/compose/foundation/foundation-layout/src/commonMain/kotlin/androidx/compose/foundation/layout/WindowInsetsPadding.kt
+++ b/compose/foundation/foundation-layout/src/commonMain/kotlin/androidx/compose/foundation/layout/WindowInsetsPadding.kt
@@ -19,8 +19,10 @@
 import androidx.compose.runtime.Stable
 import androidx.compose.runtime.getValue
 import androidx.compose.runtime.mutableStateOf
+import androidx.compose.runtime.remember
 import androidx.compose.runtime.setValue
 import androidx.compose.ui.Modifier
+import androidx.compose.ui.composed
 import androidx.compose.ui.layout.LayoutModifier
 import androidx.compose.ui.layout.Measurable
 import androidx.compose.ui.layout.MeasureResult
@@ -30,8 +32,6 @@
 import androidx.compose.ui.modifier.ModifierLocalReadScope
 import androidx.compose.ui.modifier.ProvidableModifierLocal
 import androidx.compose.ui.modifier.modifierLocalOf
-import androidx.compose.ui.platform.InspectorInfo
-import androidx.compose.ui.platform.InspectorValueInfo
 import androidx.compose.ui.platform.debugInspectorInfo
 import androidx.compose.ui.unit.Constraints
 import androidx.compose.ui.unit.constrainHeight
@@ -53,12 +53,14 @@
  * @see WindowInsets
  */
 @Stable
-fun Modifier.windowInsetsPadding(insets: WindowInsets): Modifier = this.then(
-    InsetsPaddingModifier(insets, debugInspectorInfo {
+fun Modifier.windowInsetsPadding(insets: WindowInsets): Modifier = composed(
+    debugInspectorInfo {
         name = "windowInsetsPadding"
         properties["insets"] = insets
-    })
-)
+    }
+) {
+    remember(insets) { InsetsPaddingModifier(insets) }
+}
 
 /**
  * Consume insets that haven't been consumed yet by other insets Modifiers similar to
@@ -71,12 +73,15 @@
  * @sample androidx.compose.foundation.layout.samples.consumedInsetsSample
  */
 @Stable
-fun Modifier.consumeWindowInsets(insets: WindowInsets): Modifier = this.then(
-    UnionInsetsConsumingModifier(insets, debugInspectorInfo {
+fun Modifier.consumeWindowInsets(insets: WindowInsets): Modifier = composed(
+    debugInspectorInfo {
         name = "consumeWindowInsets"
         properties["insets"] = insets
-    })
-)
+    }
+) {
+    remember(insets) { UnionInsetsConsumingModifier(insets) }
+}
+
 @ExperimentalLayoutApi
 @Deprecated("Use consumeWindowInsets", ReplaceWith("this.consumeWindowInsets(insets)"))
 @Stable
@@ -98,12 +103,16 @@
  */
 @ExperimentalLayoutApi
 @Stable
-fun Modifier.consumeWindowInsets(paddingValues: PaddingValues): Modifier = this.then(
-    PaddingValuesConsumingModifier(paddingValues, debugInspectorInfo {
+fun Modifier.consumeWindowInsets(paddingValues: PaddingValues): Modifier = composed(
+    debugInspectorInfo {
         name = "consumeWindowInsets"
         properties["paddingValues"] = paddingValues
-    })
-)
+    }
+) {
+    remember(paddingValues) {
+        PaddingValuesConsumingModifier(paddingValues)
+    }
+}
 
 @ExperimentalLayoutApi
 @Deprecated("Use consumeWindowInsets", ReplaceWith("this.consumeWindowInsets(paddingValues)"))
@@ -120,15 +129,16 @@
 @Stable
 fun Modifier.onConsumedWindowInsetsChanged(
     block: (consumedWindowInsets: WindowInsets) -> Unit
-) = this.then(
-    ConsumedInsetsModifier(
-        block,
-        debugInspectorInfo {
-            name = "onConsumedWindowInsetsChanged"
-            properties["block"] = block
-        }
-    )
-)
+) = composed(
+    debugInspectorInfo {
+        name = "onConsumedWindowInsetsChanged"
+        properties["block"] = block
+    }
+) {
+    remember(block) {
+        ConsumedInsetsModifier(block)
+    }
+}
 
 @ExperimentalLayoutApi
 @Deprecated(
@@ -145,12 +155,8 @@
 }
 
 internal class InsetsPaddingModifier(
-    private val insets: WindowInsets,
-    inspectorInfo: InspectorInfo.() -> Unit = debugInspectorInfo {
-        name = "InsetsPaddingModifier"
-        properties["insets"] = insets
-    }
-) : InspectorValueInfo(inspectorInfo), LayoutModifier,
+    private val insets: WindowInsets
+) : LayoutModifier,
     ModifierLocalConsumer, ModifierLocalProvider<WindowInsets> {
     private var unconsumedInsets: WindowInsets by mutableStateOf(insets)
     private var consumedInsets: WindowInsets by mutableStateOf(insets)
@@ -209,9 +215,8 @@
  * Base class for arbitrary insets consumption modifiers.
  */
 @Stable
-private sealed class InsetsConsumingModifier(
-    inspectorInfo: InspectorInfo.() -> Unit
-) : InspectorValueInfo(inspectorInfo), ModifierLocalConsumer, ModifierLocalProvider<WindowInsets> {
+private sealed class InsetsConsumingModifier : ModifierLocalConsumer,
+    ModifierLocalProvider<WindowInsets> {
     private var consumedInsets: WindowInsets by mutableStateOf(WindowInsets(0, 0, 0, 0))
 
     abstract fun calculateInsets(modifierLocalInsets: WindowInsets): WindowInsets
@@ -232,9 +237,8 @@
 
 @Stable
 private class PaddingValuesConsumingModifier(
-    private val paddingValues: PaddingValues,
-    inspectorInfo: InspectorInfo.() -> Unit
-) : InsetsConsumingModifier(inspectorInfo) {
+    private val paddingValues: PaddingValues
+) : InsetsConsumingModifier() {
     override fun calculateInsets(modifierLocalInsets: WindowInsets): WindowInsets =
         paddingValues.asInsets().add(modifierLocalInsets)
 
@@ -254,9 +258,8 @@
 
 @Stable
 private class ConsumedInsetsModifier(
-    private val block: (WindowInsets) -> Unit,
-    inspectorInfo: InspectorInfo.() -> Unit
-) : InspectorValueInfo(inspectorInfo), ModifierLocalConsumer {
+    private val block: (WindowInsets) -> Unit
+) : ModifierLocalConsumer {
 
     private var oldWindowInsets: WindowInsets? = null
 
@@ -284,9 +287,8 @@
 
 @Stable
 private class UnionInsetsConsumingModifier(
-    private val insets: WindowInsets,
-    inspectorInfo: InspectorInfo.() -> Unit
-) : InsetsConsumingModifier(inspectorInfo) {
+    private val insets: WindowInsets
+) : InsetsConsumingModifier() {
     override fun calculateInsets(modifierLocalInsets: WindowInsets): WindowInsets =
         insets.union(modifierLocalInsets)
 
@@ -302,4 +304,4 @@
     }
 
     override fun hashCode(): Int = insets.hashCode()
-}
\ No newline at end of file
+}
diff --git a/compose/foundation/foundation/api/public_plus_experimental_current.txt b/compose/foundation/foundation/api/1.5.0-beta01.txt
similarity index 100%
rename from compose/foundation/foundation/api/public_plus_experimental_current.txt
rename to compose/foundation/foundation/api/1.5.0-beta01.txt
diff --git a/compose/foundation/foundation/api/current.txt b/compose/foundation/foundation/api/current.txt
index 8be51e4..15fd553 100644
--- a/compose/foundation/foundation/api/current.txt
+++ b/compose/foundation/foundation/api/current.txt
@@ -6,6 +6,19 @@
     method public static androidx.compose.ui.Modifier background(androidx.compose.ui.Modifier, long color, optional androidx.compose.ui.graphics.Shape shape);
   }
 
+  public final class BasicMarqueeKt {
+    method @androidx.compose.foundation.ExperimentalFoundationApi public static androidx.compose.foundation.MarqueeSpacing MarqueeSpacing(float spacing);
+    method @androidx.compose.foundation.ExperimentalFoundationApi public static androidx.compose.ui.Modifier basicMarquee(androidx.compose.ui.Modifier, optional int iterations, optional int animationMode, optional int delayMillis, optional int initialDelayMillis, optional androidx.compose.foundation.MarqueeSpacing spacing, optional float velocity);
+    method @androidx.compose.foundation.ExperimentalFoundationApi public static int getDefaultMarqueeDelayMillis();
+    method @androidx.compose.foundation.ExperimentalFoundationApi public static int getDefaultMarqueeIterations();
+    method @androidx.compose.foundation.ExperimentalFoundationApi public static androidx.compose.foundation.MarqueeSpacing getDefaultMarqueeSpacing();
+    method @androidx.compose.foundation.ExperimentalFoundationApi public static float getDefaultMarqueeVelocity();
+    property @androidx.compose.foundation.ExperimentalFoundationApi public static final int DefaultMarqueeDelayMillis;
+    property @androidx.compose.foundation.ExperimentalFoundationApi public static final int DefaultMarqueeIterations;
+    property @androidx.compose.foundation.ExperimentalFoundationApi public static final androidx.compose.foundation.MarqueeSpacing DefaultMarqueeSpacing;
+    property @androidx.compose.foundation.ExperimentalFoundationApi public static final float DefaultMarqueeVelocity;
+  }
+
   public final class BorderKt {
     method public static androidx.compose.ui.Modifier border(androidx.compose.ui.Modifier, androidx.compose.foundation.BorderStroke border, optional androidx.compose.ui.graphics.Shape shape);
     method public static androidx.compose.ui.Modifier border(androidx.compose.ui.Modifier, float width, androidx.compose.ui.graphics.Brush brush, androidx.compose.ui.graphics.Shape shape);
@@ -26,6 +39,7 @@
   }
 
   public final class CanvasKt {
+    method @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Composable public static void Canvas(androidx.compose.ui.Modifier modifier, String contentDescription, kotlin.jvm.functions.Function1<? super androidx.compose.ui.graphics.drawscope.DrawScope,kotlin.Unit> onDraw);
     method @androidx.compose.runtime.Composable public static void Canvas(androidx.compose.ui.Modifier modifier, kotlin.jvm.functions.Function1<? super androidx.compose.ui.graphics.drawscope.DrawScope,kotlin.Unit> onDraw);
   }
 
@@ -36,6 +50,8 @@
   public final class ClickableKt {
     method public static androidx.compose.ui.Modifier clickable(androidx.compose.ui.Modifier, androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, androidx.compose.foundation.Indication? indication, optional boolean enabled, optional String? onClickLabel, optional androidx.compose.ui.semantics.Role? role, kotlin.jvm.functions.Function0<kotlin.Unit> onClick);
     method public static androidx.compose.ui.Modifier clickable(androidx.compose.ui.Modifier, optional boolean enabled, optional String? onClickLabel, optional androidx.compose.ui.semantics.Role? role, kotlin.jvm.functions.Function0<kotlin.Unit> onClick);
+    method @androidx.compose.foundation.ExperimentalFoundationApi public static androidx.compose.ui.Modifier combinedClickable(androidx.compose.ui.Modifier, androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, androidx.compose.foundation.Indication? indication, optional boolean enabled, optional String? onClickLabel, optional androidx.compose.ui.semantics.Role? role, optional String? onLongClickLabel, optional kotlin.jvm.functions.Function0<kotlin.Unit>? onLongClick, optional kotlin.jvm.functions.Function0<kotlin.Unit>? onDoubleClick, kotlin.jvm.functions.Function0<kotlin.Unit> onClick);
+    method @androidx.compose.foundation.ExperimentalFoundationApi public static androidx.compose.ui.Modifier combinedClickable(androidx.compose.ui.Modifier, optional boolean enabled, optional String? onClickLabel, optional androidx.compose.ui.semantics.Role? role, optional String? onLongClickLabel, optional kotlin.jvm.functions.Function0<kotlin.Unit>? onLongClick, optional kotlin.jvm.functions.Function0<kotlin.Unit>? onDoubleClick, kotlin.jvm.functions.Function0<kotlin.Unit> onClick);
   }
 
   public final class ClipScrollableContainerKt {
@@ -51,10 +67,18 @@
     method @Deprecated public static androidx.compose.ui.Modifier excludeFromSystemGesture(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1<? super androidx.compose.ui.layout.LayoutCoordinates,androidx.compose.ui.geometry.Rect> exclusion);
   }
 
+  @kotlin.RequiresOptIn(message="This foundation API is experimental and is likely to change or be removed in the " + "future.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface ExperimentalFoundationApi {
+  }
+
   public final class FocusableKt {
+    method @androidx.compose.foundation.ExperimentalFoundationApi public static androidx.compose.ui.Modifier focusGroup(androidx.compose.ui.Modifier);
     method public static androidx.compose.ui.Modifier focusable(androidx.compose.ui.Modifier, optional boolean enabled, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource);
   }
 
+  public final class FocusedBoundsKt {
+    method @androidx.compose.foundation.ExperimentalFoundationApi public static androidx.compose.ui.Modifier onFocusedBoundsChanged(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1<? super androidx.compose.ui.layout.LayoutCoordinates,kotlin.Unit> onPositioned);
+  }
+
   public final class HoverableKt {
     method public static androidx.compose.ui.Modifier hoverable(androidx.compose.ui.Modifier, androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional boolean enabled);
   }
@@ -80,6 +104,47 @@
     property public static final androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.foundation.Indication> LocalIndication;
   }
 
+  @kotlin.RequiresOptIn(message="This API is internal to library.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.CLASS, kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.PROPERTY, kotlin.annotation.AnnotationTarget.PROPERTY_GETTER, kotlin.annotation.AnnotationTarget.PROPERTY_SETTER}) public @interface InternalFoundationApi {
+  }
+
+  public final class MagnifierKt {
+    method @androidx.compose.foundation.ExperimentalFoundationApi public static androidx.compose.ui.Modifier magnifier(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1<? super androidx.compose.ui.unit.Density,androidx.compose.ui.geometry.Offset> sourceCenter, optional kotlin.jvm.functions.Function1<? super androidx.compose.ui.unit.Density,androidx.compose.ui.geometry.Offset> magnifierCenter, optional float zoom, optional androidx.compose.foundation.MagnifierStyle style, optional kotlin.jvm.functions.Function1<? super androidx.compose.ui.unit.DpSize,kotlin.Unit>? onSizeChanged);
+  }
+
+  @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Stable public final class MagnifierStyle {
+    ctor @androidx.compose.foundation.ExperimentalFoundationApi public MagnifierStyle(optional long size, optional float cornerRadius, optional float elevation, optional boolean clippingEnabled, optional boolean fishEyeEnabled);
+    method public boolean isSupported();
+    property public final boolean isSupported;
+    field public static final androidx.compose.foundation.MagnifierStyle.Companion Companion;
+  }
+
+  public static final class MagnifierStyle.Companion {
+    method public androidx.compose.foundation.MagnifierStyle getDefault();
+    method public androidx.compose.foundation.MagnifierStyle getTextDefault();
+    property public final androidx.compose.foundation.MagnifierStyle Default;
+    property public final androidx.compose.foundation.MagnifierStyle TextDefault;
+  }
+
+  @androidx.compose.foundation.ExperimentalFoundationApi @kotlin.jvm.JvmInline public final value class MarqueeAnimationMode {
+    field public static final androidx.compose.foundation.MarqueeAnimationMode.Companion Companion;
+  }
+
+  public static final class MarqueeAnimationMode.Companion {
+    method @androidx.compose.foundation.ExperimentalFoundationApi public int getImmediately();
+    method @androidx.compose.foundation.ExperimentalFoundationApi public int getWhileFocused();
+    property @androidx.compose.foundation.ExperimentalFoundationApi public final int Immediately;
+    property @androidx.compose.foundation.ExperimentalFoundationApi public final int WhileFocused;
+  }
+
+  @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Stable public fun interface MarqueeSpacing {
+    method @androidx.compose.foundation.ExperimentalFoundationApi public int calculateSpacing(androidx.compose.ui.unit.Density, int contentWidth, int containerWidth);
+    field public static final androidx.compose.foundation.MarqueeSpacing.Companion Companion;
+  }
+
+  public static final class MarqueeSpacing.Companion {
+    method @androidx.compose.foundation.ExperimentalFoundationApi public androidx.compose.foundation.MarqueeSpacing fractionOfContainer(float fraction);
+  }
+
   public enum MutatePriority {
     method public static androidx.compose.foundation.MutatePriority valueOf(String value) throws java.lang.IllegalArgumentException, java.lang.NullPointerException;
     method public static androidx.compose.foundation.MutatePriority[] values();
@@ -94,6 +159,32 @@
     method public suspend <T, R> Object? mutateWith(T receiver, optional androidx.compose.foundation.MutatePriority priority, kotlin.jvm.functions.Function2<? super T,? super kotlin.coroutines.Continuation<? super R>,?> block, kotlin.coroutines.Continuation<? super R>);
   }
 
+  @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Stable public final class OverscrollConfiguration {
+    ctor public OverscrollConfiguration(optional long glowColor, optional androidx.compose.foundation.layout.PaddingValues drawPadding);
+    method public androidx.compose.foundation.layout.PaddingValues getDrawPadding();
+    method public long getGlowColor();
+    property public final androidx.compose.foundation.layout.PaddingValues drawPadding;
+    property public final long glowColor;
+  }
+
+  public final class OverscrollConfigurationKt {
+    method @androidx.compose.foundation.ExperimentalFoundationApi public static androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.foundation.OverscrollConfiguration> getLocalOverscrollConfiguration();
+    property @androidx.compose.foundation.ExperimentalFoundationApi public static final androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.foundation.OverscrollConfiguration> LocalOverscrollConfiguration;
+  }
+
+  @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Stable public interface OverscrollEffect {
+    method public suspend Object? applyToFling(long velocity, kotlin.jvm.functions.Function2<? super androidx.compose.ui.unit.Velocity,? super kotlin.coroutines.Continuation<? super androidx.compose.ui.unit.Velocity>,?> performFling, kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    method public long applyToScroll(long delta, int source, kotlin.jvm.functions.Function1<? super androidx.compose.ui.geometry.Offset,androidx.compose.ui.geometry.Offset> performScroll);
+    method public androidx.compose.ui.Modifier getEffectModifier();
+    method public boolean isInProgress();
+    property public abstract androidx.compose.ui.Modifier effectModifier;
+    property public abstract boolean isInProgress;
+  }
+
+  public final class OverscrollKt {
+    method @androidx.compose.foundation.ExperimentalFoundationApi public static androidx.compose.ui.Modifier overscroll(androidx.compose.ui.Modifier, androidx.compose.foundation.OverscrollEffect overscrollEffect);
+  }
+
   public final class ProgressSemanticsKt {
     method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier progressSemantics(androidx.compose.ui.Modifier);
     method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier progressSemantics(androidx.compose.ui.Modifier, float value, optional kotlin.ranges.ClosedFloatingPointRange<java.lang.Float> valueRange, optional int steps);
@@ -207,11 +298,13 @@
 
   public final class ScrollableDefaults {
     method @androidx.compose.runtime.Composable public androidx.compose.foundation.gestures.FlingBehavior flingBehavior();
+    method @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Composable public androidx.compose.foundation.OverscrollEffect overscrollEffect();
     method public boolean reverseDirection(androidx.compose.ui.unit.LayoutDirection layoutDirection, androidx.compose.foundation.gestures.Orientation orientation, boolean reverseScrolling);
     field public static final androidx.compose.foundation.gestures.ScrollableDefaults INSTANCE;
   }
 
   public final class ScrollableKt {
+    method @androidx.compose.foundation.ExperimentalFoundationApi public static androidx.compose.ui.Modifier scrollable(androidx.compose.ui.Modifier, androidx.compose.foundation.gestures.ScrollableState state, androidx.compose.foundation.gestures.Orientation orientation, androidx.compose.foundation.OverscrollEffect? overscrollEffect, optional boolean enabled, optional boolean reverseDirection, optional androidx.compose.foundation.gestures.FlingBehavior? flingBehavior, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource);
     method public static androidx.compose.ui.Modifier scrollable(androidx.compose.ui.Modifier, androidx.compose.foundation.gestures.ScrollableState state, androidx.compose.foundation.gestures.Orientation orientation, optional boolean enabled, optional boolean reverseDirection, optional androidx.compose.foundation.gestures.FlingBehavior? flingBehavior, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource);
   }
 
@@ -254,6 +347,7 @@
 
   public final class TransformableKt {
     method public static androidx.compose.ui.Modifier transformable(androidx.compose.ui.Modifier, androidx.compose.foundation.gestures.TransformableState state, optional boolean lockRotationOnZoomPan, optional boolean enabled);
+    method @androidx.compose.foundation.ExperimentalFoundationApi public static androidx.compose.ui.Modifier transformable(androidx.compose.ui.Modifier, androidx.compose.foundation.gestures.TransformableState state, kotlin.jvm.functions.Function0<java.lang.Boolean> canPan, optional boolean lockRotationOnZoomPan, optional boolean enabled);
   }
 
   @kotlin.jvm.JvmDefaultWithCompatibility public interface TransformableState {
@@ -276,6 +370,45 @@
 
 }
 
+package androidx.compose.foundation.gestures.snapping {
+
+  public final class LazyGridSnapLayoutInfoProviderKt {
+    method @androidx.compose.foundation.ExperimentalFoundationApi public static androidx.compose.foundation.gestures.snapping.SnapLayoutInfoProvider SnapLayoutInfoProvider(androidx.compose.foundation.lazy.grid.LazyGridState lazyGridState, optional androidx.compose.foundation.gestures.snapping.SnapPositionInLayout positionInLayout);
+  }
+
+  public final class LazyListSnapLayoutInfoProviderKt {
+    method @androidx.compose.foundation.ExperimentalFoundationApi public static androidx.compose.foundation.gestures.snapping.SnapLayoutInfoProvider SnapLayoutInfoProvider(androidx.compose.foundation.lazy.LazyListState lazyListState, optional androidx.compose.foundation.gestures.snapping.SnapPositionInLayout positionInLayout);
+    method @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Composable public static androidx.compose.foundation.gestures.FlingBehavior rememberSnapFlingBehavior(androidx.compose.foundation.lazy.LazyListState lazyListState);
+  }
+
+  @androidx.compose.foundation.ExperimentalFoundationApi public final class SnapFlingBehavior implements androidx.compose.foundation.gestures.FlingBehavior {
+    ctor public SnapFlingBehavior(androidx.compose.foundation.gestures.snapping.SnapLayoutInfoProvider snapLayoutInfoProvider, androidx.compose.animation.core.AnimationSpec<java.lang.Float> lowVelocityAnimationSpec, androidx.compose.animation.core.DecayAnimationSpec<java.lang.Float> highVelocityAnimationSpec, androidx.compose.animation.core.AnimationSpec<java.lang.Float> snapAnimationSpec, androidx.compose.ui.unit.Density density, optional float shortSnapVelocityThreshold);
+    method public suspend Object? performFling(androidx.compose.foundation.gestures.ScrollScope, float initialVelocity, kotlin.coroutines.Continuation<? super java.lang.Float>);
+    method public suspend Object? performFling(androidx.compose.foundation.gestures.ScrollScope, float initialVelocity, kotlin.jvm.functions.Function1<? super java.lang.Float,kotlin.Unit> onSettlingDistanceUpdated, kotlin.coroutines.Continuation<? super java.lang.Float>);
+  }
+
+  public final class SnapFlingBehaviorKt {
+    method @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Composable public static androidx.compose.foundation.gestures.snapping.SnapFlingBehavior rememberSnapFlingBehavior(androidx.compose.foundation.gestures.snapping.SnapLayoutInfoProvider snapLayoutInfoProvider);
+  }
+
+  @androidx.compose.foundation.ExperimentalFoundationApi public interface SnapLayoutInfoProvider {
+    method public float calculateApproachOffset(androidx.compose.ui.unit.Density, float initialVelocity);
+    method public float calculateSnapStepSize(androidx.compose.ui.unit.Density);
+    method public float calculateSnappingOffset(androidx.compose.ui.unit.Density, float currentVelocity);
+  }
+
+  @androidx.compose.foundation.ExperimentalFoundationApi public fun interface SnapPositionInLayout {
+    method public int position(androidx.compose.ui.unit.Density, int layoutSize, int itemSize, int itemIndex);
+    field public static final androidx.compose.foundation.gestures.snapping.SnapPositionInLayout.Companion Companion;
+  }
+
+  public static final class SnapPositionInLayout.Companion {
+    method public androidx.compose.foundation.gestures.snapping.SnapPositionInLayout getCenterToCenter();
+    property public final androidx.compose.foundation.gestures.snapping.SnapPositionInLayout CenterToCenter;
+  }
+
+}
+
 package androidx.compose.foundation.interaction {
 
   public interface DragInteraction extends androidx.compose.foundation.interaction.Interaction {
@@ -397,6 +530,7 @@
   }
 
   @androidx.compose.foundation.lazy.LazyScopeMarker @androidx.compose.runtime.Stable @kotlin.jvm.JvmDefaultWithCompatibility public interface LazyItemScope {
+    method @androidx.compose.foundation.ExperimentalFoundationApi public androidx.compose.ui.Modifier animateItemPlacement(androidx.compose.ui.Modifier, optional androidx.compose.animation.core.FiniteAnimationSpec<androidx.compose.ui.unit.IntOffset> animationSpec);
     method public androidx.compose.ui.Modifier fillParentMaxHeight(androidx.compose.ui.Modifier, optional float fraction);
     method public androidx.compose.ui.Modifier fillParentMaxSize(androidx.compose.ui.Modifier, optional float fraction);
     method public androidx.compose.ui.Modifier fillParentMaxWidth(androidx.compose.ui.Modifier, optional float fraction);
@@ -443,6 +577,7 @@
     method @Deprecated public void item(optional Object? key, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.lazy.LazyItemScope,kotlin.Unit> content);
     method public default void items(int count, optional kotlin.jvm.functions.Function1<? super java.lang.Integer,?>? key, optional kotlin.jvm.functions.Function1<? super java.lang.Integer,?> contentType, kotlin.jvm.functions.Function2<? super androidx.compose.foundation.lazy.LazyItemScope,? super java.lang.Integer,kotlin.Unit> itemContent);
     method @Deprecated public void items(int count, optional kotlin.jvm.functions.Function1<? super java.lang.Integer,?>? key, kotlin.jvm.functions.Function2<? super androidx.compose.foundation.lazy.LazyItemScope,? super java.lang.Integer,kotlin.Unit> itemContent);
+    method @androidx.compose.foundation.ExperimentalFoundationApi public void stickyHeader(optional Object? key, optional Object? contentType, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.lazy.LazyItemScope,kotlin.Unit> content);
   }
 
   @androidx.compose.runtime.Stable public final class LazyListState implements androidx.compose.foundation.gestures.ScrollableState {
@@ -503,6 +638,7 @@
 
   @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class GridItemSpan {
     method public int getCurrentLineSpan();
+    property @androidx.compose.foundation.ExperimentalFoundationApi public final int currentLineSpan;
   }
 
   public final class LazyGridDslKt {
@@ -540,6 +676,7 @@
   }
 
   @androidx.compose.foundation.lazy.grid.LazyGridScopeMarker @androidx.compose.runtime.Stable public sealed interface LazyGridItemScope {
+    method @androidx.compose.foundation.ExperimentalFoundationApi public androidx.compose.ui.Modifier animateItemPlacement(androidx.compose.ui.Modifier, optional androidx.compose.animation.core.FiniteAnimationSpec<androidx.compose.ui.unit.IntOffset> animationSpec);
   }
 
   @androidx.compose.foundation.lazy.grid.LazyGridScopeMarker public sealed interface LazyGridItemSpanScope {
@@ -616,6 +753,110 @@
 
 }
 
+package androidx.compose.foundation.lazy.layout {
+
+  @androidx.compose.foundation.ExperimentalFoundationApi public sealed interface IntervalList<T> {
+    method public void forEach(optional int fromIndex, optional int toIndex, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.lazy.layout.IntervalList.Interval<? extends T>,kotlin.Unit> block);
+    method public operator androidx.compose.foundation.lazy.layout.IntervalList.Interval<T> get(int index);
+    method public int getSize();
+    property public abstract int size;
+  }
+
+  public static final class IntervalList.Interval<T> {
+    method public int getSize();
+    method public int getStartIndex();
+    method public T getValue();
+    property public final int size;
+    property public final int startIndex;
+    property public final T value;
+  }
+
+  @androidx.compose.foundation.ExperimentalFoundationApi public abstract class LazyLayoutIntervalContent<Interval extends androidx.compose.foundation.lazy.layout.LazyLayoutIntervalContent.Interval> {
+    ctor public LazyLayoutIntervalContent();
+    method public final Object? getContentType(int index);
+    method public abstract androidx.compose.foundation.lazy.layout.IntervalList<Interval> getIntervals();
+    method public final int getItemCount();
+    method public final Object getKey(int index);
+    method public final inline <T> T withInterval(int globalIndex, kotlin.jvm.functions.Function2<? super java.lang.Integer,? super Interval,? extends T> block);
+    property public abstract androidx.compose.foundation.lazy.layout.IntervalList<Interval> intervals;
+    property public final int itemCount;
+  }
+
+  @androidx.compose.foundation.ExperimentalFoundationApi public static interface LazyLayoutIntervalContent.Interval {
+    method public default kotlin.jvm.functions.Function1<java.lang.Integer,java.lang.Object>? getKey();
+    method public default kotlin.jvm.functions.Function1<java.lang.Integer,java.lang.Object> getType();
+    property public default kotlin.jvm.functions.Function1<java.lang.Integer,java.lang.Object>? key;
+    property public default kotlin.jvm.functions.Function1<java.lang.Integer,java.lang.Object> type;
+  }
+
+  @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Stable public interface LazyLayoutItemProvider {
+    method @androidx.compose.runtime.Composable public void Item(int index, Object key);
+    method public default Object? getContentType(int index);
+    method public default int getIndex(Object key);
+    method public int getItemCount();
+    method public default Object getKey(int index);
+    property public abstract int itemCount;
+  }
+
+  public final class LazyLayoutItemProviderKt {
+    method @androidx.compose.foundation.ExperimentalFoundationApi public static Object getDefaultLazyLayoutKey(int index);
+  }
+
+  public final class LazyLayoutKt {
+    method @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Composable public static void LazyLayout(androidx.compose.foundation.lazy.layout.LazyLayoutItemProvider itemProvider, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.foundation.lazy.layout.LazyLayoutPrefetchState? prefetchState, kotlin.jvm.functions.Function2<? super androidx.compose.foundation.lazy.layout.LazyLayoutMeasureScope,? super androidx.compose.ui.unit.Constraints,? extends androidx.compose.ui.layout.MeasureResult> measurePolicy);
+  }
+
+  @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Stable public sealed interface LazyLayoutMeasureScope extends androidx.compose.ui.layout.MeasureScope {
+    method public java.util.List<androidx.compose.ui.layout.Placeable> measure(int index, long constraints);
+    method @androidx.compose.runtime.Stable public default float toDp(float);
+    method @androidx.compose.runtime.Stable public default float toDp(int);
+    method @androidx.compose.runtime.Stable public default float toDp(long);
+    method @androidx.compose.runtime.Stable public default long toDpSize(long);
+    method @androidx.compose.runtime.Stable public default long toSize(long);
+    method @androidx.compose.runtime.Stable public default long toSp(float);
+    method @androidx.compose.runtime.Stable public default long toSp(float);
+    method @androidx.compose.runtime.Stable public default long toSp(int);
+  }
+
+  public final class LazyLayoutPinnableItemKt {
+    method @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Composable public static void LazyLayoutPinnableItem(Object? key, int index, androidx.compose.foundation.lazy.layout.LazyLayoutPinnedItemList pinnedItemList, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+  }
+
+  @androidx.compose.foundation.ExperimentalFoundationApi public final class LazyLayoutPinnedItemList implements kotlin.jvm.internal.markers.KMappedMarker java.util.List<androidx.compose.foundation.lazy.layout.LazyLayoutPinnedItemList.PinnedItem> {
+    ctor public LazyLayoutPinnedItemList();
+  }
+
+  @androidx.compose.foundation.ExperimentalFoundationApi public static sealed interface LazyLayoutPinnedItemList.PinnedItem {
+    method public int getIndex();
+    method public Object? getKey();
+    property public abstract int index;
+    property public abstract Object? key;
+  }
+
+  @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Stable public final class LazyLayoutPrefetchState {
+    ctor public LazyLayoutPrefetchState();
+    method public androidx.compose.foundation.lazy.layout.LazyLayoutPrefetchState.PrefetchHandle schedulePrefetch(int index, long constraints);
+  }
+
+  public static sealed interface LazyLayoutPrefetchState.PrefetchHandle {
+    method public void cancel();
+  }
+
+  public final class Lazy_androidKt {
+    method @androidx.compose.foundation.ExperimentalFoundationApi public static Object getDefaultLazyLayoutKey(int index);
+  }
+
+  @androidx.compose.foundation.ExperimentalFoundationApi public final class MutableIntervalList<T> implements androidx.compose.foundation.lazy.layout.IntervalList<T> {
+    ctor public MutableIntervalList();
+    method public void addInterval(int size, T value);
+    method public void forEach(int fromIndex, int toIndex, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.lazy.layout.IntervalList.Interval<? extends T>,kotlin.Unit> block);
+    method public androidx.compose.foundation.lazy.layout.IntervalList.Interval<T> get(int index);
+    method public int getSize();
+    property public int size;
+  }
+
+}
+
 package androidx.compose.foundation.lazy.staggeredgrid {
 
   public final class LazyStaggeredGridDslKt {
@@ -643,6 +884,7 @@
   }
 
   @androidx.compose.runtime.Stable public sealed interface LazyStaggeredGridItemScope {
+    method @androidx.compose.foundation.ExperimentalFoundationApi public androidx.compose.ui.Modifier animateItemPlacement(androidx.compose.ui.Modifier, optional androidx.compose.animation.core.FiniteAnimationSpec<androidx.compose.ui.unit.IntOffset> animationSpec);
   }
 
   public sealed interface LazyStaggeredGridLayoutInfo {
@@ -733,6 +975,109 @@
 
 }
 
+package androidx.compose.foundation.pager {
+
+  @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Stable public interface PageSize {
+    method public int calculateMainAxisPageSize(androidx.compose.ui.unit.Density, int availableSpace, int pageSpacing);
+  }
+
+  @androidx.compose.foundation.ExperimentalFoundationApi public static final class PageSize.Fill implements androidx.compose.foundation.pager.PageSize {
+    method public int calculateMainAxisPageSize(androidx.compose.ui.unit.Density, int availableSpace, int pageSpacing);
+    field public static final androidx.compose.foundation.pager.PageSize.Fill INSTANCE;
+  }
+
+  @androidx.compose.foundation.ExperimentalFoundationApi public static final class PageSize.Fixed implements androidx.compose.foundation.pager.PageSize {
+    ctor public PageSize.Fixed(float pageSize);
+    method public int calculateMainAxisPageSize(androidx.compose.ui.unit.Density, int availableSpace, int pageSpacing);
+    method public float getPageSize();
+    property public final float pageSize;
+  }
+
+  @androidx.compose.foundation.ExperimentalFoundationApi public final class PagerDefaults {
+    method @androidx.compose.runtime.Composable public androidx.compose.foundation.gestures.snapping.SnapFlingBehavior flingBehavior(androidx.compose.foundation.pager.PagerState state, optional androidx.compose.foundation.pager.PagerSnapDistance pagerSnapDistance, optional androidx.compose.animation.core.AnimationSpec<java.lang.Float> lowVelocityAnimationSpec, optional androidx.compose.animation.core.DecayAnimationSpec<java.lang.Float> highVelocityAnimationSpec, optional androidx.compose.animation.core.AnimationSpec<java.lang.Float> snapAnimationSpec, optional float snapVelocityThreshold, optional float snapPositionalThreshold);
+    method public androidx.compose.ui.input.nestedscroll.NestedScrollConnection pageNestedScrollConnection(androidx.compose.foundation.gestures.Orientation orientation);
+    field public static final androidx.compose.foundation.pager.PagerDefaults INSTANCE;
+  }
+
+  public final class PagerKt {
+    method @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Composable public static void HorizontalPager(androidx.compose.foundation.pager.PagerState state, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional androidx.compose.foundation.pager.PageSize pageSize, optional int beyondBoundsPageCount, optional float pageSpacing, optional androidx.compose.ui.Alignment.Vertical verticalAlignment, optional androidx.compose.foundation.gestures.snapping.SnapFlingBehavior flingBehavior, optional boolean userScrollEnabled, optional boolean reverseLayout, optional kotlin.jvm.functions.Function1<? super java.lang.Integer,?>? key, optional androidx.compose.ui.input.nestedscroll.NestedScrollConnection pageNestedScrollConnection, kotlin.jvm.functions.Function2<? super androidx.compose.foundation.pager.PagerScope,? super java.lang.Integer,kotlin.Unit> pageContent);
+    method @Deprecated @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Composable public static void HorizontalPager(int pageCount, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.foundation.pager.PagerState state, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional androidx.compose.foundation.pager.PageSize pageSize, optional int beyondBoundsPageCount, optional float pageSpacing, optional androidx.compose.ui.Alignment.Vertical verticalAlignment, optional androidx.compose.foundation.gestures.snapping.SnapFlingBehavior flingBehavior, optional boolean userScrollEnabled, optional boolean reverseLayout, optional kotlin.jvm.functions.Function1<? super java.lang.Integer,?>? key, optional androidx.compose.ui.input.nestedscroll.NestedScrollConnection pageNestedScrollConnection, kotlin.jvm.functions.Function2<? super androidx.compose.foundation.pager.PagerScope,? super java.lang.Integer,kotlin.Unit> pageContent);
+    method @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Composable public static void VerticalPager(androidx.compose.foundation.pager.PagerState state, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional androidx.compose.foundation.pager.PageSize pageSize, optional int beyondBoundsPageCount, optional float pageSpacing, optional androidx.compose.ui.Alignment.Horizontal horizontalAlignment, optional androidx.compose.foundation.gestures.snapping.SnapFlingBehavior flingBehavior, optional boolean userScrollEnabled, optional boolean reverseLayout, optional kotlin.jvm.functions.Function1<? super java.lang.Integer,?>? key, optional androidx.compose.ui.input.nestedscroll.NestedScrollConnection pageNestedScrollConnection, kotlin.jvm.functions.Function2<? super androidx.compose.foundation.pager.PagerScope,? super java.lang.Integer,kotlin.Unit> pageContent);
+    method @Deprecated @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Composable public static void VerticalPager(int pageCount, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.foundation.pager.PagerState state, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional androidx.compose.foundation.pager.PageSize pageSize, optional int beyondBoundsPageCount, optional float pageSpacing, optional androidx.compose.ui.Alignment.Horizontal horizontalAlignment, optional androidx.compose.foundation.gestures.snapping.SnapFlingBehavior flingBehavior, optional boolean userScrollEnabled, optional boolean reverseLayout, optional kotlin.jvm.functions.Function1<? super java.lang.Integer,?>? key, optional androidx.compose.ui.input.nestedscroll.NestedScrollConnection pageNestedScrollConnection, kotlin.jvm.functions.Function2<? super androidx.compose.foundation.pager.PagerScope,? super java.lang.Integer,kotlin.Unit> pageContent);
+  }
+
+  @androidx.compose.foundation.ExperimentalFoundationApi public sealed interface PagerScope {
+  }
+
+  @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Stable public interface PagerSnapDistance {
+    method public int calculateTargetPage(int startPage, int suggestedTargetPage, float velocity, int pageSize, int pageSpacing);
+    field public static final androidx.compose.foundation.pager.PagerSnapDistance.Companion Companion;
+  }
+
+  public static final class PagerSnapDistance.Companion {
+    method public androidx.compose.foundation.pager.PagerSnapDistance atMost(int pages);
+  }
+
+  @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Stable public abstract class PagerState implements androidx.compose.foundation.gestures.ScrollableState {
+    ctor public PagerState(optional int initialPage, optional float initialPageOffsetFraction);
+    method public final suspend Object? animateScrollToPage(int page, optional float pageOffsetFraction, optional androidx.compose.animation.core.AnimationSpec<java.lang.Float> animationSpec, optional kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    method public float dispatchRawDelta(float delta);
+    method public final boolean getCanScrollBackward();
+    method public final boolean getCanScrollForward();
+    method public final int getCurrentPage();
+    method public final float getCurrentPageOffsetFraction();
+    method public final int getInitialPage();
+    method public final float getInitialPageOffsetFraction();
+    method public final androidx.compose.foundation.interaction.InteractionSource getInteractionSource();
+    method public final float getOffsetFractionForPage(int page);
+    method public abstract int getPageCount();
+    method public final int getSettledPage();
+    method public final int getTargetPage();
+    method public boolean isScrollInProgress();
+    method public suspend Object? scroll(androidx.compose.foundation.MutatePriority scrollPriority, kotlin.jvm.functions.Function2<? super androidx.compose.foundation.gestures.ScrollScope,? super kotlin.coroutines.Continuation<? super kotlin.Unit>,?> block, kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    method public final suspend Object? scrollToPage(int page, optional float pageOffsetFraction, optional kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    property public final boolean canScrollBackward;
+    property public final boolean canScrollForward;
+    property public final int currentPage;
+    property public final float currentPageOffsetFraction;
+    property public final int initialPage;
+    property public final float initialPageOffsetFraction;
+    property public final androidx.compose.foundation.interaction.InteractionSource interactionSource;
+    property public boolean isScrollInProgress;
+    property public abstract int pageCount;
+    property public final int settledPage;
+    property public final int targetPage;
+  }
+
+  public final class PagerStateKt {
+    method @Deprecated @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Composable public static androidx.compose.foundation.pager.PagerState rememberPagerState(optional int initialPage, optional float initialPageOffsetFraction);
+    method @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Composable public static androidx.compose.foundation.pager.PagerState rememberPagerState(optional int initialPage, optional float initialPageOffsetFraction, kotlin.jvm.functions.Function0<java.lang.Integer> pageCount);
+  }
+
+}
+
+package androidx.compose.foundation.relocation {
+
+  @androidx.compose.foundation.ExperimentalFoundationApi public sealed interface BringIntoViewRequester {
+    method public suspend Object? bringIntoView(optional androidx.compose.ui.geometry.Rect? rect, optional kotlin.coroutines.Continuation<? super kotlin.Unit>);
+  }
+
+  public final class BringIntoViewRequesterKt {
+    method @androidx.compose.foundation.ExperimentalFoundationApi public static androidx.compose.foundation.relocation.BringIntoViewRequester BringIntoViewRequester();
+    method @androidx.compose.foundation.ExperimentalFoundationApi public static androidx.compose.ui.Modifier bringIntoViewRequester(androidx.compose.ui.Modifier, androidx.compose.foundation.relocation.BringIntoViewRequester bringIntoViewRequester);
+  }
+
+  @androidx.compose.foundation.ExperimentalFoundationApi public interface BringIntoViewResponder {
+    method @androidx.compose.foundation.ExperimentalFoundationApi public suspend Object? bringChildIntoView(kotlin.jvm.functions.Function0<androidx.compose.ui.geometry.Rect> localRect, kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    method @androidx.compose.foundation.ExperimentalFoundationApi public androidx.compose.ui.geometry.Rect calculateRectForParent(androidx.compose.ui.geometry.Rect localRect);
+  }
+
+  public final class BringIntoViewResponderKt {
+    method @androidx.compose.foundation.ExperimentalFoundationApi public static androidx.compose.ui.Modifier bringIntoViewResponder(androidx.compose.ui.Modifier, androidx.compose.foundation.relocation.BringIntoViewResponder responder);
+  }
+
+}
+
 package androidx.compose.foundation.selection {
 
   public final class SelectableGroupKt {
@@ -876,6 +1221,7 @@
 
   public final class ClickableTextKt {
     method @androidx.compose.runtime.Composable public static void ClickableText(androidx.compose.ui.text.AnnotatedString text, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.text.TextStyle style, optional boolean softWrap, optional int overflow, optional int maxLines, optional kotlin.jvm.functions.Function1<? super androidx.compose.ui.text.TextLayoutResult,kotlin.Unit> onTextLayout, kotlin.jvm.functions.Function1<? super java.lang.Integer,kotlin.Unit> onClick);
+    method @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Composable public static void ClickableText(androidx.compose.ui.text.AnnotatedString text, kotlin.jvm.functions.Function1<? super java.lang.Integer,kotlin.Unit> onHover, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.text.TextStyle style, optional boolean softWrap, optional int overflow, optional int maxLines, optional kotlin.jvm.functions.Function1<? super androidx.compose.ui.text.TextLayoutResult,kotlin.Unit> onTextLayout, kotlin.jvm.functions.Function1<? super java.lang.Integer,kotlin.Unit> onClick);
   }
 
   @androidx.compose.runtime.Immutable public final class InlineTextContent {
@@ -890,6 +1236,9 @@
     method public static void appendInlineContent(androidx.compose.ui.text.AnnotatedString.Builder, String id, optional String alternateText);
   }
 
+  @kotlin.RequiresOptIn(message="Internal/Unstable API for use only between foundation modules sharing " + "the same exact version, subject to change without notice.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.CLASS, kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.PROPERTY, kotlin.annotation.AnnotationTarget.PROPERTY_GETTER, kotlin.annotation.AnnotationTarget.PROPERTY_SETTER}) public @interface InternalFoundationTextApi {
+  }
+
   public interface KeyboardActionScope {
     method public void defaultKeyboardAction(int imeAction);
   }
diff --git a/compose/foundation/foundation/api/res-1.5.0-beta01.txt b/compose/foundation/foundation/api/res-1.5.0-beta01.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/compose/foundation/foundation/api/res-1.5.0-beta01.txt
diff --git a/compose/foundation/foundation/api/public_plus_experimental_current.txt b/compose/foundation/foundation/api/restricted_1.5.0-beta01.txt
similarity index 100%
copy from compose/foundation/foundation/api/public_plus_experimental_current.txt
copy to compose/foundation/foundation/api/restricted_1.5.0-beta01.txt
diff --git a/compose/foundation/foundation/api/restricted_current.txt b/compose/foundation/foundation/api/restricted_current.txt
index 8be51e4..15fd553 100644
--- a/compose/foundation/foundation/api/restricted_current.txt
+++ b/compose/foundation/foundation/api/restricted_current.txt
@@ -6,6 +6,19 @@
     method public static androidx.compose.ui.Modifier background(androidx.compose.ui.Modifier, long color, optional androidx.compose.ui.graphics.Shape shape);
   }
 
+  public final class BasicMarqueeKt {
+    method @androidx.compose.foundation.ExperimentalFoundationApi public static androidx.compose.foundation.MarqueeSpacing MarqueeSpacing(float spacing);
+    method @androidx.compose.foundation.ExperimentalFoundationApi public static androidx.compose.ui.Modifier basicMarquee(androidx.compose.ui.Modifier, optional int iterations, optional int animationMode, optional int delayMillis, optional int initialDelayMillis, optional androidx.compose.foundation.MarqueeSpacing spacing, optional float velocity);
+    method @androidx.compose.foundation.ExperimentalFoundationApi public static int getDefaultMarqueeDelayMillis();
+    method @androidx.compose.foundation.ExperimentalFoundationApi public static int getDefaultMarqueeIterations();
+    method @androidx.compose.foundation.ExperimentalFoundationApi public static androidx.compose.foundation.MarqueeSpacing getDefaultMarqueeSpacing();
+    method @androidx.compose.foundation.ExperimentalFoundationApi public static float getDefaultMarqueeVelocity();
+    property @androidx.compose.foundation.ExperimentalFoundationApi public static final int DefaultMarqueeDelayMillis;
+    property @androidx.compose.foundation.ExperimentalFoundationApi public static final int DefaultMarqueeIterations;
+    property @androidx.compose.foundation.ExperimentalFoundationApi public static final androidx.compose.foundation.MarqueeSpacing DefaultMarqueeSpacing;
+    property @androidx.compose.foundation.ExperimentalFoundationApi public static final float DefaultMarqueeVelocity;
+  }
+
   public final class BorderKt {
     method public static androidx.compose.ui.Modifier border(androidx.compose.ui.Modifier, androidx.compose.foundation.BorderStroke border, optional androidx.compose.ui.graphics.Shape shape);
     method public static androidx.compose.ui.Modifier border(androidx.compose.ui.Modifier, float width, androidx.compose.ui.graphics.Brush brush, androidx.compose.ui.graphics.Shape shape);
@@ -26,6 +39,7 @@
   }
 
   public final class CanvasKt {
+    method @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Composable public static void Canvas(androidx.compose.ui.Modifier modifier, String contentDescription, kotlin.jvm.functions.Function1<? super androidx.compose.ui.graphics.drawscope.DrawScope,kotlin.Unit> onDraw);
     method @androidx.compose.runtime.Composable public static void Canvas(androidx.compose.ui.Modifier modifier, kotlin.jvm.functions.Function1<? super androidx.compose.ui.graphics.drawscope.DrawScope,kotlin.Unit> onDraw);
   }
 
@@ -36,6 +50,8 @@
   public final class ClickableKt {
     method public static androidx.compose.ui.Modifier clickable(androidx.compose.ui.Modifier, androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, androidx.compose.foundation.Indication? indication, optional boolean enabled, optional String? onClickLabel, optional androidx.compose.ui.semantics.Role? role, kotlin.jvm.functions.Function0<kotlin.Unit> onClick);
     method public static androidx.compose.ui.Modifier clickable(androidx.compose.ui.Modifier, optional boolean enabled, optional String? onClickLabel, optional androidx.compose.ui.semantics.Role? role, kotlin.jvm.functions.Function0<kotlin.Unit> onClick);
+    method @androidx.compose.foundation.ExperimentalFoundationApi public static androidx.compose.ui.Modifier combinedClickable(androidx.compose.ui.Modifier, androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, androidx.compose.foundation.Indication? indication, optional boolean enabled, optional String? onClickLabel, optional androidx.compose.ui.semantics.Role? role, optional String? onLongClickLabel, optional kotlin.jvm.functions.Function0<kotlin.Unit>? onLongClick, optional kotlin.jvm.functions.Function0<kotlin.Unit>? onDoubleClick, kotlin.jvm.functions.Function0<kotlin.Unit> onClick);
+    method @androidx.compose.foundation.ExperimentalFoundationApi public static androidx.compose.ui.Modifier combinedClickable(androidx.compose.ui.Modifier, optional boolean enabled, optional String? onClickLabel, optional androidx.compose.ui.semantics.Role? role, optional String? onLongClickLabel, optional kotlin.jvm.functions.Function0<kotlin.Unit>? onLongClick, optional kotlin.jvm.functions.Function0<kotlin.Unit>? onDoubleClick, kotlin.jvm.functions.Function0<kotlin.Unit> onClick);
   }
 
   public final class ClipScrollableContainerKt {
@@ -51,10 +67,18 @@
     method @Deprecated public static androidx.compose.ui.Modifier excludeFromSystemGesture(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1<? super androidx.compose.ui.layout.LayoutCoordinates,androidx.compose.ui.geometry.Rect> exclusion);
   }
 
+  @kotlin.RequiresOptIn(message="This foundation API is experimental and is likely to change or be removed in the " + "future.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface ExperimentalFoundationApi {
+  }
+
   public final class FocusableKt {
+    method @androidx.compose.foundation.ExperimentalFoundationApi public static androidx.compose.ui.Modifier focusGroup(androidx.compose.ui.Modifier);
     method public static androidx.compose.ui.Modifier focusable(androidx.compose.ui.Modifier, optional boolean enabled, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource);
   }
 
+  public final class FocusedBoundsKt {
+    method @androidx.compose.foundation.ExperimentalFoundationApi public static androidx.compose.ui.Modifier onFocusedBoundsChanged(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1<? super androidx.compose.ui.layout.LayoutCoordinates,kotlin.Unit> onPositioned);
+  }
+
   public final class HoverableKt {
     method public static androidx.compose.ui.Modifier hoverable(androidx.compose.ui.Modifier, androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional boolean enabled);
   }
@@ -80,6 +104,47 @@
     property public static final androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.foundation.Indication> LocalIndication;
   }
 
+  @kotlin.RequiresOptIn(message="This API is internal to library.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.CLASS, kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.PROPERTY, kotlin.annotation.AnnotationTarget.PROPERTY_GETTER, kotlin.annotation.AnnotationTarget.PROPERTY_SETTER}) public @interface InternalFoundationApi {
+  }
+
+  public final class MagnifierKt {
+    method @androidx.compose.foundation.ExperimentalFoundationApi public static androidx.compose.ui.Modifier magnifier(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1<? super androidx.compose.ui.unit.Density,androidx.compose.ui.geometry.Offset> sourceCenter, optional kotlin.jvm.functions.Function1<? super androidx.compose.ui.unit.Density,androidx.compose.ui.geometry.Offset> magnifierCenter, optional float zoom, optional androidx.compose.foundation.MagnifierStyle style, optional kotlin.jvm.functions.Function1<? super androidx.compose.ui.unit.DpSize,kotlin.Unit>? onSizeChanged);
+  }
+
+  @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Stable public final class MagnifierStyle {
+    ctor @androidx.compose.foundation.ExperimentalFoundationApi public MagnifierStyle(optional long size, optional float cornerRadius, optional float elevation, optional boolean clippingEnabled, optional boolean fishEyeEnabled);
+    method public boolean isSupported();
+    property public final boolean isSupported;
+    field public static final androidx.compose.foundation.MagnifierStyle.Companion Companion;
+  }
+
+  public static final class MagnifierStyle.Companion {
+    method public androidx.compose.foundation.MagnifierStyle getDefault();
+    method public androidx.compose.foundation.MagnifierStyle getTextDefault();
+    property public final androidx.compose.foundation.MagnifierStyle Default;
+    property public final androidx.compose.foundation.MagnifierStyle TextDefault;
+  }
+
+  @androidx.compose.foundation.ExperimentalFoundationApi @kotlin.jvm.JvmInline public final value class MarqueeAnimationMode {
+    field public static final androidx.compose.foundation.MarqueeAnimationMode.Companion Companion;
+  }
+
+  public static final class MarqueeAnimationMode.Companion {
+    method @androidx.compose.foundation.ExperimentalFoundationApi public int getImmediately();
+    method @androidx.compose.foundation.ExperimentalFoundationApi public int getWhileFocused();
+    property @androidx.compose.foundation.ExperimentalFoundationApi public final int Immediately;
+    property @androidx.compose.foundation.ExperimentalFoundationApi public final int WhileFocused;
+  }
+
+  @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Stable public fun interface MarqueeSpacing {
+    method @androidx.compose.foundation.ExperimentalFoundationApi public int calculateSpacing(androidx.compose.ui.unit.Density, int contentWidth, int containerWidth);
+    field public static final androidx.compose.foundation.MarqueeSpacing.Companion Companion;
+  }
+
+  public static final class MarqueeSpacing.Companion {
+    method @androidx.compose.foundation.ExperimentalFoundationApi public androidx.compose.foundation.MarqueeSpacing fractionOfContainer(float fraction);
+  }
+
   public enum MutatePriority {
     method public static androidx.compose.foundation.MutatePriority valueOf(String value) throws java.lang.IllegalArgumentException, java.lang.NullPointerException;
     method public static androidx.compose.foundation.MutatePriority[] values();
@@ -94,6 +159,32 @@
     method public suspend <T, R> Object? mutateWith(T receiver, optional androidx.compose.foundation.MutatePriority priority, kotlin.jvm.functions.Function2<? super T,? super kotlin.coroutines.Continuation<? super R>,?> block, kotlin.coroutines.Continuation<? super R>);
   }
 
+  @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Stable public final class OverscrollConfiguration {
+    ctor public OverscrollConfiguration(optional long glowColor, optional androidx.compose.foundation.layout.PaddingValues drawPadding);
+    method public androidx.compose.foundation.layout.PaddingValues getDrawPadding();
+    method public long getGlowColor();
+    property public final androidx.compose.foundation.layout.PaddingValues drawPadding;
+    property public final long glowColor;
+  }
+
+  public final class OverscrollConfigurationKt {
+    method @androidx.compose.foundation.ExperimentalFoundationApi public static androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.foundation.OverscrollConfiguration> getLocalOverscrollConfiguration();
+    property @androidx.compose.foundation.ExperimentalFoundationApi public static final androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.foundation.OverscrollConfiguration> LocalOverscrollConfiguration;
+  }
+
+  @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Stable public interface OverscrollEffect {
+    method public suspend Object? applyToFling(long velocity, kotlin.jvm.functions.Function2<? super androidx.compose.ui.unit.Velocity,? super kotlin.coroutines.Continuation<? super androidx.compose.ui.unit.Velocity>,?> performFling, kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    method public long applyToScroll(long delta, int source, kotlin.jvm.functions.Function1<? super androidx.compose.ui.geometry.Offset,androidx.compose.ui.geometry.Offset> performScroll);
+    method public androidx.compose.ui.Modifier getEffectModifier();
+    method public boolean isInProgress();
+    property public abstract androidx.compose.ui.Modifier effectModifier;
+    property public abstract boolean isInProgress;
+  }
+
+  public final class OverscrollKt {
+    method @androidx.compose.foundation.ExperimentalFoundationApi public static androidx.compose.ui.Modifier overscroll(androidx.compose.ui.Modifier, androidx.compose.foundation.OverscrollEffect overscrollEffect);
+  }
+
   public final class ProgressSemanticsKt {
     method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier progressSemantics(androidx.compose.ui.Modifier);
     method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier progressSemantics(androidx.compose.ui.Modifier, float value, optional kotlin.ranges.ClosedFloatingPointRange<java.lang.Float> valueRange, optional int steps);
@@ -207,11 +298,13 @@
 
   public final class ScrollableDefaults {
     method @androidx.compose.runtime.Composable public androidx.compose.foundation.gestures.FlingBehavior flingBehavior();
+    method @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Composable public androidx.compose.foundation.OverscrollEffect overscrollEffect();
     method public boolean reverseDirection(androidx.compose.ui.unit.LayoutDirection layoutDirection, androidx.compose.foundation.gestures.Orientation orientation, boolean reverseScrolling);
     field public static final androidx.compose.foundation.gestures.ScrollableDefaults INSTANCE;
   }
 
   public final class ScrollableKt {
+    method @androidx.compose.foundation.ExperimentalFoundationApi public static androidx.compose.ui.Modifier scrollable(androidx.compose.ui.Modifier, androidx.compose.foundation.gestures.ScrollableState state, androidx.compose.foundation.gestures.Orientation orientation, androidx.compose.foundation.OverscrollEffect? overscrollEffect, optional boolean enabled, optional boolean reverseDirection, optional androidx.compose.foundation.gestures.FlingBehavior? flingBehavior, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource);
     method public static androidx.compose.ui.Modifier scrollable(androidx.compose.ui.Modifier, androidx.compose.foundation.gestures.ScrollableState state, androidx.compose.foundation.gestures.Orientation orientation, optional boolean enabled, optional boolean reverseDirection, optional androidx.compose.foundation.gestures.FlingBehavior? flingBehavior, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource);
   }
 
@@ -254,6 +347,7 @@
 
   public final class TransformableKt {
     method public static androidx.compose.ui.Modifier transformable(androidx.compose.ui.Modifier, androidx.compose.foundation.gestures.TransformableState state, optional boolean lockRotationOnZoomPan, optional boolean enabled);
+    method @androidx.compose.foundation.ExperimentalFoundationApi public static androidx.compose.ui.Modifier transformable(androidx.compose.ui.Modifier, androidx.compose.foundation.gestures.TransformableState state, kotlin.jvm.functions.Function0<java.lang.Boolean> canPan, optional boolean lockRotationOnZoomPan, optional boolean enabled);
   }
 
   @kotlin.jvm.JvmDefaultWithCompatibility public interface TransformableState {
@@ -276,6 +370,45 @@
 
 }
 
+package androidx.compose.foundation.gestures.snapping {
+
+  public final class LazyGridSnapLayoutInfoProviderKt {
+    method @androidx.compose.foundation.ExperimentalFoundationApi public static androidx.compose.foundation.gestures.snapping.SnapLayoutInfoProvider SnapLayoutInfoProvider(androidx.compose.foundation.lazy.grid.LazyGridState lazyGridState, optional androidx.compose.foundation.gestures.snapping.SnapPositionInLayout positionInLayout);
+  }
+
+  public final class LazyListSnapLayoutInfoProviderKt {
+    method @androidx.compose.foundation.ExperimentalFoundationApi public static androidx.compose.foundation.gestures.snapping.SnapLayoutInfoProvider SnapLayoutInfoProvider(androidx.compose.foundation.lazy.LazyListState lazyListState, optional androidx.compose.foundation.gestures.snapping.SnapPositionInLayout positionInLayout);
+    method @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Composable public static androidx.compose.foundation.gestures.FlingBehavior rememberSnapFlingBehavior(androidx.compose.foundation.lazy.LazyListState lazyListState);
+  }
+
+  @androidx.compose.foundation.ExperimentalFoundationApi public final class SnapFlingBehavior implements androidx.compose.foundation.gestures.FlingBehavior {
+    ctor public SnapFlingBehavior(androidx.compose.foundation.gestures.snapping.SnapLayoutInfoProvider snapLayoutInfoProvider, androidx.compose.animation.core.AnimationSpec<java.lang.Float> lowVelocityAnimationSpec, androidx.compose.animation.core.DecayAnimationSpec<java.lang.Float> highVelocityAnimationSpec, androidx.compose.animation.core.AnimationSpec<java.lang.Float> snapAnimationSpec, androidx.compose.ui.unit.Density density, optional float shortSnapVelocityThreshold);
+    method public suspend Object? performFling(androidx.compose.foundation.gestures.ScrollScope, float initialVelocity, kotlin.coroutines.Continuation<? super java.lang.Float>);
+    method public suspend Object? performFling(androidx.compose.foundation.gestures.ScrollScope, float initialVelocity, kotlin.jvm.functions.Function1<? super java.lang.Float,kotlin.Unit> onSettlingDistanceUpdated, kotlin.coroutines.Continuation<? super java.lang.Float>);
+  }
+
+  public final class SnapFlingBehaviorKt {
+    method @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Composable public static androidx.compose.foundation.gestures.snapping.SnapFlingBehavior rememberSnapFlingBehavior(androidx.compose.foundation.gestures.snapping.SnapLayoutInfoProvider snapLayoutInfoProvider);
+  }
+
+  @androidx.compose.foundation.ExperimentalFoundationApi public interface SnapLayoutInfoProvider {
+    method public float calculateApproachOffset(androidx.compose.ui.unit.Density, float initialVelocity);
+    method public float calculateSnapStepSize(androidx.compose.ui.unit.Density);
+    method public float calculateSnappingOffset(androidx.compose.ui.unit.Density, float currentVelocity);
+  }
+
+  @androidx.compose.foundation.ExperimentalFoundationApi public fun interface SnapPositionInLayout {
+    method public int position(androidx.compose.ui.unit.Density, int layoutSize, int itemSize, int itemIndex);
+    field public static final androidx.compose.foundation.gestures.snapping.SnapPositionInLayout.Companion Companion;
+  }
+
+  public static final class SnapPositionInLayout.Companion {
+    method public androidx.compose.foundation.gestures.snapping.SnapPositionInLayout getCenterToCenter();
+    property public final androidx.compose.foundation.gestures.snapping.SnapPositionInLayout CenterToCenter;
+  }
+
+}
+
 package androidx.compose.foundation.interaction {
 
   public interface DragInteraction extends androidx.compose.foundation.interaction.Interaction {
@@ -397,6 +530,7 @@
   }
 
   @androidx.compose.foundation.lazy.LazyScopeMarker @androidx.compose.runtime.Stable @kotlin.jvm.JvmDefaultWithCompatibility public interface LazyItemScope {
+    method @androidx.compose.foundation.ExperimentalFoundationApi public androidx.compose.ui.Modifier animateItemPlacement(androidx.compose.ui.Modifier, optional androidx.compose.animation.core.FiniteAnimationSpec<androidx.compose.ui.unit.IntOffset> animationSpec);
     method public androidx.compose.ui.Modifier fillParentMaxHeight(androidx.compose.ui.Modifier, optional float fraction);
     method public androidx.compose.ui.Modifier fillParentMaxSize(androidx.compose.ui.Modifier, optional float fraction);
     method public androidx.compose.ui.Modifier fillParentMaxWidth(androidx.compose.ui.Modifier, optional float fraction);
@@ -443,6 +577,7 @@
     method @Deprecated public void item(optional Object? key, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.lazy.LazyItemScope,kotlin.Unit> content);
     method public default void items(int count, optional kotlin.jvm.functions.Function1<? super java.lang.Integer,?>? key, optional kotlin.jvm.functions.Function1<? super java.lang.Integer,?> contentType, kotlin.jvm.functions.Function2<? super androidx.compose.foundation.lazy.LazyItemScope,? super java.lang.Integer,kotlin.Unit> itemContent);
     method @Deprecated public void items(int count, optional kotlin.jvm.functions.Function1<? super java.lang.Integer,?>? key, kotlin.jvm.functions.Function2<? super androidx.compose.foundation.lazy.LazyItemScope,? super java.lang.Integer,kotlin.Unit> itemContent);
+    method @androidx.compose.foundation.ExperimentalFoundationApi public void stickyHeader(optional Object? key, optional Object? contentType, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.lazy.LazyItemScope,kotlin.Unit> content);
   }
 
   @androidx.compose.runtime.Stable public final class LazyListState implements androidx.compose.foundation.gestures.ScrollableState {
@@ -503,6 +638,7 @@
 
   @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class GridItemSpan {
     method public int getCurrentLineSpan();
+    property @androidx.compose.foundation.ExperimentalFoundationApi public final int currentLineSpan;
   }
 
   public final class LazyGridDslKt {
@@ -540,6 +676,7 @@
   }
 
   @androidx.compose.foundation.lazy.grid.LazyGridScopeMarker @androidx.compose.runtime.Stable public sealed interface LazyGridItemScope {
+    method @androidx.compose.foundation.ExperimentalFoundationApi public androidx.compose.ui.Modifier animateItemPlacement(androidx.compose.ui.Modifier, optional androidx.compose.animation.core.FiniteAnimationSpec<androidx.compose.ui.unit.IntOffset> animationSpec);
   }
 
   @androidx.compose.foundation.lazy.grid.LazyGridScopeMarker public sealed interface LazyGridItemSpanScope {
@@ -616,6 +753,110 @@
 
 }
 
+package androidx.compose.foundation.lazy.layout {
+
+  @androidx.compose.foundation.ExperimentalFoundationApi public sealed interface IntervalList<T> {
+    method public void forEach(optional int fromIndex, optional int toIndex, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.lazy.layout.IntervalList.Interval<? extends T>,kotlin.Unit> block);
+    method public operator androidx.compose.foundation.lazy.layout.IntervalList.Interval<T> get(int index);
+    method public int getSize();
+    property public abstract int size;
+  }
+
+  public static final class IntervalList.Interval<T> {
+    method public int getSize();
+    method public int getStartIndex();
+    method public T getValue();
+    property public final int size;
+    property public final int startIndex;
+    property public final T value;
+  }
+
+  @androidx.compose.foundation.ExperimentalFoundationApi public abstract class LazyLayoutIntervalContent<Interval extends androidx.compose.foundation.lazy.layout.LazyLayoutIntervalContent.Interval> {
+    ctor public LazyLayoutIntervalContent();
+    method public final Object? getContentType(int index);
+    method public abstract androidx.compose.foundation.lazy.layout.IntervalList<Interval> getIntervals();
+    method public final int getItemCount();
+    method public final Object getKey(int index);
+    method public final inline <T> T withInterval(int globalIndex, kotlin.jvm.functions.Function2<? super java.lang.Integer,? super Interval,? extends T> block);
+    property public abstract androidx.compose.foundation.lazy.layout.IntervalList<Interval> intervals;
+    property public final int itemCount;
+  }
+
+  @androidx.compose.foundation.ExperimentalFoundationApi public static interface LazyLayoutIntervalContent.Interval {
+    method public default kotlin.jvm.functions.Function1<java.lang.Integer,java.lang.Object>? getKey();
+    method public default kotlin.jvm.functions.Function1<java.lang.Integer,java.lang.Object> getType();
+    property public default kotlin.jvm.functions.Function1<java.lang.Integer,java.lang.Object>? key;
+    property public default kotlin.jvm.functions.Function1<java.lang.Integer,java.lang.Object> type;
+  }
+
+  @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Stable public interface LazyLayoutItemProvider {
+    method @androidx.compose.runtime.Composable public void Item(int index, Object key);
+    method public default Object? getContentType(int index);
+    method public default int getIndex(Object key);
+    method public int getItemCount();
+    method public default Object getKey(int index);
+    property public abstract int itemCount;
+  }
+
+  public final class LazyLayoutItemProviderKt {
+    method @androidx.compose.foundation.ExperimentalFoundationApi public static Object getDefaultLazyLayoutKey(int index);
+  }
+
+  public final class LazyLayoutKt {
+    method @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Composable public static void LazyLayout(androidx.compose.foundation.lazy.layout.LazyLayoutItemProvider itemProvider, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.foundation.lazy.layout.LazyLayoutPrefetchState? prefetchState, kotlin.jvm.functions.Function2<? super androidx.compose.foundation.lazy.layout.LazyLayoutMeasureScope,? super androidx.compose.ui.unit.Constraints,? extends androidx.compose.ui.layout.MeasureResult> measurePolicy);
+  }
+
+  @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Stable public sealed interface LazyLayoutMeasureScope extends androidx.compose.ui.layout.MeasureScope {
+    method public java.util.List<androidx.compose.ui.layout.Placeable> measure(int index, long constraints);
+    method @androidx.compose.runtime.Stable public default float toDp(float);
+    method @androidx.compose.runtime.Stable public default float toDp(int);
+    method @androidx.compose.runtime.Stable public default float toDp(long);
+    method @androidx.compose.runtime.Stable public default long toDpSize(long);
+    method @androidx.compose.runtime.Stable public default long toSize(long);
+    method @androidx.compose.runtime.Stable public default long toSp(float);
+    method @androidx.compose.runtime.Stable public default long toSp(float);
+    method @androidx.compose.runtime.Stable public default long toSp(int);
+  }
+
+  public final class LazyLayoutPinnableItemKt {
+    method @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Composable public static void LazyLayoutPinnableItem(Object? key, int index, androidx.compose.foundation.lazy.layout.LazyLayoutPinnedItemList pinnedItemList, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+  }
+
+  @androidx.compose.foundation.ExperimentalFoundationApi public final class LazyLayoutPinnedItemList implements kotlin.jvm.internal.markers.KMappedMarker java.util.List<androidx.compose.foundation.lazy.layout.LazyLayoutPinnedItemList.PinnedItem> {
+    ctor public LazyLayoutPinnedItemList();
+  }
+
+  @androidx.compose.foundation.ExperimentalFoundationApi public static sealed interface LazyLayoutPinnedItemList.PinnedItem {
+    method public int getIndex();
+    method public Object? getKey();
+    property public abstract int index;
+    property public abstract Object? key;
+  }
+
+  @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Stable public final class LazyLayoutPrefetchState {
+    ctor public LazyLayoutPrefetchState();
+    method public androidx.compose.foundation.lazy.layout.LazyLayoutPrefetchState.PrefetchHandle schedulePrefetch(int index, long constraints);
+  }
+
+  public static sealed interface LazyLayoutPrefetchState.PrefetchHandle {
+    method public void cancel();
+  }
+
+  public final class Lazy_androidKt {
+    method @androidx.compose.foundation.ExperimentalFoundationApi public static Object getDefaultLazyLayoutKey(int index);
+  }
+
+  @androidx.compose.foundation.ExperimentalFoundationApi public final class MutableIntervalList<T> implements androidx.compose.foundation.lazy.layout.IntervalList<T> {
+    ctor public MutableIntervalList();
+    method public void addInterval(int size, T value);
+    method public void forEach(int fromIndex, int toIndex, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.lazy.layout.IntervalList.Interval<? extends T>,kotlin.Unit> block);
+    method public androidx.compose.foundation.lazy.layout.IntervalList.Interval<T> get(int index);
+    method public int getSize();
+    property public int size;
+  }
+
+}
+
 package androidx.compose.foundation.lazy.staggeredgrid {
 
   public final class LazyStaggeredGridDslKt {
@@ -643,6 +884,7 @@
   }
 
   @androidx.compose.runtime.Stable public sealed interface LazyStaggeredGridItemScope {
+    method @androidx.compose.foundation.ExperimentalFoundationApi public androidx.compose.ui.Modifier animateItemPlacement(androidx.compose.ui.Modifier, optional androidx.compose.animation.core.FiniteAnimationSpec<androidx.compose.ui.unit.IntOffset> animationSpec);
   }
 
   public sealed interface LazyStaggeredGridLayoutInfo {
@@ -733,6 +975,109 @@
 
 }
 
+package androidx.compose.foundation.pager {
+
+  @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Stable public interface PageSize {
+    method public int calculateMainAxisPageSize(androidx.compose.ui.unit.Density, int availableSpace, int pageSpacing);
+  }
+
+  @androidx.compose.foundation.ExperimentalFoundationApi public static final class PageSize.Fill implements androidx.compose.foundation.pager.PageSize {
+    method public int calculateMainAxisPageSize(androidx.compose.ui.unit.Density, int availableSpace, int pageSpacing);
+    field public static final androidx.compose.foundation.pager.PageSize.Fill INSTANCE;
+  }
+
+  @androidx.compose.foundation.ExperimentalFoundationApi public static final class PageSize.Fixed implements androidx.compose.foundation.pager.PageSize {
+    ctor public PageSize.Fixed(float pageSize);
+    method public int calculateMainAxisPageSize(androidx.compose.ui.unit.Density, int availableSpace, int pageSpacing);
+    method public float getPageSize();
+    property public final float pageSize;
+  }
+
+  @androidx.compose.foundation.ExperimentalFoundationApi public final class PagerDefaults {
+    method @androidx.compose.runtime.Composable public androidx.compose.foundation.gestures.snapping.SnapFlingBehavior flingBehavior(androidx.compose.foundation.pager.PagerState state, optional androidx.compose.foundation.pager.PagerSnapDistance pagerSnapDistance, optional androidx.compose.animation.core.AnimationSpec<java.lang.Float> lowVelocityAnimationSpec, optional androidx.compose.animation.core.DecayAnimationSpec<java.lang.Float> highVelocityAnimationSpec, optional androidx.compose.animation.core.AnimationSpec<java.lang.Float> snapAnimationSpec, optional float snapVelocityThreshold, optional float snapPositionalThreshold);
+    method public androidx.compose.ui.input.nestedscroll.NestedScrollConnection pageNestedScrollConnection(androidx.compose.foundation.gestures.Orientation orientation);
+    field public static final androidx.compose.foundation.pager.PagerDefaults INSTANCE;
+  }
+
+  public final class PagerKt {
+    method @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Composable public static void HorizontalPager(androidx.compose.foundation.pager.PagerState state, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional androidx.compose.foundation.pager.PageSize pageSize, optional int beyondBoundsPageCount, optional float pageSpacing, optional androidx.compose.ui.Alignment.Vertical verticalAlignment, optional androidx.compose.foundation.gestures.snapping.SnapFlingBehavior flingBehavior, optional boolean userScrollEnabled, optional boolean reverseLayout, optional kotlin.jvm.functions.Function1<? super java.lang.Integer,?>? key, optional androidx.compose.ui.input.nestedscroll.NestedScrollConnection pageNestedScrollConnection, kotlin.jvm.functions.Function2<? super androidx.compose.foundation.pager.PagerScope,? super java.lang.Integer,kotlin.Unit> pageContent);
+    method @Deprecated @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Composable public static void HorizontalPager(int pageCount, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.foundation.pager.PagerState state, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional androidx.compose.foundation.pager.PageSize pageSize, optional int beyondBoundsPageCount, optional float pageSpacing, optional androidx.compose.ui.Alignment.Vertical verticalAlignment, optional androidx.compose.foundation.gestures.snapping.SnapFlingBehavior flingBehavior, optional boolean userScrollEnabled, optional boolean reverseLayout, optional kotlin.jvm.functions.Function1<? super java.lang.Integer,?>? key, optional androidx.compose.ui.input.nestedscroll.NestedScrollConnection pageNestedScrollConnection, kotlin.jvm.functions.Function2<? super androidx.compose.foundation.pager.PagerScope,? super java.lang.Integer,kotlin.Unit> pageContent);
+    method @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Composable public static void VerticalPager(androidx.compose.foundation.pager.PagerState state, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional androidx.compose.foundation.pager.PageSize pageSize, optional int beyondBoundsPageCount, optional float pageSpacing, optional androidx.compose.ui.Alignment.Horizontal horizontalAlignment, optional androidx.compose.foundation.gestures.snapping.SnapFlingBehavior flingBehavior, optional boolean userScrollEnabled, optional boolean reverseLayout, optional kotlin.jvm.functions.Function1<? super java.lang.Integer,?>? key, optional androidx.compose.ui.input.nestedscroll.NestedScrollConnection pageNestedScrollConnection, kotlin.jvm.functions.Function2<? super androidx.compose.foundation.pager.PagerScope,? super java.lang.Integer,kotlin.Unit> pageContent);
+    method @Deprecated @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Composable public static void VerticalPager(int pageCount, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.foundation.pager.PagerState state, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional androidx.compose.foundation.pager.PageSize pageSize, optional int beyondBoundsPageCount, optional float pageSpacing, optional androidx.compose.ui.Alignment.Horizontal horizontalAlignment, optional androidx.compose.foundation.gestures.snapping.SnapFlingBehavior flingBehavior, optional boolean userScrollEnabled, optional boolean reverseLayout, optional kotlin.jvm.functions.Function1<? super java.lang.Integer,?>? key, optional androidx.compose.ui.input.nestedscroll.NestedScrollConnection pageNestedScrollConnection, kotlin.jvm.functions.Function2<? super androidx.compose.foundation.pager.PagerScope,? super java.lang.Integer,kotlin.Unit> pageContent);
+  }
+
+  @androidx.compose.foundation.ExperimentalFoundationApi public sealed interface PagerScope {
+  }
+
+  @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Stable public interface PagerSnapDistance {
+    method public int calculateTargetPage(int startPage, int suggestedTargetPage, float velocity, int pageSize, int pageSpacing);
+    field public static final androidx.compose.foundation.pager.PagerSnapDistance.Companion Companion;
+  }
+
+  public static final class PagerSnapDistance.Companion {
+    method public androidx.compose.foundation.pager.PagerSnapDistance atMost(int pages);
+  }
+
+  @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Stable public abstract class PagerState implements androidx.compose.foundation.gestures.ScrollableState {
+    ctor public PagerState(optional int initialPage, optional float initialPageOffsetFraction);
+    method public final suspend Object? animateScrollToPage(int page, optional float pageOffsetFraction, optional androidx.compose.animation.core.AnimationSpec<java.lang.Float> animationSpec, optional kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    method public float dispatchRawDelta(float delta);
+    method public final boolean getCanScrollBackward();
+    method public final boolean getCanScrollForward();
+    method public final int getCurrentPage();
+    method public final float getCurrentPageOffsetFraction();
+    method public final int getInitialPage();
+    method public final float getInitialPageOffsetFraction();
+    method public final androidx.compose.foundation.interaction.InteractionSource getInteractionSource();
+    method public final float getOffsetFractionForPage(int page);
+    method public abstract int getPageCount();
+    method public final int getSettledPage();
+    method public final int getTargetPage();
+    method public boolean isScrollInProgress();
+    method public suspend Object? scroll(androidx.compose.foundation.MutatePriority scrollPriority, kotlin.jvm.functions.Function2<? super androidx.compose.foundation.gestures.ScrollScope,? super kotlin.coroutines.Continuation<? super kotlin.Unit>,?> block, kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    method public final suspend Object? scrollToPage(int page, optional float pageOffsetFraction, optional kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    property public final boolean canScrollBackward;
+    property public final boolean canScrollForward;
+    property public final int currentPage;
+    property public final float currentPageOffsetFraction;
+    property public final int initialPage;
+    property public final float initialPageOffsetFraction;
+    property public final androidx.compose.foundation.interaction.InteractionSource interactionSource;
+    property public boolean isScrollInProgress;
+    property public abstract int pageCount;
+    property public final int settledPage;
+    property public final int targetPage;
+  }
+
+  public final class PagerStateKt {
+    method @Deprecated @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Composable public static androidx.compose.foundation.pager.PagerState rememberPagerState(optional int initialPage, optional float initialPageOffsetFraction);
+    method @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Composable public static androidx.compose.foundation.pager.PagerState rememberPagerState(optional int initialPage, optional float initialPageOffsetFraction, kotlin.jvm.functions.Function0<java.lang.Integer> pageCount);
+  }
+
+}
+
+package androidx.compose.foundation.relocation {
+
+  @androidx.compose.foundation.ExperimentalFoundationApi public sealed interface BringIntoViewRequester {
+    method public suspend Object? bringIntoView(optional androidx.compose.ui.geometry.Rect? rect, optional kotlin.coroutines.Continuation<? super kotlin.Unit>);
+  }
+
+  public final class BringIntoViewRequesterKt {
+    method @androidx.compose.foundation.ExperimentalFoundationApi public static androidx.compose.foundation.relocation.BringIntoViewRequester BringIntoViewRequester();
+    method @androidx.compose.foundation.ExperimentalFoundationApi public static androidx.compose.ui.Modifier bringIntoViewRequester(androidx.compose.ui.Modifier, androidx.compose.foundation.relocation.BringIntoViewRequester bringIntoViewRequester);
+  }
+
+  @androidx.compose.foundation.ExperimentalFoundationApi public interface BringIntoViewResponder {
+    method @androidx.compose.foundation.ExperimentalFoundationApi public suspend Object? bringChildIntoView(kotlin.jvm.functions.Function0<androidx.compose.ui.geometry.Rect> localRect, kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    method @androidx.compose.foundation.ExperimentalFoundationApi public androidx.compose.ui.geometry.Rect calculateRectForParent(androidx.compose.ui.geometry.Rect localRect);
+  }
+
+  public final class BringIntoViewResponderKt {
+    method @androidx.compose.foundation.ExperimentalFoundationApi public static androidx.compose.ui.Modifier bringIntoViewResponder(androidx.compose.ui.Modifier, androidx.compose.foundation.relocation.BringIntoViewResponder responder);
+  }
+
+}
+
 package androidx.compose.foundation.selection {
 
   public final class SelectableGroupKt {
@@ -876,6 +1221,7 @@
 
   public final class ClickableTextKt {
     method @androidx.compose.runtime.Composable public static void ClickableText(androidx.compose.ui.text.AnnotatedString text, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.text.TextStyle style, optional boolean softWrap, optional int overflow, optional int maxLines, optional kotlin.jvm.functions.Function1<? super androidx.compose.ui.text.TextLayoutResult,kotlin.Unit> onTextLayout, kotlin.jvm.functions.Function1<? super java.lang.Integer,kotlin.Unit> onClick);
+    method @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Composable public static void ClickableText(androidx.compose.ui.text.AnnotatedString text, kotlin.jvm.functions.Function1<? super java.lang.Integer,kotlin.Unit> onHover, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.text.TextStyle style, optional boolean softWrap, optional int overflow, optional int maxLines, optional kotlin.jvm.functions.Function1<? super androidx.compose.ui.text.TextLayoutResult,kotlin.Unit> onTextLayout, kotlin.jvm.functions.Function1<? super java.lang.Integer,kotlin.Unit> onClick);
   }
 
   @androidx.compose.runtime.Immutable public final class InlineTextContent {
@@ -890,6 +1236,9 @@
     method public static void appendInlineContent(androidx.compose.ui.text.AnnotatedString.Builder, String id, optional String alternateText);
   }
 
+  @kotlin.RequiresOptIn(message="Internal/Unstable API for use only between foundation modules sharing " + "the same exact version, subject to change without notice.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.CLASS, kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.PROPERTY, kotlin.annotation.AnnotationTarget.PROPERTY_GETTER, kotlin.annotation.AnnotationTarget.PROPERTY_SETTER}) public @interface InternalFoundationTextApi {
+  }
+
   public interface KeyboardActionScope {
     method public void defaultKeyboardAction(int imeAction);
   }
diff --git a/compose/foundation/foundation/src/androidAndroidTest/kotlin/androidx/compose/foundation/pager/PagerStateNonGestureScrollingTest.kt b/compose/foundation/foundation/src/androidAndroidTest/kotlin/androidx/compose/foundation/pager/PagerStateNonGestureScrollingTest.kt
index 7bed3fc..33c0eb7 100644
--- a/compose/foundation/foundation/src/androidAndroidTest/kotlin/androidx/compose/foundation/pager/PagerStateNonGestureScrollingTest.kt
+++ b/compose/foundation/foundation/src/androidAndroidTest/kotlin/androidx/compose/foundation/pager/PagerStateNonGestureScrollingTest.kt
@@ -200,6 +200,16 @@
     }
 
     @Test
+    fun animatedScrollToPage_emptyPager_shouldNotReact() {
+        createPager(pageCount = { 0 }, additionalContent = {
+            LaunchedEffect(pagerState) {
+                pagerState.animateScrollToPage(10)
+            }
+        })
+        Truth.assertThat(pagerState.currentPage).isEqualTo(0)
+    }
+
+    @Test
     fun animatedScrollToPageWithOffset_usingLaunchedEffect() {
 
         createPager(additionalContent = {
diff --git a/compose/foundation/foundation/src/androidAndroidTest/kotlin/androidx/compose/foundation/text/selection/MultiWidgetSelectionDelegateTest.kt b/compose/foundation/foundation/src/androidAndroidTest/kotlin/androidx/compose/foundation/text/selection/MultiWidgetSelectionDelegateTest.kt
index e601a24..ae4ae34 100644
--- a/compose/foundation/foundation/src/androidAndroidTest/kotlin/androidx/compose/foundation/text/selection/MultiWidgetSelectionDelegateTest.kt
+++ b/compose/foundation/foundation/src/androidAndroidTest/kotlin/androidx/compose/foundation/text/selection/MultiWidgetSelectionDelegateTest.kt
@@ -16,6 +16,7 @@
 
 package androidx.compose.foundation.text.selection
 
+import android.os.Build
 import androidx.compose.foundation.text.InternalFoundationTextApi
 import androidx.compose.foundation.text.TEST_FONT_FAMILY
 import androidx.compose.foundation.text.TextDelegate
@@ -513,8 +514,6 @@
         )
     }
 
-    // TODO(b/270441925); Returns a different result below API 26.
-    @SdkSuppress(minSdkVersion = 26)
     @Test
     fun getHandlePosition_EndHandle_not_cross_ltr_overflowed() {
         val text = "hello\nworld"
@@ -618,8 +617,6 @@
         )
     }
 
-    // TODO(b/270441925); Returns a different result below API 26.
-    @SdkSuppress(minSdkVersion = 26)
     @Test
     fun getHandlePosition_EndHandle_cross_ltr_overflowed() {
         val text = "hello\nworld"
@@ -774,8 +771,6 @@
         )
     }
 
-    // TODO(b/270441925); Returns a different result below API 26.
-    @SdkSuppress(minSdkVersion = 26)
     @Test
     fun getHandlePosition_EndHandle_not_cross_rtl_overflowed() {
         val text = "\u05D0\u05D1\u05D2\n\u05D3\u05D4\u05D5"
@@ -826,8 +821,6 @@
         assertThat(coordinates).isEqualTo(Offset(0f, fontSizeInPx))
     }
 
-    // TODO(b/270441925); Returns a different result below API 26.
-    @SdkSuppress(minSdkVersion = 26)
     @Test
     fun getHandlePosition_EndHandle_cross_rtl_overflowed() {
         val text = "\u05D0\u05D1\u05D2\n\u05D3\u05D4\u05D5"
@@ -1322,8 +1315,6 @@
         assertThat(lineRange).isEqualTo(TextRange(6, 6))
     }
 
-    // TODO(b/270441925); Returns a different result below API 26.
-    @SdkSuppress(minSdkVersion = 26)
     @Test
     fun getRangeOfLineContaining_overflowed_returnsLastVisibleLine() {
         val text = "hello\nworld"
@@ -1425,8 +1416,6 @@
     // start = maxLines 1
     // start = clip
     // start = enabled soft wrap
-    // TODO(b/270441925); Returns a different result below API 26.
-    @SdkSuppress(minSdkVersion = 26)
     @Test
     fun getLastVisibleOffset_maxLines1_clip_enabledSoftwrap_multiLineContent() {
         val text = "hello\nworld"
@@ -1452,8 +1441,6 @@
         assertThat(lastVisibleOffset).isEqualTo(5)
     }
 
-    // TODO(b/270441925); Returns a different result below API 26.
-    @SdkSuppress(minSdkVersion = 26)
     @Test
     fun getLastVisibleOffset_maxLines1_clip_enabledSoftwrap_singleLineContent() {
         val text = "hello world"
@@ -1481,8 +1468,6 @@
     }
 
     // start = disabled soft wrap
-    // TODO(b/270441925); Returns a different result below API 26.
-    @SdkSuppress(minSdkVersion = 26)
     @Test
     fun getLastVisibleOffset_maxLines1_clip_disabledSoftwrap_multiLineContent() {
         val text = "hello\nworld"
@@ -1531,7 +1516,7 @@
 
         val lastVisibleOffset = selectable.getLastVisibleOffset()
 
-        assertThat(lastVisibleOffset).isEqualTo(text.length)
+        assertThat(lastVisibleOffset).isEqualTo(text.length - 1) // ignore last whitespace
     }
 
     // start = ellipsis
@@ -1618,8 +1603,6 @@
         assertThat(lastVisibleOffset).isEqualTo(4)
     }
 
-    // TODO(b/270441925); Returns a different result below API 26.
-    @SdkSuppress(minSdkVersion = 26)
     @Test
     fun getLastVisibleOffset_maxLines1_ellipsis_disabledSoftwrap_singleLineContent() {
         val text = "hello world ".repeat(10)
@@ -1643,7 +1626,13 @@
 
         val lastVisibleOffset = selectable.getLastVisibleOffset()
 
-        assertThat(lastVisibleOffset).isEqualTo(19)
+        // the way text layout is calculated with ellipsis is vastly different before and
+        // after API 23. Last visible offset logic cannot be unified below API 23.
+        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
+            assertThat(lastVisibleOffset).isEqualTo(19)
+        } else {
+            assertThat(lastVisibleOffset).isEqualTo(17)
+        }
     }
 
     // start = height constrained
@@ -1749,7 +1738,7 @@
 
         val lastVisibleOffset = selectable.getLastVisibleOffset()
 
-        assertThat(lastVisibleOffset).isEqualTo(text.length)
+        assertThat(lastVisibleOffset).isEqualTo(text.length - 1) // ignores last whitespace
     }
 
     // start = ellipsis
@@ -1780,8 +1769,6 @@
         assertThat(lastVisibleOffset).isEqualTo(11)
     }
 
-    // TODO(b/270441925); Returns a different result below API 26.
-    @SdkSuppress(minSdkVersion = 26)
     @Test
     fun getLastVisibleOffset_limitHeight_ellipsis_enabledSoftwrap_singleLineContent() {
         val text = "hello world ".repeat(10)
@@ -1805,7 +1792,13 @@
 
         val lastVisibleOffset = selectable.getLastVisibleOffset()
 
-        assertThat(lastVisibleOffset).isEqualTo(9)
+        // the way text layout is calculated with ellipsis is vastly different before and
+        // after API 23. Last visible offset logic cannot be unified below API 23.
+        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
+            assertThat(lastVisibleOffset).isEqualTo(9)
+        } else {
+            assertThat(lastVisibleOffset).isEqualTo(5)
+        }
     }
 
     // start = disabled soft wrap
@@ -1835,8 +1828,6 @@
         assertThat(lastVisibleOffset).isEqualTo(5)
     }
 
-    // TODO(b/270441925); Returns a different result below API 26.
-    @SdkSuppress(minSdkVersion = 26)
     @Test
     fun getLastVisibleOffset_limitHeight_ellipsis_disabledSoftwrap_singleLineContent() {
         val text = "hello world ".repeat(10)
@@ -1860,7 +1851,13 @@
 
         val lastVisibleOffset = selectable.getLastVisibleOffset()
 
-        assertThat(lastVisibleOffset).isEqualTo(19)
+        // the way text layout is calculated with ellipsis is vastly different before and
+        // after API 23. Last visible offset logic cannot be unified below API 23.
+        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
+            assertThat(lastVisibleOffset).isEqualTo(19)
+        } else {
+            assertThat(lastVisibleOffset).isEqualTo(17)
+        }
     }
 
     @Test
diff --git a/compose/foundation/foundation/src/androidAndroidTest/kotlin/androidx/compose/foundation/textfield/TextFieldTest.kt b/compose/foundation/foundation/src/androidAndroidTest/kotlin/androidx/compose/foundation/textfield/TextFieldTest.kt
index e697e3c..cbb944d 100644
--- a/compose/foundation/foundation/src/androidAndroidTest/kotlin/androidx/compose/foundation/textfield/TextFieldTest.kt
+++ b/compose/foundation/foundation/src/androidAndroidTest/kotlin/androidx/compose/foundation/textfield/TextFieldTest.kt
@@ -63,8 +63,6 @@
 import androidx.compose.ui.graphics.Shadow
 import androidx.compose.ui.graphics.SolidColor
 import androidx.compose.ui.graphics.toPixelMap
-import androidx.compose.ui.input.key.KeyEvent
-import androidx.compose.ui.input.key.NativeKeyEvent
 import androidx.compose.ui.layout.onGloballyPositioned
 import androidx.compose.ui.platform.LocalDensity
 import androidx.compose.ui.platform.LocalFocusManager
@@ -92,11 +90,9 @@
 import androidx.compose.ui.test.isNotFocused
 import androidx.compose.ui.test.junit4.StateRestorationTester
 import androidx.compose.ui.test.junit4.createComposeRule
-import androidx.compose.ui.test.longClick
 import androidx.compose.ui.test.onNodeWithTag
 import androidx.compose.ui.test.performClick
 import androidx.compose.ui.test.performImeAction
-import androidx.compose.ui.test.performKeyPress
 import androidx.compose.ui.test.performSemanticsAction
 import androidx.compose.ui.test.performTextClearance
 import androidx.compose.ui.test.performTextInput
@@ -1244,7 +1240,6 @@
             )
         }
         val textNode = rule.onNodeWithTag(Tag)
-        textNode.performTouchInput { longClick() }
         textNode.performTextInputSelection(TextRange(0, 4))
         textFieldValue.value = ""
 
@@ -1271,7 +1266,6 @@
             )
         }
         val textNode = rule.onNodeWithTag(Tag)
-        textNode.performTouchInput { longClick() }
         textNode.performTextInputSelection(TextRange(2, 8))
         textFieldValue.value = "Hello"
 
@@ -1299,7 +1293,6 @@
             )
         }
         val textNode = rule.onNodeWithTag(Tag)
-        textNode.performTouchInput { longClick() }
         textNode.performTextInputSelection(TextRange(0, 4))
         rule.waitForIdle()
 
@@ -1333,7 +1326,6 @@
             )
         }
         val textNode = rule.onNodeWithTag(Tag)
-        textNode.performTouchInput { longClick() }
         textNode.performTextInputSelection(TextRange(0, 4))
         rule.waitForIdle()
 
@@ -1351,7 +1343,6 @@
         assertThat(actual).isEqualTo(expected)
     }
 
-    @OptIn(ExperimentalTestApi::class)
     @Test
     fun whenSelectedTextIsRemovedByIME_SelectionDoesNotRevert() {
         // hard to find a descriptive name. Take a look at
@@ -1370,24 +1361,7 @@
             )
         }
         val textNode = rule.onNodeWithTag(Tag)
-        textNode.performSemanticsAction(SemanticsActions.RequestFocus)
-        textNode.performTextInputSelection(TextRange(0, 5))
-        textNode.performKeyPress(
-            KeyEvent(
-                NativeKeyEvent(
-                    NativeKeyEvent.ACTION_DOWN,
-                    NativeKeyEvent.KEYCODE_DEL
-                )
-            )
-        )
-        textNode.performKeyPress(
-            KeyEvent(
-                NativeKeyEvent(
-                    NativeKeyEvent.ACTION_UP,
-                    NativeKeyEvent.KEYCODE_DEL
-                )
-            )
-        )
+        textNode.performTextClearance()
 
         rule.waitForIdle()
         textNode.assertTextEquals("")
diff --git a/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/pager/PagerState.kt b/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/pager/PagerState.kt
index ea799c2..9b466ea 100644
--- a/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/pager/PagerState.kt
+++ b/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/pager/PagerState.kt
@@ -447,7 +447,9 @@
         pageOffsetFraction: Float = 0f,
         animationSpec: AnimationSpec<Float> = spring(stiffness = Spring.StiffnessMediumLow)
     ) {
-        if (page == currentPage && currentPageOffsetFraction == pageOffsetFraction) return
+        if (page == currentPage && currentPageOffsetFraction == pageOffsetFraction ||
+            pageCount == 0
+        ) return
         awaitScrollDependencies()
         require(pageOffsetFraction in -0.5..0.5) {
             "pageOffsetFraction $pageOffsetFraction is not within the range -0.5 to 0.5"
diff --git a/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/selection/TextFieldSelectionManager.kt b/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/selection/TextFieldSelectionManager.kt
index e29b20b..25557de 100644
--- a/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/selection/TextFieldSelectionManager.kt
+++ b/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/selection/TextFieldSelectionManager.kt
@@ -867,12 +867,7 @@
     // If the text hasn't been laid out yet, don't show the modifier.
     val offsetCenter = layoutResult.getBoundingBox(textOffset).center
 
-    val containerCoordinates = manager.state?.layoutCoordinates ?: return Offset.Unspecified
-    val fieldCoordinates =
-        manager.state?.layoutResult?.innerTextFieldCoordinates ?: return Offset.Unspecified
-    val localDragPosition = manager.currentDragPosition?.let {
-        fieldCoordinates.localPositionOf(containerCoordinates, it)
-    } ?: return Offset.Unspecified
+    val localDragPosition = manager.currentDragPosition ?: return Offset.Unspecified
     val dragX = localDragPosition.x
     val line = layoutResult.getLineForOffset(textOffset)
     val lineStartOffset = layoutResult.getLineStart(line)
@@ -899,8 +894,5 @@
         return Offset.Unspecified
     }
 
-    return containerCoordinates.localPositionOf(
-        fieldCoordinates,
-        Offset(centerX, offsetCenter.y)
-    )
+    return Offset(centerX, offsetCenter.y)
 }
\ No newline at end of file
diff --git a/compose/material/material-icons-core/api/public_plus_experimental_current.txt b/compose/material/material-icons-core/api/1.5.0-beta01.txt
similarity index 100%
rename from compose/material/material-icons-core/api/public_plus_experimental_current.txt
rename to compose/material/material-icons-core/api/1.5.0-beta01.txt
diff --git a/compose/material/material-icons-core/api/res-1.5.0-beta01.txt b/compose/material/material-icons-core/api/res-1.5.0-beta01.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/compose/material/material-icons-core/api/res-1.5.0-beta01.txt
diff --git a/compose/material/material-icons-core/api/restricted_1.5.0-beta01.txt b/compose/material/material-icons-core/api/restricted_1.5.0-beta01.txt
new file mode 100644
index 0000000..619d449
--- /dev/null
+++ b/compose/material/material-icons-core/api/restricted_1.5.0-beta01.txt
@@ -0,0 +1,1037 @@
+// Signature format: 4.0
+package androidx.compose.material.icons {
+
+  public final class Icons {
+    method public androidx.compose.material.icons.Icons.Filled getDefault();
+    property public final androidx.compose.material.icons.Icons.Filled Default;
+    field public static final androidx.compose.material.icons.Icons INSTANCE;
+  }
+
+  public static final class Icons.Filled {
+    field public static final androidx.compose.material.icons.Icons.Filled INSTANCE;
+  }
+
+  public static final class Icons.Outlined {
+    field public static final androidx.compose.material.icons.Icons.Outlined INSTANCE;
+  }
+
+  public static final class Icons.Rounded {
+    field public static final androidx.compose.material.icons.Icons.Rounded INSTANCE;
+  }
+
+  public static final class Icons.Sharp {
+    field public static final androidx.compose.material.icons.Icons.Sharp INSTANCE;
+  }
+
+  public static final class Icons.TwoTone {
+    field public static final androidx.compose.material.icons.Icons.TwoTone INSTANCE;
+  }
+
+  public final class IconsKt {
+    method public static inline androidx.compose.ui.graphics.vector.ImageVector materialIcon(String name, kotlin.jvm.functions.Function1<? super androidx.compose.ui.graphics.vector.ImageVector.Builder,androidx.compose.ui.graphics.vector.ImageVector.Builder> block);
+    method public static inline androidx.compose.ui.graphics.vector.ImageVector.Builder materialPath(androidx.compose.ui.graphics.vector.ImageVector.Builder, optional float fillAlpha, optional float strokeAlpha, optional int pathFillType, kotlin.jvm.functions.Function1<? super androidx.compose.ui.graphics.vector.PathBuilder,kotlin.Unit> pathBuilder);
+    field @kotlin.PublishedApi internal static final float MaterialIconDimension = 24.0f;
+  }
+
+}
+
+package androidx.compose.material.icons.filled {
+
+  public final class AccountBoxKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getAccountBox(androidx.compose.material.icons.Icons.Filled);
+  }
+
+  public final class AccountCircleKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getAccountCircle(androidx.compose.material.icons.Icons.Filled);
+  }
+
+  public final class AddCircleKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getAddCircle(androidx.compose.material.icons.Icons.Filled);
+  }
+
+  public final class AddKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getAdd(androidx.compose.material.icons.Icons.Filled);
+  }
+
+  public final class ArrowBackKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getArrowBack(androidx.compose.material.icons.Icons.Filled);
+  }
+
+  public final class ArrowDropDownKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getArrowDropDown(androidx.compose.material.icons.Icons.Filled);
+  }
+
+  public final class ArrowForwardKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getArrowForward(androidx.compose.material.icons.Icons.Filled);
+  }
+
+  public final class BuildKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getBuild(androidx.compose.material.icons.Icons.Filled);
+  }
+
+  public final class CallKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getCall(androidx.compose.material.icons.Icons.Filled);
+  }
+
+  public final class CheckCircleKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getCheckCircle(androidx.compose.material.icons.Icons.Filled);
+  }
+
+  public final class CheckKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getCheck(androidx.compose.material.icons.Icons.Filled);
+  }
+
+  public final class ClearKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getClear(androidx.compose.material.icons.Icons.Filled);
+  }
+
+  public final class CloseKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getClose(androidx.compose.material.icons.Icons.Filled);
+  }
+
+  public final class CreateKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getCreate(androidx.compose.material.icons.Icons.Filled);
+  }
+
+  public final class DateRangeKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getDateRange(androidx.compose.material.icons.Icons.Filled);
+  }
+
+  public final class DeleteKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getDelete(androidx.compose.material.icons.Icons.Filled);
+  }
+
+  public final class DoneKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getDone(androidx.compose.material.icons.Icons.Filled);
+  }
+
+  public final class EditKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getEdit(androidx.compose.material.icons.Icons.Filled);
+  }
+
+  public final class EmailKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getEmail(androidx.compose.material.icons.Icons.Filled);
+  }
+
+  public final class ExitToAppKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getExitToApp(androidx.compose.material.icons.Icons.Filled);
+  }
+
+  public final class FaceKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getFace(androidx.compose.material.icons.Icons.Filled);
+  }
+
+  public final class FavoriteBorderKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getFavoriteBorder(androidx.compose.material.icons.Icons.Filled);
+  }
+
+  public final class FavoriteKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getFavorite(androidx.compose.material.icons.Icons.Filled);
+  }
+
+  public final class HomeKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getHome(androidx.compose.material.icons.Icons.Filled);
+  }
+
+  public final class InfoKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getInfo(androidx.compose.material.icons.Icons.Filled);
+  }
+
+  public final class KeyboardArrowDownKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getKeyboardArrowDown(androidx.compose.material.icons.Icons.Filled);
+  }
+
+  public final class KeyboardArrowLeftKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getKeyboardArrowLeft(androidx.compose.material.icons.Icons.Filled);
+  }
+
+  public final class KeyboardArrowRightKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getKeyboardArrowRight(androidx.compose.material.icons.Icons.Filled);
+  }
+
+  public final class KeyboardArrowUpKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getKeyboardArrowUp(androidx.compose.material.icons.Icons.Filled);
+  }
+
+  public final class ListKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getList(androidx.compose.material.icons.Icons.Filled);
+  }
+
+  public final class LocationOnKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getLocationOn(androidx.compose.material.icons.Icons.Filled);
+  }
+
+  public final class LockKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getLock(androidx.compose.material.icons.Icons.Filled);
+  }
+
+  public final class MailOutlineKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getMailOutline(androidx.compose.material.icons.Icons.Filled);
+  }
+
+  public final class MenuKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getMenu(androidx.compose.material.icons.Icons.Filled);
+  }
+
+  public final class MoreVertKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getMoreVert(androidx.compose.material.icons.Icons.Filled);
+  }
+
+  public final class NotificationsKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getNotifications(androidx.compose.material.icons.Icons.Filled);
+  }
+
+  public final class PersonKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getPerson(androidx.compose.material.icons.Icons.Filled);
+  }
+
+  public final class PhoneKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getPhone(androidx.compose.material.icons.Icons.Filled);
+  }
+
+  public final class PlaceKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getPlace(androidx.compose.material.icons.Icons.Filled);
+  }
+
+  public final class PlayArrowKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getPlayArrow(androidx.compose.material.icons.Icons.Filled);
+  }
+
+  public final class RefreshKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getRefresh(androidx.compose.material.icons.Icons.Filled);
+  }
+
+  public final class SearchKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getSearch(androidx.compose.material.icons.Icons.Filled);
+  }
+
+  public final class SendKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getSend(androidx.compose.material.icons.Icons.Filled);
+  }
+
+  public final class SettingsKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getSettings(androidx.compose.material.icons.Icons.Filled);
+  }
+
+  public final class ShareKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getShare(androidx.compose.material.icons.Icons.Filled);
+  }
+
+  public final class ShoppingCartKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getShoppingCart(androidx.compose.material.icons.Icons.Filled);
+  }
+
+  public final class StarKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getStar(androidx.compose.material.icons.Icons.Filled);
+  }
+
+  public final class ThumbUpKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getThumbUp(androidx.compose.material.icons.Icons.Filled);
+  }
+
+  public final class WarningKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getWarning(androidx.compose.material.icons.Icons.Filled);
+  }
+
+}
+
+package androidx.compose.material.icons.outlined {
+
+  public final class AccountBoxKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getAccountBox(androidx.compose.material.icons.Icons.Outlined);
+  }
+
+  public final class AccountCircleKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getAccountCircle(androidx.compose.material.icons.Icons.Outlined);
+  }
+
+  public final class AddCircleKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getAddCircle(androidx.compose.material.icons.Icons.Outlined);
+  }
+
+  public final class AddKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getAdd(androidx.compose.material.icons.Icons.Outlined);
+  }
+
+  public final class ArrowBackKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getArrowBack(androidx.compose.material.icons.Icons.Outlined);
+  }
+
+  public final class ArrowDropDownKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getArrowDropDown(androidx.compose.material.icons.Icons.Outlined);
+  }
+
+  public final class ArrowForwardKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getArrowForward(androidx.compose.material.icons.Icons.Outlined);
+  }
+
+  public final class BuildKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getBuild(androidx.compose.material.icons.Icons.Outlined);
+  }
+
+  public final class CallKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getCall(androidx.compose.material.icons.Icons.Outlined);
+  }
+
+  public final class CheckCircleKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getCheckCircle(androidx.compose.material.icons.Icons.Outlined);
+  }
+
+  public final class CheckKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getCheck(androidx.compose.material.icons.Icons.Outlined);
+  }
+
+  public final class ClearKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getClear(androidx.compose.material.icons.Icons.Outlined);
+  }
+
+  public final class CloseKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getClose(androidx.compose.material.icons.Icons.Outlined);
+  }
+
+  public final class CreateKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getCreate(androidx.compose.material.icons.Icons.Outlined);
+  }
+
+  public final class DateRangeKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getDateRange(androidx.compose.material.icons.Icons.Outlined);
+  }
+
+  public final class DeleteKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getDelete(androidx.compose.material.icons.Icons.Outlined);
+  }
+
+  public final class DoneKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getDone(androidx.compose.material.icons.Icons.Outlined);
+  }
+
+  public final class EditKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getEdit(androidx.compose.material.icons.Icons.Outlined);
+  }
+
+  public final class EmailKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getEmail(androidx.compose.material.icons.Icons.Outlined);
+  }
+
+  public final class ExitToAppKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getExitToApp(androidx.compose.material.icons.Icons.Outlined);
+  }
+
+  public final class FaceKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getFace(androidx.compose.material.icons.Icons.Outlined);
+  }
+
+  public final class FavoriteBorderKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getFavoriteBorder(androidx.compose.material.icons.Icons.Outlined);
+  }
+
+  public final class FavoriteKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getFavorite(androidx.compose.material.icons.Icons.Outlined);
+  }
+
+  public final class HomeKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getHome(androidx.compose.material.icons.Icons.Outlined);
+  }
+
+  public final class InfoKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getInfo(androidx.compose.material.icons.Icons.Outlined);
+  }
+
+  public final class KeyboardArrowDownKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getKeyboardArrowDown(androidx.compose.material.icons.Icons.Outlined);
+  }
+
+  public final class KeyboardArrowLeftKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getKeyboardArrowLeft(androidx.compose.material.icons.Icons.Outlined);
+  }
+
+  public final class KeyboardArrowRightKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getKeyboardArrowRight(androidx.compose.material.icons.Icons.Outlined);
+  }
+
+  public final class KeyboardArrowUpKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getKeyboardArrowUp(androidx.compose.material.icons.Icons.Outlined);
+  }
+
+  public final class ListKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getList(androidx.compose.material.icons.Icons.Outlined);
+  }
+
+  public final class LocationOnKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getLocationOn(androidx.compose.material.icons.Icons.Outlined);
+  }
+
+  public final class LockKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getLock(androidx.compose.material.icons.Icons.Outlined);
+  }
+
+  public final class MailOutlineKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getMailOutline(androidx.compose.material.icons.Icons.Outlined);
+  }
+
+  public final class MenuKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getMenu(androidx.compose.material.icons.Icons.Outlined);
+  }
+
+  public final class MoreVertKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getMoreVert(androidx.compose.material.icons.Icons.Outlined);
+  }
+
+  public final class NotificationsKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getNotifications(androidx.compose.material.icons.Icons.Outlined);
+  }
+
+  public final class PersonKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getPerson(androidx.compose.material.icons.Icons.Outlined);
+  }
+
+  public final class PhoneKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getPhone(androidx.compose.material.icons.Icons.Outlined);
+  }
+
+  public final class PlaceKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getPlace(androidx.compose.material.icons.Icons.Outlined);
+  }
+
+  public final class PlayArrowKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getPlayArrow(androidx.compose.material.icons.Icons.Outlined);
+  }
+
+  public final class RefreshKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getRefresh(androidx.compose.material.icons.Icons.Outlined);
+  }
+
+  public final class SearchKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getSearch(androidx.compose.material.icons.Icons.Outlined);
+  }
+
+  public final class SendKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getSend(androidx.compose.material.icons.Icons.Outlined);
+  }
+
+  public final class SettingsKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getSettings(androidx.compose.material.icons.Icons.Outlined);
+  }
+
+  public final class ShareKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getShare(androidx.compose.material.icons.Icons.Outlined);
+  }
+
+  public final class ShoppingCartKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getShoppingCart(androidx.compose.material.icons.Icons.Outlined);
+  }
+
+  public final class StarKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getStar(androidx.compose.material.icons.Icons.Outlined);
+  }
+
+  public final class ThumbUpKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getThumbUp(androidx.compose.material.icons.Icons.Outlined);
+  }
+
+  public final class WarningKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getWarning(androidx.compose.material.icons.Icons.Outlined);
+  }
+
+}
+
+package androidx.compose.material.icons.rounded {
+
+  public final class AccountBoxKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getAccountBox(androidx.compose.material.icons.Icons.Rounded);
+  }
+
+  public final class AccountCircleKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getAccountCircle(androidx.compose.material.icons.Icons.Rounded);
+  }
+
+  public final class AddCircleKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getAddCircle(androidx.compose.material.icons.Icons.Rounded);
+  }
+
+  public final class AddKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getAdd(androidx.compose.material.icons.Icons.Rounded);
+  }
+
+  public final class ArrowBackKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getArrowBack(androidx.compose.material.icons.Icons.Rounded);
+  }
+
+  public final class ArrowDropDownKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getArrowDropDown(androidx.compose.material.icons.Icons.Rounded);
+  }
+
+  public final class ArrowForwardKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getArrowForward(androidx.compose.material.icons.Icons.Rounded);
+  }
+
+  public final class BuildKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getBuild(androidx.compose.material.icons.Icons.Rounded);
+  }
+
+  public final class CallKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getCall(androidx.compose.material.icons.Icons.Rounded);
+  }
+
+  public final class CheckCircleKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getCheckCircle(androidx.compose.material.icons.Icons.Rounded);
+  }
+
+  public final class CheckKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getCheck(androidx.compose.material.icons.Icons.Rounded);
+  }
+
+  public final class ClearKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getClear(androidx.compose.material.icons.Icons.Rounded);
+  }
+
+  public final class CloseKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getClose(androidx.compose.material.icons.Icons.Rounded);
+  }
+
+  public final class CreateKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getCreate(androidx.compose.material.icons.Icons.Rounded);
+  }
+
+  public final class DateRangeKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getDateRange(androidx.compose.material.icons.Icons.Rounded);
+  }
+
+  public final class DeleteKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getDelete(androidx.compose.material.icons.Icons.Rounded);
+  }
+
+  public final class DoneKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getDone(androidx.compose.material.icons.Icons.Rounded);
+  }
+
+  public final class EditKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getEdit(androidx.compose.material.icons.Icons.Rounded);
+  }
+
+  public final class EmailKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getEmail(androidx.compose.material.icons.Icons.Rounded);
+  }
+
+  public final class ExitToAppKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getExitToApp(androidx.compose.material.icons.Icons.Rounded);
+  }
+
+  public final class FaceKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getFace(androidx.compose.material.icons.Icons.Rounded);
+  }
+
+  public final class FavoriteBorderKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getFavoriteBorder(androidx.compose.material.icons.Icons.Rounded);
+  }
+
+  public final class FavoriteKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getFavorite(androidx.compose.material.icons.Icons.Rounded);
+  }
+
+  public final class HomeKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getHome(androidx.compose.material.icons.Icons.Rounded);
+  }
+
+  public final class InfoKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getInfo(androidx.compose.material.icons.Icons.Rounded);
+  }
+
+  public final class KeyboardArrowDownKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getKeyboardArrowDown(androidx.compose.material.icons.Icons.Rounded);
+  }
+
+  public final class KeyboardArrowLeftKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getKeyboardArrowLeft(androidx.compose.material.icons.Icons.Rounded);
+  }
+
+  public final class KeyboardArrowRightKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getKeyboardArrowRight(androidx.compose.material.icons.Icons.Rounded);
+  }
+
+  public final class KeyboardArrowUpKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getKeyboardArrowUp(androidx.compose.material.icons.Icons.Rounded);
+  }
+
+  public final class ListKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getList(androidx.compose.material.icons.Icons.Rounded);
+  }
+
+  public final class LocationOnKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getLocationOn(androidx.compose.material.icons.Icons.Rounded);
+  }
+
+  public final class LockKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getLock(androidx.compose.material.icons.Icons.Rounded);
+  }
+
+  public final class MailOutlineKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getMailOutline(androidx.compose.material.icons.Icons.Rounded);
+  }
+
+  public final class MenuKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getMenu(androidx.compose.material.icons.Icons.Rounded);
+  }
+
+  public final class MoreVertKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getMoreVert(androidx.compose.material.icons.Icons.Rounded);
+  }
+
+  public final class NotificationsKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getNotifications(androidx.compose.material.icons.Icons.Rounded);
+  }
+
+  public final class PersonKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getPerson(androidx.compose.material.icons.Icons.Rounded);
+  }
+
+  public final class PhoneKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getPhone(androidx.compose.material.icons.Icons.Rounded);
+  }
+
+  public final class PlaceKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getPlace(androidx.compose.material.icons.Icons.Rounded);
+  }
+
+  public final class PlayArrowKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getPlayArrow(androidx.compose.material.icons.Icons.Rounded);
+  }
+
+  public final class RefreshKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getRefresh(androidx.compose.material.icons.Icons.Rounded);
+  }
+
+  public final class SearchKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getSearch(androidx.compose.material.icons.Icons.Rounded);
+  }
+
+  public final class SendKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getSend(androidx.compose.material.icons.Icons.Rounded);
+  }
+
+  public final class SettingsKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getSettings(androidx.compose.material.icons.Icons.Rounded);
+  }
+
+  public final class ShareKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getShare(androidx.compose.material.icons.Icons.Rounded);
+  }
+
+  public final class ShoppingCartKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getShoppingCart(androidx.compose.material.icons.Icons.Rounded);
+  }
+
+  public final class StarKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getStar(androidx.compose.material.icons.Icons.Rounded);
+  }
+
+  public final class ThumbUpKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getThumbUp(androidx.compose.material.icons.Icons.Rounded);
+  }
+
+  public final class WarningKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getWarning(androidx.compose.material.icons.Icons.Rounded);
+  }
+
+}
+
+package androidx.compose.material.icons.sharp {
+
+  public final class AccountBoxKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getAccountBox(androidx.compose.material.icons.Icons.Sharp);
+  }
+
+  public final class AccountCircleKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getAccountCircle(androidx.compose.material.icons.Icons.Sharp);
+  }
+
+  public final class AddCircleKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getAddCircle(androidx.compose.material.icons.Icons.Sharp);
+  }
+
+  public final class AddKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getAdd(androidx.compose.material.icons.Icons.Sharp);
+  }
+
+  public final class ArrowBackKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getArrowBack(androidx.compose.material.icons.Icons.Sharp);
+  }
+
+  public final class ArrowDropDownKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getArrowDropDown(androidx.compose.material.icons.Icons.Sharp);
+  }
+
+  public final class ArrowForwardKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getArrowForward(androidx.compose.material.icons.Icons.Sharp);
+  }
+
+  public final class BuildKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getBuild(androidx.compose.material.icons.Icons.Sharp);
+  }
+
+  public final class CallKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getCall(androidx.compose.material.icons.Icons.Sharp);
+  }
+
+  public final class CheckCircleKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getCheckCircle(androidx.compose.material.icons.Icons.Sharp);
+  }
+
+  public final class CheckKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getCheck(androidx.compose.material.icons.Icons.Sharp);
+  }
+
+  public final class ClearKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getClear(androidx.compose.material.icons.Icons.Sharp);
+  }
+
+  public final class CloseKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getClose(androidx.compose.material.icons.Icons.Sharp);
+  }
+
+  public final class CreateKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getCreate(androidx.compose.material.icons.Icons.Sharp);
+  }
+
+  public final class DateRangeKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getDateRange(androidx.compose.material.icons.Icons.Sharp);
+  }
+
+  public final class DeleteKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getDelete(androidx.compose.material.icons.Icons.Sharp);
+  }
+
+  public final class DoneKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getDone(androidx.compose.material.icons.Icons.Sharp);
+  }
+
+  public final class EditKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getEdit(androidx.compose.material.icons.Icons.Sharp);
+  }
+
+  public final class EmailKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getEmail(androidx.compose.material.icons.Icons.Sharp);
+  }
+
+  public final class ExitToAppKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getExitToApp(androidx.compose.material.icons.Icons.Sharp);
+  }
+
+  public final class FaceKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getFace(androidx.compose.material.icons.Icons.Sharp);
+  }
+
+  public final class FavoriteBorderKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getFavoriteBorder(androidx.compose.material.icons.Icons.Sharp);
+  }
+
+  public final class FavoriteKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getFavorite(androidx.compose.material.icons.Icons.Sharp);
+  }
+
+  public final class HomeKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getHome(androidx.compose.material.icons.Icons.Sharp);
+  }
+
+  public final class InfoKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getInfo(androidx.compose.material.icons.Icons.Sharp);
+  }
+
+  public final class KeyboardArrowDownKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getKeyboardArrowDown(androidx.compose.material.icons.Icons.Sharp);
+  }
+
+  public final class KeyboardArrowLeftKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getKeyboardArrowLeft(androidx.compose.material.icons.Icons.Sharp);
+  }
+
+  public final class KeyboardArrowRightKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getKeyboardArrowRight(androidx.compose.material.icons.Icons.Sharp);
+  }
+
+  public final class KeyboardArrowUpKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getKeyboardArrowUp(androidx.compose.material.icons.Icons.Sharp);
+  }
+
+  public final class ListKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getList(androidx.compose.material.icons.Icons.Sharp);
+  }
+
+  public final class LocationOnKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getLocationOn(androidx.compose.material.icons.Icons.Sharp);
+  }
+
+  public final class LockKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getLock(androidx.compose.material.icons.Icons.Sharp);
+  }
+
+  public final class MailOutlineKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getMailOutline(androidx.compose.material.icons.Icons.Sharp);
+  }
+
+  public final class MenuKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getMenu(androidx.compose.material.icons.Icons.Sharp);
+  }
+
+  public final class MoreVertKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getMoreVert(androidx.compose.material.icons.Icons.Sharp);
+  }
+
+  public final class NotificationsKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getNotifications(androidx.compose.material.icons.Icons.Sharp);
+  }
+
+  public final class PersonKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getPerson(androidx.compose.material.icons.Icons.Sharp);
+  }
+
+  public final class PhoneKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getPhone(androidx.compose.material.icons.Icons.Sharp);
+  }
+
+  public final class PlaceKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getPlace(androidx.compose.material.icons.Icons.Sharp);
+  }
+
+  public final class PlayArrowKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getPlayArrow(androidx.compose.material.icons.Icons.Sharp);
+  }
+
+  public final class RefreshKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getRefresh(androidx.compose.material.icons.Icons.Sharp);
+  }
+
+  public final class SearchKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getSearch(androidx.compose.material.icons.Icons.Sharp);
+  }
+
+  public final class SendKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getSend(androidx.compose.material.icons.Icons.Sharp);
+  }
+
+  public final class SettingsKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getSettings(androidx.compose.material.icons.Icons.Sharp);
+  }
+
+  public final class ShareKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getShare(androidx.compose.material.icons.Icons.Sharp);
+  }
+
+  public final class ShoppingCartKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getShoppingCart(androidx.compose.material.icons.Icons.Sharp);
+  }
+
+  public final class StarKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getStar(androidx.compose.material.icons.Icons.Sharp);
+  }
+
+  public final class ThumbUpKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getThumbUp(androidx.compose.material.icons.Icons.Sharp);
+  }
+
+  public final class WarningKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getWarning(androidx.compose.material.icons.Icons.Sharp);
+  }
+
+}
+
+package androidx.compose.material.icons.twotone {
+
+  public final class AccountBoxKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getAccountBox(androidx.compose.material.icons.Icons.TwoTone);
+  }
+
+  public final class AccountCircleKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getAccountCircle(androidx.compose.material.icons.Icons.TwoTone);
+  }
+
+  public final class AddCircleKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getAddCircle(androidx.compose.material.icons.Icons.TwoTone);
+  }
+
+  public final class AddKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getAdd(androidx.compose.material.icons.Icons.TwoTone);
+  }
+
+  public final class ArrowBackKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getArrowBack(androidx.compose.material.icons.Icons.TwoTone);
+  }
+
+  public final class ArrowDropDownKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getArrowDropDown(androidx.compose.material.icons.Icons.TwoTone);
+  }
+
+  public final class ArrowForwardKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getArrowForward(androidx.compose.material.icons.Icons.TwoTone);
+  }
+
+  public final class BuildKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getBuild(androidx.compose.material.icons.Icons.TwoTone);
+  }
+
+  public final class CallKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getCall(androidx.compose.material.icons.Icons.TwoTone);
+  }
+
+  public final class CheckCircleKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getCheckCircle(androidx.compose.material.icons.Icons.TwoTone);
+  }
+
+  public final class CheckKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getCheck(androidx.compose.material.icons.Icons.TwoTone);
+  }
+
+  public final class ClearKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getClear(androidx.compose.material.icons.Icons.TwoTone);
+  }
+
+  public final class CloseKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getClose(androidx.compose.material.icons.Icons.TwoTone);
+  }
+
+  public final class CreateKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getCreate(androidx.compose.material.icons.Icons.TwoTone);
+  }
+
+  public final class DateRangeKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getDateRange(androidx.compose.material.icons.Icons.TwoTone);
+  }
+
+  public final class DeleteKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getDelete(androidx.compose.material.icons.Icons.TwoTone);
+  }
+
+  public final class DoneKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getDone(androidx.compose.material.icons.Icons.TwoTone);
+  }
+
+  public final class EditKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getEdit(androidx.compose.material.icons.Icons.TwoTone);
+  }
+
+  public final class EmailKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getEmail(androidx.compose.material.icons.Icons.TwoTone);
+  }
+
+  public final class ExitToAppKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getExitToApp(androidx.compose.material.icons.Icons.TwoTone);
+  }
+
+  public final class FaceKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getFace(androidx.compose.material.icons.Icons.TwoTone);
+  }
+
+  public final class FavoriteBorderKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getFavoriteBorder(androidx.compose.material.icons.Icons.TwoTone);
+  }
+
+  public final class FavoriteKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getFavorite(androidx.compose.material.icons.Icons.TwoTone);
+  }
+
+  public final class HomeKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getHome(androidx.compose.material.icons.Icons.TwoTone);
+  }
+
+  public final class InfoKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getInfo(androidx.compose.material.icons.Icons.TwoTone);
+  }
+
+  public final class KeyboardArrowDownKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getKeyboardArrowDown(androidx.compose.material.icons.Icons.TwoTone);
+  }
+
+  public final class KeyboardArrowLeftKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getKeyboardArrowLeft(androidx.compose.material.icons.Icons.TwoTone);
+  }
+
+  public final class KeyboardArrowRightKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getKeyboardArrowRight(androidx.compose.material.icons.Icons.TwoTone);
+  }
+
+  public final class KeyboardArrowUpKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getKeyboardArrowUp(androidx.compose.material.icons.Icons.TwoTone);
+  }
+
+  public final class ListKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getList(androidx.compose.material.icons.Icons.TwoTone);
+  }
+
+  public final class LocationOnKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getLocationOn(androidx.compose.material.icons.Icons.TwoTone);
+  }
+
+  public final class LockKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getLock(androidx.compose.material.icons.Icons.TwoTone);
+  }
+
+  public final class MailOutlineKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getMailOutline(androidx.compose.material.icons.Icons.TwoTone);
+  }
+
+  public final class MenuKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getMenu(androidx.compose.material.icons.Icons.TwoTone);
+  }
+
+  public final class MoreVertKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getMoreVert(androidx.compose.material.icons.Icons.TwoTone);
+  }
+
+  public final class NotificationsKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getNotifications(androidx.compose.material.icons.Icons.TwoTone);
+  }
+
+  public final class PersonKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getPerson(androidx.compose.material.icons.Icons.TwoTone);
+  }
+
+  public final class PhoneKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getPhone(androidx.compose.material.icons.Icons.TwoTone);
+  }
+
+  public final class PlaceKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getPlace(androidx.compose.material.icons.Icons.TwoTone);
+  }
+
+  public final class PlayArrowKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getPlayArrow(androidx.compose.material.icons.Icons.TwoTone);
+  }
+
+  public final class RefreshKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getRefresh(androidx.compose.material.icons.Icons.TwoTone);
+  }
+
+  public final class SearchKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getSearch(androidx.compose.material.icons.Icons.TwoTone);
+  }
+
+  public final class SendKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getSend(androidx.compose.material.icons.Icons.TwoTone);
+  }
+
+  public final class SettingsKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getSettings(androidx.compose.material.icons.Icons.TwoTone);
+  }
+
+  public final class ShareKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getShare(androidx.compose.material.icons.Icons.TwoTone);
+  }
+
+  public final class ShoppingCartKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getShoppingCart(androidx.compose.material.icons.Icons.TwoTone);
+  }
+
+  public final class StarKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getStar(androidx.compose.material.icons.Icons.TwoTone);
+  }
+
+  public final class ThumbUpKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getThumbUp(androidx.compose.material.icons.Icons.TwoTone);
+  }
+
+  public final class WarningKt {
+    method public static androidx.compose.ui.graphics.vector.ImageVector getWarning(androidx.compose.material.icons.Icons.TwoTone);
+  }
+
+}
+
diff --git a/compose/material/material-ripple/api/public_plus_experimental_current.txt b/compose/material/material-ripple/api/1.5.0-beta01.txt
similarity index 100%
rename from compose/material/material-ripple/api/public_plus_experimental_current.txt
rename to compose/material/material-ripple/api/1.5.0-beta01.txt
diff --git a/compose/material/material-ripple/api/res-1.5.0-beta01.txt b/compose/material/material-ripple/api/res-1.5.0-beta01.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/compose/material/material-ripple/api/res-1.5.0-beta01.txt
diff --git a/compose/material/material-ripple/api/public_plus_experimental_current.txt b/compose/material/material-ripple/api/restricted_1.5.0-beta01.txt
similarity index 100%
copy from compose/material/material-ripple/api/public_plus_experimental_current.txt
copy to compose/material/material-ripple/api/restricted_1.5.0-beta01.txt
diff --git a/compose/material/material/api/public_plus_experimental_current.txt b/compose/material/material/api/1.5.0-beta01.txt
similarity index 100%
rename from compose/material/material/api/public_plus_experimental_current.txt
rename to compose/material/material/api/1.5.0-beta01.txt
diff --git a/compose/material/material/api/current.txt b/compose/material/material/api/current.txt
index 8935416..3ce6f1ce 100644
--- a/compose/material/material/api/current.txt
+++ b/compose/material/material/api/current.txt
@@ -42,11 +42,73 @@
     field public static final androidx.compose.material.BackdropScaffoldDefaults INSTANCE;
   }
 
+  public final class BackdropScaffoldKt {
+    method @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public static void BackdropScaffold(kotlin.jvm.functions.Function0<kotlin.Unit> appBar, kotlin.jvm.functions.Function0<kotlin.Unit> backLayerContent, kotlin.jvm.functions.Function0<kotlin.Unit> frontLayerContent, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.material.BackdropScaffoldState scaffoldState, optional boolean gesturesEnabled, optional float peekHeight, optional float headerHeight, optional boolean persistentAppBar, optional boolean stickyFrontLayer, optional long backLayerBackgroundColor, optional long backLayerContentColor, optional androidx.compose.ui.graphics.Shape frontLayerShape, optional float frontLayerElevation, optional long frontLayerBackgroundColor, optional long frontLayerContentColor, optional long frontLayerScrimColor, optional kotlin.jvm.functions.Function1<? super androidx.compose.material.SnackbarHostState,kotlin.Unit> snackbarHost);
+    method @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public static androidx.compose.material.BackdropScaffoldState rememberBackdropScaffoldState(androidx.compose.material.BackdropValue initialValue, optional androidx.compose.animation.core.AnimationSpec<java.lang.Float> animationSpec, optional kotlin.jvm.functions.Function1<? super androidx.compose.material.BackdropValue,java.lang.Boolean> confirmStateChange, optional androidx.compose.material.SnackbarHostState snackbarHostState);
+  }
+
+  @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Stable public final class BackdropScaffoldState extends androidx.compose.material.SwipeableState<androidx.compose.material.BackdropValue> {
+    ctor public BackdropScaffoldState(androidx.compose.material.BackdropValue initialValue, optional androidx.compose.animation.core.AnimationSpec<java.lang.Float> animationSpec, optional kotlin.jvm.functions.Function1<? super androidx.compose.material.BackdropValue,java.lang.Boolean> confirmStateChange, optional androidx.compose.material.SnackbarHostState snackbarHostState);
+    method public suspend Object? conceal(kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    method public androidx.compose.material.SnackbarHostState getSnackbarHostState();
+    method public boolean isConcealed();
+    method public boolean isRevealed();
+    method public suspend Object? reveal(kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    property public final boolean isConcealed;
+    property public final boolean isRevealed;
+    property public final androidx.compose.material.SnackbarHostState snackbarHostState;
+    field public static final androidx.compose.material.BackdropScaffoldState.Companion Companion;
+  }
+
+  public static final class BackdropScaffoldState.Companion {
+    method public androidx.compose.runtime.saveable.Saver<androidx.compose.material.BackdropScaffoldState,?> Saver(androidx.compose.animation.core.AnimationSpec<java.lang.Float> animationSpec, kotlin.jvm.functions.Function1<? super androidx.compose.material.BackdropValue,java.lang.Boolean> confirmStateChange, androidx.compose.material.SnackbarHostState snackbarHostState);
+  }
+
+  @androidx.compose.material.ExperimentalMaterialApi public enum BackdropValue {
+    method public static androidx.compose.material.BackdropValue valueOf(String value) throws java.lang.IllegalArgumentException, java.lang.NullPointerException;
+    method public static androidx.compose.material.BackdropValue[] values();
+    enum_constant public static final androidx.compose.material.BackdropValue Concealed;
+    enum_constant public static final androidx.compose.material.BackdropValue Revealed;
+  }
+
   public final class BadgeKt {
     method @androidx.compose.runtime.Composable public static void Badge(optional androidx.compose.ui.Modifier modifier, optional long backgroundColor, optional long contentColor, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit>? content);
     method @androidx.compose.runtime.Composable public static void BadgedBox(kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.BoxScope,kotlin.Unit> badge, optional androidx.compose.ui.Modifier modifier, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.BoxScope,kotlin.Unit> content);
   }
 
+  @androidx.compose.material.ExperimentalMaterialApi public final class BottomDrawerState {
+    ctor @Deprecated public BottomDrawerState(androidx.compose.material.BottomDrawerValue initialValue, optional kotlin.jvm.functions.Function1<? super androidx.compose.material.BottomDrawerValue,java.lang.Boolean> confirmStateChange);
+    method public suspend Object? close(kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    method public suspend Object? expand(kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    method public androidx.compose.material.BottomDrawerValue getCurrentValue();
+    method public float getOffset();
+    method public androidx.compose.material.BottomDrawerValue getTargetValue();
+    method public boolean isClosed();
+    method public boolean isExpanded();
+    method public boolean isOpen();
+    method public suspend Object? open(kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    property public final androidx.compose.material.BottomDrawerValue currentValue;
+    property public final boolean isClosed;
+    property public final boolean isExpanded;
+    property public final boolean isOpen;
+    property public final float offset;
+    property public final androidx.compose.material.BottomDrawerValue targetValue;
+    field public static final androidx.compose.material.BottomDrawerState.Companion Companion;
+  }
+
+  public static final class BottomDrawerState.Companion {
+    method public androidx.compose.runtime.saveable.Saver<androidx.compose.material.BottomDrawerState,androidx.compose.material.BottomDrawerValue> Saver(androidx.compose.ui.unit.Density density, kotlin.jvm.functions.Function1<? super androidx.compose.material.BottomDrawerValue,java.lang.Boolean> confirmStateChange);
+    method @Deprecated public androidx.compose.runtime.saveable.Saver<androidx.compose.material.BottomDrawerState,androidx.compose.material.BottomDrawerValue> Saver(kotlin.jvm.functions.Function1<? super androidx.compose.material.BottomDrawerValue,java.lang.Boolean> confirmStateChange);
+  }
+
+  @androidx.compose.material.ExperimentalMaterialApi public enum BottomDrawerValue {
+    method public static androidx.compose.material.BottomDrawerValue valueOf(String value) throws java.lang.IllegalArgumentException, java.lang.NullPointerException;
+    method public static androidx.compose.material.BottomDrawerValue[] values();
+    enum_constant public static final androidx.compose.material.BottomDrawerValue Closed;
+    enum_constant public static final androidx.compose.material.BottomDrawerValue Expanded;
+    enum_constant public static final androidx.compose.material.BottomDrawerValue Open;
+  }
+
   public final class BottomNavigationDefaults {
     method public float getElevation();
     property public final float Elevation;
@@ -66,6 +128,54 @@
     field public static final androidx.compose.material.BottomSheetScaffoldDefaults INSTANCE;
   }
 
+  public final class BottomSheetScaffoldKt {
+    method @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public static void BottomSheetScaffold(kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit> sheetContent, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.material.BottomSheetScaffoldState scaffoldState, optional kotlin.jvm.functions.Function0<kotlin.Unit>? topBar, optional kotlin.jvm.functions.Function1<? super androidx.compose.material.SnackbarHostState,kotlin.Unit> snackbarHost, optional kotlin.jvm.functions.Function0<kotlin.Unit>? floatingActionButton, optional int floatingActionButtonPosition, optional boolean sheetGesturesEnabled, optional androidx.compose.ui.graphics.Shape sheetShape, optional float sheetElevation, optional long sheetBackgroundColor, optional long sheetContentColor, optional float sheetPeekHeight, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit>? drawerContent, optional boolean drawerGesturesEnabled, optional androidx.compose.ui.graphics.Shape drawerShape, optional float drawerElevation, optional long drawerBackgroundColor, optional long drawerContentColor, optional long drawerScrimColor, optional long backgroundColor, optional long contentColor, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.PaddingValues,kotlin.Unit> content);
+    method @Deprecated @androidx.compose.material.ExperimentalMaterialApi public static androidx.compose.material.BottomSheetState BottomSheetScaffoldState(androidx.compose.material.BottomSheetValue initialValue, optional androidx.compose.animation.core.AnimationSpec<java.lang.Float> animationSpec, kotlin.jvm.functions.Function1<? super androidx.compose.material.BottomSheetValue,java.lang.Boolean> confirmStateChange);
+    method @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Stable public static androidx.compose.material.BottomSheetState BottomSheetState(androidx.compose.material.BottomSheetValue initialValue, androidx.compose.ui.unit.Density density, optional androidx.compose.animation.core.AnimationSpec<java.lang.Float> animationSpec, optional kotlin.jvm.functions.Function1<? super androidx.compose.material.BottomSheetValue,java.lang.Boolean> confirmValueChange);
+    method @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public static androidx.compose.material.BottomSheetScaffoldState rememberBottomSheetScaffoldState(optional androidx.compose.material.DrawerState drawerState, optional androidx.compose.material.BottomSheetState bottomSheetState, optional androidx.compose.material.SnackbarHostState snackbarHostState);
+    method @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public static androidx.compose.material.BottomSheetState rememberBottomSheetState(androidx.compose.material.BottomSheetValue initialValue, optional androidx.compose.animation.core.AnimationSpec<java.lang.Float> animationSpec, optional kotlin.jvm.functions.Function1<? super androidx.compose.material.BottomSheetValue,java.lang.Boolean> confirmStateChange);
+  }
+
+  @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Stable public final class BottomSheetScaffoldState {
+    ctor public BottomSheetScaffoldState(androidx.compose.material.DrawerState drawerState, androidx.compose.material.BottomSheetState bottomSheetState, androidx.compose.material.SnackbarHostState snackbarHostState);
+    method public androidx.compose.material.BottomSheetState getBottomSheetState();
+    method public androidx.compose.material.DrawerState getDrawerState();
+    method public androidx.compose.material.SnackbarHostState getSnackbarHostState();
+    property public final androidx.compose.material.BottomSheetState bottomSheetState;
+    property public final androidx.compose.material.DrawerState drawerState;
+    property public final androidx.compose.material.SnackbarHostState snackbarHostState;
+  }
+
+  @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Stable public final class BottomSheetState {
+    ctor @Deprecated public BottomSheetState(androidx.compose.material.BottomSheetValue initialValue, optional androidx.compose.animation.core.AnimationSpec<java.lang.Float> animationSpec, optional kotlin.jvm.functions.Function1<? super androidx.compose.material.BottomSheetValue,java.lang.Boolean> confirmValueChange);
+    method public suspend Object? collapse(kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    method public suspend Object? expand(kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    method public androidx.compose.material.BottomSheetValue getCurrentValue();
+    method @Deprecated public float getOffset();
+    method public float getProgress();
+    method public boolean isCollapsed();
+    method public boolean isExpanded();
+    method public float requireOffset();
+    property public final androidx.compose.material.BottomSheetValue currentValue;
+    property public final boolean isCollapsed;
+    property public final boolean isExpanded;
+    property @Deprecated public final float offset;
+    property public final float progress;
+    field public static final androidx.compose.material.BottomSheetState.Companion Companion;
+  }
+
+  public static final class BottomSheetState.Companion {
+    method @Deprecated public androidx.compose.runtime.saveable.Saver<androidx.compose.material.BottomSheetState,?> Saver(androidx.compose.animation.core.AnimationSpec<java.lang.Float> animationSpec, kotlin.jvm.functions.Function1<? super androidx.compose.material.BottomSheetValue,java.lang.Boolean> confirmStateChange);
+    method public androidx.compose.runtime.saveable.Saver<androidx.compose.material.BottomSheetState,?> Saver(androidx.compose.animation.core.AnimationSpec<java.lang.Float> animationSpec, kotlin.jvm.functions.Function1<? super androidx.compose.material.BottomSheetValue,java.lang.Boolean> confirmStateChange, androidx.compose.ui.unit.Density density);
+  }
+
+  @androidx.compose.material.ExperimentalMaterialApi public enum BottomSheetValue {
+    method public static androidx.compose.material.BottomSheetValue valueOf(String value) throws java.lang.IllegalArgumentException, java.lang.NullPointerException;
+    method public static androidx.compose.material.BottomSheetValue[] values();
+    enum_constant public static final androidx.compose.material.BottomSheetValue Collapsed;
+    enum_constant public static final androidx.compose.material.BottomSheetValue Expanded;
+  }
+
   @androidx.compose.runtime.Stable public interface ButtonColors {
     method @androidx.compose.runtime.Composable public androidx.compose.runtime.State<androidx.compose.ui.graphics.Color> backgroundColor(boolean enabled);
     method @androidx.compose.runtime.Composable public androidx.compose.runtime.State<androidx.compose.ui.graphics.Color> contentColor(boolean enabled);
@@ -109,6 +219,8 @@
 
   public final class CardKt {
     method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static void Card(optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.graphics.Shape shape, optional long backgroundColor, optional long contentColor, optional androidx.compose.foundation.BorderStroke? border, optional float elevation, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+    method @Deprecated @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static void Card(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.graphics.Shape shape, optional long backgroundColor, optional long contentColor, optional androidx.compose.foundation.BorderStroke? border, optional float elevation, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional androidx.compose.foundation.Indication? indication, optional boolean enabled, optional String? onClickLabel, optional androidx.compose.ui.semantics.Role? role, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+    method @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static void Card(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.ui.graphics.Shape shape, optional long backgroundColor, optional long contentColor, optional androidx.compose.foundation.BorderStroke? border, optional float elevation, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, kotlin.jvm.functions.Function0<kotlin.Unit> content);
   }
 
   @androidx.compose.runtime.Stable public interface CheckboxColors {
@@ -127,6 +239,38 @@
     method @androidx.compose.runtime.Composable public static void TriStateCheckbox(androidx.compose.ui.state.ToggleableState state, kotlin.jvm.functions.Function0<kotlin.Unit>? onClick, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional androidx.compose.material.CheckboxColors colors);
   }
 
+  @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Stable public interface ChipColors {
+    method @androidx.compose.runtime.Composable public androidx.compose.runtime.State<androidx.compose.ui.graphics.Color> backgroundColor(boolean enabled);
+    method @androidx.compose.runtime.Composable public androidx.compose.runtime.State<androidx.compose.ui.graphics.Color> contentColor(boolean enabled);
+    method @androidx.compose.runtime.Composable public androidx.compose.runtime.State<androidx.compose.ui.graphics.Color> leadingIconContentColor(boolean enabled);
+  }
+
+  @androidx.compose.material.ExperimentalMaterialApi public final class ChipDefaults {
+    method @androidx.compose.runtime.Composable public androidx.compose.material.ChipColors chipColors(optional long backgroundColor, optional long contentColor, optional long leadingIconContentColor, optional long disabledBackgroundColor, optional long disabledContentColor, optional long disabledLeadingIconContentColor);
+    method @androidx.compose.runtime.Composable public androidx.compose.material.SelectableChipColors filterChipColors(optional long backgroundColor, optional long contentColor, optional long leadingIconColor, optional long disabledBackgroundColor, optional long disabledContentColor, optional long disabledLeadingIconColor, optional long selectedBackgroundColor, optional long selectedContentColor, optional long selectedLeadingIconColor);
+    method public float getLeadingIconSize();
+    method public float getMinHeight();
+    method @androidx.compose.runtime.Composable public androidx.compose.foundation.BorderStroke getOutlinedBorder();
+    method public float getOutlinedBorderSize();
+    method public float getSelectedIconSize();
+    method @androidx.compose.runtime.Composable public androidx.compose.material.ChipColors outlinedChipColors(optional long backgroundColor, optional long contentColor, optional long leadingIconContentColor, optional long disabledBackgroundColor, optional long disabledContentColor, optional long disabledLeadingIconContentColor);
+    method @androidx.compose.runtime.Composable public androidx.compose.material.SelectableChipColors outlinedFilterChipColors(optional long backgroundColor, optional long contentColor, optional long leadingIconColor, optional long disabledBackgroundColor, optional long disabledContentColor, optional long disabledLeadingIconColor, optional long selectedBackgroundColor, optional long selectedContentColor, optional long selectedLeadingIconColor);
+    property public final float LeadingIconSize;
+    property public final float MinHeight;
+    property public final float OutlinedBorderSize;
+    property public final float SelectedIconSize;
+    property @androidx.compose.runtime.Composable public final androidx.compose.foundation.BorderStroke outlinedBorder;
+    field public static final float ContentOpacity = 0.87f;
+    field public static final androidx.compose.material.ChipDefaults INSTANCE;
+    field public static final float LeadingIconOpacity = 0.54f;
+    field public static final float OutlinedBorderOpacity = 0.12f;
+  }
+
+  public final class ChipKt {
+    method @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public static void Chip(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.foundation.BorderStroke? border, optional androidx.compose.material.ChipColors colors, optional kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit> content);
+    method @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public static void FilterChip(boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onClick, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.foundation.BorderStroke? border, optional androidx.compose.material.SelectableChipColors colors, optional kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? selectedIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit> content);
+  }
+
   @androidx.compose.runtime.Stable public final class Colors {
     ctor public Colors(long primary, long primaryVariant, long secondary, long secondaryVariant, long background, long surface, long error, long onPrimary, long onSecondary, long onBackground, long onSurface, long onError, boolean isLight);
     method public androidx.compose.material.Colors copy(optional long primary, optional long primaryVariant, optional long secondary, optional long secondaryVariant, optional long background, optional long surface, optional long error, optional long onPrimary, optional long onSecondary, optional long onBackground, optional long onSurface, optional long onError, optional boolean isLight);
@@ -193,6 +337,20 @@
     enum_constant public static final androidx.compose.material.DismissDirection StartToEnd;
   }
 
+  @androidx.compose.material.ExperimentalMaterialApi public final class DismissState extends androidx.compose.material.SwipeableState<androidx.compose.material.DismissValue> {
+    ctor public DismissState(androidx.compose.material.DismissValue initialValue, optional kotlin.jvm.functions.Function1<? super androidx.compose.material.DismissValue,java.lang.Boolean> confirmStateChange);
+    method public suspend Object? dismiss(androidx.compose.material.DismissDirection direction, kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    method public androidx.compose.material.DismissDirection? getDismissDirection();
+    method public boolean isDismissed(androidx.compose.material.DismissDirection direction);
+    method public suspend Object? reset(kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    property public final androidx.compose.material.DismissDirection? dismissDirection;
+    field public static final androidx.compose.material.DismissState.Companion Companion;
+  }
+
+  public static final class DismissState.Companion {
+    method public androidx.compose.runtime.saveable.Saver<androidx.compose.material.DismissState,androidx.compose.material.DismissValue> Saver(kotlin.jvm.functions.Function1<? super androidx.compose.material.DismissValue,java.lang.Boolean> confirmStateChange);
+  }
+
   public enum DismissValue {
     method public static androidx.compose.material.DismissValue valueOf(String value) throws java.lang.IllegalArgumentException, java.lang.NullPointerException;
     method public static androidx.compose.material.DismissValue[] values();
@@ -215,14 +373,20 @@
   }
 
   public final class DrawerKt {
+    method @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public static void BottomDrawer(kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit> drawerContent, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.material.BottomDrawerState drawerState, optional boolean gesturesEnabled, optional androidx.compose.ui.graphics.Shape drawerShape, optional float drawerElevation, optional long drawerBackgroundColor, optional long drawerContentColor, optional long scrimColor, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+    method @androidx.compose.material.ExperimentalMaterialApi public static androidx.compose.material.BottomDrawerState BottomDrawerState(androidx.compose.material.BottomDrawerValue initialValue, androidx.compose.ui.unit.Density density, optional kotlin.jvm.functions.Function1<? super androidx.compose.material.BottomDrawerValue,java.lang.Boolean> confirmStateChange);
     method @androidx.compose.runtime.Composable public static void ModalDrawer(kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit> drawerContent, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.material.DrawerState drawerState, optional boolean gesturesEnabled, optional androidx.compose.ui.graphics.Shape drawerShape, optional float drawerElevation, optional long drawerBackgroundColor, optional long drawerContentColor, optional long scrimColor, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+    method @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public static androidx.compose.material.BottomDrawerState rememberBottomDrawerState(androidx.compose.material.BottomDrawerValue initialValue, optional kotlin.jvm.functions.Function1<? super androidx.compose.material.BottomDrawerValue,java.lang.Boolean> confirmStateChange);
     method @androidx.compose.runtime.Composable public static androidx.compose.material.DrawerState rememberDrawerState(androidx.compose.material.DrawerValue initialValue, optional kotlin.jvm.functions.Function1<? super androidx.compose.material.DrawerValue,java.lang.Boolean> confirmStateChange);
   }
 
   @androidx.compose.runtime.Stable public final class DrawerState {
     ctor public DrawerState(androidx.compose.material.DrawerValue initialValue, optional kotlin.jvm.functions.Function1<? super androidx.compose.material.DrawerValue,java.lang.Boolean> confirmStateChange);
+    method @Deprecated @androidx.compose.material.ExperimentalMaterialApi public suspend Object? animateTo(androidx.compose.material.DrawerValue targetValue, androidx.compose.animation.core.AnimationSpec<java.lang.Float> anim, kotlin.coroutines.Continuation<? super kotlin.Unit>);
     method public suspend Object? close(kotlin.coroutines.Continuation<? super kotlin.Unit>);
     method public androidx.compose.material.DrawerValue getCurrentValue();
+    method @androidx.compose.material.ExperimentalMaterialApi public float getOffset();
+    method @androidx.compose.material.ExperimentalMaterialApi public androidx.compose.material.DrawerValue getTargetValue();
     method public boolean isAnimationRunning();
     method public boolean isClosed();
     method public boolean isOpen();
@@ -232,6 +396,8 @@
     property public final boolean isAnimationRunning;
     property public final boolean isClosed;
     property public final boolean isOpen;
+    property @androidx.compose.material.ExperimentalMaterialApi public final float offset;
+    property @androidx.compose.material.ExperimentalMaterialApi public final androidx.compose.material.DrawerValue targetValue;
     field public static final androidx.compose.material.DrawerState.Companion Companion;
   }
 
@@ -257,6 +423,25 @@
     property public static final androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.material.ElevationOverlay> LocalElevationOverlay;
   }
 
+  @kotlin.RequiresOptIn(message="This material API is experimental and is likely to change or to be removed in" + " the future.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface ExperimentalMaterialApi {
+  }
+
+  @androidx.compose.material.ExperimentalMaterialApi @kotlin.jvm.JvmDefaultWithCompatibility public interface ExposedDropdownMenuBoxScope {
+    method @androidx.compose.runtime.Composable public default void ExposedDropdownMenu(boolean expanded, kotlin.jvm.functions.Function0<kotlin.Unit> onDismissRequest, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.foundation.ScrollState scrollState, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit> content);
+    method public androidx.compose.ui.Modifier exposedDropdownSize(androidx.compose.ui.Modifier, optional boolean matchTextFieldWidth);
+  }
+
+  @androidx.compose.material.ExperimentalMaterialApi public final class ExposedDropdownMenuDefaults {
+    method @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public void TrailingIcon(boolean expanded, optional kotlin.jvm.functions.Function0<kotlin.Unit> onIconClick);
+    method @androidx.compose.runtime.Composable public androidx.compose.material.TextFieldColors outlinedTextFieldColors(optional long textColor, optional long disabledTextColor, optional long backgroundColor, optional long cursorColor, optional long errorCursorColor, optional long focusedBorderColor, optional long unfocusedBorderColor, optional long disabledBorderColor, optional long errorBorderColor, optional long leadingIconColor, optional long disabledLeadingIconColor, optional long errorLeadingIconColor, optional long trailingIconColor, optional long focusedTrailingIconColor, optional long disabledTrailingIconColor, optional long errorTrailingIconColor, optional long focusedLabelColor, optional long unfocusedLabelColor, optional long disabledLabelColor, optional long errorLabelColor, optional long placeholderColor, optional long disabledPlaceholderColor);
+    method @androidx.compose.runtime.Composable public androidx.compose.material.TextFieldColors textFieldColors(optional long textColor, optional long disabledTextColor, optional long backgroundColor, optional long cursorColor, optional long errorCursorColor, optional long focusedIndicatorColor, optional long unfocusedIndicatorColor, optional long disabledIndicatorColor, optional long errorIndicatorColor, optional long leadingIconColor, optional long disabledLeadingIconColor, optional long errorLeadingIconColor, optional long trailingIconColor, optional long focusedTrailingIconColor, optional long disabledTrailingIconColor, optional long errorTrailingIconColor, optional long focusedLabelColor, optional long unfocusedLabelColor, optional long disabledLabelColor, optional long errorLabelColor, optional long placeholderColor, optional long disabledPlaceholderColor);
+    field public static final androidx.compose.material.ExposedDropdownMenuDefaults INSTANCE;
+  }
+
+  public final class ExposedDropdownMenuKt {
+    method @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public static void ExposedDropdownMenuBox(boolean expanded, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit> onExpandedChange, optional androidx.compose.ui.Modifier modifier, kotlin.jvm.functions.Function1<? super androidx.compose.material.ExposedDropdownMenuBoxScope,kotlin.Unit> content);
+  }
+
   @kotlin.jvm.JvmInline public final value class FabPosition {
     field public static final androidx.compose.material.FabPosition.Companion Companion;
   }
@@ -268,6 +453,12 @@
     property public final int End;
   }
 
+  @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Immutable public final class FixedThreshold implements androidx.compose.material.ThresholdConfig {
+    ctor public FixedThreshold(float offset);
+    method public float computeThreshold(androidx.compose.ui.unit.Density, float fromValue, float toValue);
+    method public androidx.compose.material.FixedThreshold copy-0680j_4(float offset);
+  }
+
   public final class FloatingActionButtonDefaults {
     method @Deprecated @androidx.compose.runtime.Composable public androidx.compose.material.FloatingActionButtonElevation elevation(optional float defaultElevation, optional float pressedElevation);
     method @androidx.compose.runtime.Composable public androidx.compose.material.FloatingActionButtonElevation elevation(optional float defaultElevation, optional float pressedElevation, optional float hoveredElevation, optional float focusedElevation);
@@ -283,6 +474,12 @@
     method @androidx.compose.runtime.Composable public static void FloatingActionButton(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional androidx.compose.ui.graphics.Shape shape, optional long backgroundColor, optional long contentColor, optional androidx.compose.material.FloatingActionButtonElevation elevation, kotlin.jvm.functions.Function0<kotlin.Unit> content);
   }
 
+  @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Immutable public final class FractionalThreshold implements androidx.compose.material.ThresholdConfig {
+    ctor public FractionalThreshold(float fraction);
+    method public float computeThreshold(androidx.compose.ui.unit.Density, float fromValue, float toValue);
+    method public androidx.compose.material.FractionalThreshold copy(float fraction);
+  }
+
   public final class IconButtonKt {
     method @androidx.compose.runtime.Composable public static void IconButton(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, kotlin.jvm.functions.Function0<kotlin.Unit> content);
     method @androidx.compose.runtime.Composable public static void IconToggleButton(boolean checked, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit> onCheckedChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, kotlin.jvm.functions.Function0<kotlin.Unit> content);
@@ -295,7 +492,15 @@
   }
 
   public final class InteractiveComponentSizeKt {
+    method @androidx.compose.material.ExperimentalMaterialApi public static androidx.compose.runtime.ProvidableCompositionLocal<java.lang.Boolean> getLocalMinimumInteractiveComponentEnforcement();
+    method @Deprecated @androidx.compose.material.ExperimentalMaterialApi public static androidx.compose.runtime.ProvidableCompositionLocal<java.lang.Boolean> getLocalMinimumTouchTargetEnforcement();
     method public static androidx.compose.ui.Modifier minimumInteractiveComponentSize(androidx.compose.ui.Modifier);
+    property @androidx.compose.material.ExperimentalMaterialApi public static final androidx.compose.runtime.ProvidableCompositionLocal<java.lang.Boolean> LocalMinimumInteractiveComponentEnforcement;
+    property @Deprecated @androidx.compose.material.ExperimentalMaterialApi public static final androidx.compose.runtime.ProvidableCompositionLocal<java.lang.Boolean> LocalMinimumTouchTargetEnforcement;
+  }
+
+  public final class ListItemKt {
+    method @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public static void ListItem(optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function0<kotlin.Unit>? icon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? secondaryText, optional boolean singleLineSecondaryText, optional kotlin.jvm.functions.Function0<kotlin.Unit>? overlineText, optional kotlin.jvm.functions.Function0<kotlin.Unit>? trailing, kotlin.jvm.functions.Function0<kotlin.Unit> text);
   }
 
   public final class MaterialTheme {
@@ -326,6 +531,43 @@
     field public static final androidx.compose.material.ModalBottomSheetDefaults INSTANCE;
   }
 
+  public final class ModalBottomSheetKt {
+    method @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public static void ModalBottomSheetLayout(kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit> sheetContent, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.material.ModalBottomSheetState sheetState, optional boolean sheetGesturesEnabled, optional androidx.compose.ui.graphics.Shape sheetShape, optional float sheetElevation, optional long sheetBackgroundColor, optional long sheetContentColor, optional long scrimColor, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+    method @Deprecated @androidx.compose.material.ExperimentalMaterialApi public static androidx.compose.material.ModalBottomSheetState ModalBottomSheetState(androidx.compose.material.ModalBottomSheetValue initialValue, optional androidx.compose.animation.core.AnimationSpec<java.lang.Float> animationSpec, optional kotlin.jvm.functions.Function1<? super androidx.compose.material.ModalBottomSheetValue,java.lang.Boolean> confirmValueChange, optional boolean isSkipHalfExpanded);
+    method @androidx.compose.material.ExperimentalMaterialApi public static androidx.compose.material.ModalBottomSheetState ModalBottomSheetState(androidx.compose.material.ModalBottomSheetValue initialValue, androidx.compose.ui.unit.Density density, optional androidx.compose.animation.core.AnimationSpec<java.lang.Float> animationSpec, optional kotlin.jvm.functions.Function1<? super androidx.compose.material.ModalBottomSheetValue,java.lang.Boolean> confirmValueChange, optional boolean isSkipHalfExpanded);
+    method @Deprecated @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public static androidx.compose.material.ModalBottomSheetState rememberModalBottomSheetState(androidx.compose.material.ModalBottomSheetValue initialValue, optional androidx.compose.animation.core.AnimationSpec<java.lang.Float> animationSpec, boolean skipHalfExpanded, kotlin.jvm.functions.Function1<? super androidx.compose.material.ModalBottomSheetValue,java.lang.Boolean> confirmStateChange);
+    method @Deprecated @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public static androidx.compose.material.ModalBottomSheetState rememberModalBottomSheetState(androidx.compose.material.ModalBottomSheetValue initialValue, optional androidx.compose.animation.core.AnimationSpec<java.lang.Float> animationSpec, kotlin.jvm.functions.Function1<? super androidx.compose.material.ModalBottomSheetValue,java.lang.Boolean> confirmStateChange);
+    method @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public static androidx.compose.material.ModalBottomSheetState rememberModalBottomSheetState(androidx.compose.material.ModalBottomSheetValue initialValue, optional androidx.compose.animation.core.AnimationSpec<java.lang.Float> animationSpec, optional kotlin.jvm.functions.Function1<? super androidx.compose.material.ModalBottomSheetValue,java.lang.Boolean> confirmValueChange, optional boolean skipHalfExpanded);
+  }
+
+  @androidx.compose.material.ExperimentalMaterialApi public final class ModalBottomSheetState {
+    ctor @Deprecated public ModalBottomSheetState(androidx.compose.material.ModalBottomSheetValue initialValue, optional androidx.compose.animation.core.AnimationSpec<java.lang.Float> animationSpec, optional boolean isSkipHalfExpanded, kotlin.jvm.functions.Function1<? super androidx.compose.material.ModalBottomSheetValue,java.lang.Boolean> confirmStateChange);
+    ctor @Deprecated public ModalBottomSheetState(androidx.compose.material.ModalBottomSheetValue initialValue, androidx.compose.animation.core.AnimationSpec<java.lang.Float> animationSpec, kotlin.jvm.functions.Function1<? super androidx.compose.material.ModalBottomSheetValue,java.lang.Boolean> confirmStateChange);
+    method public androidx.compose.material.ModalBottomSheetValue getCurrentValue();
+    method public androidx.compose.material.ModalBottomSheetValue getTargetValue();
+    method public suspend Object? hide(kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    method public boolean isVisible();
+    method public suspend Object? show(kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    property public final androidx.compose.material.ModalBottomSheetValue currentValue;
+    property public final boolean isVisible;
+    property public final androidx.compose.material.ModalBottomSheetValue targetValue;
+    field public static final androidx.compose.material.ModalBottomSheetState.Companion Companion;
+  }
+
+  public static final class ModalBottomSheetState.Companion {
+    method @Deprecated public androidx.compose.runtime.saveable.Saver<androidx.compose.material.ModalBottomSheetState,?> Saver(androidx.compose.animation.core.AnimationSpec<java.lang.Float> animationSpec, boolean skipHalfExpanded, kotlin.jvm.functions.Function1<? super androidx.compose.material.ModalBottomSheetValue,java.lang.Boolean> confirmStateChange);
+    method @Deprecated public androidx.compose.runtime.saveable.Saver<androidx.compose.material.ModalBottomSheetState,?> Saver(androidx.compose.animation.core.AnimationSpec<java.lang.Float> animationSpec, kotlin.jvm.functions.Function1<? super androidx.compose.material.ModalBottomSheetValue,java.lang.Boolean> confirmValueChange, boolean skipHalfExpanded);
+    method public androidx.compose.runtime.saveable.Saver<androidx.compose.material.ModalBottomSheetState,?> Saver(androidx.compose.animation.core.AnimationSpec<java.lang.Float> animationSpec, kotlin.jvm.functions.Function1<? super androidx.compose.material.ModalBottomSheetValue,java.lang.Boolean> confirmValueChange, boolean skipHalfExpanded, androidx.compose.ui.unit.Density density);
+  }
+
+  @androidx.compose.material.ExperimentalMaterialApi public enum ModalBottomSheetValue {
+    method public static androidx.compose.material.ModalBottomSheetValue valueOf(String value) throws java.lang.IllegalArgumentException, java.lang.NullPointerException;
+    method public static androidx.compose.material.ModalBottomSheetValue[] values();
+    enum_constant public static final androidx.compose.material.ModalBottomSheetValue Expanded;
+    enum_constant public static final androidx.compose.material.ModalBottomSheetValue HalfExpanded;
+    enum_constant public static final androidx.compose.material.ModalBottomSheetValue Hidden;
+  }
+
   public final class NavigationRailDefaults {
     method public float getElevation();
     property public final float Elevation;
@@ -401,6 +643,12 @@
     property public final androidx.compose.material.SnackbarHostState snackbarHostState;
   }
 
+  @androidx.compose.material.ExperimentalMaterialApi public interface SelectableChipColors {
+    method @androidx.compose.runtime.Composable public androidx.compose.runtime.State<androidx.compose.ui.graphics.Color> backgroundColor(boolean enabled, boolean selected);
+    method @androidx.compose.runtime.Composable public androidx.compose.runtime.State<androidx.compose.ui.graphics.Color> contentColor(boolean enabled, boolean selected);
+    method @androidx.compose.runtime.Composable public androidx.compose.runtime.State<androidx.compose.ui.graphics.Color> leadingIconColor(boolean enabled, boolean selected);
+  }
+
   @androidx.compose.runtime.Immutable public final class Shapes {
     ctor public Shapes(optional androidx.compose.foundation.shape.CornerBasedShape small, optional androidx.compose.foundation.shape.CornerBasedShape medium, optional androidx.compose.foundation.shape.CornerBasedShape large);
     method public androidx.compose.material.Shapes copy(optional androidx.compose.foundation.shape.CornerBasedShape small, optional androidx.compose.foundation.shape.CornerBasedShape medium, optional androidx.compose.foundation.shape.CornerBasedShape large);
@@ -429,6 +677,7 @@
   }
 
   public final class SliderKt {
+    method @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public static void RangeSlider(kotlin.ranges.ClosedFloatingPointRange<java.lang.Float> value, kotlin.jvm.functions.Function1<? super kotlin.ranges.ClosedFloatingPointRange<java.lang.Float>,kotlin.Unit> onValueChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional kotlin.ranges.ClosedFloatingPointRange<java.lang.Float> valueRange, optional int steps, optional kotlin.jvm.functions.Function0<kotlin.Unit>? onValueChangeFinished, optional androidx.compose.material.SliderColors colors);
     method @androidx.compose.runtime.Composable public static void Slider(float value, kotlin.jvm.functions.Function1<? super java.lang.Float,kotlin.Unit> onValueChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional kotlin.ranges.ClosedFloatingPointRange<java.lang.Float> valueRange, optional int steps, optional kotlin.jvm.functions.Function0<kotlin.Unit>? onValueChangeFinished, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional androidx.compose.material.SliderColors colors);
   }
 
@@ -484,6 +733,25 @@
 
   public final class SurfaceKt {
     method @androidx.compose.runtime.Composable public static void Surface(optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.graphics.Shape shape, optional long color, optional long contentColor, optional androidx.compose.foundation.BorderStroke? border, optional float elevation, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+    method @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public static void Surface(boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onClick, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.ui.graphics.Shape shape, optional long color, optional long contentColor, optional androidx.compose.foundation.BorderStroke? border, optional float elevation, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+    method @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public static void Surface(boolean checked, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit> onCheckedChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.ui.graphics.Shape shape, optional long color, optional long contentColor, optional androidx.compose.foundation.BorderStroke? border, optional float elevation, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+    method @Deprecated @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public static void Surface(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.graphics.Shape shape, optional long color, optional long contentColor, optional androidx.compose.foundation.BorderStroke? border, optional float elevation, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional androidx.compose.foundation.Indication? indication, optional boolean enabled, optional String? onClickLabel, optional androidx.compose.ui.semantics.Role? role, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+    method @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public static void Surface(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.ui.graphics.Shape shape, optional long color, optional long contentColor, optional androidx.compose.foundation.BorderStroke? border, optional float elevation, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+  }
+
+  @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Immutable public final class SwipeProgress<T> {
+    ctor public SwipeProgress(T from, T to, float fraction);
+    method public float getFraction();
+    method public T getFrom();
+    method public T getTo();
+    property public final float fraction;
+    property public final T from;
+    property public final T to;
+  }
+
+  public final class SwipeToDismissKt {
+    method @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public static void SwipeToDismiss(androidx.compose.material.DismissState state, optional androidx.compose.ui.Modifier modifier, optional java.util.Set<? extends androidx.compose.material.DismissDirection> directions, optional kotlin.jvm.functions.Function1<? super androidx.compose.material.DismissDirection,? extends androidx.compose.material.ThresholdConfig> dismissThresholds, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit> background, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit> dismissContent);
+    method @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public static androidx.compose.material.DismissState rememberDismissState(optional androidx.compose.material.DismissValue initialValue, optional kotlin.jvm.functions.Function1<? super androidx.compose.material.DismissValue,java.lang.Boolean> confirmStateChange);
   }
 
   public final class SwipeableDefaults {
@@ -497,6 +765,38 @@
     field public static final float StiffResistanceFactor = 20.0f;
   }
 
+  public final class SwipeableKt {
+    method @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public static <T> androidx.compose.material.SwipeableState<T> rememberSwipeableState(T initialValue, optional androidx.compose.animation.core.AnimationSpec<java.lang.Float> animationSpec, optional kotlin.jvm.functions.Function1<? super T,java.lang.Boolean> confirmStateChange);
+    method @androidx.compose.material.ExperimentalMaterialApi public static <T> androidx.compose.ui.Modifier swipeable(androidx.compose.ui.Modifier, androidx.compose.material.SwipeableState<T> state, java.util.Map<java.lang.Float,? extends T> anchors, androidx.compose.foundation.gestures.Orientation orientation, optional boolean enabled, optional boolean reverseDirection, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, optional kotlin.jvm.functions.Function2<? super T,? super T,? extends androidx.compose.material.ThresholdConfig> thresholds, optional androidx.compose.material.ResistanceConfig? resistance, optional float velocityThreshold);
+  }
+
+  @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Stable public class SwipeableState<T> {
+    ctor public SwipeableState(T initialValue, optional androidx.compose.animation.core.AnimationSpec<java.lang.Float> animationSpec, optional kotlin.jvm.functions.Function1<? super T,java.lang.Boolean> confirmStateChange);
+    method @androidx.compose.material.ExperimentalMaterialApi public final suspend Object? animateTo(T targetValue, optional androidx.compose.animation.core.AnimationSpec<java.lang.Float> anim, optional kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    method public final T getCurrentValue();
+    method public final float getDirection();
+    method public final androidx.compose.runtime.State<java.lang.Float> getOffset();
+    method public final androidx.compose.runtime.State<java.lang.Float> getOverflow();
+    method public final androidx.compose.material.SwipeProgress<T> getProgress();
+    method public final T getTargetValue();
+    method public final boolean isAnimationRunning();
+    method public final float performDrag(float delta);
+    method public final suspend Object? performFling(float velocity, kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    method @androidx.compose.material.ExperimentalMaterialApi public final suspend Object? snapTo(T targetValue, kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    property public final T currentValue;
+    property @androidx.compose.material.ExperimentalMaterialApi public final float direction;
+    property public final boolean isAnimationRunning;
+    property public final androidx.compose.runtime.State<java.lang.Float> offset;
+    property public final androidx.compose.runtime.State<java.lang.Float> overflow;
+    property @androidx.compose.material.ExperimentalMaterialApi public final androidx.compose.material.SwipeProgress<T> progress;
+    property @androidx.compose.material.ExperimentalMaterialApi public final T targetValue;
+    field public static final androidx.compose.material.SwipeableState.Companion Companion;
+  }
+
+  public static final class SwipeableState.Companion {
+    method public <T> androidx.compose.runtime.saveable.Saver<androidx.compose.material.SwipeableState<T>,T> Saver(androidx.compose.animation.core.AnimationSpec<java.lang.Float> animationSpec, kotlin.jvm.functions.Function1<? super T,java.lang.Boolean> confirmStateChange);
+  }
+
   @androidx.compose.runtime.Stable public interface SwitchColors {
     method @androidx.compose.runtime.Composable public androidx.compose.runtime.State<androidx.compose.ui.graphics.Color> thumbColor(boolean enabled, boolean checked);
     method @androidx.compose.runtime.Composable public androidx.compose.runtime.State<androidx.compose.ui.graphics.Color> trackColor(boolean enabled, boolean checked);
@@ -556,15 +856,27 @@
     method @androidx.compose.runtime.Composable public androidx.compose.runtime.State<androidx.compose.ui.graphics.Color> trailingIconColor(boolean enabled, boolean isError);
   }
 
+  @androidx.compose.material.ExperimentalMaterialApi @kotlin.jvm.JvmDefaultWithCompatibility public interface TextFieldColorsWithIcons extends androidx.compose.material.TextFieldColors {
+    method @androidx.compose.runtime.Composable public default androidx.compose.runtime.State<androidx.compose.ui.graphics.Color> leadingIconColor(boolean enabled, boolean isError, androidx.compose.foundation.interaction.InteractionSource interactionSource);
+    method @androidx.compose.runtime.Composable public default androidx.compose.runtime.State<androidx.compose.ui.graphics.Color> trailingIconColor(boolean enabled, boolean isError, androidx.compose.foundation.interaction.InteractionSource interactionSource);
+  }
+
   @androidx.compose.runtime.Immutable public final class TextFieldDefaults {
+    method @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public void BorderBox(boolean enabled, boolean isError, androidx.compose.foundation.interaction.InteractionSource interactionSource, androidx.compose.material.TextFieldColors colors, optional androidx.compose.ui.graphics.Shape shape, optional float focusedBorderThickness, optional float unfocusedBorderThickness);
+    method @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public void OutlinedTextFieldDecorationBox(String value, kotlin.jvm.functions.Function0<kotlin.Unit> innerTextField, boolean enabled, boolean singleLine, androidx.compose.ui.text.input.VisualTransformation visualTransformation, androidx.compose.foundation.interaction.InteractionSource interactionSource, optional boolean isError, optional kotlin.jvm.functions.Function0<kotlin.Unit>? label, optional kotlin.jvm.functions.Function0<kotlin.Unit>? placeholder, optional kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon, optional androidx.compose.material.TextFieldColors colors, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional kotlin.jvm.functions.Function0<kotlin.Unit> border);
+    method @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public void TextFieldDecorationBox(String value, kotlin.jvm.functions.Function0<kotlin.Unit> innerTextField, boolean enabled, boolean singleLine, androidx.compose.ui.text.input.VisualTransformation visualTransformation, androidx.compose.foundation.interaction.InteractionSource interactionSource, optional boolean isError, optional kotlin.jvm.functions.Function0<kotlin.Unit>? label, optional kotlin.jvm.functions.Function0<kotlin.Unit>? placeholder, optional kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon, optional androidx.compose.material.TextFieldColors colors, optional androidx.compose.foundation.layout.PaddingValues contentPadding);
     method public float getFocusedBorderThickness();
     method public float getMinHeight();
     method public float getMinWidth();
     method @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public androidx.compose.ui.graphics.Shape getOutlinedTextFieldShape();
     method @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public androidx.compose.ui.graphics.Shape getTextFieldShape();
     method public float getUnfocusedBorderThickness();
+    method @androidx.compose.material.ExperimentalMaterialApi public androidx.compose.ui.Modifier indicatorLine(androidx.compose.ui.Modifier, boolean enabled, boolean isError, androidx.compose.foundation.interaction.InteractionSource interactionSource, androidx.compose.material.TextFieldColors colors, optional float focusedIndicatorLineThickness, optional float unfocusedIndicatorLineThickness);
     method @androidx.compose.runtime.Composable public androidx.compose.material.TextFieldColors outlinedTextFieldColors(optional long textColor, optional long disabledTextColor, optional long backgroundColor, optional long cursorColor, optional long errorCursorColor, optional long focusedBorderColor, optional long unfocusedBorderColor, optional long disabledBorderColor, optional long errorBorderColor, optional long leadingIconColor, optional long disabledLeadingIconColor, optional long errorLeadingIconColor, optional long trailingIconColor, optional long disabledTrailingIconColor, optional long errorTrailingIconColor, optional long focusedLabelColor, optional long unfocusedLabelColor, optional long disabledLabelColor, optional long errorLabelColor, optional long placeholderColor, optional long disabledPlaceholderColor);
+    method @androidx.compose.material.ExperimentalMaterialApi public androidx.compose.foundation.layout.PaddingValues outlinedTextFieldPadding(optional float start, optional float top, optional float end, optional float bottom);
     method @androidx.compose.runtime.Composable public androidx.compose.material.TextFieldColors textFieldColors(optional long textColor, optional long disabledTextColor, optional long backgroundColor, optional long cursorColor, optional long errorCursorColor, optional long focusedIndicatorColor, optional long unfocusedIndicatorColor, optional long disabledIndicatorColor, optional long errorIndicatorColor, optional long leadingIconColor, optional long disabledLeadingIconColor, optional long errorLeadingIconColor, optional long trailingIconColor, optional long disabledTrailingIconColor, optional long errorTrailingIconColor, optional long focusedLabelColor, optional long unfocusedLabelColor, optional long disabledLabelColor, optional long errorLabelColor, optional long placeholderColor, optional long disabledPlaceholderColor);
+    method @androidx.compose.material.ExperimentalMaterialApi public androidx.compose.foundation.layout.PaddingValues textFieldWithLabelPadding(optional float start, optional float end, optional float top, optional float bottom);
+    method @androidx.compose.material.ExperimentalMaterialApi public androidx.compose.foundation.layout.PaddingValues textFieldWithoutLabelPadding(optional float start, optional float top, optional float end, optional float bottom);
     property public final float FocusedBorderThickness;
     property public final float MinHeight;
     property public final float MinWidth;
@@ -594,6 +906,10 @@
     property public static final androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.ui.text.TextStyle> LocalTextStyle;
   }
 
+  @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Stable public interface ThresholdConfig {
+    method public float computeThreshold(androidx.compose.ui.unit.Density, float fromValue, float toValue);
+  }
+
   @androidx.compose.runtime.Immutable public final class Typography {
     ctor public Typography(optional androidx.compose.ui.text.font.FontFamily defaultFontFamily, optional androidx.compose.ui.text.TextStyle h1, optional androidx.compose.ui.text.TextStyle h2, optional androidx.compose.ui.text.TextStyle h3, optional androidx.compose.ui.text.TextStyle h4, optional androidx.compose.ui.text.TextStyle h5, optional androidx.compose.ui.text.TextStyle h6, optional androidx.compose.ui.text.TextStyle subtitle1, optional androidx.compose.ui.text.TextStyle subtitle2, optional androidx.compose.ui.text.TextStyle body1, optional androidx.compose.ui.text.TextStyle body2, optional androidx.compose.ui.text.TextStyle button, optional androidx.compose.ui.text.TextStyle caption, optional androidx.compose.ui.text.TextStyle overline);
     method public androidx.compose.material.Typography copy(optional androidx.compose.ui.text.TextStyle h1, optional androidx.compose.ui.text.TextStyle h2, optional androidx.compose.ui.text.TextStyle h3, optional androidx.compose.ui.text.TextStyle h4, optional androidx.compose.ui.text.TextStyle h5, optional androidx.compose.ui.text.TextStyle h6, optional androidx.compose.ui.text.TextStyle subtitle1, optional androidx.compose.ui.text.TextStyle subtitle2, optional androidx.compose.ui.text.TextStyle body1, optional androidx.compose.ui.text.TextStyle body2, optional androidx.compose.ui.text.TextStyle button, optional androidx.compose.ui.text.TextStyle caption, optional androidx.compose.ui.text.TextStyle overline);
@@ -627,3 +943,37 @@
 
 }
 
+package androidx.compose.material.pullrefresh {
+
+  @androidx.compose.material.ExperimentalMaterialApi public final class PullRefreshDefaults {
+    method public float getRefreshThreshold();
+    method public float getRefreshingOffset();
+    property public final float RefreshThreshold;
+    property public final float RefreshingOffset;
+    field public static final androidx.compose.material.pullrefresh.PullRefreshDefaults INSTANCE;
+  }
+
+  public final class PullRefreshIndicatorKt {
+    method @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public static void PullRefreshIndicator(boolean refreshing, androidx.compose.material.pullrefresh.PullRefreshState state, optional androidx.compose.ui.Modifier modifier, optional long backgroundColor, optional long contentColor, optional boolean scale);
+  }
+
+  public final class PullRefreshIndicatorTransformKt {
+    method @androidx.compose.material.ExperimentalMaterialApi public static androidx.compose.ui.Modifier pullRefreshIndicatorTransform(androidx.compose.ui.Modifier, androidx.compose.material.pullrefresh.PullRefreshState state, optional boolean scale);
+  }
+
+  public final class PullRefreshKt {
+    method @androidx.compose.material.ExperimentalMaterialApi public static androidx.compose.ui.Modifier pullRefresh(androidx.compose.ui.Modifier, androidx.compose.material.pullrefresh.PullRefreshState state, optional boolean enabled);
+    method @androidx.compose.material.ExperimentalMaterialApi public static androidx.compose.ui.Modifier pullRefresh(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1<? super java.lang.Float,java.lang.Float> onPull, kotlin.jvm.functions.Function2<? super java.lang.Float,? super kotlin.coroutines.Continuation<? super java.lang.Float>,?> onRelease, optional boolean enabled);
+  }
+
+  @androidx.compose.material.ExperimentalMaterialApi public final class PullRefreshState {
+    method public float getProgress();
+    property public final float progress;
+  }
+
+  public final class PullRefreshStateKt {
+    method @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public static androidx.compose.material.pullrefresh.PullRefreshState rememberPullRefreshState(boolean refreshing, kotlin.jvm.functions.Function0<kotlin.Unit> onRefresh, optional float refreshThreshold, optional float refreshingOffset);
+  }
+
+}
+
diff --git a/compose/material/material/api/res-1.5.0-beta01.txt b/compose/material/material/api/res-1.5.0-beta01.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/compose/material/material/api/res-1.5.0-beta01.txt
diff --git a/compose/material/material/api/public_plus_experimental_current.txt b/compose/material/material/api/restricted_1.5.0-beta01.txt
similarity index 100%
copy from compose/material/material/api/public_plus_experimental_current.txt
copy to compose/material/material/api/restricted_1.5.0-beta01.txt
diff --git a/compose/material/material/api/restricted_current.txt b/compose/material/material/api/restricted_current.txt
index 8935416..3ce6f1ce 100644
--- a/compose/material/material/api/restricted_current.txt
+++ b/compose/material/material/api/restricted_current.txt
@@ -42,11 +42,73 @@
     field public static final androidx.compose.material.BackdropScaffoldDefaults INSTANCE;
   }
 
+  public final class BackdropScaffoldKt {
+    method @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public static void BackdropScaffold(kotlin.jvm.functions.Function0<kotlin.Unit> appBar, kotlin.jvm.functions.Function0<kotlin.Unit> backLayerContent, kotlin.jvm.functions.Function0<kotlin.Unit> frontLayerContent, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.material.BackdropScaffoldState scaffoldState, optional boolean gesturesEnabled, optional float peekHeight, optional float headerHeight, optional boolean persistentAppBar, optional boolean stickyFrontLayer, optional long backLayerBackgroundColor, optional long backLayerContentColor, optional androidx.compose.ui.graphics.Shape frontLayerShape, optional float frontLayerElevation, optional long frontLayerBackgroundColor, optional long frontLayerContentColor, optional long frontLayerScrimColor, optional kotlin.jvm.functions.Function1<? super androidx.compose.material.SnackbarHostState,kotlin.Unit> snackbarHost);
+    method @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public static androidx.compose.material.BackdropScaffoldState rememberBackdropScaffoldState(androidx.compose.material.BackdropValue initialValue, optional androidx.compose.animation.core.AnimationSpec<java.lang.Float> animationSpec, optional kotlin.jvm.functions.Function1<? super androidx.compose.material.BackdropValue,java.lang.Boolean> confirmStateChange, optional androidx.compose.material.SnackbarHostState snackbarHostState);
+  }
+
+  @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Stable public final class BackdropScaffoldState extends androidx.compose.material.SwipeableState<androidx.compose.material.BackdropValue> {
+    ctor public BackdropScaffoldState(androidx.compose.material.BackdropValue initialValue, optional androidx.compose.animation.core.AnimationSpec<java.lang.Float> animationSpec, optional kotlin.jvm.functions.Function1<? super androidx.compose.material.BackdropValue,java.lang.Boolean> confirmStateChange, optional androidx.compose.material.SnackbarHostState snackbarHostState);
+    method public suspend Object? conceal(kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    method public androidx.compose.material.SnackbarHostState getSnackbarHostState();
+    method public boolean isConcealed();
+    method public boolean isRevealed();
+    method public suspend Object? reveal(kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    property public final boolean isConcealed;
+    property public final boolean isRevealed;
+    property public final androidx.compose.material.SnackbarHostState snackbarHostState;
+    field public static final androidx.compose.material.BackdropScaffoldState.Companion Companion;
+  }
+
+  public static final class BackdropScaffoldState.Companion {
+    method public androidx.compose.runtime.saveable.Saver<androidx.compose.material.BackdropScaffoldState,?> Saver(androidx.compose.animation.core.AnimationSpec<java.lang.Float> animationSpec, kotlin.jvm.functions.Function1<? super androidx.compose.material.BackdropValue,java.lang.Boolean> confirmStateChange, androidx.compose.material.SnackbarHostState snackbarHostState);
+  }
+
+  @androidx.compose.material.ExperimentalMaterialApi public enum BackdropValue {
+    method public static androidx.compose.material.BackdropValue valueOf(String value) throws java.lang.IllegalArgumentException, java.lang.NullPointerException;
+    method public static androidx.compose.material.BackdropValue[] values();
+    enum_constant public static final androidx.compose.material.BackdropValue Concealed;
+    enum_constant public static final androidx.compose.material.BackdropValue Revealed;
+  }
+
   public final class BadgeKt {
     method @androidx.compose.runtime.Composable public static void Badge(optional androidx.compose.ui.Modifier modifier, optional long backgroundColor, optional long contentColor, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit>? content);
     method @androidx.compose.runtime.Composable public static void BadgedBox(kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.BoxScope,kotlin.Unit> badge, optional androidx.compose.ui.Modifier modifier, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.BoxScope,kotlin.Unit> content);
   }
 
+  @androidx.compose.material.ExperimentalMaterialApi public final class BottomDrawerState {
+    ctor @Deprecated public BottomDrawerState(androidx.compose.material.BottomDrawerValue initialValue, optional kotlin.jvm.functions.Function1<? super androidx.compose.material.BottomDrawerValue,java.lang.Boolean> confirmStateChange);
+    method public suspend Object? close(kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    method public suspend Object? expand(kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    method public androidx.compose.material.BottomDrawerValue getCurrentValue();
+    method public float getOffset();
+    method public androidx.compose.material.BottomDrawerValue getTargetValue();
+    method public boolean isClosed();
+    method public boolean isExpanded();
+    method public boolean isOpen();
+    method public suspend Object? open(kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    property public final androidx.compose.material.BottomDrawerValue currentValue;
+    property public final boolean isClosed;
+    property public final boolean isExpanded;
+    property public final boolean isOpen;
+    property public final float offset;
+    property public final androidx.compose.material.BottomDrawerValue targetValue;
+    field public static final androidx.compose.material.BottomDrawerState.Companion Companion;
+  }
+
+  public static final class BottomDrawerState.Companion {
+    method public androidx.compose.runtime.saveable.Saver<androidx.compose.material.BottomDrawerState,androidx.compose.material.BottomDrawerValue> Saver(androidx.compose.ui.unit.Density density, kotlin.jvm.functions.Function1<? super androidx.compose.material.BottomDrawerValue,java.lang.Boolean> confirmStateChange);
+    method @Deprecated public androidx.compose.runtime.saveable.Saver<androidx.compose.material.BottomDrawerState,androidx.compose.material.BottomDrawerValue> Saver(kotlin.jvm.functions.Function1<? super androidx.compose.material.BottomDrawerValue,java.lang.Boolean> confirmStateChange);
+  }
+
+  @androidx.compose.material.ExperimentalMaterialApi public enum BottomDrawerValue {
+    method public static androidx.compose.material.BottomDrawerValue valueOf(String value) throws java.lang.IllegalArgumentException, java.lang.NullPointerException;
+    method public static androidx.compose.material.BottomDrawerValue[] values();
+    enum_constant public static final androidx.compose.material.BottomDrawerValue Closed;
+    enum_constant public static final androidx.compose.material.BottomDrawerValue Expanded;
+    enum_constant public static final androidx.compose.material.BottomDrawerValue Open;
+  }
+
   public final class BottomNavigationDefaults {
     method public float getElevation();
     property public final float Elevation;
@@ -66,6 +128,54 @@
     field public static final androidx.compose.material.BottomSheetScaffoldDefaults INSTANCE;
   }
 
+  public final class BottomSheetScaffoldKt {
+    method @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public static void BottomSheetScaffold(kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit> sheetContent, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.material.BottomSheetScaffoldState scaffoldState, optional kotlin.jvm.functions.Function0<kotlin.Unit>? topBar, optional kotlin.jvm.functions.Function1<? super androidx.compose.material.SnackbarHostState,kotlin.Unit> snackbarHost, optional kotlin.jvm.functions.Function0<kotlin.Unit>? floatingActionButton, optional int floatingActionButtonPosition, optional boolean sheetGesturesEnabled, optional androidx.compose.ui.graphics.Shape sheetShape, optional float sheetElevation, optional long sheetBackgroundColor, optional long sheetContentColor, optional float sheetPeekHeight, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit>? drawerContent, optional boolean drawerGesturesEnabled, optional androidx.compose.ui.graphics.Shape drawerShape, optional float drawerElevation, optional long drawerBackgroundColor, optional long drawerContentColor, optional long drawerScrimColor, optional long backgroundColor, optional long contentColor, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.PaddingValues,kotlin.Unit> content);
+    method @Deprecated @androidx.compose.material.ExperimentalMaterialApi public static androidx.compose.material.BottomSheetState BottomSheetScaffoldState(androidx.compose.material.BottomSheetValue initialValue, optional androidx.compose.animation.core.AnimationSpec<java.lang.Float> animationSpec, kotlin.jvm.functions.Function1<? super androidx.compose.material.BottomSheetValue,java.lang.Boolean> confirmStateChange);
+    method @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Stable public static androidx.compose.material.BottomSheetState BottomSheetState(androidx.compose.material.BottomSheetValue initialValue, androidx.compose.ui.unit.Density density, optional androidx.compose.animation.core.AnimationSpec<java.lang.Float> animationSpec, optional kotlin.jvm.functions.Function1<? super androidx.compose.material.BottomSheetValue,java.lang.Boolean> confirmValueChange);
+    method @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public static androidx.compose.material.BottomSheetScaffoldState rememberBottomSheetScaffoldState(optional androidx.compose.material.DrawerState drawerState, optional androidx.compose.material.BottomSheetState bottomSheetState, optional androidx.compose.material.SnackbarHostState snackbarHostState);
+    method @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public static androidx.compose.material.BottomSheetState rememberBottomSheetState(androidx.compose.material.BottomSheetValue initialValue, optional androidx.compose.animation.core.AnimationSpec<java.lang.Float> animationSpec, optional kotlin.jvm.functions.Function1<? super androidx.compose.material.BottomSheetValue,java.lang.Boolean> confirmStateChange);
+  }
+
+  @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Stable public final class BottomSheetScaffoldState {
+    ctor public BottomSheetScaffoldState(androidx.compose.material.DrawerState drawerState, androidx.compose.material.BottomSheetState bottomSheetState, androidx.compose.material.SnackbarHostState snackbarHostState);
+    method public androidx.compose.material.BottomSheetState getBottomSheetState();
+    method public androidx.compose.material.DrawerState getDrawerState();
+    method public androidx.compose.material.SnackbarHostState getSnackbarHostState();
+    property public final androidx.compose.material.BottomSheetState bottomSheetState;
+    property public final androidx.compose.material.DrawerState drawerState;
+    property public final androidx.compose.material.SnackbarHostState snackbarHostState;
+  }
+
+  @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Stable public final class BottomSheetState {
+    ctor @Deprecated public BottomSheetState(androidx.compose.material.BottomSheetValue initialValue, optional androidx.compose.animation.core.AnimationSpec<java.lang.Float> animationSpec, optional kotlin.jvm.functions.Function1<? super androidx.compose.material.BottomSheetValue,java.lang.Boolean> confirmValueChange);
+    method public suspend Object? collapse(kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    method public suspend Object? expand(kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    method public androidx.compose.material.BottomSheetValue getCurrentValue();
+    method @Deprecated public float getOffset();
+    method public float getProgress();
+    method public boolean isCollapsed();
+    method public boolean isExpanded();
+    method public float requireOffset();
+    property public final androidx.compose.material.BottomSheetValue currentValue;
+    property public final boolean isCollapsed;
+    property public final boolean isExpanded;
+    property @Deprecated public final float offset;
+    property public final float progress;
+    field public static final androidx.compose.material.BottomSheetState.Companion Companion;
+  }
+
+  public static final class BottomSheetState.Companion {
+    method @Deprecated public androidx.compose.runtime.saveable.Saver<androidx.compose.material.BottomSheetState,?> Saver(androidx.compose.animation.core.AnimationSpec<java.lang.Float> animationSpec, kotlin.jvm.functions.Function1<? super androidx.compose.material.BottomSheetValue,java.lang.Boolean> confirmStateChange);
+    method public androidx.compose.runtime.saveable.Saver<androidx.compose.material.BottomSheetState,?> Saver(androidx.compose.animation.core.AnimationSpec<java.lang.Float> animationSpec, kotlin.jvm.functions.Function1<? super androidx.compose.material.BottomSheetValue,java.lang.Boolean> confirmStateChange, androidx.compose.ui.unit.Density density);
+  }
+
+  @androidx.compose.material.ExperimentalMaterialApi public enum BottomSheetValue {
+    method public static androidx.compose.material.BottomSheetValue valueOf(String value) throws java.lang.IllegalArgumentException, java.lang.NullPointerException;
+    method public static androidx.compose.material.BottomSheetValue[] values();
+    enum_constant public static final androidx.compose.material.BottomSheetValue Collapsed;
+    enum_constant public static final androidx.compose.material.BottomSheetValue Expanded;
+  }
+
   @androidx.compose.runtime.Stable public interface ButtonColors {
     method @androidx.compose.runtime.Composable public androidx.compose.runtime.State<androidx.compose.ui.graphics.Color> backgroundColor(boolean enabled);
     method @androidx.compose.runtime.Composable public androidx.compose.runtime.State<androidx.compose.ui.graphics.Color> contentColor(boolean enabled);
@@ -109,6 +219,8 @@
 
   public final class CardKt {
     method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static void Card(optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.graphics.Shape shape, optional long backgroundColor, optional long contentColor, optional androidx.compose.foundation.BorderStroke? border, optional float elevation, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+    method @Deprecated @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static void Card(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.graphics.Shape shape, optional long backgroundColor, optional long contentColor, optional androidx.compose.foundation.BorderStroke? border, optional float elevation, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional androidx.compose.foundation.Indication? indication, optional boolean enabled, optional String? onClickLabel, optional androidx.compose.ui.semantics.Role? role, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+    method @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static void Card(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.ui.graphics.Shape shape, optional long backgroundColor, optional long contentColor, optional androidx.compose.foundation.BorderStroke? border, optional float elevation, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, kotlin.jvm.functions.Function0<kotlin.Unit> content);
   }
 
   @androidx.compose.runtime.Stable public interface CheckboxColors {
@@ -127,6 +239,38 @@
     method @androidx.compose.runtime.Composable public static void TriStateCheckbox(androidx.compose.ui.state.ToggleableState state, kotlin.jvm.functions.Function0<kotlin.Unit>? onClick, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional androidx.compose.material.CheckboxColors colors);
   }
 
+  @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Stable public interface ChipColors {
+    method @androidx.compose.runtime.Composable public androidx.compose.runtime.State<androidx.compose.ui.graphics.Color> backgroundColor(boolean enabled);
+    method @androidx.compose.runtime.Composable public androidx.compose.runtime.State<androidx.compose.ui.graphics.Color> contentColor(boolean enabled);
+    method @androidx.compose.runtime.Composable public androidx.compose.runtime.State<androidx.compose.ui.graphics.Color> leadingIconContentColor(boolean enabled);
+  }
+
+  @androidx.compose.material.ExperimentalMaterialApi public final class ChipDefaults {
+    method @androidx.compose.runtime.Composable public androidx.compose.material.ChipColors chipColors(optional long backgroundColor, optional long contentColor, optional long leadingIconContentColor, optional long disabledBackgroundColor, optional long disabledContentColor, optional long disabledLeadingIconContentColor);
+    method @androidx.compose.runtime.Composable public androidx.compose.material.SelectableChipColors filterChipColors(optional long backgroundColor, optional long contentColor, optional long leadingIconColor, optional long disabledBackgroundColor, optional long disabledContentColor, optional long disabledLeadingIconColor, optional long selectedBackgroundColor, optional long selectedContentColor, optional long selectedLeadingIconColor);
+    method public float getLeadingIconSize();
+    method public float getMinHeight();
+    method @androidx.compose.runtime.Composable public androidx.compose.foundation.BorderStroke getOutlinedBorder();
+    method public float getOutlinedBorderSize();
+    method public float getSelectedIconSize();
+    method @androidx.compose.runtime.Composable public androidx.compose.material.ChipColors outlinedChipColors(optional long backgroundColor, optional long contentColor, optional long leadingIconContentColor, optional long disabledBackgroundColor, optional long disabledContentColor, optional long disabledLeadingIconContentColor);
+    method @androidx.compose.runtime.Composable public androidx.compose.material.SelectableChipColors outlinedFilterChipColors(optional long backgroundColor, optional long contentColor, optional long leadingIconColor, optional long disabledBackgroundColor, optional long disabledContentColor, optional long disabledLeadingIconColor, optional long selectedBackgroundColor, optional long selectedContentColor, optional long selectedLeadingIconColor);
+    property public final float LeadingIconSize;
+    property public final float MinHeight;
+    property public final float OutlinedBorderSize;
+    property public final float SelectedIconSize;
+    property @androidx.compose.runtime.Composable public final androidx.compose.foundation.BorderStroke outlinedBorder;
+    field public static final float ContentOpacity = 0.87f;
+    field public static final androidx.compose.material.ChipDefaults INSTANCE;
+    field public static final float LeadingIconOpacity = 0.54f;
+    field public static final float OutlinedBorderOpacity = 0.12f;
+  }
+
+  public final class ChipKt {
+    method @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public static void Chip(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.foundation.BorderStroke? border, optional androidx.compose.material.ChipColors colors, optional kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit> content);
+    method @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public static void FilterChip(boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onClick, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.foundation.BorderStroke? border, optional androidx.compose.material.SelectableChipColors colors, optional kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? selectedIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit> content);
+  }
+
   @androidx.compose.runtime.Stable public final class Colors {
     ctor public Colors(long primary, long primaryVariant, long secondary, long secondaryVariant, long background, long surface, long error, long onPrimary, long onSecondary, long onBackground, long onSurface, long onError, boolean isLight);
     method public androidx.compose.material.Colors copy(optional long primary, optional long primaryVariant, optional long secondary, optional long secondaryVariant, optional long background, optional long surface, optional long error, optional long onPrimary, optional long onSecondary, optional long onBackground, optional long onSurface, optional long onError, optional boolean isLight);
@@ -193,6 +337,20 @@
     enum_constant public static final androidx.compose.material.DismissDirection StartToEnd;
   }
 
+  @androidx.compose.material.ExperimentalMaterialApi public final class DismissState extends androidx.compose.material.SwipeableState<androidx.compose.material.DismissValue> {
+    ctor public DismissState(androidx.compose.material.DismissValue initialValue, optional kotlin.jvm.functions.Function1<? super androidx.compose.material.DismissValue,java.lang.Boolean> confirmStateChange);
+    method public suspend Object? dismiss(androidx.compose.material.DismissDirection direction, kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    method public androidx.compose.material.DismissDirection? getDismissDirection();
+    method public boolean isDismissed(androidx.compose.material.DismissDirection direction);
+    method public suspend Object? reset(kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    property public final androidx.compose.material.DismissDirection? dismissDirection;
+    field public static final androidx.compose.material.DismissState.Companion Companion;
+  }
+
+  public static final class DismissState.Companion {
+    method public androidx.compose.runtime.saveable.Saver<androidx.compose.material.DismissState,androidx.compose.material.DismissValue> Saver(kotlin.jvm.functions.Function1<? super androidx.compose.material.DismissValue,java.lang.Boolean> confirmStateChange);
+  }
+
   public enum DismissValue {
     method public static androidx.compose.material.DismissValue valueOf(String value) throws java.lang.IllegalArgumentException, java.lang.NullPointerException;
     method public static androidx.compose.material.DismissValue[] values();
@@ -215,14 +373,20 @@
   }
 
   public final class DrawerKt {
+    method @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public static void BottomDrawer(kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit> drawerContent, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.material.BottomDrawerState drawerState, optional boolean gesturesEnabled, optional androidx.compose.ui.graphics.Shape drawerShape, optional float drawerElevation, optional long drawerBackgroundColor, optional long drawerContentColor, optional long scrimColor, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+    method @androidx.compose.material.ExperimentalMaterialApi public static androidx.compose.material.BottomDrawerState BottomDrawerState(androidx.compose.material.BottomDrawerValue initialValue, androidx.compose.ui.unit.Density density, optional kotlin.jvm.functions.Function1<? super androidx.compose.material.BottomDrawerValue,java.lang.Boolean> confirmStateChange);
     method @androidx.compose.runtime.Composable public static void ModalDrawer(kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit> drawerContent, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.material.DrawerState drawerState, optional boolean gesturesEnabled, optional androidx.compose.ui.graphics.Shape drawerShape, optional float drawerElevation, optional long drawerBackgroundColor, optional long drawerContentColor, optional long scrimColor, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+    method @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public static androidx.compose.material.BottomDrawerState rememberBottomDrawerState(androidx.compose.material.BottomDrawerValue initialValue, optional kotlin.jvm.functions.Function1<? super androidx.compose.material.BottomDrawerValue,java.lang.Boolean> confirmStateChange);
     method @androidx.compose.runtime.Composable public static androidx.compose.material.DrawerState rememberDrawerState(androidx.compose.material.DrawerValue initialValue, optional kotlin.jvm.functions.Function1<? super androidx.compose.material.DrawerValue,java.lang.Boolean> confirmStateChange);
   }
 
   @androidx.compose.runtime.Stable public final class DrawerState {
     ctor public DrawerState(androidx.compose.material.DrawerValue initialValue, optional kotlin.jvm.functions.Function1<? super androidx.compose.material.DrawerValue,java.lang.Boolean> confirmStateChange);
+    method @Deprecated @androidx.compose.material.ExperimentalMaterialApi public suspend Object? animateTo(androidx.compose.material.DrawerValue targetValue, androidx.compose.animation.core.AnimationSpec<java.lang.Float> anim, kotlin.coroutines.Continuation<? super kotlin.Unit>);
     method public suspend Object? close(kotlin.coroutines.Continuation<? super kotlin.Unit>);
     method public androidx.compose.material.DrawerValue getCurrentValue();
+    method @androidx.compose.material.ExperimentalMaterialApi public float getOffset();
+    method @androidx.compose.material.ExperimentalMaterialApi public androidx.compose.material.DrawerValue getTargetValue();
     method public boolean isAnimationRunning();
     method public boolean isClosed();
     method public boolean isOpen();
@@ -232,6 +396,8 @@
     property public final boolean isAnimationRunning;
     property public final boolean isClosed;
     property public final boolean isOpen;
+    property @androidx.compose.material.ExperimentalMaterialApi public final float offset;
+    property @androidx.compose.material.ExperimentalMaterialApi public final androidx.compose.material.DrawerValue targetValue;
     field public static final androidx.compose.material.DrawerState.Companion Companion;
   }
 
@@ -257,6 +423,25 @@
     property public static final androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.material.ElevationOverlay> LocalElevationOverlay;
   }
 
+  @kotlin.RequiresOptIn(message="This material API is experimental and is likely to change or to be removed in" + " the future.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface ExperimentalMaterialApi {
+  }
+
+  @androidx.compose.material.ExperimentalMaterialApi @kotlin.jvm.JvmDefaultWithCompatibility public interface ExposedDropdownMenuBoxScope {
+    method @androidx.compose.runtime.Composable public default void ExposedDropdownMenu(boolean expanded, kotlin.jvm.functions.Function0<kotlin.Unit> onDismissRequest, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.foundation.ScrollState scrollState, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit> content);
+    method public androidx.compose.ui.Modifier exposedDropdownSize(androidx.compose.ui.Modifier, optional boolean matchTextFieldWidth);
+  }
+
+  @androidx.compose.material.ExperimentalMaterialApi public final class ExposedDropdownMenuDefaults {
+    method @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public void TrailingIcon(boolean expanded, optional kotlin.jvm.functions.Function0<kotlin.Unit> onIconClick);
+    method @androidx.compose.runtime.Composable public androidx.compose.material.TextFieldColors outlinedTextFieldColors(optional long textColor, optional long disabledTextColor, optional long backgroundColor, optional long cursorColor, optional long errorCursorColor, optional long focusedBorderColor, optional long unfocusedBorderColor, optional long disabledBorderColor, optional long errorBorderColor, optional long leadingIconColor, optional long disabledLeadingIconColor, optional long errorLeadingIconColor, optional long trailingIconColor, optional long focusedTrailingIconColor, optional long disabledTrailingIconColor, optional long errorTrailingIconColor, optional long focusedLabelColor, optional long unfocusedLabelColor, optional long disabledLabelColor, optional long errorLabelColor, optional long placeholderColor, optional long disabledPlaceholderColor);
+    method @androidx.compose.runtime.Composable public androidx.compose.material.TextFieldColors textFieldColors(optional long textColor, optional long disabledTextColor, optional long backgroundColor, optional long cursorColor, optional long errorCursorColor, optional long focusedIndicatorColor, optional long unfocusedIndicatorColor, optional long disabledIndicatorColor, optional long errorIndicatorColor, optional long leadingIconColor, optional long disabledLeadingIconColor, optional long errorLeadingIconColor, optional long trailingIconColor, optional long focusedTrailingIconColor, optional long disabledTrailingIconColor, optional long errorTrailingIconColor, optional long focusedLabelColor, optional long unfocusedLabelColor, optional long disabledLabelColor, optional long errorLabelColor, optional long placeholderColor, optional long disabledPlaceholderColor);
+    field public static final androidx.compose.material.ExposedDropdownMenuDefaults INSTANCE;
+  }
+
+  public final class ExposedDropdownMenuKt {
+    method @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public static void ExposedDropdownMenuBox(boolean expanded, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit> onExpandedChange, optional androidx.compose.ui.Modifier modifier, kotlin.jvm.functions.Function1<? super androidx.compose.material.ExposedDropdownMenuBoxScope,kotlin.Unit> content);
+  }
+
   @kotlin.jvm.JvmInline public final value class FabPosition {
     field public static final androidx.compose.material.FabPosition.Companion Companion;
   }
@@ -268,6 +453,12 @@
     property public final int End;
   }
 
+  @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Immutable public final class FixedThreshold implements androidx.compose.material.ThresholdConfig {
+    ctor public FixedThreshold(float offset);
+    method public float computeThreshold(androidx.compose.ui.unit.Density, float fromValue, float toValue);
+    method public androidx.compose.material.FixedThreshold copy-0680j_4(float offset);
+  }
+
   public final class FloatingActionButtonDefaults {
     method @Deprecated @androidx.compose.runtime.Composable public androidx.compose.material.FloatingActionButtonElevation elevation(optional float defaultElevation, optional float pressedElevation);
     method @androidx.compose.runtime.Composable public androidx.compose.material.FloatingActionButtonElevation elevation(optional float defaultElevation, optional float pressedElevation, optional float hoveredElevation, optional float focusedElevation);
@@ -283,6 +474,12 @@
     method @androidx.compose.runtime.Composable public static void FloatingActionButton(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional androidx.compose.ui.graphics.Shape shape, optional long backgroundColor, optional long contentColor, optional androidx.compose.material.FloatingActionButtonElevation elevation, kotlin.jvm.functions.Function0<kotlin.Unit> content);
   }
 
+  @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Immutable public final class FractionalThreshold implements androidx.compose.material.ThresholdConfig {
+    ctor public FractionalThreshold(float fraction);
+    method public float computeThreshold(androidx.compose.ui.unit.Density, float fromValue, float toValue);
+    method public androidx.compose.material.FractionalThreshold copy(float fraction);
+  }
+
   public final class IconButtonKt {
     method @androidx.compose.runtime.Composable public static void IconButton(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, kotlin.jvm.functions.Function0<kotlin.Unit> content);
     method @androidx.compose.runtime.Composable public static void IconToggleButton(boolean checked, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit> onCheckedChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, kotlin.jvm.functions.Function0<kotlin.Unit> content);
@@ -295,7 +492,15 @@
   }
 
   public final class InteractiveComponentSizeKt {
+    method @androidx.compose.material.ExperimentalMaterialApi public static androidx.compose.runtime.ProvidableCompositionLocal<java.lang.Boolean> getLocalMinimumInteractiveComponentEnforcement();
+    method @Deprecated @androidx.compose.material.ExperimentalMaterialApi public static androidx.compose.runtime.ProvidableCompositionLocal<java.lang.Boolean> getLocalMinimumTouchTargetEnforcement();
     method public static androidx.compose.ui.Modifier minimumInteractiveComponentSize(androidx.compose.ui.Modifier);
+    property @androidx.compose.material.ExperimentalMaterialApi public static final androidx.compose.runtime.ProvidableCompositionLocal<java.lang.Boolean> LocalMinimumInteractiveComponentEnforcement;
+    property @Deprecated @androidx.compose.material.ExperimentalMaterialApi public static final androidx.compose.runtime.ProvidableCompositionLocal<java.lang.Boolean> LocalMinimumTouchTargetEnforcement;
+  }
+
+  public final class ListItemKt {
+    method @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public static void ListItem(optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function0<kotlin.Unit>? icon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? secondaryText, optional boolean singleLineSecondaryText, optional kotlin.jvm.functions.Function0<kotlin.Unit>? overlineText, optional kotlin.jvm.functions.Function0<kotlin.Unit>? trailing, kotlin.jvm.functions.Function0<kotlin.Unit> text);
   }
 
   public final class MaterialTheme {
@@ -326,6 +531,43 @@
     field public static final androidx.compose.material.ModalBottomSheetDefaults INSTANCE;
   }
 
+  public final class ModalBottomSheetKt {
+    method @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public static void ModalBottomSheetLayout(kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit> sheetContent, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.material.ModalBottomSheetState sheetState, optional boolean sheetGesturesEnabled, optional androidx.compose.ui.graphics.Shape sheetShape, optional float sheetElevation, optional long sheetBackgroundColor, optional long sheetContentColor, optional long scrimColor, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+    method @Deprecated @androidx.compose.material.ExperimentalMaterialApi public static androidx.compose.material.ModalBottomSheetState ModalBottomSheetState(androidx.compose.material.ModalBottomSheetValue initialValue, optional androidx.compose.animation.core.AnimationSpec<java.lang.Float> animationSpec, optional kotlin.jvm.functions.Function1<? super androidx.compose.material.ModalBottomSheetValue,java.lang.Boolean> confirmValueChange, optional boolean isSkipHalfExpanded);
+    method @androidx.compose.material.ExperimentalMaterialApi public static androidx.compose.material.ModalBottomSheetState ModalBottomSheetState(androidx.compose.material.ModalBottomSheetValue initialValue, androidx.compose.ui.unit.Density density, optional androidx.compose.animation.core.AnimationSpec<java.lang.Float> animationSpec, optional kotlin.jvm.functions.Function1<? super androidx.compose.material.ModalBottomSheetValue,java.lang.Boolean> confirmValueChange, optional boolean isSkipHalfExpanded);
+    method @Deprecated @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public static androidx.compose.material.ModalBottomSheetState rememberModalBottomSheetState(androidx.compose.material.ModalBottomSheetValue initialValue, optional androidx.compose.animation.core.AnimationSpec<java.lang.Float> animationSpec, boolean skipHalfExpanded, kotlin.jvm.functions.Function1<? super androidx.compose.material.ModalBottomSheetValue,java.lang.Boolean> confirmStateChange);
+    method @Deprecated @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public static androidx.compose.material.ModalBottomSheetState rememberModalBottomSheetState(androidx.compose.material.ModalBottomSheetValue initialValue, optional androidx.compose.animation.core.AnimationSpec<java.lang.Float> animationSpec, kotlin.jvm.functions.Function1<? super androidx.compose.material.ModalBottomSheetValue,java.lang.Boolean> confirmStateChange);
+    method @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public static androidx.compose.material.ModalBottomSheetState rememberModalBottomSheetState(androidx.compose.material.ModalBottomSheetValue initialValue, optional androidx.compose.animation.core.AnimationSpec<java.lang.Float> animationSpec, optional kotlin.jvm.functions.Function1<? super androidx.compose.material.ModalBottomSheetValue,java.lang.Boolean> confirmValueChange, optional boolean skipHalfExpanded);
+  }
+
+  @androidx.compose.material.ExperimentalMaterialApi public final class ModalBottomSheetState {
+    ctor @Deprecated public ModalBottomSheetState(androidx.compose.material.ModalBottomSheetValue initialValue, optional androidx.compose.animation.core.AnimationSpec<java.lang.Float> animationSpec, optional boolean isSkipHalfExpanded, kotlin.jvm.functions.Function1<? super androidx.compose.material.ModalBottomSheetValue,java.lang.Boolean> confirmStateChange);
+    ctor @Deprecated public ModalBottomSheetState(androidx.compose.material.ModalBottomSheetValue initialValue, androidx.compose.animation.core.AnimationSpec<java.lang.Float> animationSpec, kotlin.jvm.functions.Function1<? super androidx.compose.material.ModalBottomSheetValue,java.lang.Boolean> confirmStateChange);
+    method public androidx.compose.material.ModalBottomSheetValue getCurrentValue();
+    method public androidx.compose.material.ModalBottomSheetValue getTargetValue();
+    method public suspend Object? hide(kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    method public boolean isVisible();
+    method public suspend Object? show(kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    property public final androidx.compose.material.ModalBottomSheetValue currentValue;
+    property public final boolean isVisible;
+    property public final androidx.compose.material.ModalBottomSheetValue targetValue;
+    field public static final androidx.compose.material.ModalBottomSheetState.Companion Companion;
+  }
+
+  public static final class ModalBottomSheetState.Companion {
+    method @Deprecated public androidx.compose.runtime.saveable.Saver<androidx.compose.material.ModalBottomSheetState,?> Saver(androidx.compose.animation.core.AnimationSpec<java.lang.Float> animationSpec, boolean skipHalfExpanded, kotlin.jvm.functions.Function1<? super androidx.compose.material.ModalBottomSheetValue,java.lang.Boolean> confirmStateChange);
+    method @Deprecated public androidx.compose.runtime.saveable.Saver<androidx.compose.material.ModalBottomSheetState,?> Saver(androidx.compose.animation.core.AnimationSpec<java.lang.Float> animationSpec, kotlin.jvm.functions.Function1<? super androidx.compose.material.ModalBottomSheetValue,java.lang.Boolean> confirmValueChange, boolean skipHalfExpanded);
+    method public androidx.compose.runtime.saveable.Saver<androidx.compose.material.ModalBottomSheetState,?> Saver(androidx.compose.animation.core.AnimationSpec<java.lang.Float> animationSpec, kotlin.jvm.functions.Function1<? super androidx.compose.material.ModalBottomSheetValue,java.lang.Boolean> confirmValueChange, boolean skipHalfExpanded, androidx.compose.ui.unit.Density density);
+  }
+
+  @androidx.compose.material.ExperimentalMaterialApi public enum ModalBottomSheetValue {
+    method public static androidx.compose.material.ModalBottomSheetValue valueOf(String value) throws java.lang.IllegalArgumentException, java.lang.NullPointerException;
+    method public static androidx.compose.material.ModalBottomSheetValue[] values();
+    enum_constant public static final androidx.compose.material.ModalBottomSheetValue Expanded;
+    enum_constant public static final androidx.compose.material.ModalBottomSheetValue HalfExpanded;
+    enum_constant public static final androidx.compose.material.ModalBottomSheetValue Hidden;
+  }
+
   public final class NavigationRailDefaults {
     method public float getElevation();
     property public final float Elevation;
@@ -401,6 +643,12 @@
     property public final androidx.compose.material.SnackbarHostState snackbarHostState;
   }
 
+  @androidx.compose.material.ExperimentalMaterialApi public interface SelectableChipColors {
+    method @androidx.compose.runtime.Composable public androidx.compose.runtime.State<androidx.compose.ui.graphics.Color> backgroundColor(boolean enabled, boolean selected);
+    method @androidx.compose.runtime.Composable public androidx.compose.runtime.State<androidx.compose.ui.graphics.Color> contentColor(boolean enabled, boolean selected);
+    method @androidx.compose.runtime.Composable public androidx.compose.runtime.State<androidx.compose.ui.graphics.Color> leadingIconColor(boolean enabled, boolean selected);
+  }
+
   @androidx.compose.runtime.Immutable public final class Shapes {
     ctor public Shapes(optional androidx.compose.foundation.shape.CornerBasedShape small, optional androidx.compose.foundation.shape.CornerBasedShape medium, optional androidx.compose.foundation.shape.CornerBasedShape large);
     method public androidx.compose.material.Shapes copy(optional androidx.compose.foundation.shape.CornerBasedShape small, optional androidx.compose.foundation.shape.CornerBasedShape medium, optional androidx.compose.foundation.shape.CornerBasedShape large);
@@ -429,6 +677,7 @@
   }
 
   public final class SliderKt {
+    method @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public static void RangeSlider(kotlin.ranges.ClosedFloatingPointRange<java.lang.Float> value, kotlin.jvm.functions.Function1<? super kotlin.ranges.ClosedFloatingPointRange<java.lang.Float>,kotlin.Unit> onValueChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional kotlin.ranges.ClosedFloatingPointRange<java.lang.Float> valueRange, optional int steps, optional kotlin.jvm.functions.Function0<kotlin.Unit>? onValueChangeFinished, optional androidx.compose.material.SliderColors colors);
     method @androidx.compose.runtime.Composable public static void Slider(float value, kotlin.jvm.functions.Function1<? super java.lang.Float,kotlin.Unit> onValueChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional kotlin.ranges.ClosedFloatingPointRange<java.lang.Float> valueRange, optional int steps, optional kotlin.jvm.functions.Function0<kotlin.Unit>? onValueChangeFinished, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional androidx.compose.material.SliderColors colors);
   }
 
@@ -484,6 +733,25 @@
 
   public final class SurfaceKt {
     method @androidx.compose.runtime.Composable public static void Surface(optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.graphics.Shape shape, optional long color, optional long contentColor, optional androidx.compose.foundation.BorderStroke? border, optional float elevation, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+    method @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public static void Surface(boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onClick, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.ui.graphics.Shape shape, optional long color, optional long contentColor, optional androidx.compose.foundation.BorderStroke? border, optional float elevation, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+    method @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public static void Surface(boolean checked, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit> onCheckedChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.ui.graphics.Shape shape, optional long color, optional long contentColor, optional androidx.compose.foundation.BorderStroke? border, optional float elevation, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+    method @Deprecated @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public static void Surface(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.graphics.Shape shape, optional long color, optional long contentColor, optional androidx.compose.foundation.BorderStroke? border, optional float elevation, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional androidx.compose.foundation.Indication? indication, optional boolean enabled, optional String? onClickLabel, optional androidx.compose.ui.semantics.Role? role, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+    method @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public static void Surface(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.ui.graphics.Shape shape, optional long color, optional long contentColor, optional androidx.compose.foundation.BorderStroke? border, optional float elevation, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+  }
+
+  @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Immutable public final class SwipeProgress<T> {
+    ctor public SwipeProgress(T from, T to, float fraction);
+    method public float getFraction();
+    method public T getFrom();
+    method public T getTo();
+    property public final float fraction;
+    property public final T from;
+    property public final T to;
+  }
+
+  public final class SwipeToDismissKt {
+    method @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public static void SwipeToDismiss(androidx.compose.material.DismissState state, optional androidx.compose.ui.Modifier modifier, optional java.util.Set<? extends androidx.compose.material.DismissDirection> directions, optional kotlin.jvm.functions.Function1<? super androidx.compose.material.DismissDirection,? extends androidx.compose.material.ThresholdConfig> dismissThresholds, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit> background, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit> dismissContent);
+    method @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public static androidx.compose.material.DismissState rememberDismissState(optional androidx.compose.material.DismissValue initialValue, optional kotlin.jvm.functions.Function1<? super androidx.compose.material.DismissValue,java.lang.Boolean> confirmStateChange);
   }
 
   public final class SwipeableDefaults {
@@ -497,6 +765,38 @@
     field public static final float StiffResistanceFactor = 20.0f;
   }
 
+  public final class SwipeableKt {
+    method @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public static <T> androidx.compose.material.SwipeableState<T> rememberSwipeableState(T initialValue, optional androidx.compose.animation.core.AnimationSpec<java.lang.Float> animationSpec, optional kotlin.jvm.functions.Function1<? super T,java.lang.Boolean> confirmStateChange);
+    method @androidx.compose.material.ExperimentalMaterialApi public static <T> androidx.compose.ui.Modifier swipeable(androidx.compose.ui.Modifier, androidx.compose.material.SwipeableState<T> state, java.util.Map<java.lang.Float,? extends T> anchors, androidx.compose.foundation.gestures.Orientation orientation, optional boolean enabled, optional boolean reverseDirection, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, optional kotlin.jvm.functions.Function2<? super T,? super T,? extends androidx.compose.material.ThresholdConfig> thresholds, optional androidx.compose.material.ResistanceConfig? resistance, optional float velocityThreshold);
+  }
+
+  @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Stable public class SwipeableState<T> {
+    ctor public SwipeableState(T initialValue, optional androidx.compose.animation.core.AnimationSpec<java.lang.Float> animationSpec, optional kotlin.jvm.functions.Function1<? super T,java.lang.Boolean> confirmStateChange);
+    method @androidx.compose.material.ExperimentalMaterialApi public final suspend Object? animateTo(T targetValue, optional androidx.compose.animation.core.AnimationSpec<java.lang.Float> anim, optional kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    method public final T getCurrentValue();
+    method public final float getDirection();
+    method public final androidx.compose.runtime.State<java.lang.Float> getOffset();
+    method public final androidx.compose.runtime.State<java.lang.Float> getOverflow();
+    method public final androidx.compose.material.SwipeProgress<T> getProgress();
+    method public final T getTargetValue();
+    method public final boolean isAnimationRunning();
+    method public final float performDrag(float delta);
+    method public final suspend Object? performFling(float velocity, kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    method @androidx.compose.material.ExperimentalMaterialApi public final suspend Object? snapTo(T targetValue, kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    property public final T currentValue;
+    property @androidx.compose.material.ExperimentalMaterialApi public final float direction;
+    property public final boolean isAnimationRunning;
+    property public final androidx.compose.runtime.State<java.lang.Float> offset;
+    property public final androidx.compose.runtime.State<java.lang.Float> overflow;
+    property @androidx.compose.material.ExperimentalMaterialApi public final androidx.compose.material.SwipeProgress<T> progress;
+    property @androidx.compose.material.ExperimentalMaterialApi public final T targetValue;
+    field public static final androidx.compose.material.SwipeableState.Companion Companion;
+  }
+
+  public static final class SwipeableState.Companion {
+    method public <T> androidx.compose.runtime.saveable.Saver<androidx.compose.material.SwipeableState<T>,T> Saver(androidx.compose.animation.core.AnimationSpec<java.lang.Float> animationSpec, kotlin.jvm.functions.Function1<? super T,java.lang.Boolean> confirmStateChange);
+  }
+
   @androidx.compose.runtime.Stable public interface SwitchColors {
     method @androidx.compose.runtime.Composable public androidx.compose.runtime.State<androidx.compose.ui.graphics.Color> thumbColor(boolean enabled, boolean checked);
     method @androidx.compose.runtime.Composable public androidx.compose.runtime.State<androidx.compose.ui.graphics.Color> trackColor(boolean enabled, boolean checked);
@@ -556,15 +856,27 @@
     method @androidx.compose.runtime.Composable public androidx.compose.runtime.State<androidx.compose.ui.graphics.Color> trailingIconColor(boolean enabled, boolean isError);
   }
 
+  @androidx.compose.material.ExperimentalMaterialApi @kotlin.jvm.JvmDefaultWithCompatibility public interface TextFieldColorsWithIcons extends androidx.compose.material.TextFieldColors {
+    method @androidx.compose.runtime.Composable public default androidx.compose.runtime.State<androidx.compose.ui.graphics.Color> leadingIconColor(boolean enabled, boolean isError, androidx.compose.foundation.interaction.InteractionSource interactionSource);
+    method @androidx.compose.runtime.Composable public default androidx.compose.runtime.State<androidx.compose.ui.graphics.Color> trailingIconColor(boolean enabled, boolean isError, androidx.compose.foundation.interaction.InteractionSource interactionSource);
+  }
+
   @androidx.compose.runtime.Immutable public final class TextFieldDefaults {
+    method @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public void BorderBox(boolean enabled, boolean isError, androidx.compose.foundation.interaction.InteractionSource interactionSource, androidx.compose.material.TextFieldColors colors, optional androidx.compose.ui.graphics.Shape shape, optional float focusedBorderThickness, optional float unfocusedBorderThickness);
+    method @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public void OutlinedTextFieldDecorationBox(String value, kotlin.jvm.functions.Function0<kotlin.Unit> innerTextField, boolean enabled, boolean singleLine, androidx.compose.ui.text.input.VisualTransformation visualTransformation, androidx.compose.foundation.interaction.InteractionSource interactionSource, optional boolean isError, optional kotlin.jvm.functions.Function0<kotlin.Unit>? label, optional kotlin.jvm.functions.Function0<kotlin.Unit>? placeholder, optional kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon, optional androidx.compose.material.TextFieldColors colors, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional kotlin.jvm.functions.Function0<kotlin.Unit> border);
+    method @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public void TextFieldDecorationBox(String value, kotlin.jvm.functions.Function0<kotlin.Unit> innerTextField, boolean enabled, boolean singleLine, androidx.compose.ui.text.input.VisualTransformation visualTransformation, androidx.compose.foundation.interaction.InteractionSource interactionSource, optional boolean isError, optional kotlin.jvm.functions.Function0<kotlin.Unit>? label, optional kotlin.jvm.functions.Function0<kotlin.Unit>? placeholder, optional kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon, optional androidx.compose.material.TextFieldColors colors, optional androidx.compose.foundation.layout.PaddingValues contentPadding);
     method public float getFocusedBorderThickness();
     method public float getMinHeight();
     method public float getMinWidth();
     method @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public androidx.compose.ui.graphics.Shape getOutlinedTextFieldShape();
     method @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public androidx.compose.ui.graphics.Shape getTextFieldShape();
     method public float getUnfocusedBorderThickness();
+    method @androidx.compose.material.ExperimentalMaterialApi public androidx.compose.ui.Modifier indicatorLine(androidx.compose.ui.Modifier, boolean enabled, boolean isError, androidx.compose.foundation.interaction.InteractionSource interactionSource, androidx.compose.material.TextFieldColors colors, optional float focusedIndicatorLineThickness, optional float unfocusedIndicatorLineThickness);
     method @androidx.compose.runtime.Composable public androidx.compose.material.TextFieldColors outlinedTextFieldColors(optional long textColor, optional long disabledTextColor, optional long backgroundColor, optional long cursorColor, optional long errorCursorColor, optional long focusedBorderColor, optional long unfocusedBorderColor, optional long disabledBorderColor, optional long errorBorderColor, optional long leadingIconColor, optional long disabledLeadingIconColor, optional long errorLeadingIconColor, optional long trailingIconColor, optional long disabledTrailingIconColor, optional long errorTrailingIconColor, optional long focusedLabelColor, optional long unfocusedLabelColor, optional long disabledLabelColor, optional long errorLabelColor, optional long placeholderColor, optional long disabledPlaceholderColor);
+    method @androidx.compose.material.ExperimentalMaterialApi public androidx.compose.foundation.layout.PaddingValues outlinedTextFieldPadding(optional float start, optional float top, optional float end, optional float bottom);
     method @androidx.compose.runtime.Composable public androidx.compose.material.TextFieldColors textFieldColors(optional long textColor, optional long disabledTextColor, optional long backgroundColor, optional long cursorColor, optional long errorCursorColor, optional long focusedIndicatorColor, optional long unfocusedIndicatorColor, optional long disabledIndicatorColor, optional long errorIndicatorColor, optional long leadingIconColor, optional long disabledLeadingIconColor, optional long errorLeadingIconColor, optional long trailingIconColor, optional long disabledTrailingIconColor, optional long errorTrailingIconColor, optional long focusedLabelColor, optional long unfocusedLabelColor, optional long disabledLabelColor, optional long errorLabelColor, optional long placeholderColor, optional long disabledPlaceholderColor);
+    method @androidx.compose.material.ExperimentalMaterialApi public androidx.compose.foundation.layout.PaddingValues textFieldWithLabelPadding(optional float start, optional float end, optional float top, optional float bottom);
+    method @androidx.compose.material.ExperimentalMaterialApi public androidx.compose.foundation.layout.PaddingValues textFieldWithoutLabelPadding(optional float start, optional float top, optional float end, optional float bottom);
     property public final float FocusedBorderThickness;
     property public final float MinHeight;
     property public final float MinWidth;
@@ -594,6 +906,10 @@
     property public static final androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.ui.text.TextStyle> LocalTextStyle;
   }
 
+  @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Stable public interface ThresholdConfig {
+    method public float computeThreshold(androidx.compose.ui.unit.Density, float fromValue, float toValue);
+  }
+
   @androidx.compose.runtime.Immutable public final class Typography {
     ctor public Typography(optional androidx.compose.ui.text.font.FontFamily defaultFontFamily, optional androidx.compose.ui.text.TextStyle h1, optional androidx.compose.ui.text.TextStyle h2, optional androidx.compose.ui.text.TextStyle h3, optional androidx.compose.ui.text.TextStyle h4, optional androidx.compose.ui.text.TextStyle h5, optional androidx.compose.ui.text.TextStyle h6, optional androidx.compose.ui.text.TextStyle subtitle1, optional androidx.compose.ui.text.TextStyle subtitle2, optional androidx.compose.ui.text.TextStyle body1, optional androidx.compose.ui.text.TextStyle body2, optional androidx.compose.ui.text.TextStyle button, optional androidx.compose.ui.text.TextStyle caption, optional androidx.compose.ui.text.TextStyle overline);
     method public androidx.compose.material.Typography copy(optional androidx.compose.ui.text.TextStyle h1, optional androidx.compose.ui.text.TextStyle h2, optional androidx.compose.ui.text.TextStyle h3, optional androidx.compose.ui.text.TextStyle h4, optional androidx.compose.ui.text.TextStyle h5, optional androidx.compose.ui.text.TextStyle h6, optional androidx.compose.ui.text.TextStyle subtitle1, optional androidx.compose.ui.text.TextStyle subtitle2, optional androidx.compose.ui.text.TextStyle body1, optional androidx.compose.ui.text.TextStyle body2, optional androidx.compose.ui.text.TextStyle button, optional androidx.compose.ui.text.TextStyle caption, optional androidx.compose.ui.text.TextStyle overline);
@@ -627,3 +943,37 @@
 
 }
 
+package androidx.compose.material.pullrefresh {
+
+  @androidx.compose.material.ExperimentalMaterialApi public final class PullRefreshDefaults {
+    method public float getRefreshThreshold();
+    method public float getRefreshingOffset();
+    property public final float RefreshThreshold;
+    property public final float RefreshingOffset;
+    field public static final androidx.compose.material.pullrefresh.PullRefreshDefaults INSTANCE;
+  }
+
+  public final class PullRefreshIndicatorKt {
+    method @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public static void PullRefreshIndicator(boolean refreshing, androidx.compose.material.pullrefresh.PullRefreshState state, optional androidx.compose.ui.Modifier modifier, optional long backgroundColor, optional long contentColor, optional boolean scale);
+  }
+
+  public final class PullRefreshIndicatorTransformKt {
+    method @androidx.compose.material.ExperimentalMaterialApi public static androidx.compose.ui.Modifier pullRefreshIndicatorTransform(androidx.compose.ui.Modifier, androidx.compose.material.pullrefresh.PullRefreshState state, optional boolean scale);
+  }
+
+  public final class PullRefreshKt {
+    method @androidx.compose.material.ExperimentalMaterialApi public static androidx.compose.ui.Modifier pullRefresh(androidx.compose.ui.Modifier, androidx.compose.material.pullrefresh.PullRefreshState state, optional boolean enabled);
+    method @androidx.compose.material.ExperimentalMaterialApi public static androidx.compose.ui.Modifier pullRefresh(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1<? super java.lang.Float,java.lang.Float> onPull, kotlin.jvm.functions.Function2<? super java.lang.Float,? super kotlin.coroutines.Continuation<? super java.lang.Float>,?> onRelease, optional boolean enabled);
+  }
+
+  @androidx.compose.material.ExperimentalMaterialApi public final class PullRefreshState {
+    method public float getProgress();
+    property public final float progress;
+  }
+
+  public final class PullRefreshStateKt {
+    method @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public static androidx.compose.material.pullrefresh.PullRefreshState rememberPullRefreshState(boolean refreshing, kotlin.jvm.functions.Function0<kotlin.Unit> onRefresh, optional float refreshThreshold, optional float refreshingOffset);
+  }
+
+}
+
diff --git a/compose/material/material/src/commonMain/kotlin/androidx/compose/material/AnchoredDraggable.kt b/compose/material/material/src/commonMain/kotlin/androidx/compose/material/AnchoredDraggable.kt
index c93036a..3612967 100644
--- a/compose/material/material/src/commonMain/kotlin/androidx/compose/material/AnchoredDraggable.kt
+++ b/compose/material/material/src/commonMain/kotlin/androidx/compose/material/AnchoredDraggable.kt
@@ -183,9 +183,7 @@
      * Strongly consider using [requireOffset] which will throw if the offset is read before it is
      * initialized. This helps catch issues early in your workflow.
      */
-    // Todo: Use primitive state when b/281205384 is fixed
-    @Suppress("AutoboxingStateCreation")
-    var offset: Float by mutableStateOf(Float.NaN)
+    var offset: Float by mutableFloatStateOf(Float.NaN)
         private set
 
     /**
diff --git a/compose/material3/material3-adaptive/api/current.txt b/compose/material3/material3-adaptive/api/current.txt
index e6f50d0..8ae70d9 100644
--- a/compose/material3/material3-adaptive/api/current.txt
+++ b/compose/material3/material3-adaptive/api/current.txt
@@ -1 +1,8 @@
 // Signature format: 4.0
+package androidx.compose.material3.adaptive {
+
+  @kotlin.RequiresOptIn(message="This material3-adaptive API is experimental and is likely to change or to be" + "removed in the future.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface ExperimentalMaterial3AdaptiveApi {
+  }
+
+}
+
diff --git a/compose/material3/material3-adaptive/api/public_plus_experimental_current.txt b/compose/material3/material3-adaptive/api/public_plus_experimental_current.txt
deleted file mode 100644
index 8ae70d9..0000000
--- a/compose/material3/material3-adaptive/api/public_plus_experimental_current.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-// Signature format: 4.0
-package androidx.compose.material3.adaptive {
-
-  @kotlin.RequiresOptIn(message="This material3-adaptive API is experimental and is likely to change or to be" + "removed in the future.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface ExperimentalMaterial3AdaptiveApi {
-  }
-
-}
-
diff --git a/compose/material3/material3-adaptive/api/restricted_current.txt b/compose/material3/material3-adaptive/api/restricted_current.txt
index e6f50d0..8ae70d9 100644
--- a/compose/material3/material3-adaptive/api/restricted_current.txt
+++ b/compose/material3/material3-adaptive/api/restricted_current.txt
@@ -1 +1,8 @@
 // Signature format: 4.0
+package androidx.compose.material3.adaptive {
+
+  @kotlin.RequiresOptIn(message="This material3-adaptive API is experimental and is likely to change or to be" + "removed in the future.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface ExperimentalMaterial3AdaptiveApi {
+  }
+
+}
+
diff --git a/compose/material3/material3-adaptive/src/commonMain/kotlin/androidx/compose/material3/adaptive/NavigationSuite.kt b/compose/material3/material3-adaptive/src/commonMain/kotlin/androidx/compose/material3/adaptive/NavigationSuite.kt
index 002f5f5..0bd8d6c 100644
--- a/compose/material3/material3-adaptive/src/commonMain/kotlin/androidx/compose/material3/adaptive/NavigationSuite.kt
+++ b/compose/material3/material3-adaptive/src/commonMain/kotlin/androidx/compose/material3/adaptive/NavigationSuite.kt
@@ -21,6 +21,7 @@
 import androidx.compose.material3.Surface
 import androidx.compose.material3.contentColorFor
 import androidx.compose.runtime.Composable
+import androidx.compose.ui.Alignment
 import androidx.compose.ui.Modifier
 import androidx.compose.ui.graphics.Color
 import androidx.compose.ui.layout.Layout
@@ -87,4 +88,97 @@
     }
 }
 
-/* TODO: Add NavigationLayoutType class and NavigationSuiteFeature. */
\ No newline at end of file
+/**
+ * A feature that describes characteristics of the navigation component of the [NavigationSuite].
+ *
+ * TODO: Remove "internal".
+ */
+@ExperimentalMaterial3AdaptiveApi
+internal interface NavigationSuiteFeature {
+    /**
+     * Represents the orientation of the navigation component of the [NavigationSuite].
+     */
+    enum class Orientation {
+        /**
+         * The navigation component of the [NavigationSuite] is horizontal, such as the
+         * Navigation Bar.
+         */
+        Horizontal,
+        /**
+         * The navigation component of the [NavigationSuite] is vertical, such as the
+         * Navigation Rail or Navigation Drawer.
+         */
+        Vertical
+    }
+}
+
+/**
+ * Class that describes the different navigation layout types of the [NavigationSuite].
+ *
+ * The [NavigationLayoutType] informs the [NavigationSuite] of what navigation component to expect
+ * and how to properly place it on the screen in relation to the [NavigationSuite]'s content.
+ *
+ * @param description the description of the [NavigationLayoutType]
+ * @param alignment the [Alignment] of the [NavigationLayoutType] that helps inform how the
+ * navigation component will be positioned on the screen. The current supported alignments are:
+ * [Alignment.TopStart], [Alignment.BottomStart], and [Alignment.TopEnd]
+ * @param orientation the [NavigationSuiteFeature.Orientation] of the [NavigationLayoutType] that
+ * helps inform how the navigation component will be positioned on the screen in relation to the
+ * content
+ *
+ * TODO: Make class open instead of internal.
+ */
+@ExperimentalMaterial3AdaptiveApi
+internal class NavigationLayoutType constructor(
+    private val description: String,
+    // TODO: Make this an internal open val.
+    internal val alignment: Alignment,
+    // TODO: Make this an internal open val.
+    internal val orientation: NavigationSuiteFeature.Orientation
+) {
+    override fun toString(): String {
+        return description
+    }
+
+    companion object {
+        /**
+         * A navigation layout type that instructs the [NavigationSuite] to expect a
+         * [androidx.compose.material3.NavigationBar] and properly place it on the screen.
+         *
+         * @see androidx.compose.material3.NavigationBar
+         */
+        @JvmField
+        val NavigationBar =
+            NavigationLayoutType(
+                description = "NavigationBar",
+                alignment = Alignment.BottomStart,
+                orientation = NavigationSuiteFeature.Orientation.Horizontal,
+            )
+        /**
+         * A navigation layout type that instructs the [NavigationSuite] to expect a
+         * [androidx.compose.material3.NavigationRail] and properly place it on the screen.
+         *
+         * @see androidx.compose.material3.NavigationRail
+         */
+        @JvmField
+        val NavigationRail =
+            NavigationLayoutType(
+                description = "NavigationRail",
+                alignment = Alignment.TopStart,
+                orientation = NavigationSuiteFeature.Orientation.Vertical,
+            )
+        /**
+         * A navigation layout type that instructs the [NavigationSuite] to expect a
+         * [androidx.compose.material3.PermanentDrawerSheet] and properly place it on the screen.
+         *
+         * @see androidx.compose.material3.PermanentDrawerSheet
+         */
+        @JvmField
+        val NavigationDrawer =
+            NavigationLayoutType(
+                description = "NavigationDrawer",
+                alignment = Alignment.TopStart,
+                orientation = NavigationSuiteFeature.Orientation.Vertical,
+            )
+    }
+}
\ No newline at end of file
diff --git a/compose/material3/material3-window-size-class/api/current.txt b/compose/material3/material3-window-size-class/api/current.txt
index cc66d9f..88ceafc 100644
--- a/compose/material3/material3-window-size-class/api/current.txt
+++ b/compose/material3/material3-window-size-class/api/current.txt
@@ -1,6 +1,13 @@
 // Signature format: 4.0
 package androidx.compose.material3.windowsizeclass {
 
+  public final class AndroidWindowSizeClass_androidKt {
+    method @androidx.compose.material3.windowsizeclass.ExperimentalMaterial3WindowSizeClassApi @androidx.compose.runtime.Composable public static androidx.compose.material3.windowsizeclass.WindowSizeClass calculateWindowSizeClass(android.app.Activity activity);
+  }
+
+  @kotlin.RequiresOptIn(message="This material3-window-size-class API is experimental and is likely to change or to " + "be removed in the future.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface ExperimentalMaterial3WindowSizeClassApi {
+  }
+
   @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class WindowHeightSizeClass implements java.lang.Comparable<androidx.compose.material3.windowsizeclass.WindowHeightSizeClass> {
     method public operator int compareTo(int other);
     field public static final androidx.compose.material3.windowsizeclass.WindowHeightSizeClass.Companion Companion;
@@ -24,6 +31,7 @@
   }
 
   public static final class WindowSizeClass.Companion {
+    method @androidx.compose.material3.windowsizeclass.ExperimentalMaterial3WindowSizeClassApi @org.jetbrains.annotations.TestOnly public androidx.compose.material3.windowsizeclass.WindowSizeClass calculateFromSize(long size);
   }
 
   @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class WindowWidthSizeClass implements java.lang.Comparable<androidx.compose.material3.windowsizeclass.WindowWidthSizeClass> {
diff --git a/compose/material3/material3-window-size-class/api/public_plus_experimental_current.txt b/compose/material3/material3-window-size-class/api/public_plus_experimental_current.txt
deleted file mode 100644
index 88ceafc..0000000
--- a/compose/material3/material3-window-size-class/api/public_plus_experimental_current.txt
+++ /dev/null
@@ -1,52 +0,0 @@
-// Signature format: 4.0
-package androidx.compose.material3.windowsizeclass {
-
-  public final class AndroidWindowSizeClass_androidKt {
-    method @androidx.compose.material3.windowsizeclass.ExperimentalMaterial3WindowSizeClassApi @androidx.compose.runtime.Composable public static androidx.compose.material3.windowsizeclass.WindowSizeClass calculateWindowSizeClass(android.app.Activity activity);
-  }
-
-  @kotlin.RequiresOptIn(message="This material3-window-size-class API is experimental and is likely to change or to " + "be removed in the future.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface ExperimentalMaterial3WindowSizeClassApi {
-  }
-
-  @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class WindowHeightSizeClass implements java.lang.Comparable<androidx.compose.material3.windowsizeclass.WindowHeightSizeClass> {
-    method public operator int compareTo(int other);
-    field public static final androidx.compose.material3.windowsizeclass.WindowHeightSizeClass.Companion Companion;
-  }
-
-  public static final class WindowHeightSizeClass.Companion {
-    method public int getCompact();
-    method public int getExpanded();
-    method public int getMedium();
-    property public final int Compact;
-    property public final int Expanded;
-    property public final int Medium;
-  }
-
-  @androidx.compose.runtime.Immutable public final class WindowSizeClass {
-    method public int getHeightSizeClass();
-    method public int getWidthSizeClass();
-    property public final int heightSizeClass;
-    property public final int widthSizeClass;
-    field public static final androidx.compose.material3.windowsizeclass.WindowSizeClass.Companion Companion;
-  }
-
-  public static final class WindowSizeClass.Companion {
-    method @androidx.compose.material3.windowsizeclass.ExperimentalMaterial3WindowSizeClassApi @org.jetbrains.annotations.TestOnly public androidx.compose.material3.windowsizeclass.WindowSizeClass calculateFromSize(long size);
-  }
-
-  @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class WindowWidthSizeClass implements java.lang.Comparable<androidx.compose.material3.windowsizeclass.WindowWidthSizeClass> {
-    method public operator int compareTo(int other);
-    field public static final androidx.compose.material3.windowsizeclass.WindowWidthSizeClass.Companion Companion;
-  }
-
-  public static final class WindowWidthSizeClass.Companion {
-    method public int getCompact();
-    method public int getExpanded();
-    method public int getMedium();
-    property public final int Compact;
-    property public final int Expanded;
-    property public final int Medium;
-  }
-
-}
-
diff --git a/compose/material3/material3-window-size-class/api/restricted_current.txt b/compose/material3/material3-window-size-class/api/restricted_current.txt
index cc66d9f..88ceafc 100644
--- a/compose/material3/material3-window-size-class/api/restricted_current.txt
+++ b/compose/material3/material3-window-size-class/api/restricted_current.txt
@@ -1,6 +1,13 @@
 // Signature format: 4.0
 package androidx.compose.material3.windowsizeclass {
 
+  public final class AndroidWindowSizeClass_androidKt {
+    method @androidx.compose.material3.windowsizeclass.ExperimentalMaterial3WindowSizeClassApi @androidx.compose.runtime.Composable public static androidx.compose.material3.windowsizeclass.WindowSizeClass calculateWindowSizeClass(android.app.Activity activity);
+  }
+
+  @kotlin.RequiresOptIn(message="This material3-window-size-class API is experimental and is likely to change or to " + "be removed in the future.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface ExperimentalMaterial3WindowSizeClassApi {
+  }
+
   @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class WindowHeightSizeClass implements java.lang.Comparable<androidx.compose.material3.windowsizeclass.WindowHeightSizeClass> {
     method public operator int compareTo(int other);
     field public static final androidx.compose.material3.windowsizeclass.WindowHeightSizeClass.Companion Companion;
@@ -24,6 +31,7 @@
   }
 
   public static final class WindowSizeClass.Companion {
+    method @androidx.compose.material3.windowsizeclass.ExperimentalMaterial3WindowSizeClassApi @org.jetbrains.annotations.TestOnly public androidx.compose.material3.windowsizeclass.WindowSizeClass calculateFromSize(long size);
   }
 
   @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class WindowWidthSizeClass implements java.lang.Comparable<androidx.compose.material3.windowsizeclass.WindowWidthSizeClass> {
diff --git a/compose/material3/material3/api/current.ignore b/compose/material3/material3/api/current.ignore
index dd3f23a..5455aab 100644
--- a/compose/material3/material3/api/current.ignore
+++ b/compose/material3/material3/api/current.ignore
@@ -1,3 +1,33 @@
 // Baseline format: 1.0
-RemovedClass: androidx.compose.material3.TimePickerState:
-    Removed class androidx.compose.material3.TimePickerState
+BecameUnchecked: Field TimePickerState.hour:
+    Removed Field TimePickerState.hour from compatibility checked API surface
+BecameUnchecked: Field TimePickerState.is24hour:
+    Removed Field TimePickerState.is24hour from compatibility checked API surface
+BecameUnchecked: Field TimePickerState.minute:
+    Removed Field TimePickerState.minute from compatibility checked API surface
+BecameUnchecked: androidx.compose.material3.TimePickerState:
+    Removed class androidx.compose.material3.TimePickerState from compatibility checked API surface
+BecameUnchecked: androidx.compose.material3.TimePickerState#Companion:
+    Removed field androidx.compose.material3.TimePickerState.Companion from compatibility checked API surface
+BecameUnchecked: androidx.compose.material3.TimePickerState#TimePickerState(int, int, boolean):
+    Removed constructor androidx.compose.material3.TimePickerState(int,int,boolean) from compatibility checked API surface
+BecameUnchecked: androidx.compose.material3.TimePickerState#TimePickerState(int, int, boolean) parameter #0:
+    Removed parameter initialHour in androidx.compose.material3.TimePickerState(int initialHour, int initialMinute, boolean is24Hour) from compatibility checked API surface
+BecameUnchecked: androidx.compose.material3.TimePickerState#TimePickerState(int, int, boolean) parameter #1:
+    Removed parameter initialMinute in androidx.compose.material3.TimePickerState(int initialHour, int initialMinute, boolean is24Hour) from compatibility checked API surface
+BecameUnchecked: androidx.compose.material3.TimePickerState#TimePickerState(int, int, boolean) parameter #2:
+    Removed parameter is24Hour in androidx.compose.material3.TimePickerState(int initialHour, int initialMinute, boolean is24Hour) from compatibility checked API surface
+BecameUnchecked: androidx.compose.material3.TimePickerState#getHour():
+    Removed method androidx.compose.material3.TimePickerState.getHour() from compatibility checked API surface
+BecameUnchecked: androidx.compose.material3.TimePickerState#getMinute():
+    Removed method androidx.compose.material3.TimePickerState.getMinute() from compatibility checked API surface
+BecameUnchecked: androidx.compose.material3.TimePickerState#is24hour():
+    Removed method androidx.compose.material3.TimePickerState.is24hour() from compatibility checked API surface
+BecameUnchecked: androidx.compose.material3.TimePickerState#settle(kotlin.coroutines.Continuation<? super kotlin.Unit>):
+    Removed method androidx.compose.material3.TimePickerState.settle(kotlin.coroutines.Continuation<? super kotlin.Unit>) from compatibility checked API surface
+BecameUnchecked: androidx.compose.material3.TimePickerState#settle(kotlin.coroutines.Continuation<? super kotlin.Unit>) parameter #0:
+    Removed parameter arg1 in androidx.compose.material3.TimePickerState.settle(kotlin.coroutines.Continuation<? super kotlin.Unit> arg1) from compatibility checked API surface
+BecameUnchecked: androidx.compose.material3.TimePickerState.Companion:
+    Removed class androidx.compose.material3.TimePickerState.Companion from compatibility checked API surface
+BecameUnchecked: androidx.compose.material3.TimePickerState.Companion#Saver():
+    Removed method androidx.compose.material3.TimePickerState.Companion.Saver() from compatibility checked API surface
diff --git a/compose/material3/material3/api/current.txt b/compose/material3/material3/api/current.txt
index 4754af1..422f0ec 100644
--- a/compose/material3/material3/api/current.txt
+++ b/compose/material3/material3/api/current.txt
@@ -18,6 +18,7 @@
   }
 
   public final class AndroidAlertDialog_androidKt {
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void AlertDialog(kotlin.jvm.functions.Function0<kotlin.Unit> onDismissRequest, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.window.DialogProperties properties, kotlin.jvm.functions.Function0<kotlin.Unit> content);
     method @androidx.compose.runtime.Composable public static void AlertDialog(kotlin.jvm.functions.Function0<kotlin.Unit> onDismissRequest, kotlin.jvm.functions.Function0<kotlin.Unit> confirmButton, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function0<kotlin.Unit>? dismissButton, optional kotlin.jvm.functions.Function0<kotlin.Unit>? icon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? title, optional kotlin.jvm.functions.Function0<kotlin.Unit>? text, optional androidx.compose.ui.graphics.Shape shape, optional long containerColor, optional long iconContentColor, optional long titleContentColor, optional long textContentColor, optional float tonalElevation, optional androidx.compose.ui.window.DialogProperties properties);
   }
 
@@ -30,6 +31,12 @@
   public final class AppBarKt {
     method @androidx.compose.runtime.Composable public static void BottomAppBar(optional androidx.compose.ui.Modifier modifier, optional long containerColor, optional long contentColor, optional float tonalElevation, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional androidx.compose.foundation.layout.WindowInsets windowInsets, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit> content);
     method @androidx.compose.runtime.Composable public static void BottomAppBar(kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit> actions, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function0<kotlin.Unit>? floatingActionButton, optional long containerColor, optional long contentColor, optional float tonalElevation, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional androidx.compose.foundation.layout.WindowInsets windowInsets);
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void CenterAlignedTopAppBar(kotlin.jvm.functions.Function0<kotlin.Unit> title, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function0<kotlin.Unit> navigationIcon, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit> actions, optional androidx.compose.foundation.layout.WindowInsets windowInsets, optional androidx.compose.material3.TopAppBarColors colors, optional androidx.compose.material3.TopAppBarScrollBehavior? scrollBehavior);
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void LargeTopAppBar(kotlin.jvm.functions.Function0<kotlin.Unit> title, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function0<kotlin.Unit> navigationIcon, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit> actions, optional androidx.compose.foundation.layout.WindowInsets windowInsets, optional androidx.compose.material3.TopAppBarColors colors, optional androidx.compose.material3.TopAppBarScrollBehavior? scrollBehavior);
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void MediumTopAppBar(kotlin.jvm.functions.Function0<kotlin.Unit> title, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function0<kotlin.Unit> navigationIcon, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit> actions, optional androidx.compose.foundation.layout.WindowInsets windowInsets, optional androidx.compose.material3.TopAppBarColors colors, optional androidx.compose.material3.TopAppBarScrollBehavior? scrollBehavior);
+    method @Deprecated @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void SmallTopAppBar(kotlin.jvm.functions.Function0<kotlin.Unit> title, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function0<kotlin.Unit> navigationIcon, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit> actions, optional androidx.compose.foundation.layout.WindowInsets windowInsets, optional androidx.compose.material3.TopAppBarColors colors, optional androidx.compose.material3.TopAppBarScrollBehavior? scrollBehavior);
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void TopAppBar(kotlin.jvm.functions.Function0<kotlin.Unit> title, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function0<kotlin.Unit> navigationIcon, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit> actions, optional androidx.compose.foundation.layout.WindowInsets windowInsets, optional androidx.compose.material3.TopAppBarColors colors, optional androidx.compose.material3.TopAppBarScrollBehavior? scrollBehavior);
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static androidx.compose.material3.TopAppBarState rememberTopAppBarState(optional float initialHeightOffsetLimit, optional float initialHeightOffset, optional float initialContentOffset);
   }
 
   public final class AssistChipDefaults {
@@ -47,6 +54,17 @@
     field public static final androidx.compose.material3.AssistChipDefaults INSTANCE;
   }
 
+  @androidx.compose.material3.ExperimentalMaterial3Api public final class BadgeDefaults {
+    method @androidx.compose.runtime.Composable public long getContainerColor();
+    property @androidx.compose.runtime.Composable public final long containerColor;
+    field public static final androidx.compose.material3.BadgeDefaults INSTANCE;
+  }
+
+  public final class BadgeKt {
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void Badge(optional androidx.compose.ui.Modifier modifier, optional long containerColor, optional long contentColor, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit>? content);
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void BadgedBox(kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.BoxScope,kotlin.Unit> badge, optional androidx.compose.ui.Modifier modifier, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.BoxScope,kotlin.Unit> content);
+  }
+
   public final class BottomAppBarDefaults {
     method @androidx.compose.runtime.Composable public long getBottomAppBarFabColor();
     method @androidx.compose.runtime.Composable public long getContainerColor();
@@ -61,6 +79,39 @@
     field public static final androidx.compose.material3.BottomAppBarDefaults INSTANCE;
   }
 
+  @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Stable public final class BottomSheetDefaults {
+    method @androidx.compose.runtime.Composable public void DragHandle(optional androidx.compose.ui.Modifier modifier, optional float width, optional float height, optional androidx.compose.ui.graphics.Shape shape, optional long color);
+    method @androidx.compose.runtime.Composable public long getContainerColor();
+    method public float getElevation();
+    method @androidx.compose.runtime.Composable public androidx.compose.ui.graphics.Shape getExpandedShape();
+    method @androidx.compose.runtime.Composable public androidx.compose.ui.graphics.Shape getHiddenShape();
+    method @androidx.compose.runtime.Composable public long getScrimColor();
+    method public float getSheetPeekHeight();
+    method @androidx.compose.runtime.Composable public androidx.compose.foundation.layout.WindowInsets getWindowInsets();
+    property @androidx.compose.runtime.Composable public final long ContainerColor;
+    property public final float Elevation;
+    property @androidx.compose.runtime.Composable public final androidx.compose.ui.graphics.Shape ExpandedShape;
+    property @androidx.compose.runtime.Composable public final androidx.compose.ui.graphics.Shape HiddenShape;
+    property @androidx.compose.runtime.Composable public final long ScrimColor;
+    property public final float SheetPeekHeight;
+    property @androidx.compose.runtime.Composable public final androidx.compose.foundation.layout.WindowInsets windowInsets;
+    field public static final androidx.compose.material3.BottomSheetDefaults INSTANCE;
+  }
+
+  public final class BottomSheetScaffoldKt {
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void BottomSheetScaffold(kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit> sheetContent, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.material3.BottomSheetScaffoldState scaffoldState, optional float sheetPeekHeight, optional androidx.compose.ui.graphics.Shape sheetShape, optional long sheetContainerColor, optional long sheetContentColor, optional float sheetTonalElevation, optional float sheetShadowElevation, optional kotlin.jvm.functions.Function0<kotlin.Unit>? sheetDragHandle, optional boolean sheetSwipeEnabled, optional kotlin.jvm.functions.Function0<kotlin.Unit>? topBar, optional kotlin.jvm.functions.Function1<? super androidx.compose.material3.SnackbarHostState,kotlin.Unit> snackbarHost, optional long containerColor, optional long contentColor, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.PaddingValues,kotlin.Unit> content);
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static androidx.compose.material3.BottomSheetScaffoldState rememberBottomSheetScaffoldState(optional androidx.compose.material3.SheetState bottomSheetState, optional androidx.compose.material3.SnackbarHostState snackbarHostState);
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static androidx.compose.material3.SheetState rememberStandardBottomSheetState(optional androidx.compose.material3.SheetValue initialValue, optional kotlin.jvm.functions.Function1<? super androidx.compose.material3.SheetValue,java.lang.Boolean> confirmValueChange, optional boolean skipHiddenState);
+  }
+
+  @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Stable public final class BottomSheetScaffoldState {
+    ctor public BottomSheetScaffoldState(androidx.compose.material3.SheetState bottomSheetState, androidx.compose.material3.SnackbarHostState snackbarHostState);
+    method public androidx.compose.material3.SheetState getBottomSheetState();
+    method public androidx.compose.material3.SnackbarHostState getSnackbarHostState();
+    property public final androidx.compose.material3.SheetState bottomSheetState;
+    property public final androidx.compose.material3.SnackbarHostState snackbarHostState;
+  }
+
   @androidx.compose.runtime.Immutable public final class ButtonColors {
   }
 
@@ -115,6 +166,14 @@
     method @androidx.compose.runtime.Composable public static void TextButton(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.ButtonColors colors, optional androidx.compose.material3.ButtonElevation? elevation, optional androidx.compose.foundation.BorderStroke? border, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit> content);
   }
 
+  public final class CalendarModelKt {
+    method @androidx.compose.material3.ExperimentalMaterial3Api public static String formatWithSkeleton(long utcTimeMillis, String skeleton, optional java.util.Locale locale);
+  }
+
+  public final class CalendarModel_androidKt {
+    method @androidx.compose.material3.ExperimentalMaterial3Api public static String formatWithSkeleton(long utcTimeMillis, String skeleton, java.util.Locale locale);
+  }
+
   @androidx.compose.runtime.Immutable public final class CardColors {
   }
 
@@ -140,8 +199,11 @@
 
   public final class CardKt {
     method @androidx.compose.runtime.Composable public static void Card(optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.CardColors colors, optional androidx.compose.material3.CardElevation elevation, optional androidx.compose.foundation.BorderStroke? border, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit> content);
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void Card(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.CardColors colors, optional androidx.compose.material3.CardElevation elevation, optional androidx.compose.foundation.BorderStroke? border, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit> content);
     method @androidx.compose.runtime.Composable public static void ElevatedCard(optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.CardColors colors, optional androidx.compose.material3.CardElevation elevation, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit> content);
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void ElevatedCard(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.CardColors colors, optional androidx.compose.material3.CardElevation elevation, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit> content);
     method @androidx.compose.runtime.Composable public static void OutlinedCard(optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.CardColors colors, optional androidx.compose.material3.CardElevation elevation, optional androidx.compose.foundation.BorderStroke border, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit> content);
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void OutlinedCard(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.CardColors colors, optional androidx.compose.material3.CardElevation elevation, optional androidx.compose.foundation.BorderStroke border, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit> content);
   }
 
   @androidx.compose.runtime.Immutable public final class CheckboxColors {
@@ -169,7 +231,10 @@
   public final class ChipKt {
     method @androidx.compose.runtime.Composable public static void AssistChip(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, kotlin.jvm.functions.Function0<kotlin.Unit> label, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.ChipColors colors, optional androidx.compose.material3.ChipElevation? elevation, optional androidx.compose.material3.ChipBorder? border, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource);
     method @androidx.compose.runtime.Composable public static void ElevatedAssistChip(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, kotlin.jvm.functions.Function0<kotlin.Unit> label, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.ChipColors colors, optional androidx.compose.material3.ChipElevation? elevation, optional androidx.compose.material3.ChipBorder? border, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource);
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void ElevatedFilterChip(boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onClick, kotlin.jvm.functions.Function0<kotlin.Unit> label, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.SelectableChipColors colors, optional androidx.compose.material3.SelectableChipElevation? elevation, optional androidx.compose.material3.SelectableChipBorder? border, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource);
     method @androidx.compose.runtime.Composable public static void ElevatedSuggestionChip(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, kotlin.jvm.functions.Function0<kotlin.Unit> label, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional kotlin.jvm.functions.Function0<kotlin.Unit>? icon, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.ChipColors colors, optional androidx.compose.material3.ChipElevation? elevation, optional androidx.compose.material3.ChipBorder? border, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource);
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void FilterChip(boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onClick, kotlin.jvm.functions.Function0<kotlin.Unit> label, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.SelectableChipColors colors, optional androidx.compose.material3.SelectableChipElevation? elevation, optional androidx.compose.material3.SelectableChipBorder? border, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource);
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void InputChip(boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onClick, kotlin.jvm.functions.Function0<kotlin.Unit> label, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? avatar, optional kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.SelectableChipColors colors, optional androidx.compose.material3.SelectableChipElevation? elevation, optional androidx.compose.material3.SelectableChipBorder? border, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource);
     method @androidx.compose.runtime.Composable public static void SuggestionChip(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, kotlin.jvm.functions.Function0<kotlin.Unit> label, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional kotlin.jvm.functions.Function0<kotlin.Unit>? icon, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.ChipColors colors, optional androidx.compose.material3.ChipElevation? elevation, optional androidx.compose.material3.ChipBorder? border, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource);
   }
 
@@ -249,6 +314,133 @@
     property public static final androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.ui.graphics.Color> LocalContentColor;
   }
 
+  @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Immutable public final class DatePickerColors {
+  }
+
+  @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Stable public final class DatePickerDefaults {
+    method @androidx.compose.runtime.Composable public void DatePickerHeadline(Long? selectedDateMillis, int displayMode, androidx.compose.material3.DatePickerFormatter dateFormatter, optional androidx.compose.ui.Modifier modifier);
+    method @androidx.compose.runtime.Composable public void DatePickerTitle(int displayMode, optional androidx.compose.ui.Modifier modifier);
+    method @androidx.compose.runtime.Composable public androidx.compose.material3.DatePickerColors colors(optional long containerColor, optional long titleContentColor, optional long headlineContentColor, optional long weekdayContentColor, optional long subheadContentColor, optional long navigationContentColor, optional long yearContentColor, optional long disabledYearContentColor, optional long currentYearContentColor, optional long selectedYearContentColor, optional long disabledSelectedYearContentColor, optional long selectedYearContainerColor, optional long disabledSelectedYearContainerColor, optional long dayContentColor, optional long disabledDayContentColor, optional long selectedDayContentColor, optional long disabledSelectedDayContentColor, optional long selectedDayContainerColor, optional long disabledSelectedDayContainerColor, optional long todayContentColor, optional long todayDateBorderColor, optional long dayInSelectionRangeContentColor, optional long dayInSelectionRangeContainerColor, optional long dividerColor, optional androidx.compose.material3.TextFieldColors dateTextFieldColors);
+    method public androidx.compose.material3.DatePickerFormatter dateFormatter(optional String yearSelectionSkeleton, optional String selectedDateSkeleton, optional String selectedDateDescriptionSkeleton);
+    method @androidx.compose.runtime.Composable public androidx.compose.ui.graphics.Shape getShape();
+    method public float getTonalElevation();
+    method public kotlin.ranges.IntRange getYearRange();
+    property public final float TonalElevation;
+    property public final kotlin.ranges.IntRange YearRange;
+    property @androidx.compose.runtime.Composable public final androidx.compose.ui.graphics.Shape shape;
+    field public static final androidx.compose.material3.DatePickerDefaults INSTANCE;
+    field public static final String YearAbbrMonthDaySkeleton = "yMMMd";
+    field public static final String YearMonthSkeleton = "yMMMM";
+    field public static final String YearMonthWeekdayDaySkeleton = "yMMMMEEEEd";
+  }
+
+  public final class DatePickerDialog_androidKt {
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void DatePickerDialog(kotlin.jvm.functions.Function0<kotlin.Unit> onDismissRequest, kotlin.jvm.functions.Function0<kotlin.Unit> confirmButton, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function0<kotlin.Unit>? dismissButton, optional androidx.compose.ui.graphics.Shape shape, optional float tonalElevation, optional androidx.compose.material3.DatePickerColors colors, optional androidx.compose.ui.window.DialogProperties properties, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit> content);
+  }
+
+  @androidx.compose.material3.ExperimentalMaterial3Api public interface DatePickerFormatter {
+    method public String? formatDate(Long? dateMillis, java.util.Locale locale, optional boolean forContentDescription);
+    method public String? formatMonthYear(Long? monthMillis, java.util.Locale locale);
+  }
+
+  public final class DatePickerKt {
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void DatePicker(androidx.compose.material3.DatePickerState state, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.material3.DatePickerFormatter dateFormatter, optional kotlin.jvm.functions.Function0<kotlin.Unit>? title, optional kotlin.jvm.functions.Function0<kotlin.Unit>? headline, optional boolean showModeToggle, optional androidx.compose.material3.DatePickerColors colors);
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static androidx.compose.material3.DatePickerState rememberDatePickerState(optional Long? initialSelectedDateMillis, optional Long? initialDisplayedMonthMillis, optional kotlin.ranges.IntRange yearRange, optional int initialDisplayMode, optional androidx.compose.material3.SelectableDates selectableDates);
+  }
+
+  @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Stable public interface DatePickerState {
+    method public int getDisplayMode();
+    method public long getDisplayedMonthMillis();
+    method public androidx.compose.material3.SelectableDates getSelectableDates();
+    method public Long? getSelectedDateMillis();
+    method public kotlin.ranges.IntRange getYearRange();
+    method public void setDisplayMode(int);
+    method public void setDisplayedMonthMillis(long);
+    method public void setSelectedDateMillis(Long?);
+    property public abstract int displayMode;
+    property public abstract long displayedMonthMillis;
+    property public abstract androidx.compose.material3.SelectableDates selectableDates;
+    property public abstract Long? selectedDateMillis;
+    property public abstract kotlin.ranges.IntRange yearRange;
+  }
+
+  @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Stable public final class DateRangePickerDefaults {
+    method @androidx.compose.runtime.Composable public void DateRangePickerHeadline(Long? selectedStartDateMillis, Long? selectedEndDateMillis, int displayMode, androidx.compose.material3.DatePickerFormatter dateFormatter, optional androidx.compose.ui.Modifier modifier);
+    method @androidx.compose.runtime.Composable public void DateRangePickerTitle(int displayMode, optional androidx.compose.ui.Modifier modifier);
+    field public static final androidx.compose.material3.DateRangePickerDefaults INSTANCE;
+  }
+
+  public final class DateRangePickerKt {
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void DateRangePicker(androidx.compose.material3.DateRangePickerState state, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.material3.DatePickerFormatter dateFormatter, optional kotlin.jvm.functions.Function0<kotlin.Unit>? title, optional kotlin.jvm.functions.Function0<kotlin.Unit>? headline, optional boolean showModeToggle, optional androidx.compose.material3.DatePickerColors colors);
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static androidx.compose.material3.DateRangePickerState rememberDateRangePickerState(optional Long? initialSelectedStartDateMillis, optional Long? initialSelectedEndDateMillis, optional Long? initialDisplayedMonthMillis, optional kotlin.ranges.IntRange yearRange, optional int initialDisplayMode, optional androidx.compose.material3.SelectableDates selectableDates);
+  }
+
+  @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Stable public interface DateRangePickerState {
+    method public int getDisplayMode();
+    method public long getDisplayedMonthMillis();
+    method public androidx.compose.material3.SelectableDates getSelectableDates();
+    method public Long? getSelectedEndDateMillis();
+    method public Long? getSelectedStartDateMillis();
+    method public kotlin.ranges.IntRange getYearRange();
+    method public void setDisplayMode(int);
+    method public void setDisplayedMonthMillis(long);
+    method public void setSelection(Long? startDateMillis, Long? endDateMillis);
+    property public abstract int displayMode;
+    property public abstract long displayedMonthMillis;
+    property public abstract androidx.compose.material3.SelectableDates selectableDates;
+    property public abstract Long? selectedEndDateMillis;
+    property public abstract Long? selectedStartDateMillis;
+    property public abstract kotlin.ranges.IntRange yearRange;
+  }
+
+  @androidx.compose.material3.ExperimentalMaterial3Api public enum DismissDirection {
+    method public static androidx.compose.material3.DismissDirection valueOf(String value) throws java.lang.IllegalArgumentException, java.lang.NullPointerException;
+    method public static androidx.compose.material3.DismissDirection[] values();
+    enum_constant public static final androidx.compose.material3.DismissDirection EndToStart;
+    enum_constant public static final androidx.compose.material3.DismissDirection StartToEnd;
+  }
+
+  @androidx.compose.material3.ExperimentalMaterial3Api public final class DismissState {
+    ctor public DismissState(androidx.compose.material3.DismissValue initialValue, optional kotlin.jvm.functions.Function1<? super androidx.compose.material3.DismissValue,java.lang.Boolean> confirmValueChange, optional kotlin.jvm.functions.Function2<? super androidx.compose.ui.unit.Density,? super java.lang.Float,java.lang.Float> positionalThreshold);
+    method public suspend Object? dismiss(androidx.compose.material3.DismissDirection direction, kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    method public androidx.compose.material3.DismissValue getCurrentValue();
+    method public androidx.compose.material3.DismissDirection? getDismissDirection();
+    method public float getProgress();
+    method public androidx.compose.material3.DismissValue getTargetValue();
+    method public boolean isDismissed(androidx.compose.material3.DismissDirection direction);
+    method public float requireOffset();
+    method public suspend Object? reset(kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    method public suspend Object? snapTo(androidx.compose.material3.DismissValue targetValue, kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    property public final androidx.compose.material3.DismissValue currentValue;
+    property public final androidx.compose.material3.DismissDirection? dismissDirection;
+    property public final float progress;
+    property public final androidx.compose.material3.DismissValue targetValue;
+    field public static final androidx.compose.material3.DismissState.Companion Companion;
+  }
+
+  public static final class DismissState.Companion {
+    method public androidx.compose.runtime.saveable.Saver<androidx.compose.material3.DismissState,androidx.compose.material3.DismissValue> Saver(kotlin.jvm.functions.Function1<? super androidx.compose.material3.DismissValue,java.lang.Boolean> confirmValueChange, kotlin.jvm.functions.Function2<? super androidx.compose.ui.unit.Density,? super java.lang.Float,java.lang.Float> positionalThreshold);
+  }
+
+  @androidx.compose.material3.ExperimentalMaterial3Api public enum DismissValue {
+    method public static androidx.compose.material3.DismissValue valueOf(String value) throws java.lang.IllegalArgumentException, java.lang.NullPointerException;
+    method public static androidx.compose.material3.DismissValue[] values();
+    enum_constant public static final androidx.compose.material3.DismissValue Default;
+    enum_constant public static final androidx.compose.material3.DismissValue DismissedToEnd;
+    enum_constant public static final androidx.compose.material3.DismissValue DismissedToStart;
+  }
+
+  @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class DisplayMode {
+    field public static final androidx.compose.material3.DisplayMode.Companion Companion;
+  }
+
+  public static final class DisplayMode.Companion {
+    method public int getInput();
+    method public int getPicker();
+    property public final int Input;
+    property public final int Picker;
+  }
+
   public final class DividerDefaults {
     method @androidx.compose.runtime.Composable public long getColor();
     method public float getThickness();
@@ -318,6 +510,32 @@
     method @RequiresApi(android.os.Build.VERSION_CODES.S) public static androidx.compose.material3.ColorScheme dynamicLightColorScheme(android.content.Context context);
   }
 
+  @kotlin.RequiresOptIn(message="This material API is experimental and is likely to change or to be removed in" + " the future.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface ExperimentalMaterial3Api {
+  }
+
+  @androidx.compose.material3.ExperimentalMaterial3Api public interface ExposedDropdownMenuBoxScope {
+    method @androidx.compose.runtime.Composable public default void ExposedDropdownMenu(boolean expanded, kotlin.jvm.functions.Function0<kotlin.Unit> onDismissRequest, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.foundation.ScrollState scrollState, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit> content);
+    method public androidx.compose.ui.Modifier exposedDropdownSize(androidx.compose.ui.Modifier, optional boolean matchTextFieldWidth);
+    method public androidx.compose.ui.Modifier menuAnchor(androidx.compose.ui.Modifier);
+  }
+
+  @androidx.compose.material3.ExperimentalMaterial3Api public final class ExposedDropdownMenuDefaults {
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public void TrailingIcon(boolean expanded);
+    method public androidx.compose.foundation.layout.PaddingValues getItemContentPadding();
+    method @Deprecated @androidx.compose.runtime.Composable public androidx.compose.material3.TextFieldColors outlinedTextFieldColors(optional long textColor, optional long disabledTextColor, optional long containerColor, optional long cursorColor, optional long errorCursorColor, optional androidx.compose.foundation.text.selection.TextSelectionColors selectionColors, optional long focusedBorderColor, optional long unfocusedBorderColor, optional long disabledBorderColor, optional long errorBorderColor, optional long focusedLeadingIconColor, optional long unfocusedLeadingIconColor, optional long disabledLeadingIconColor, optional long errorLeadingIconColor, optional long focusedTrailingIconColor, optional long unfocusedTrailingIconColor, optional long disabledTrailingIconColor, optional long errorTrailingIconColor, optional long focusedLabelColor, optional long unfocusedLabelColor, optional long disabledLabelColor, optional long errorLabelColor, optional long placeholderColor, optional long disabledPlaceholderColor);
+    method @Deprecated @androidx.compose.runtime.Composable public androidx.compose.material3.TextFieldColors outlinedTextFieldColors(optional long focusedTextColor, optional long unfocusedTextColor, optional long disabledTextColor, optional long errorTextColor, optional long containerColor, optional long errorContainerColor, optional long cursorColor, optional long errorCursorColor, optional androidx.compose.foundation.text.selection.TextSelectionColors selectionColors, optional long focusedBorderColor, optional long unfocusedBorderColor, optional long disabledBorderColor, optional long errorBorderColor, optional long focusedLeadingIconColor, optional long unfocusedLeadingIconColor, optional long disabledLeadingIconColor, optional long errorLeadingIconColor, optional long focusedTrailingIconColor, optional long unfocusedTrailingIconColor, optional long disabledTrailingIconColor, optional long errorTrailingIconColor, optional long focusedLabelColor, optional long unfocusedLabelColor, optional long disabledLabelColor, optional long errorLabelColor, optional long focusedPlaceholderColor, optional long unfocusedPlaceholderColor, optional long disabledPlaceholderColor, optional long errorPlaceholderColor, optional long focusedPrefixColor, optional long unfocusedPrefixColor, optional long disabledPrefixColor, optional long errorPrefixColor, optional long focusedSuffixColor, optional long unfocusedSuffixColor, optional long disabledSuffixColor, optional long errorSuffixColor);
+    method @androidx.compose.runtime.Composable public androidx.compose.material3.TextFieldColors outlinedTextFieldColors(optional long focusedTextColor, optional long unfocusedTextColor, optional long disabledTextColor, optional long errorTextColor, optional long focusedContainerColor, optional long unfocusedContainerColor, optional long disabledContainerColor, optional long errorContainerColor, optional long cursorColor, optional long errorCursorColor, optional androidx.compose.foundation.text.selection.TextSelectionColors selectionColors, optional long focusedBorderColor, optional long unfocusedBorderColor, optional long disabledBorderColor, optional long errorBorderColor, optional long focusedLeadingIconColor, optional long unfocusedLeadingIconColor, optional long disabledLeadingIconColor, optional long errorLeadingIconColor, optional long focusedTrailingIconColor, optional long unfocusedTrailingIconColor, optional long disabledTrailingIconColor, optional long errorTrailingIconColor, optional long focusedLabelColor, optional long unfocusedLabelColor, optional long disabledLabelColor, optional long errorLabelColor, optional long focusedPlaceholderColor, optional long unfocusedPlaceholderColor, optional long disabledPlaceholderColor, optional long errorPlaceholderColor, optional long focusedPrefixColor, optional long unfocusedPrefixColor, optional long disabledPrefixColor, optional long errorPrefixColor, optional long focusedSuffixColor, optional long unfocusedSuffixColor, optional long disabledSuffixColor, optional long errorSuffixColor);
+    method @Deprecated @androidx.compose.runtime.Composable public androidx.compose.material3.TextFieldColors textFieldColors(optional long textColor, optional long disabledTextColor, optional long containerColor, optional long cursorColor, optional long errorCursorColor, optional androidx.compose.foundation.text.selection.TextSelectionColors selectionColors, optional long focusedIndicatorColor, optional long unfocusedIndicatorColor, optional long disabledIndicatorColor, optional long errorIndicatorColor, optional long focusedLeadingIconColor, optional long unfocusedLeadingIconColor, optional long disabledLeadingIconColor, optional long errorLeadingIconColor, optional long focusedTrailingIconColor, optional long unfocusedTrailingIconColor, optional long disabledTrailingIconColor, optional long errorTrailingIconColor, optional long focusedLabelColor, optional long unfocusedLabelColor, optional long disabledLabelColor, optional long errorLabelColor, optional long placeholderColor, optional long disabledPlaceholderColor);
+    method @Deprecated @androidx.compose.runtime.Composable public androidx.compose.material3.TextFieldColors textFieldColors(optional long focusedTextColor, optional long unfocusedTextColor, optional long disabledTextColor, optional long errorTextColor, optional long containerColor, optional long errorContainerColor, optional long cursorColor, optional long errorCursorColor, optional androidx.compose.foundation.text.selection.TextSelectionColors selectionColors, optional long focusedIndicatorColor, optional long unfocusedIndicatorColor, optional long disabledIndicatorColor, optional long errorIndicatorColor, optional long focusedLeadingIconColor, optional long unfocusedLeadingIconColor, optional long disabledLeadingIconColor, optional long errorLeadingIconColor, optional long focusedTrailingIconColor, optional long unfocusedTrailingIconColor, optional long disabledTrailingIconColor, optional long errorTrailingIconColor, optional long focusedLabelColor, optional long unfocusedLabelColor, optional long disabledLabelColor, optional long errorLabelColor, optional long focusedPlaceholderColor, optional long unfocusedPlaceholderColor, optional long disabledPlaceholderColor, optional long errorPlaceholderColor, optional long focusedPrefixColor, optional long unfocusedPrefixColor, optional long disabledPrefixColor, optional long errorPrefixColor, optional long focusedSuffixColor, optional long unfocusedSuffixColor, optional long disabledSuffixColor, optional long errorSuffixColor);
+    method @androidx.compose.runtime.Composable public androidx.compose.material3.TextFieldColors textFieldColors(optional long focusedTextColor, optional long unfocusedTextColor, optional long disabledTextColor, optional long errorTextColor, optional long focusedContainerColor, optional long unfocusedContainerColor, optional long disabledContainerColor, optional long errorContainerColor, optional long cursorColor, optional long errorCursorColor, optional androidx.compose.foundation.text.selection.TextSelectionColors selectionColors, optional long focusedIndicatorColor, optional long unfocusedIndicatorColor, optional long disabledIndicatorColor, optional long errorIndicatorColor, optional long focusedLeadingIconColor, optional long unfocusedLeadingIconColor, optional long disabledLeadingIconColor, optional long errorLeadingIconColor, optional long focusedTrailingIconColor, optional long unfocusedTrailingIconColor, optional long disabledTrailingIconColor, optional long errorTrailingIconColor, optional long focusedLabelColor, optional long unfocusedLabelColor, optional long disabledLabelColor, optional long errorLabelColor, optional long focusedPlaceholderColor, optional long unfocusedPlaceholderColor, optional long disabledPlaceholderColor, optional long errorPlaceholderColor, optional long focusedPrefixColor, optional long unfocusedPrefixColor, optional long disabledPrefixColor, optional long errorPrefixColor, optional long focusedSuffixColor, optional long unfocusedSuffixColor, optional long disabledSuffixColor, optional long errorSuffixColor);
+    property public final androidx.compose.foundation.layout.PaddingValues ItemContentPadding;
+    field public static final androidx.compose.material3.ExposedDropdownMenuDefaults INSTANCE;
+  }
+
+  public final class ExposedDropdownMenuKt {
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void ExposedDropdownMenuBox(boolean expanded, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit> onExpandedChange, optional androidx.compose.ui.Modifier modifier, kotlin.jvm.functions.Function1<? super androidx.compose.material3.ExposedDropdownMenuBoxScope,kotlin.Unit> content);
+  }
+
   @kotlin.jvm.JvmInline public final value class FabPosition {
     field public static final androidx.compose.material3.FabPosition.Companion Companion;
   }
@@ -329,6 +547,21 @@
     property public final int End;
   }
 
+  @androidx.compose.material3.ExperimentalMaterial3Api public final class FilterChipDefaults {
+    method @androidx.compose.runtime.Composable public androidx.compose.material3.SelectableChipColors elevatedFilterChipColors(optional long containerColor, optional long labelColor, optional long iconColor, optional long disabledContainerColor, optional long disabledLabelColor, optional long disabledLeadingIconColor, optional long disabledTrailingIconColor, optional long selectedContainerColor, optional long disabledSelectedContainerColor, optional long selectedLabelColor, optional long selectedLeadingIconColor, optional long selectedTrailingIconColor);
+    method @androidx.compose.runtime.Composable public androidx.compose.material3.SelectableChipElevation elevatedFilterChipElevation(optional float elevation, optional float pressedElevation, optional float focusedElevation, optional float hoveredElevation, optional float draggedElevation, optional float disabledElevation);
+    method @androidx.compose.runtime.Composable public androidx.compose.material3.SelectableChipBorder filterChipBorder(optional long borderColor, optional long selectedBorderColor, optional long disabledBorderColor, optional long disabledSelectedBorderColor, optional float borderWidth, optional float selectedBorderWidth);
+    method @androidx.compose.runtime.Composable public androidx.compose.material3.SelectableChipColors filterChipColors(optional long containerColor, optional long labelColor, optional long iconColor, optional long disabledContainerColor, optional long disabledLabelColor, optional long disabledLeadingIconColor, optional long disabledTrailingIconColor, optional long selectedContainerColor, optional long disabledSelectedContainerColor, optional long selectedLabelColor, optional long selectedLeadingIconColor, optional long selectedTrailingIconColor);
+    method @androidx.compose.runtime.Composable public androidx.compose.material3.SelectableChipElevation filterChipElevation(optional float elevation, optional float pressedElevation, optional float focusedElevation, optional float hoveredElevation, optional float draggedElevation, optional float disabledElevation);
+    method public float getHeight();
+    method public float getIconSize();
+    method @androidx.compose.runtime.Composable public androidx.compose.ui.graphics.Shape getShape();
+    property public final float Height;
+    property public final float IconSize;
+    property @androidx.compose.runtime.Composable public final androidx.compose.ui.graphics.Shape shape;
+    field public static final androidx.compose.material3.FilterChipDefaults INSTANCE;
+  }
+
   public final class FloatingActionButtonDefaults {
     method public androidx.compose.material3.FloatingActionButtonElevation bottomAppBarFabElevation(optional float defaultElevation, optional float pressedElevation, optional float focusedElevation, optional float hoveredElevation);
     method @androidx.compose.runtime.Composable public androidx.compose.material3.FloatingActionButtonElevation elevation(optional float defaultElevation, optional float pressedElevation, optional float focusedElevation, optional float hoveredElevation);
@@ -400,8 +633,27 @@
   @androidx.compose.runtime.Immutable public final class IconToggleButtonColors {
   }
 
+  @androidx.compose.material3.ExperimentalMaterial3Api public final class InputChipDefaults {
+    method public float getAvatarSize();
+    method public float getHeight();
+    method public float getIconSize();
+    method @androidx.compose.runtime.Composable public androidx.compose.ui.graphics.Shape getShape();
+    method @androidx.compose.runtime.Composable public androidx.compose.material3.SelectableChipBorder inputChipBorder(optional long borderColor, optional long selectedBorderColor, optional long disabledBorderColor, optional long disabledSelectedBorderColor, optional float borderWidth, optional float selectedBorderWidth);
+    method @androidx.compose.runtime.Composable public androidx.compose.material3.SelectableChipColors inputChipColors(optional long containerColor, optional long labelColor, optional long leadingIconColor, optional long trailingIconColor, optional long disabledContainerColor, optional long disabledLabelColor, optional long disabledLeadingIconColor, optional long disabledTrailingIconColor, optional long selectedContainerColor, optional long disabledSelectedContainerColor, optional long selectedLabelColor, optional long selectedLeadingIconColor, optional long selectedTrailingIconColor);
+    method @androidx.compose.runtime.Composable public androidx.compose.material3.SelectableChipElevation inputChipElevation(optional float elevation, optional float pressedElevation, optional float focusedElevation, optional float hoveredElevation, optional float draggedElevation, optional float disabledElevation);
+    property public final float AvatarSize;
+    property public final float Height;
+    property public final float IconSize;
+    property @androidx.compose.runtime.Composable public final androidx.compose.ui.graphics.Shape shape;
+    field public static final androidx.compose.material3.InputChipDefaults INSTANCE;
+  }
+
   public final class InteractiveComponentSizeKt {
+    method @androidx.compose.material3.ExperimentalMaterial3Api public static androidx.compose.runtime.ProvidableCompositionLocal<java.lang.Boolean> getLocalMinimumInteractiveComponentEnforcement();
+    method @Deprecated @androidx.compose.material3.ExperimentalMaterial3Api public static androidx.compose.runtime.ProvidableCompositionLocal<java.lang.Boolean> getLocalMinimumTouchTargetEnforcement();
     method public static androidx.compose.ui.Modifier minimumInteractiveComponentSize(androidx.compose.ui.Modifier);
+    property @androidx.compose.material3.ExperimentalMaterial3Api public static final androidx.compose.runtime.ProvidableCompositionLocal<java.lang.Boolean> LocalMinimumInteractiveComponentEnforcement;
+    property @Deprecated @androidx.compose.material3.ExperimentalMaterial3Api public static final androidx.compose.runtime.ProvidableCompositionLocal<java.lang.Boolean> LocalMinimumTouchTargetEnforcement;
   }
 
   @androidx.compose.runtime.Immutable public final class ListItemColors {
@@ -448,6 +700,11 @@
   @androidx.compose.runtime.Immutable public final class MenuItemColors {
   }
 
+  public final class ModalBottomSheet_androidKt {
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void ModalBottomSheet(kotlin.jvm.functions.Function0<kotlin.Unit> onDismissRequest, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.material3.SheetState sheetState, optional androidx.compose.ui.graphics.Shape shape, optional long containerColor, optional long contentColor, optional float tonalElevation, optional long scrimColor, optional kotlin.jvm.functions.Function0<kotlin.Unit>? dragHandle, optional androidx.compose.foundation.layout.WindowInsets windowInsets, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit> content);
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static androidx.compose.material3.SheetState rememberModalBottomSheetState(optional boolean skipPartiallyExpanded, optional kotlin.jvm.functions.Function1<? super androidx.compose.material3.SheetValue,java.lang.Boolean> confirmValueChange);
+  }
+
   public final class NavigationBarDefaults {
     method @androidx.compose.runtime.Composable public long getContainerColor();
     method public float getElevation();
@@ -520,6 +777,8 @@
   }
 
   @androidx.compose.runtime.Immutable public final class OutlinedTextFieldDefaults {
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public void ContainerBox(boolean enabled, boolean isError, androidx.compose.foundation.interaction.InteractionSource interactionSource, androidx.compose.material3.TextFieldColors colors, optional androidx.compose.ui.graphics.Shape shape, optional float focusedBorderThickness, optional float unfocusedBorderThickness);
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public void DecorationBox(String value, kotlin.jvm.functions.Function0<kotlin.Unit> innerTextField, boolean enabled, boolean singleLine, androidx.compose.ui.text.input.VisualTransformation visualTransformation, androidx.compose.foundation.interaction.InteractionSource interactionSource, optional boolean isError, optional kotlin.jvm.functions.Function0<kotlin.Unit>? label, optional kotlin.jvm.functions.Function0<kotlin.Unit>? placeholder, optional kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? prefix, optional kotlin.jvm.functions.Function0<kotlin.Unit>? suffix, optional kotlin.jvm.functions.Function0<kotlin.Unit>? supportingText, optional androidx.compose.material3.TextFieldColors colors, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional kotlin.jvm.functions.Function0<kotlin.Unit> container);
     method @androidx.compose.runtime.Composable public androidx.compose.material3.TextFieldColors colors(optional long focusedTextColor, optional long unfocusedTextColor, optional long disabledTextColor, optional long errorTextColor, optional long focusedContainerColor, optional long unfocusedContainerColor, optional long disabledContainerColor, optional long errorContainerColor, optional long cursorColor, optional long errorCursorColor, optional androidx.compose.foundation.text.selection.TextSelectionColors selectionColors, optional long focusedBorderColor, optional long unfocusedBorderColor, optional long disabledBorderColor, optional long errorBorderColor, optional long focusedLeadingIconColor, optional long unfocusedLeadingIconColor, optional long disabledLeadingIconColor, optional long errorLeadingIconColor, optional long focusedTrailingIconColor, optional long unfocusedTrailingIconColor, optional long disabledTrailingIconColor, optional long errorTrailingIconColor, optional long focusedLabelColor, optional long unfocusedLabelColor, optional long disabledLabelColor, optional long errorLabelColor, optional long focusedPlaceholderColor, optional long unfocusedPlaceholderColor, optional long disabledPlaceholderColor, optional long errorPlaceholderColor, optional long focusedSupportingTextColor, optional long unfocusedSupportingTextColor, optional long disabledSupportingTextColor, optional long errorSupportingTextColor, optional long focusedPrefixColor, optional long unfocusedPrefixColor, optional long disabledPrefixColor, optional long errorPrefixColor, optional long focusedSuffixColor, optional long unfocusedSuffixColor, optional long disabledSuffixColor, optional long errorSuffixColor);
     method public androidx.compose.foundation.layout.PaddingValues contentPadding(optional float start, optional float top, optional float end, optional float bottom);
     method public float getFocusedBorderThickness();
@@ -536,10 +795,15 @@
   }
 
   public final class OutlinedTextFieldKt {
+    method @Deprecated @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void OutlinedTextField(androidx.compose.ui.text.input.TextFieldValue value, kotlin.jvm.functions.Function1<? super androidx.compose.ui.text.input.TextFieldValue,kotlin.Unit> onValueChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional boolean readOnly, optional androidx.compose.ui.text.TextStyle textStyle, optional kotlin.jvm.functions.Function0<kotlin.Unit>? label, optional kotlin.jvm.functions.Function0<kotlin.Unit>? placeholder, optional kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? supportingText, optional boolean isError, optional androidx.compose.ui.text.input.VisualTransformation visualTransformation, optional androidx.compose.foundation.text.KeyboardOptions keyboardOptions, optional androidx.compose.foundation.text.KeyboardActions keyboardActions, optional boolean singleLine, optional int maxLines, optional int minLines, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.TextFieldColors colors);
     method @androidx.compose.runtime.Composable public static void OutlinedTextField(androidx.compose.ui.text.input.TextFieldValue value, kotlin.jvm.functions.Function1<? super androidx.compose.ui.text.input.TextFieldValue,kotlin.Unit> onValueChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional boolean readOnly, optional androidx.compose.ui.text.TextStyle textStyle, optional kotlin.jvm.functions.Function0<kotlin.Unit>? label, optional kotlin.jvm.functions.Function0<kotlin.Unit>? placeholder, optional kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? prefix, optional kotlin.jvm.functions.Function0<kotlin.Unit>? suffix, optional kotlin.jvm.functions.Function0<kotlin.Unit>? supportingText, optional boolean isError, optional androidx.compose.ui.text.input.VisualTransformation visualTransformation, optional androidx.compose.foundation.text.KeyboardOptions keyboardOptions, optional androidx.compose.foundation.text.KeyboardActions keyboardActions, optional boolean singleLine, optional int maxLines, optional int minLines, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.TextFieldColors colors);
+    method @Deprecated @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void OutlinedTextField(String value, kotlin.jvm.functions.Function1<? super java.lang.String,kotlin.Unit> onValueChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional boolean readOnly, optional androidx.compose.ui.text.TextStyle textStyle, optional kotlin.jvm.functions.Function0<kotlin.Unit>? label, optional kotlin.jvm.functions.Function0<kotlin.Unit>? placeholder, optional kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? supportingText, optional boolean isError, optional androidx.compose.ui.text.input.VisualTransformation visualTransformation, optional androidx.compose.foundation.text.KeyboardOptions keyboardOptions, optional androidx.compose.foundation.text.KeyboardActions keyboardActions, optional boolean singleLine, optional int maxLines, optional int minLines, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.TextFieldColors colors);
     method @androidx.compose.runtime.Composable public static void OutlinedTextField(String value, kotlin.jvm.functions.Function1<? super java.lang.String,kotlin.Unit> onValueChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional boolean readOnly, optional androidx.compose.ui.text.TextStyle textStyle, optional kotlin.jvm.functions.Function0<kotlin.Unit>? label, optional kotlin.jvm.functions.Function0<kotlin.Unit>? placeholder, optional kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? prefix, optional kotlin.jvm.functions.Function0<kotlin.Unit>? suffix, optional kotlin.jvm.functions.Function0<kotlin.Unit>? supportingText, optional boolean isError, optional androidx.compose.ui.text.input.VisualTransformation visualTransformation, optional androidx.compose.foundation.text.KeyboardOptions keyboardOptions, optional androidx.compose.foundation.text.KeyboardActions keyboardActions, optional boolean singleLine, optional int maxLines, optional int minLines, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.TextFieldColors colors);
   }
 
+  @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Stable public interface PlainTooltipState extends androidx.compose.material3.TooltipState {
+  }
+
   public final class ProgressIndicatorDefaults {
     method @androidx.compose.runtime.Composable public long getCircularColor();
     method public int getCircularDeterminateStrokeCap();
@@ -585,6 +849,23 @@
     method @androidx.compose.runtime.Composable public static void RadioButton(boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit>? onClick, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.material3.RadioButtonColors colors, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource);
   }
 
+  @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Immutable @androidx.compose.runtime.Stable public final class RichTooltipColors {
+    ctor public RichTooltipColors(long containerColor, long contentColor, long titleContentColor, long actionContentColor);
+    method public long getActionContentColor();
+    method public long getContainerColor();
+    method public long getContentColor();
+    method public long getTitleContentColor();
+    property public final long actionContentColor;
+    property public final long containerColor;
+    property public final long contentColor;
+    property public final long titleContentColor;
+  }
+
+  @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Stable public interface RichTooltipState extends androidx.compose.material3.TooltipState {
+    method public boolean isPersistent();
+    property public abstract boolean isPersistent;
+  }
+
   public final class ScaffoldDefaults {
     method @androidx.compose.runtime.Composable public androidx.compose.foundation.layout.WindowInsets getContentWindowInsets();
     property @androidx.compose.runtime.Composable public final androidx.compose.foundation.layout.WindowInsets contentWindowInsets;
@@ -595,6 +876,53 @@
     method @androidx.compose.runtime.Composable public static void Scaffold(optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function0<kotlin.Unit> topBar, optional kotlin.jvm.functions.Function0<kotlin.Unit> bottomBar, optional kotlin.jvm.functions.Function0<kotlin.Unit> snackbarHost, optional kotlin.jvm.functions.Function0<kotlin.Unit> floatingActionButton, optional int floatingActionButtonPosition, optional long containerColor, optional long contentColor, optional androidx.compose.foundation.layout.WindowInsets contentWindowInsets, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.PaddingValues,kotlin.Unit> content);
   }
 
+  @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Immutable public final class SearchBarColors {
+    method public long getContainerColor();
+    method public long getDividerColor();
+    method public androidx.compose.material3.TextFieldColors getInputFieldColors();
+    property public final long containerColor;
+    property public final long dividerColor;
+    property public final androidx.compose.material3.TextFieldColors inputFieldColors;
+  }
+
+  @androidx.compose.material3.ExperimentalMaterial3Api public final class SearchBarDefaults {
+    method @androidx.compose.runtime.Composable public androidx.compose.material3.SearchBarColors colors(optional long containerColor, optional long dividerColor, optional androidx.compose.material3.TextFieldColors inputFieldColors);
+    method @androidx.compose.runtime.Composable public androidx.compose.ui.graphics.Shape getDockedShape();
+    method public float getElevation();
+    method @androidx.compose.runtime.Composable public androidx.compose.ui.graphics.Shape getFullScreenShape();
+    method public float getInputFieldHeight();
+    method @androidx.compose.runtime.Composable public androidx.compose.ui.graphics.Shape getInputFieldShape();
+    method @androidx.compose.runtime.Composable public androidx.compose.foundation.layout.WindowInsets getWindowInsets();
+    method @Deprecated @androidx.compose.runtime.Composable public androidx.compose.material3.TextFieldColors inputFieldColors(optional long textColor, optional long disabledTextColor, optional long cursorColor, optional androidx.compose.foundation.text.selection.TextSelectionColors selectionColors, optional long focusedLeadingIconColor, optional long unfocusedLeadingIconColor, optional long disabledLeadingIconColor, optional long focusedTrailingIconColor, optional long unfocusedTrailingIconColor, optional long disabledTrailingIconColor, optional long placeholderColor, optional long disabledPlaceholderColor);
+    method @androidx.compose.runtime.Composable public androidx.compose.material3.TextFieldColors inputFieldColors(optional long focusedTextColor, optional long unfocusedTextColor, optional long disabledTextColor, optional long cursorColor, optional androidx.compose.foundation.text.selection.TextSelectionColors selectionColors, optional long focusedLeadingIconColor, optional long unfocusedLeadingIconColor, optional long disabledLeadingIconColor, optional long focusedTrailingIconColor, optional long unfocusedTrailingIconColor, optional long disabledTrailingIconColor, optional long focusedPlaceholderColor, optional long unfocusedPlaceholderColor, optional long disabledPlaceholderColor);
+    property public final float Elevation;
+    property public final float InputFieldHeight;
+    property @androidx.compose.runtime.Composable public final androidx.compose.ui.graphics.Shape dockedShape;
+    property @androidx.compose.runtime.Composable public final androidx.compose.ui.graphics.Shape fullScreenShape;
+    property @androidx.compose.runtime.Composable public final androidx.compose.ui.graphics.Shape inputFieldShape;
+    property @androidx.compose.runtime.Composable public final androidx.compose.foundation.layout.WindowInsets windowInsets;
+    field public static final androidx.compose.material3.SearchBarDefaults INSTANCE;
+  }
+
+  public final class SearchBarKt {
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void DockedSearchBar(String query, kotlin.jvm.functions.Function1<? super java.lang.String,kotlin.Unit> onQueryChange, kotlin.jvm.functions.Function1<? super java.lang.String,kotlin.Unit> onSearch, boolean active, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit> onActiveChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional kotlin.jvm.functions.Function0<kotlin.Unit>? placeholder, optional kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.SearchBarColors colors, optional float tonalElevation, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit> content);
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void SearchBar(String query, kotlin.jvm.functions.Function1<? super java.lang.String,kotlin.Unit> onQueryChange, kotlin.jvm.functions.Function1<? super java.lang.String,kotlin.Unit> onSearch, boolean active, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit> onActiveChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional kotlin.jvm.functions.Function0<kotlin.Unit>? placeholder, optional kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.SearchBarColors colors, optional float tonalElevation, optional androidx.compose.foundation.layout.WindowInsets windowInsets, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit> content);
+  }
+
+  @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Immutable public final class SelectableChipBorder {
+  }
+
+  @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Immutable public final class SelectableChipColors {
+  }
+
+  @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Immutable public final class SelectableChipElevation {
+  }
+
+  @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Stable public interface SelectableDates {
+    method public default boolean isSelectableDate(long utcTimeMillis);
+    method public default boolean isSelectableYear(int year);
+  }
+
   public final class ShapeDefaults {
     method public androidx.compose.foundation.shape.CornerBasedShape getExtraLarge();
     method public androidx.compose.foundation.shape.CornerBasedShape getExtraSmall();
@@ -624,18 +952,54 @@
     property public final androidx.compose.foundation.shape.CornerBasedShape small;
   }
 
+  @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Stable public final class SheetState {
+    ctor public SheetState(boolean skipPartiallyExpanded, optional androidx.compose.material3.SheetValue initialValue, optional kotlin.jvm.functions.Function1<? super androidx.compose.material3.SheetValue,java.lang.Boolean> confirmValueChange, optional boolean skipHiddenState);
+    method public suspend Object? expand(kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    method public androidx.compose.material3.SheetValue getCurrentValue();
+    method public boolean getHasExpandedState();
+    method public boolean getHasPartiallyExpandedState();
+    method public androidx.compose.material3.SheetValue getTargetValue();
+    method public suspend Object? hide(kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    method public boolean isVisible();
+    method public suspend Object? partialExpand(kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    method public float requireOffset();
+    method public suspend Object? show(kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    property public final androidx.compose.material3.SheetValue currentValue;
+    property public final boolean hasExpandedState;
+    property public final boolean hasPartiallyExpandedState;
+    property public final boolean isVisible;
+    property public final androidx.compose.material3.SheetValue targetValue;
+    field public static final androidx.compose.material3.SheetState.Companion Companion;
+  }
+
+  public static final class SheetState.Companion {
+    method public androidx.compose.runtime.saveable.Saver<androidx.compose.material3.SheetState,androidx.compose.material3.SheetValue> Saver(boolean skipPartiallyExpanded, kotlin.jvm.functions.Function1<? super androidx.compose.material3.SheetValue,java.lang.Boolean> confirmValueChange);
+  }
+
+  @androidx.compose.material3.ExperimentalMaterial3Api public enum SheetValue {
+    method public static androidx.compose.material3.SheetValue valueOf(String value) throws java.lang.IllegalArgumentException, java.lang.NullPointerException;
+    method public static androidx.compose.material3.SheetValue[] values();
+    enum_constant public static final androidx.compose.material3.SheetValue Expanded;
+    enum_constant public static final androidx.compose.material3.SheetValue Hidden;
+    enum_constant public static final androidx.compose.material3.SheetValue PartiallyExpanded;
+  }
+
   @androidx.compose.runtime.Immutable public final class SliderColors {
   }
 
   @androidx.compose.runtime.Stable public final class SliderDefaults {
     method @androidx.compose.runtime.Composable public void Thumb(androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.material3.SliderColors colors, optional boolean enabled, optional long thumbSize);
     method @androidx.compose.runtime.Composable public void Track(androidx.compose.material3.SliderPositions sliderPositions, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.material3.SliderColors colors, optional boolean enabled);
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public void Track(androidx.compose.material3.SliderState sliderState, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.material3.SliderColors colors, optional boolean enabled);
     method @androidx.compose.runtime.Composable public androidx.compose.material3.SliderColors colors(optional long thumbColor, optional long activeTrackColor, optional long activeTickColor, optional long inactiveTrackColor, optional long inactiveTickColor, optional long disabledThumbColor, optional long disabledActiveTrackColor, optional long disabledActiveTickColor, optional long disabledInactiveTrackColor, optional long disabledInactiveTickColor);
     field public static final androidx.compose.material3.SliderDefaults INSTANCE;
   }
 
   public final class SliderKt {
     method @androidx.compose.runtime.Composable public static void RangeSlider(kotlin.ranges.ClosedFloatingPointRange<java.lang.Float> value, kotlin.jvm.functions.Function1<? super kotlin.ranges.ClosedFloatingPointRange<java.lang.Float>,kotlin.Unit> onValueChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional kotlin.ranges.ClosedFloatingPointRange<java.lang.Float> valueRange, optional int steps, optional kotlin.jvm.functions.Function0<kotlin.Unit>? onValueChangeFinished, optional androidx.compose.material3.SliderColors colors);
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void RangeSlider(kotlin.ranges.ClosedFloatingPointRange<java.lang.Float> value, kotlin.jvm.functions.Function1<? super kotlin.ranges.ClosedFloatingPointRange<java.lang.Float>,kotlin.Unit> onValueChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional kotlin.ranges.ClosedFloatingPointRange<java.lang.Float> valueRange, optional kotlin.jvm.functions.Function0<kotlin.Unit>? onValueChangeFinished, optional androidx.compose.material3.SliderColors colors, optional androidx.compose.foundation.interaction.MutableInteractionSource startInteractionSource, optional androidx.compose.foundation.interaction.MutableInteractionSource endInteractionSource, optional kotlin.jvm.functions.Function1<? super androidx.compose.material3.SliderPositions,kotlin.Unit> startThumb, optional kotlin.jvm.functions.Function1<? super androidx.compose.material3.SliderPositions,kotlin.Unit> endThumb, optional kotlin.jvm.functions.Function1<? super androidx.compose.material3.SliderPositions,kotlin.Unit> track, optional int steps);
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void Slider(androidx.compose.material3.SliderState state, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.material3.SliderColors colors, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional kotlin.jvm.functions.Function1<? super androidx.compose.material3.SliderState,kotlin.Unit> thumb, optional kotlin.jvm.functions.Function1<? super androidx.compose.material3.SliderState,kotlin.Unit> track);
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void Slider(float value, kotlin.jvm.functions.Function1<? super java.lang.Float,kotlin.Unit> onValueChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional kotlin.jvm.functions.Function0<kotlin.Unit>? onValueChangeFinished, optional androidx.compose.material3.SliderColors colors, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional int steps, optional kotlin.jvm.functions.Function1<? super androidx.compose.material3.SliderState,kotlin.Unit> thumb, optional kotlin.jvm.functions.Function1<? super androidx.compose.material3.SliderState,kotlin.Unit> track, optional kotlin.ranges.ClosedFloatingPointRange<java.lang.Float> valueRange);
     method @androidx.compose.runtime.Composable public static void Slider(float value, kotlin.jvm.functions.Function1<? super java.lang.Float,kotlin.Unit> onValueChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional kotlin.ranges.ClosedFloatingPointRange<java.lang.Float> valueRange, optional int steps, optional kotlin.jvm.functions.Function0<kotlin.Unit>? onValueChangeFinished, optional androidx.compose.material3.SliderColors colors, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource);
   }
 
@@ -647,6 +1011,20 @@
     property public final float[] tickFractions;
   }
 
+  @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Stable public final class SliderState {
+    ctor public SliderState(optional float initialValue, optional kotlin.jvm.functions.Function1<? super java.lang.Float,kotlin.Unit>? initialOnValueChange, optional int steps, optional kotlin.ranges.ClosedFloatingPointRange<java.lang.Float> valueRange, optional kotlin.jvm.functions.Function0<kotlin.Unit>? onValueChangeFinished);
+    method public kotlin.jvm.functions.Function0<kotlin.Unit>? getOnValueChangeFinished();
+    method public int getSteps();
+    method public float getValue();
+    method public kotlin.ranges.ClosedFloatingPointRange<java.lang.Float> getValueRange();
+    method public void setOnValueChangeFinished(kotlin.jvm.functions.Function0<kotlin.Unit>?);
+    method public void setValue(float);
+    property public final kotlin.jvm.functions.Function0<kotlin.Unit>? onValueChangeFinished;
+    property public final int steps;
+    property public final float value;
+    property public final kotlin.ranges.ClosedFloatingPointRange<java.lang.Float> valueRange;
+  }
+
   @androidx.compose.runtime.Stable public interface SnackbarData {
     method public void dismiss();
     method public androidx.compose.material3.SnackbarVisuals getVisuals();
@@ -737,6 +1115,17 @@
     property public static final androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.ui.unit.Dp> LocalAbsoluteTonalElevation;
   }
 
+  @androidx.compose.material3.ExperimentalMaterial3Api public final class SwipeToDismissDefaults {
+    method public kotlin.jvm.functions.Function2<androidx.compose.ui.unit.Density,java.lang.Float,java.lang.Float> getFixedPositionalThreshold();
+    property public final kotlin.jvm.functions.Function2<androidx.compose.ui.unit.Density,java.lang.Float,java.lang.Float> FixedPositionalThreshold;
+    field public static final androidx.compose.material3.SwipeToDismissDefaults INSTANCE;
+  }
+
+  public final class SwipeToDismissKt {
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void SwipeToDismiss(androidx.compose.material3.DismissState state, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit> background, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit> dismissContent, optional androidx.compose.ui.Modifier modifier, optional java.util.Set<? extends androidx.compose.material3.DismissDirection> directions);
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static androidx.compose.material3.DismissState rememberDismissState(optional androidx.compose.material3.DismissValue initialValue, optional kotlin.jvm.functions.Function1<? super androidx.compose.material3.DismissValue,java.lang.Boolean> confirmValueChange, optional kotlin.jvm.functions.Function2<? super androidx.compose.ui.unit.Density,? super java.lang.Float,java.lang.Float> positionalThreshold);
+  }
+
   @androidx.compose.runtime.Immutable public final class SwitchColors {
   }
 
@@ -789,6 +1178,14 @@
   }
 
   @androidx.compose.runtime.Immutable public final class TextFieldDefaults {
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public void ContainerBox(boolean enabled, boolean isError, androidx.compose.foundation.interaction.InteractionSource interactionSource, androidx.compose.material3.TextFieldColors colors, optional androidx.compose.ui.graphics.Shape shape);
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public void DecorationBox(String value, kotlin.jvm.functions.Function0<kotlin.Unit> innerTextField, boolean enabled, boolean singleLine, androidx.compose.ui.text.input.VisualTransformation visualTransformation, androidx.compose.foundation.interaction.InteractionSource interactionSource, optional boolean isError, optional kotlin.jvm.functions.Function0<kotlin.Unit>? label, optional kotlin.jvm.functions.Function0<kotlin.Unit>? placeholder, optional kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? prefix, optional kotlin.jvm.functions.Function0<kotlin.Unit>? suffix, optional kotlin.jvm.functions.Function0<kotlin.Unit>? supportingText, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.TextFieldColors colors, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional kotlin.jvm.functions.Function0<kotlin.Unit> container);
+    method @Deprecated @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public void FilledContainerBox(boolean enabled, boolean isError, androidx.compose.foundation.interaction.InteractionSource interactionSource, androidx.compose.material3.TextFieldColors colors, optional androidx.compose.ui.graphics.Shape shape);
+    method @Deprecated @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public void OutlinedBorderContainerBox(boolean enabled, boolean isError, androidx.compose.foundation.interaction.InteractionSource interactionSource, androidx.compose.material3.TextFieldColors colors, optional androidx.compose.ui.graphics.Shape shape, optional float focusedBorderThickness, optional float unfocusedBorderThickness);
+    method @Deprecated @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public void OutlinedTextFieldDecorationBox(String value, kotlin.jvm.functions.Function0<kotlin.Unit> innerTextField, boolean enabled, boolean singleLine, androidx.compose.ui.text.input.VisualTransformation visualTransformation, androidx.compose.foundation.interaction.InteractionSource interactionSource, optional boolean isError, optional kotlin.jvm.functions.Function0<kotlin.Unit>? label, optional kotlin.jvm.functions.Function0<kotlin.Unit>? placeholder, optional kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? supportingText, optional androidx.compose.material3.TextFieldColors colors, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional kotlin.jvm.functions.Function0<kotlin.Unit> container);
+    method @Deprecated @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public void OutlinedTextFieldDecorationBox(String value, kotlin.jvm.functions.Function0<kotlin.Unit> innerTextField, boolean enabled, boolean singleLine, androidx.compose.ui.text.input.VisualTransformation visualTransformation, androidx.compose.foundation.interaction.InteractionSource interactionSource, optional boolean isError, optional kotlin.jvm.functions.Function0<kotlin.Unit>? label, optional kotlin.jvm.functions.Function0<kotlin.Unit>? placeholder, optional kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? prefix, optional kotlin.jvm.functions.Function0<kotlin.Unit>? suffix, optional kotlin.jvm.functions.Function0<kotlin.Unit>? supportingText, optional androidx.compose.material3.TextFieldColors colors, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional kotlin.jvm.functions.Function0<kotlin.Unit> container);
+    method @Deprecated @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public void TextFieldDecorationBox(String value, kotlin.jvm.functions.Function0<kotlin.Unit> innerTextField, boolean enabled, boolean singleLine, androidx.compose.ui.text.input.VisualTransformation visualTransformation, androidx.compose.foundation.interaction.InteractionSource interactionSource, optional boolean isError, optional kotlin.jvm.functions.Function0<kotlin.Unit>? label, optional kotlin.jvm.functions.Function0<kotlin.Unit>? placeholder, optional kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? supportingText, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.TextFieldColors colors, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional kotlin.jvm.functions.Function0<kotlin.Unit> container);
+    method @Deprecated @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public void TextFieldDecorationBox(String value, kotlin.jvm.functions.Function0<kotlin.Unit> innerTextField, boolean enabled, boolean singleLine, androidx.compose.ui.text.input.VisualTransformation visualTransformation, androidx.compose.foundation.interaction.InteractionSource interactionSource, optional boolean isError, optional kotlin.jvm.functions.Function0<kotlin.Unit>? label, optional kotlin.jvm.functions.Function0<kotlin.Unit>? placeholder, optional kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? prefix, optional kotlin.jvm.functions.Function0<kotlin.Unit>? suffix, optional kotlin.jvm.functions.Function0<kotlin.Unit>? supportingText, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.TextFieldColors colors, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional kotlin.jvm.functions.Function0<kotlin.Unit> container);
     method @androidx.compose.runtime.Composable public androidx.compose.material3.TextFieldColors colors(optional long focusedTextColor, optional long unfocusedTextColor, optional long disabledTextColor, optional long errorTextColor, optional long focusedContainerColor, optional long unfocusedContainerColor, optional long disabledContainerColor, optional long errorContainerColor, optional long cursorColor, optional long errorCursorColor, optional androidx.compose.foundation.text.selection.TextSelectionColors selectionColors, optional long focusedIndicatorColor, optional long unfocusedIndicatorColor, optional long disabledIndicatorColor, optional long errorIndicatorColor, optional long focusedLeadingIconColor, optional long unfocusedLeadingIconColor, optional long disabledLeadingIconColor, optional long errorLeadingIconColor, optional long focusedTrailingIconColor, optional long unfocusedTrailingIconColor, optional long disabledTrailingIconColor, optional long errorTrailingIconColor, optional long focusedLabelColor, optional long unfocusedLabelColor, optional long disabledLabelColor, optional long errorLabelColor, optional long focusedPlaceholderColor, optional long unfocusedPlaceholderColor, optional long disabledPlaceholderColor, optional long errorPlaceholderColor, optional long focusedSupportingTextColor, optional long unfocusedSupportingTextColor, optional long disabledSupportingTextColor, optional long errorSupportingTextColor, optional long focusedPrefixColor, optional long unfocusedPrefixColor, optional long disabledPrefixColor, optional long errorPrefixColor, optional long focusedSuffixColor, optional long unfocusedSuffixColor, optional long disabledSuffixColor, optional long errorSuffixColor);
     method public androidx.compose.foundation.layout.PaddingValues contentPaddingWithLabel(optional float start, optional float end, optional float top, optional float bottom);
     method public androidx.compose.foundation.layout.PaddingValues contentPaddingWithoutLabel(optional float start, optional float top, optional float end, optional float bottom);
@@ -801,7 +1198,12 @@
     method @androidx.compose.runtime.Composable public androidx.compose.ui.graphics.Shape getShape();
     method @Deprecated public float getUnfocusedBorderThickness();
     method public float getUnfocusedIndicatorThickness();
+    method @androidx.compose.material3.ExperimentalMaterial3Api public androidx.compose.ui.Modifier indicatorLine(androidx.compose.ui.Modifier, boolean enabled, boolean isError, androidx.compose.foundation.interaction.InteractionSource interactionSource, androidx.compose.material3.TextFieldColors colors, optional float focusedIndicatorLineThickness, optional float unfocusedIndicatorLineThickness);
+    method @Deprecated @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public androidx.compose.material3.TextFieldColors outlinedTextFieldColors(optional long textColor, optional long disabledTextColor, optional long containerColor, optional long cursorColor, optional long errorCursorColor, optional androidx.compose.foundation.text.selection.TextSelectionColors selectionColors, optional long focusedBorderColor, optional long unfocusedBorderColor, optional long disabledBorderColor, optional long errorBorderColor, optional long focusedLeadingIconColor, optional long unfocusedLeadingIconColor, optional long disabledLeadingIconColor, optional long errorLeadingIconColor, optional long focusedTrailingIconColor, optional long unfocusedTrailingIconColor, optional long disabledTrailingIconColor, optional long errorTrailingIconColor, optional long focusedLabelColor, optional long unfocusedLabelColor, optional long disabledLabelColor, optional long errorLabelColor, optional long placeholderColor, optional long disabledPlaceholderColor, optional long focusedSupportingTextColor, optional long unfocusedSupportingTextColor, optional long disabledSupportingTextColor, optional long errorSupportingTextColor, optional long focusedPrefixColor, optional long unfocusedPrefixColor, optional long disabledPrefixColor, optional long errorPrefixColor, optional long focusedSuffixColor, optional long unfocusedSuffixColor, optional long disabledSuffixColor, optional long errorSuffixColor);
+    method @Deprecated @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public androidx.compose.material3.TextFieldColors outlinedTextFieldColors(optional long focusedTextColor, optional long unfocusedTextColor, optional long disabledTextColor, optional long errorTextColor, optional long containerColor, optional long errorContainerColor, optional long cursorColor, optional long errorCursorColor, optional androidx.compose.foundation.text.selection.TextSelectionColors selectionColors, optional long focusedBorderColor, optional long unfocusedBorderColor, optional long disabledBorderColor, optional long errorBorderColor, optional long focusedLeadingIconColor, optional long unfocusedLeadingIconColor, optional long disabledLeadingIconColor, optional long errorLeadingIconColor, optional long focusedTrailingIconColor, optional long unfocusedTrailingIconColor, optional long disabledTrailingIconColor, optional long errorTrailingIconColor, optional long focusedLabelColor, optional long unfocusedLabelColor, optional long disabledLabelColor, optional long errorLabelColor, optional long focusedPlaceholderColor, optional long unfocusedPlaceholderColor, optional long disabledPlaceholderColor, optional long errorPlaceholderColor, optional long focusedSupportingTextColor, optional long unfocusedSupportingTextColor, optional long disabledSupportingTextColor, optional long errorSupportingTextColor, optional long focusedPrefixColor, optional long unfocusedPrefixColor, optional long disabledPrefixColor, optional long errorPrefixColor, optional long focusedSuffixColor, optional long unfocusedSuffixColor, optional long disabledSuffixColor, optional long errorSuffixColor);
     method @Deprecated public androidx.compose.foundation.layout.PaddingValues outlinedTextFieldPadding(optional float start, optional float top, optional float end, optional float bottom);
+    method @Deprecated @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public androidx.compose.material3.TextFieldColors textFieldColors(optional long textColor, optional long disabledTextColor, optional long containerColor, optional long cursorColor, optional long errorCursorColor, optional androidx.compose.foundation.text.selection.TextSelectionColors selectionColors, optional long focusedIndicatorColor, optional long unfocusedIndicatorColor, optional long disabledIndicatorColor, optional long errorIndicatorColor, optional long focusedLeadingIconColor, optional long unfocusedLeadingIconColor, optional long disabledLeadingIconColor, optional long errorLeadingIconColor, optional long focusedTrailingIconColor, optional long unfocusedTrailingIconColor, optional long disabledTrailingIconColor, optional long errorTrailingIconColor, optional long focusedLabelColor, optional long unfocusedLabelColor, optional long disabledLabelColor, optional long errorLabelColor, optional long placeholderColor, optional long disabledPlaceholderColor, optional long focusedSupportingTextColor, optional long unfocusedSupportingTextColor, optional long disabledSupportingTextColor, optional long errorSupportingTextColor, optional long focusedPrefixColor, optional long unfocusedPrefixColor, optional long disabledPrefixColor, optional long errorPrefixColor, optional long focusedSuffixColor, optional long unfocusedSuffixColor, optional long disabledSuffixColor, optional long errorSuffixColor);
+    method @Deprecated @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public androidx.compose.material3.TextFieldColors textFieldColors(optional long focusedTextColor, optional long unfocusedTextColor, optional long disabledTextColor, optional long errorTextColor, optional long containerColor, optional long errorContainerColor, optional long cursorColor, optional long errorCursorColor, optional androidx.compose.foundation.text.selection.TextSelectionColors selectionColors, optional long focusedIndicatorColor, optional long unfocusedIndicatorColor, optional long disabledIndicatorColor, optional long errorIndicatorColor, optional long focusedLeadingIconColor, optional long unfocusedLeadingIconColor, optional long disabledLeadingIconColor, optional long errorLeadingIconColor, optional long focusedTrailingIconColor, optional long unfocusedTrailingIconColor, optional long disabledTrailingIconColor, optional long errorTrailingIconColor, optional long focusedLabelColor, optional long unfocusedLabelColor, optional long disabledLabelColor, optional long errorLabelColor, optional long focusedPlaceholderColor, optional long unfocusedPlaceholderColor, optional long disabledPlaceholderColor, optional long errorPlaceholderColor, optional long focusedSupportingTextColor, optional long unfocusedSupportingTextColor, optional long disabledSupportingTextColor, optional long errorSupportingTextColor, optional long focusedPrefixColor, optional long unfocusedPrefixColor, optional long disabledPrefixColor, optional long errorPrefixColor, optional long focusedSuffixColor, optional long unfocusedSuffixColor, optional long disabledSuffixColor, optional long errorSuffixColor);
     method @Deprecated public androidx.compose.foundation.layout.PaddingValues textFieldWithLabelPadding(optional float start, optional float end, optional float top, optional float bottom);
     method @Deprecated public androidx.compose.foundation.layout.PaddingValues textFieldWithoutLabelPadding(optional float start, optional float top, optional float end, optional float bottom);
     property @Deprecated public final float FocusedBorderThickness;
@@ -817,7 +1219,9 @@
   }
 
   public final class TextFieldKt {
+    method @Deprecated @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void TextField(androidx.compose.ui.text.input.TextFieldValue value, kotlin.jvm.functions.Function1<? super androidx.compose.ui.text.input.TextFieldValue,kotlin.Unit> onValueChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional boolean readOnly, optional androidx.compose.ui.text.TextStyle textStyle, optional kotlin.jvm.functions.Function0<kotlin.Unit>? label, optional kotlin.jvm.functions.Function0<kotlin.Unit>? placeholder, optional kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? supportingText, optional boolean isError, optional androidx.compose.ui.text.input.VisualTransformation visualTransformation, optional androidx.compose.foundation.text.KeyboardOptions keyboardOptions, optional androidx.compose.foundation.text.KeyboardActions keyboardActions, optional boolean singleLine, optional int maxLines, optional int minLines, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.TextFieldColors colors);
     method @androidx.compose.runtime.Composable public static void TextField(androidx.compose.ui.text.input.TextFieldValue value, kotlin.jvm.functions.Function1<? super androidx.compose.ui.text.input.TextFieldValue,kotlin.Unit> onValueChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional boolean readOnly, optional androidx.compose.ui.text.TextStyle textStyle, optional kotlin.jvm.functions.Function0<kotlin.Unit>? label, optional kotlin.jvm.functions.Function0<kotlin.Unit>? placeholder, optional kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? prefix, optional kotlin.jvm.functions.Function0<kotlin.Unit>? suffix, optional kotlin.jvm.functions.Function0<kotlin.Unit>? supportingText, optional boolean isError, optional androidx.compose.ui.text.input.VisualTransformation visualTransformation, optional androidx.compose.foundation.text.KeyboardOptions keyboardOptions, optional androidx.compose.foundation.text.KeyboardActions keyboardActions, optional boolean singleLine, optional int maxLines, optional int minLines, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.TextFieldColors colors);
+    method @Deprecated @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void TextField(String value, kotlin.jvm.functions.Function1<? super java.lang.String,kotlin.Unit> onValueChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional boolean readOnly, optional androidx.compose.ui.text.TextStyle textStyle, optional kotlin.jvm.functions.Function0<kotlin.Unit>? label, optional kotlin.jvm.functions.Function0<kotlin.Unit>? placeholder, optional kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? supportingText, optional boolean isError, optional androidx.compose.ui.text.input.VisualTransformation visualTransformation, optional androidx.compose.foundation.text.KeyboardOptions keyboardOptions, optional androidx.compose.foundation.text.KeyboardActions keyboardActions, optional boolean singleLine, optional int maxLines, optional int minLines, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.TextFieldColors colors);
     method @androidx.compose.runtime.Composable public static void TextField(String value, kotlin.jvm.functions.Function1<? super java.lang.String,kotlin.Unit> onValueChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional boolean readOnly, optional androidx.compose.ui.text.TextStyle textStyle, optional kotlin.jvm.functions.Function0<kotlin.Unit>? label, optional kotlin.jvm.functions.Function0<kotlin.Unit>? placeholder, optional kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? prefix, optional kotlin.jvm.functions.Function0<kotlin.Unit>? suffix, optional kotlin.jvm.functions.Function0<kotlin.Unit>? supportingText, optional boolean isError, optional androidx.compose.ui.text.input.VisualTransformation visualTransformation, optional androidx.compose.foundation.text.KeyboardOptions keyboardOptions, optional androidx.compose.foundation.text.KeyboardActions keyboardActions, optional boolean singleLine, optional int maxLines, optional int minLines, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.TextFieldColors colors);
   }
 
@@ -831,6 +1235,135 @@
     property public static final androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.ui.text.TextStyle> LocalTextStyle;
   }
 
+  @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Immutable public final class TimePickerColors {
+  }
+
+  @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Stable public final class TimePickerDefaults {
+    method @androidx.compose.runtime.Composable public androidx.compose.material3.TimePickerColors colors(optional long clockDialColor, optional long clockDialSelectedContentColor, optional long clockDialUnselectedContentColor, optional long selectorColor, optional long containerColor, optional long periodSelectorBorderColor, optional long periodSelectorSelectedContainerColor, optional long periodSelectorUnselectedContainerColor, optional long periodSelectorSelectedContentColor, optional long periodSelectorUnselectedContentColor, optional long timeSelectorSelectedContainerColor, optional long timeSelectorUnselectedContainerColor, optional long timeSelectorSelectedContentColor, optional long timeSelectorUnselectedContentColor);
+    method @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public int layoutType();
+    field public static final androidx.compose.material3.TimePickerDefaults INSTANCE;
+  }
+
+  public final class TimePickerKt {
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void TimeInput(androidx.compose.material3.TimePickerState state, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.material3.TimePickerColors colors);
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void TimePicker(androidx.compose.material3.TimePickerState state, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.material3.TimePickerColors colors, optional int layoutType);
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static androidx.compose.material3.TimePickerState rememberTimePickerState(optional int initialHour, optional int initialMinute, optional boolean is24Hour);
+  }
+
+  @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class TimePickerLayoutType {
+    field public static final androidx.compose.material3.TimePickerLayoutType.Companion Companion;
+  }
+
+  public static final class TimePickerLayoutType.Companion {
+    method public int getHorizontal();
+    method public int getVertical();
+    property public final int Horizontal;
+    property public final int Vertical;
+  }
+
+  @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Stable public final class TimePickerState {
+    ctor public TimePickerState(int initialHour, int initialMinute, boolean is24Hour);
+    method public int getHour();
+    method public int getMinute();
+    method public boolean is24hour();
+    method public suspend Object? settle(kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    property public final int hour;
+    property public final boolean is24hour;
+    property public final int minute;
+    field public static final androidx.compose.material3.TimePickerState.Companion Companion;
+  }
+
+  public static final class TimePickerState.Companion {
+    method public androidx.compose.runtime.saveable.Saver<androidx.compose.material3.TimePickerState,?> Saver();
+  }
+
+  @androidx.compose.material3.ExperimentalMaterial3Api public interface TooltipBoxScope {
+    method public androidx.compose.ui.Modifier tooltipTrigger(androidx.compose.ui.Modifier);
+  }
+
+  @androidx.compose.material3.ExperimentalMaterial3Api public final class TooltipDefaults {
+    method public androidx.compose.foundation.MutatorMutex getGlobalMutatorMutex();
+    method @androidx.compose.runtime.Composable public long getPlainTooltipContainerColor();
+    method @androidx.compose.runtime.Composable public androidx.compose.ui.graphics.Shape getPlainTooltipContainerShape();
+    method @androidx.compose.runtime.Composable public long getPlainTooltipContentColor();
+    method @androidx.compose.runtime.Composable public androidx.compose.ui.graphics.Shape getRichTooltipContainerShape();
+    method @androidx.compose.runtime.Composable public androidx.compose.material3.RichTooltipColors richTooltipColors(optional long containerColor, optional long contentColor, optional long titleContentColor, optional long actionContentColor);
+    property public final androidx.compose.foundation.MutatorMutex GlobalMutatorMutex;
+    property @androidx.compose.runtime.Composable public final long plainTooltipContainerColor;
+    property @androidx.compose.runtime.Composable public final androidx.compose.ui.graphics.Shape plainTooltipContainerShape;
+    property @androidx.compose.runtime.Composable public final long plainTooltipContentColor;
+    property @androidx.compose.runtime.Composable public final androidx.compose.ui.graphics.Shape richTooltipContainerShape;
+    field public static final androidx.compose.material3.TooltipDefaults INSTANCE;
+  }
+
+  public final class TooltipKt {
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void PlainTooltipBox(kotlin.jvm.functions.Function0<kotlin.Unit> tooltip, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.material3.PlainTooltipState tooltipState, optional androidx.compose.ui.graphics.Shape shape, optional long containerColor, optional long contentColor, kotlin.jvm.functions.Function1<? super androidx.compose.material3.TooltipBoxScope,kotlin.Unit> content);
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void RichTooltipBox(kotlin.jvm.functions.Function0<kotlin.Unit> text, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function0<kotlin.Unit>? title, optional kotlin.jvm.functions.Function0<kotlin.Unit>? action, optional androidx.compose.material3.RichTooltipState tooltipState, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.RichTooltipColors colors, kotlin.jvm.functions.Function1<? super androidx.compose.material3.TooltipBoxScope,kotlin.Unit> content);
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static androidx.compose.material3.PlainTooltipState rememberPlainTooltipState(optional androidx.compose.foundation.MutatorMutex mutatorMutex);
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static androidx.compose.material3.RichTooltipState rememberRichTooltipState(boolean isPersistent, optional androidx.compose.foundation.MutatorMutex mutatorMutex);
+  }
+
+  @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Stable public interface TooltipState {
+    method public void dismiss();
+    method public boolean isVisible();
+    method public void onDispose();
+    method public suspend Object? show(kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    property public abstract boolean isVisible;
+  }
+
+  @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Stable public final class TopAppBarColors {
+  }
+
+  @androidx.compose.material3.ExperimentalMaterial3Api public final class TopAppBarDefaults {
+    method @androidx.compose.runtime.Composable public androidx.compose.material3.TopAppBarColors centerAlignedTopAppBarColors(optional long containerColor, optional long scrolledContainerColor, optional long navigationIconContentColor, optional long titleContentColor, optional long actionIconContentColor);
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public androidx.compose.material3.TopAppBarScrollBehavior enterAlwaysScrollBehavior(optional androidx.compose.material3.TopAppBarState state, optional kotlin.jvm.functions.Function0<java.lang.Boolean> canScroll, optional androidx.compose.animation.core.AnimationSpec<java.lang.Float>? snapAnimationSpec, optional androidx.compose.animation.core.DecayAnimationSpec<java.lang.Float>? flingAnimationSpec);
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public androidx.compose.material3.TopAppBarScrollBehavior exitUntilCollapsedScrollBehavior(optional androidx.compose.material3.TopAppBarState state, optional kotlin.jvm.functions.Function0<java.lang.Boolean> canScroll, optional androidx.compose.animation.core.AnimationSpec<java.lang.Float>? snapAnimationSpec, optional androidx.compose.animation.core.DecayAnimationSpec<java.lang.Float>? flingAnimationSpec);
+    method @androidx.compose.runtime.Composable public androidx.compose.foundation.layout.WindowInsets getWindowInsets();
+    method @androidx.compose.runtime.Composable public androidx.compose.material3.TopAppBarColors largeTopAppBarColors(optional long containerColor, optional long scrolledContainerColor, optional long navigationIconContentColor, optional long titleContentColor, optional long actionIconContentColor);
+    method @androidx.compose.runtime.Composable public androidx.compose.material3.TopAppBarColors mediumTopAppBarColors(optional long containerColor, optional long scrolledContainerColor, optional long navigationIconContentColor, optional long titleContentColor, optional long actionIconContentColor);
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public androidx.compose.material3.TopAppBarScrollBehavior pinnedScrollBehavior(optional androidx.compose.material3.TopAppBarState state, optional kotlin.jvm.functions.Function0<java.lang.Boolean> canScroll);
+    method @Deprecated @androidx.compose.runtime.Composable public androidx.compose.material3.TopAppBarColors smallTopAppBarColors(optional long containerColor, optional long scrolledContainerColor, optional long navigationIconContentColor, optional long titleContentColor, optional long actionIconContentColor);
+    method @androidx.compose.runtime.Composable public androidx.compose.material3.TopAppBarColors topAppBarColors(optional long containerColor, optional long scrolledContainerColor, optional long navigationIconContentColor, optional long titleContentColor, optional long actionIconContentColor);
+    property @androidx.compose.runtime.Composable public final androidx.compose.foundation.layout.WindowInsets windowInsets;
+    field public static final androidx.compose.material3.TopAppBarDefaults INSTANCE;
+  }
+
+  @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Stable public interface TopAppBarScrollBehavior {
+    method public androidx.compose.animation.core.DecayAnimationSpec<java.lang.Float>? getFlingAnimationSpec();
+    method public androidx.compose.ui.input.nestedscroll.NestedScrollConnection getNestedScrollConnection();
+    method public androidx.compose.animation.core.AnimationSpec<java.lang.Float>? getSnapAnimationSpec();
+    method public androidx.compose.material3.TopAppBarState getState();
+    method public boolean isPinned();
+    property public abstract androidx.compose.animation.core.DecayAnimationSpec<java.lang.Float>? flingAnimationSpec;
+    property public abstract boolean isPinned;
+    property public abstract androidx.compose.ui.input.nestedscroll.NestedScrollConnection nestedScrollConnection;
+    property public abstract androidx.compose.animation.core.AnimationSpec<java.lang.Float>? snapAnimationSpec;
+    property public abstract androidx.compose.material3.TopAppBarState state;
+  }
+
+  @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Stable public final class TopAppBarState {
+    ctor public TopAppBarState(float initialHeightOffsetLimit, float initialHeightOffset, float initialContentOffset);
+    method public float getCollapsedFraction();
+    method public float getContentOffset();
+    method public float getHeightOffset();
+    method public float getHeightOffsetLimit();
+    method public float getOverlappedFraction();
+    method public void setContentOffset(float);
+    method public void setHeightOffset(float);
+    method public void setHeightOffsetLimit(float);
+    property public final float collapsedFraction;
+    property public final float contentOffset;
+    property public final float heightOffset;
+    property public final float heightOffsetLimit;
+    property public final float overlappedFraction;
+    field public static final androidx.compose.material3.TopAppBarState.Companion Companion;
+  }
+
+  public static final class TopAppBarState.Companion {
+    method public androidx.compose.runtime.saveable.Saver<androidx.compose.material3.TopAppBarState,?> getSaver();
+    property public final androidx.compose.runtime.saveable.Saver<androidx.compose.material3.TopAppBarState,?> Saver;
+  }
+
   @androidx.compose.runtime.Immutable public final class Typography {
     ctor public Typography(optional androidx.compose.ui.text.TextStyle displayLarge, optional androidx.compose.ui.text.TextStyle displayMedium, optional androidx.compose.ui.text.TextStyle displaySmall, optional androidx.compose.ui.text.TextStyle headlineLarge, optional androidx.compose.ui.text.TextStyle headlineMedium, optional androidx.compose.ui.text.TextStyle headlineSmall, optional androidx.compose.ui.text.TextStyle titleLarge, optional androidx.compose.ui.text.TextStyle titleMedium, optional androidx.compose.ui.text.TextStyle titleSmall, optional androidx.compose.ui.text.TextStyle bodyLarge, optional androidx.compose.ui.text.TextStyle bodyMedium, optional androidx.compose.ui.text.TextStyle bodySmall, optional androidx.compose.ui.text.TextStyle labelLarge, optional androidx.compose.ui.text.TextStyle labelMedium, optional androidx.compose.ui.text.TextStyle labelSmall);
     method public androidx.compose.material3.Typography copy(optional androidx.compose.ui.text.TextStyle displayLarge, optional androidx.compose.ui.text.TextStyle displayMedium, optional androidx.compose.ui.text.TextStyle displaySmall, optional androidx.compose.ui.text.TextStyle headlineLarge, optional androidx.compose.ui.text.TextStyle headlineMedium, optional androidx.compose.ui.text.TextStyle headlineSmall, optional androidx.compose.ui.text.TextStyle titleLarge, optional androidx.compose.ui.text.TextStyle titleMedium, optional androidx.compose.ui.text.TextStyle titleSmall, optional androidx.compose.ui.text.TextStyle bodyLarge, optional androidx.compose.ui.text.TextStyle bodyMedium, optional androidx.compose.ui.text.TextStyle bodySmall, optional androidx.compose.ui.text.TextStyle labelLarge, optional androidx.compose.ui.text.TextStyle labelMedium, optional androidx.compose.ui.text.TextStyle labelSmall);
diff --git a/compose/material3/material3/api/public_plus_experimental_current.txt b/compose/material3/material3/api/public_plus_experimental_current.txt
deleted file mode 100644
index 422f0ec..0000000
--- a/compose/material3/material3/api/public_plus_experimental_current.txt
+++ /dev/null
@@ -1,1403 +0,0 @@
-// Signature format: 4.0
-package androidx.compose.material3 {
-
-  public final class AlertDialogDefaults {
-    method @androidx.compose.runtime.Composable public long getContainerColor();
-    method @androidx.compose.runtime.Composable public long getIconContentColor();
-    method @androidx.compose.runtime.Composable public androidx.compose.ui.graphics.Shape getShape();
-    method @androidx.compose.runtime.Composable public long getTextContentColor();
-    method @androidx.compose.runtime.Composable public long getTitleContentColor();
-    method public float getTonalElevation();
-    property public final float TonalElevation;
-    property @androidx.compose.runtime.Composable public final long containerColor;
-    property @androidx.compose.runtime.Composable public final long iconContentColor;
-    property @androidx.compose.runtime.Composable public final androidx.compose.ui.graphics.Shape shape;
-    property @androidx.compose.runtime.Composable public final long textContentColor;
-    property @androidx.compose.runtime.Composable public final long titleContentColor;
-    field public static final androidx.compose.material3.AlertDialogDefaults INSTANCE;
-  }
-
-  public final class AndroidAlertDialog_androidKt {
-    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void AlertDialog(kotlin.jvm.functions.Function0<kotlin.Unit> onDismissRequest, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.window.DialogProperties properties, kotlin.jvm.functions.Function0<kotlin.Unit> content);
-    method @androidx.compose.runtime.Composable public static void AlertDialog(kotlin.jvm.functions.Function0<kotlin.Unit> onDismissRequest, kotlin.jvm.functions.Function0<kotlin.Unit> confirmButton, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function0<kotlin.Unit>? dismissButton, optional kotlin.jvm.functions.Function0<kotlin.Unit>? icon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? title, optional kotlin.jvm.functions.Function0<kotlin.Unit>? text, optional androidx.compose.ui.graphics.Shape shape, optional long containerColor, optional long iconContentColor, optional long titleContentColor, optional long textContentColor, optional float tonalElevation, optional androidx.compose.ui.window.DialogProperties properties);
-  }
-
-  public final class AndroidMenu_androidKt {
-    method @androidx.compose.runtime.Composable public static void DropdownMenu(boolean expanded, kotlin.jvm.functions.Function0<kotlin.Unit> onDismissRequest, optional androidx.compose.ui.Modifier modifier, optional long offset, optional androidx.compose.foundation.ScrollState scrollState, optional androidx.compose.ui.window.PopupProperties properties, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit> content);
-    method @Deprecated @androidx.compose.runtime.Composable public static void DropdownMenu(boolean expanded, kotlin.jvm.functions.Function0<kotlin.Unit> onDismissRequest, optional androidx.compose.ui.Modifier modifier, optional long offset, optional androidx.compose.ui.window.PopupProperties properties, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit> content);
-    method @androidx.compose.runtime.Composable public static void DropdownMenuItem(kotlin.jvm.functions.Function0<kotlin.Unit> text, kotlin.jvm.functions.Function0<kotlin.Unit> onClick, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon, optional boolean enabled, optional androidx.compose.material3.MenuItemColors colors, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource);
-  }
-
-  public final class AppBarKt {
-    method @androidx.compose.runtime.Composable public static void BottomAppBar(optional androidx.compose.ui.Modifier modifier, optional long containerColor, optional long contentColor, optional float tonalElevation, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional androidx.compose.foundation.layout.WindowInsets windowInsets, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit> content);
-    method @androidx.compose.runtime.Composable public static void BottomAppBar(kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit> actions, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function0<kotlin.Unit>? floatingActionButton, optional long containerColor, optional long contentColor, optional float tonalElevation, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional androidx.compose.foundation.layout.WindowInsets windowInsets);
-    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void CenterAlignedTopAppBar(kotlin.jvm.functions.Function0<kotlin.Unit> title, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function0<kotlin.Unit> navigationIcon, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit> actions, optional androidx.compose.foundation.layout.WindowInsets windowInsets, optional androidx.compose.material3.TopAppBarColors colors, optional androidx.compose.material3.TopAppBarScrollBehavior? scrollBehavior);
-    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void LargeTopAppBar(kotlin.jvm.functions.Function0<kotlin.Unit> title, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function0<kotlin.Unit> navigationIcon, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit> actions, optional androidx.compose.foundation.layout.WindowInsets windowInsets, optional androidx.compose.material3.TopAppBarColors colors, optional androidx.compose.material3.TopAppBarScrollBehavior? scrollBehavior);
-    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void MediumTopAppBar(kotlin.jvm.functions.Function0<kotlin.Unit> title, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function0<kotlin.Unit> navigationIcon, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit> actions, optional androidx.compose.foundation.layout.WindowInsets windowInsets, optional androidx.compose.material3.TopAppBarColors colors, optional androidx.compose.material3.TopAppBarScrollBehavior? scrollBehavior);
-    method @Deprecated @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void SmallTopAppBar(kotlin.jvm.functions.Function0<kotlin.Unit> title, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function0<kotlin.Unit> navigationIcon, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit> actions, optional androidx.compose.foundation.layout.WindowInsets windowInsets, optional androidx.compose.material3.TopAppBarColors colors, optional androidx.compose.material3.TopAppBarScrollBehavior? scrollBehavior);
-    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void TopAppBar(kotlin.jvm.functions.Function0<kotlin.Unit> title, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function0<kotlin.Unit> navigationIcon, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit> actions, optional androidx.compose.foundation.layout.WindowInsets windowInsets, optional androidx.compose.material3.TopAppBarColors colors, optional androidx.compose.material3.TopAppBarScrollBehavior? scrollBehavior);
-    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static androidx.compose.material3.TopAppBarState rememberTopAppBarState(optional float initialHeightOffsetLimit, optional float initialHeightOffset, optional float initialContentOffset);
-  }
-
-  public final class AssistChipDefaults {
-    method @androidx.compose.runtime.Composable public androidx.compose.material3.ChipBorder assistChipBorder(optional long borderColor, optional long disabledBorderColor, optional float borderWidth);
-    method @androidx.compose.runtime.Composable public androidx.compose.material3.ChipColors assistChipColors(optional long containerColor, optional long labelColor, optional long leadingIconContentColor, optional long trailingIconContentColor, optional long disabledContainerColor, optional long disabledLabelColor, optional long disabledLeadingIconContentColor, optional long disabledTrailingIconContentColor);
-    method @androidx.compose.runtime.Composable public androidx.compose.material3.ChipElevation assistChipElevation(optional float elevation, optional float pressedElevation, optional float focusedElevation, optional float hoveredElevation, optional float draggedElevation, optional float disabledElevation);
-    method @androidx.compose.runtime.Composable public androidx.compose.material3.ChipColors elevatedAssistChipColors(optional long containerColor, optional long labelColor, optional long leadingIconContentColor, optional long trailingIconContentColor, optional long disabledContainerColor, optional long disabledLabelColor, optional long disabledLeadingIconContentColor, optional long disabledTrailingIconContentColor);
-    method @androidx.compose.runtime.Composable public androidx.compose.material3.ChipElevation elevatedAssistChipElevation(optional float elevation, optional float pressedElevation, optional float focusedElevation, optional float hoveredElevation, optional float draggedElevation, optional float disabledElevation);
-    method public float getHeight();
-    method public float getIconSize();
-    method @androidx.compose.runtime.Composable public androidx.compose.ui.graphics.Shape getShape();
-    property public final float Height;
-    property public final float IconSize;
-    property @androidx.compose.runtime.Composable public final androidx.compose.ui.graphics.Shape shape;
-    field public static final androidx.compose.material3.AssistChipDefaults INSTANCE;
-  }
-
-  @androidx.compose.material3.ExperimentalMaterial3Api public final class BadgeDefaults {
-    method @androidx.compose.runtime.Composable public long getContainerColor();
-    property @androidx.compose.runtime.Composable public final long containerColor;
-    field public static final androidx.compose.material3.BadgeDefaults INSTANCE;
-  }
-
-  public final class BadgeKt {
-    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void Badge(optional androidx.compose.ui.Modifier modifier, optional long containerColor, optional long contentColor, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit>? content);
-    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void BadgedBox(kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.BoxScope,kotlin.Unit> badge, optional androidx.compose.ui.Modifier modifier, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.BoxScope,kotlin.Unit> content);
-  }
-
-  public final class BottomAppBarDefaults {
-    method @androidx.compose.runtime.Composable public long getBottomAppBarFabColor();
-    method @androidx.compose.runtime.Composable public long getContainerColor();
-    method public float getContainerElevation();
-    method public androidx.compose.foundation.layout.PaddingValues getContentPadding();
-    method @androidx.compose.runtime.Composable public androidx.compose.foundation.layout.WindowInsets getWindowInsets();
-    property public final float ContainerElevation;
-    property public final androidx.compose.foundation.layout.PaddingValues ContentPadding;
-    property @androidx.compose.runtime.Composable public final long bottomAppBarFabColor;
-    property @androidx.compose.runtime.Composable public final long containerColor;
-    property @androidx.compose.runtime.Composable public final androidx.compose.foundation.layout.WindowInsets windowInsets;
-    field public static final androidx.compose.material3.BottomAppBarDefaults INSTANCE;
-  }
-
-  @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Stable public final class BottomSheetDefaults {
-    method @androidx.compose.runtime.Composable public void DragHandle(optional androidx.compose.ui.Modifier modifier, optional float width, optional float height, optional androidx.compose.ui.graphics.Shape shape, optional long color);
-    method @androidx.compose.runtime.Composable public long getContainerColor();
-    method public float getElevation();
-    method @androidx.compose.runtime.Composable public androidx.compose.ui.graphics.Shape getExpandedShape();
-    method @androidx.compose.runtime.Composable public androidx.compose.ui.graphics.Shape getHiddenShape();
-    method @androidx.compose.runtime.Composable public long getScrimColor();
-    method public float getSheetPeekHeight();
-    method @androidx.compose.runtime.Composable public androidx.compose.foundation.layout.WindowInsets getWindowInsets();
-    property @androidx.compose.runtime.Composable public final long ContainerColor;
-    property public final float Elevation;
-    property @androidx.compose.runtime.Composable public final androidx.compose.ui.graphics.Shape ExpandedShape;
-    property @androidx.compose.runtime.Composable public final androidx.compose.ui.graphics.Shape HiddenShape;
-    property @androidx.compose.runtime.Composable public final long ScrimColor;
-    property public final float SheetPeekHeight;
-    property @androidx.compose.runtime.Composable public final androidx.compose.foundation.layout.WindowInsets windowInsets;
-    field public static final androidx.compose.material3.BottomSheetDefaults INSTANCE;
-  }
-
-  public final class BottomSheetScaffoldKt {
-    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void BottomSheetScaffold(kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit> sheetContent, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.material3.BottomSheetScaffoldState scaffoldState, optional float sheetPeekHeight, optional androidx.compose.ui.graphics.Shape sheetShape, optional long sheetContainerColor, optional long sheetContentColor, optional float sheetTonalElevation, optional float sheetShadowElevation, optional kotlin.jvm.functions.Function0<kotlin.Unit>? sheetDragHandle, optional boolean sheetSwipeEnabled, optional kotlin.jvm.functions.Function0<kotlin.Unit>? topBar, optional kotlin.jvm.functions.Function1<? super androidx.compose.material3.SnackbarHostState,kotlin.Unit> snackbarHost, optional long containerColor, optional long contentColor, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.PaddingValues,kotlin.Unit> content);
-    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static androidx.compose.material3.BottomSheetScaffoldState rememberBottomSheetScaffoldState(optional androidx.compose.material3.SheetState bottomSheetState, optional androidx.compose.material3.SnackbarHostState snackbarHostState);
-    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static androidx.compose.material3.SheetState rememberStandardBottomSheetState(optional androidx.compose.material3.SheetValue initialValue, optional kotlin.jvm.functions.Function1<? super androidx.compose.material3.SheetValue,java.lang.Boolean> confirmValueChange, optional boolean skipHiddenState);
-  }
-
-  @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Stable public final class BottomSheetScaffoldState {
-    ctor public BottomSheetScaffoldState(androidx.compose.material3.SheetState bottomSheetState, androidx.compose.material3.SnackbarHostState snackbarHostState);
-    method public androidx.compose.material3.SheetState getBottomSheetState();
-    method public androidx.compose.material3.SnackbarHostState getSnackbarHostState();
-    property public final androidx.compose.material3.SheetState bottomSheetState;
-    property public final androidx.compose.material3.SnackbarHostState snackbarHostState;
-  }
-
-  @androidx.compose.runtime.Immutable public final class ButtonColors {
-  }
-
-  public final class ButtonDefaults {
-    method @androidx.compose.runtime.Composable public androidx.compose.material3.ButtonColors buttonColors(optional long containerColor, optional long contentColor, optional long disabledContainerColor, optional long disabledContentColor);
-    method @androidx.compose.runtime.Composable public androidx.compose.material3.ButtonElevation buttonElevation(optional float defaultElevation, optional float pressedElevation, optional float focusedElevation, optional float hoveredElevation, optional float disabledElevation);
-    method @androidx.compose.runtime.Composable public androidx.compose.material3.ButtonColors elevatedButtonColors(optional long containerColor, optional long contentColor, optional long disabledContainerColor, optional long disabledContentColor);
-    method @androidx.compose.runtime.Composable public androidx.compose.material3.ButtonElevation elevatedButtonElevation(optional float defaultElevation, optional float pressedElevation, optional float focusedElevation, optional float hoveredElevation, optional float disabledElevation);
-    method @androidx.compose.runtime.Composable public androidx.compose.material3.ButtonColors filledTonalButtonColors(optional long containerColor, optional long contentColor, optional long disabledContainerColor, optional long disabledContentColor);
-    method @androidx.compose.runtime.Composable public androidx.compose.material3.ButtonElevation filledTonalButtonElevation(optional float defaultElevation, optional float pressedElevation, optional float focusedElevation, optional float hoveredElevation, optional float disabledElevation);
-    method public androidx.compose.foundation.layout.PaddingValues getButtonWithIconContentPadding();
-    method public androidx.compose.foundation.layout.PaddingValues getContentPadding();
-    method @androidx.compose.runtime.Composable public androidx.compose.ui.graphics.Shape getElevatedShape();
-    method @androidx.compose.runtime.Composable public androidx.compose.ui.graphics.Shape getFilledTonalShape();
-    method public float getIconSize();
-    method public float getIconSpacing();
-    method public float getMinHeight();
-    method public float getMinWidth();
-    method @androidx.compose.runtime.Composable public androidx.compose.foundation.BorderStroke getOutlinedButtonBorder();
-    method @androidx.compose.runtime.Composable public androidx.compose.ui.graphics.Shape getOutlinedShape();
-    method @androidx.compose.runtime.Composable public androidx.compose.ui.graphics.Shape getShape();
-    method public androidx.compose.foundation.layout.PaddingValues getTextButtonContentPadding();
-    method public androidx.compose.foundation.layout.PaddingValues getTextButtonWithIconContentPadding();
-    method @androidx.compose.runtime.Composable public androidx.compose.ui.graphics.Shape getTextShape();
-    method @androidx.compose.runtime.Composable public androidx.compose.material3.ButtonColors outlinedButtonColors(optional long containerColor, optional long contentColor, optional long disabledContainerColor, optional long disabledContentColor);
-    method @androidx.compose.runtime.Composable public androidx.compose.material3.ButtonColors textButtonColors(optional long containerColor, optional long contentColor, optional long disabledContainerColor, optional long disabledContentColor);
-    property public final androidx.compose.foundation.layout.PaddingValues ButtonWithIconContentPadding;
-    property public final androidx.compose.foundation.layout.PaddingValues ContentPadding;
-    property public final float IconSize;
-    property public final float IconSpacing;
-    property public final float MinHeight;
-    property public final float MinWidth;
-    property public final androidx.compose.foundation.layout.PaddingValues TextButtonContentPadding;
-    property public final androidx.compose.foundation.layout.PaddingValues TextButtonWithIconContentPadding;
-    property @androidx.compose.runtime.Composable public final androidx.compose.ui.graphics.Shape elevatedShape;
-    property @androidx.compose.runtime.Composable public final androidx.compose.ui.graphics.Shape filledTonalShape;
-    property @androidx.compose.runtime.Composable public final androidx.compose.foundation.BorderStroke outlinedButtonBorder;
-    property @androidx.compose.runtime.Composable public final androidx.compose.ui.graphics.Shape outlinedShape;
-    property @androidx.compose.runtime.Composable public final androidx.compose.ui.graphics.Shape shape;
-    property @androidx.compose.runtime.Composable public final androidx.compose.ui.graphics.Shape textShape;
-    field public static final androidx.compose.material3.ButtonDefaults INSTANCE;
-  }
-
-  @androidx.compose.runtime.Stable public final class ButtonElevation {
-  }
-
-  public final class ButtonKt {
-    method @androidx.compose.runtime.Composable public static void Button(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.ButtonColors colors, optional androidx.compose.material3.ButtonElevation? elevation, optional androidx.compose.foundation.BorderStroke? border, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit> content);
-    method @androidx.compose.runtime.Composable public static void ElevatedButton(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.ButtonColors colors, optional androidx.compose.material3.ButtonElevation? elevation, optional androidx.compose.foundation.BorderStroke? border, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit> content);
-    method @androidx.compose.runtime.Composable public static void FilledTonalButton(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.ButtonColors colors, optional androidx.compose.material3.ButtonElevation? elevation, optional androidx.compose.foundation.BorderStroke? border, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit> content);
-    method @androidx.compose.runtime.Composable public static void OutlinedButton(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.ButtonColors colors, optional androidx.compose.material3.ButtonElevation? elevation, optional androidx.compose.foundation.BorderStroke? border, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit> content);
-    method @androidx.compose.runtime.Composable public static void TextButton(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.ButtonColors colors, optional androidx.compose.material3.ButtonElevation? elevation, optional androidx.compose.foundation.BorderStroke? border, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit> content);
-  }
-
-  public final class CalendarModelKt {
-    method @androidx.compose.material3.ExperimentalMaterial3Api public static String formatWithSkeleton(long utcTimeMillis, String skeleton, optional java.util.Locale locale);
-  }
-
-  public final class CalendarModel_androidKt {
-    method @androidx.compose.material3.ExperimentalMaterial3Api public static String formatWithSkeleton(long utcTimeMillis, String skeleton, java.util.Locale locale);
-  }
-
-  @androidx.compose.runtime.Immutable public final class CardColors {
-  }
-
-  public final class CardDefaults {
-    method @androidx.compose.runtime.Composable public androidx.compose.material3.CardColors cardColors(optional long containerColor, optional long contentColor, optional long disabledContainerColor, optional long disabledContentColor);
-    method @androidx.compose.runtime.Composable public androidx.compose.material3.CardElevation cardElevation(optional float defaultElevation, optional float pressedElevation, optional float focusedElevation, optional float hoveredElevation, optional float draggedElevation, optional float disabledElevation);
-    method @androidx.compose.runtime.Composable public androidx.compose.material3.CardColors elevatedCardColors(optional long containerColor, optional long contentColor, optional long disabledContainerColor, optional long disabledContentColor);
-    method @androidx.compose.runtime.Composable public androidx.compose.material3.CardElevation elevatedCardElevation(optional float defaultElevation, optional float pressedElevation, optional float focusedElevation, optional float hoveredElevation, optional float draggedElevation, optional float disabledElevation);
-    method @androidx.compose.runtime.Composable public androidx.compose.ui.graphics.Shape getElevatedShape();
-    method @androidx.compose.runtime.Composable public androidx.compose.ui.graphics.Shape getOutlinedShape();
-    method @androidx.compose.runtime.Composable public androidx.compose.ui.graphics.Shape getShape();
-    method @androidx.compose.runtime.Composable public androidx.compose.foundation.BorderStroke outlinedCardBorder(optional boolean enabled);
-    method @androidx.compose.runtime.Composable public androidx.compose.material3.CardColors outlinedCardColors(optional long containerColor, optional long contentColor, optional long disabledContainerColor, optional long disabledContentColor);
-    method @androidx.compose.runtime.Composable public androidx.compose.material3.CardElevation outlinedCardElevation(optional float defaultElevation, optional float pressedElevation, optional float focusedElevation, optional float hoveredElevation, optional float draggedElevation, optional float disabledElevation);
-    property @androidx.compose.runtime.Composable public final androidx.compose.ui.graphics.Shape elevatedShape;
-    property @androidx.compose.runtime.Composable public final androidx.compose.ui.graphics.Shape outlinedShape;
-    property @androidx.compose.runtime.Composable public final androidx.compose.ui.graphics.Shape shape;
-    field public static final androidx.compose.material3.CardDefaults INSTANCE;
-  }
-
-  @androidx.compose.runtime.Immutable public final class CardElevation {
-  }
-
-  public final class CardKt {
-    method @androidx.compose.runtime.Composable public static void Card(optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.CardColors colors, optional androidx.compose.material3.CardElevation elevation, optional androidx.compose.foundation.BorderStroke? border, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit> content);
-    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void Card(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.CardColors colors, optional androidx.compose.material3.CardElevation elevation, optional androidx.compose.foundation.BorderStroke? border, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit> content);
-    method @androidx.compose.runtime.Composable public static void ElevatedCard(optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.CardColors colors, optional androidx.compose.material3.CardElevation elevation, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit> content);
-    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void ElevatedCard(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.CardColors colors, optional androidx.compose.material3.CardElevation elevation, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit> content);
-    method @androidx.compose.runtime.Composable public static void OutlinedCard(optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.CardColors colors, optional androidx.compose.material3.CardElevation elevation, optional androidx.compose.foundation.BorderStroke border, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit> content);
-    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void OutlinedCard(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.CardColors colors, optional androidx.compose.material3.CardElevation elevation, optional androidx.compose.foundation.BorderStroke border, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit> content);
-  }
-
-  @androidx.compose.runtime.Immutable public final class CheckboxColors {
-  }
-
-  public final class CheckboxDefaults {
-    method @androidx.compose.runtime.Composable public androidx.compose.material3.CheckboxColors colors(optional long checkedColor, optional long uncheckedColor, optional long checkmarkColor, optional long disabledCheckedColor, optional long disabledUncheckedColor, optional long disabledIndeterminateColor);
-    field public static final androidx.compose.material3.CheckboxDefaults INSTANCE;
-  }
-
-  public final class CheckboxKt {
-    method @androidx.compose.runtime.Composable public static void Checkbox(boolean checked, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit>? onCheckedChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.material3.CheckboxColors colors, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource);
-    method @androidx.compose.runtime.Composable public static void TriStateCheckbox(androidx.compose.ui.state.ToggleableState state, kotlin.jvm.functions.Function0<kotlin.Unit>? onClick, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.material3.CheckboxColors colors, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource);
-  }
-
-  @androidx.compose.runtime.Immutable public final class ChipBorder {
-  }
-
-  @androidx.compose.runtime.Immutable public final class ChipColors {
-  }
-
-  @androidx.compose.runtime.Immutable public final class ChipElevation {
-  }
-
-  public final class ChipKt {
-    method @androidx.compose.runtime.Composable public static void AssistChip(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, kotlin.jvm.functions.Function0<kotlin.Unit> label, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.ChipColors colors, optional androidx.compose.material3.ChipElevation? elevation, optional androidx.compose.material3.ChipBorder? border, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource);
-    method @androidx.compose.runtime.Composable public static void ElevatedAssistChip(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, kotlin.jvm.functions.Function0<kotlin.Unit> label, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.ChipColors colors, optional androidx.compose.material3.ChipElevation? elevation, optional androidx.compose.material3.ChipBorder? border, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource);
-    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void ElevatedFilterChip(boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onClick, kotlin.jvm.functions.Function0<kotlin.Unit> label, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.SelectableChipColors colors, optional androidx.compose.material3.SelectableChipElevation? elevation, optional androidx.compose.material3.SelectableChipBorder? border, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource);
-    method @androidx.compose.runtime.Composable public static void ElevatedSuggestionChip(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, kotlin.jvm.functions.Function0<kotlin.Unit> label, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional kotlin.jvm.functions.Function0<kotlin.Unit>? icon, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.ChipColors colors, optional androidx.compose.material3.ChipElevation? elevation, optional androidx.compose.material3.ChipBorder? border, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource);
-    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void FilterChip(boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onClick, kotlin.jvm.functions.Function0<kotlin.Unit> label, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.SelectableChipColors colors, optional androidx.compose.material3.SelectableChipElevation? elevation, optional androidx.compose.material3.SelectableChipBorder? border, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource);
-    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void InputChip(boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onClick, kotlin.jvm.functions.Function0<kotlin.Unit> label, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? avatar, optional kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.SelectableChipColors colors, optional androidx.compose.material3.SelectableChipElevation? elevation, optional androidx.compose.material3.SelectableChipBorder? border, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource);
-    method @androidx.compose.runtime.Composable public static void SuggestionChip(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, kotlin.jvm.functions.Function0<kotlin.Unit> label, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional kotlin.jvm.functions.Function0<kotlin.Unit>? icon, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.ChipColors colors, optional androidx.compose.material3.ChipElevation? elevation, optional androidx.compose.material3.ChipBorder? border, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource);
-  }
-
-  @androidx.compose.runtime.Stable public final class ColorScheme {
-    ctor public ColorScheme(long primary, long onPrimary, long primaryContainer, long onPrimaryContainer, long inversePrimary, long secondary, long onSecondary, long secondaryContainer, long onSecondaryContainer, long tertiary, long onTertiary, long tertiaryContainer, long onTertiaryContainer, long background, long onBackground, long surface, long onSurface, long surfaceVariant, long onSurfaceVariant, long surfaceTint, long inverseSurface, long inverseOnSurface, long error, long onError, long errorContainer, long onErrorContainer, long outline, long outlineVariant, long scrim);
-    method public androidx.compose.material3.ColorScheme copy(optional long primary, optional long onPrimary, optional long primaryContainer, optional long onPrimaryContainer, optional long inversePrimary, optional long secondary, optional long onSecondary, optional long secondaryContainer, optional long onSecondaryContainer, optional long tertiary, optional long onTertiary, optional long tertiaryContainer, optional long onTertiaryContainer, optional long background, optional long onBackground, optional long surface, optional long onSurface, optional long surfaceVariant, optional long onSurfaceVariant, optional long surfaceTint, optional long inverseSurface, optional long inverseOnSurface, optional long error, optional long onError, optional long errorContainer, optional long onErrorContainer, optional long outline, optional long outlineVariant, optional long scrim);
-    method public long getBackground();
-    method public long getError();
-    method public long getErrorContainer();
-    method public long getInverseOnSurface();
-    method public long getInversePrimary();
-    method public long getInverseSurface();
-    method public long getOnBackground();
-    method public long getOnError();
-    method public long getOnErrorContainer();
-    method public long getOnPrimary();
-    method public long getOnPrimaryContainer();
-    method public long getOnSecondary();
-    method public long getOnSecondaryContainer();
-    method public long getOnSurface();
-    method public long getOnSurfaceVariant();
-    method public long getOnTertiary();
-    method public long getOnTertiaryContainer();
-    method public long getOutline();
-    method public long getOutlineVariant();
-    method public long getPrimary();
-    method public long getPrimaryContainer();
-    method public long getScrim();
-    method public long getSecondary();
-    method public long getSecondaryContainer();
-    method public long getSurface();
-    method public long getSurfaceTint();
-    method public long getSurfaceVariant();
-    method public long getTertiary();
-    method public long getTertiaryContainer();
-    property public final long background;
-    property public final long error;
-    property public final long errorContainer;
-    property public final long inverseOnSurface;
-    property public final long inversePrimary;
-    property public final long inverseSurface;
-    property public final long onBackground;
-    property public final long onError;
-    property public final long onErrorContainer;
-    property public final long onPrimary;
-    property public final long onPrimaryContainer;
-    property public final long onSecondary;
-    property public final long onSecondaryContainer;
-    property public final long onSurface;
-    property public final long onSurfaceVariant;
-    property public final long onTertiary;
-    property public final long onTertiaryContainer;
-    property public final long outline;
-    property public final long outlineVariant;
-    property public final long primary;
-    property public final long primaryContainer;
-    property public final long scrim;
-    property public final long secondary;
-    property public final long secondaryContainer;
-    property public final long surface;
-    property public final long surfaceTint;
-    property public final long surfaceVariant;
-    property public final long tertiary;
-    property public final long tertiaryContainer;
-  }
-
-  public final class ColorSchemeKt {
-    method public static long contentColorFor(androidx.compose.material3.ColorScheme, long backgroundColor);
-    method @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public static long contentColorFor(long backgroundColor);
-    method public static androidx.compose.material3.ColorScheme darkColorScheme(optional long primary, optional long onPrimary, optional long primaryContainer, optional long onPrimaryContainer, optional long inversePrimary, optional long secondary, optional long onSecondary, optional long secondaryContainer, optional long onSecondaryContainer, optional long tertiary, optional long onTertiary, optional long tertiaryContainer, optional long onTertiaryContainer, optional long background, optional long onBackground, optional long surface, optional long onSurface, optional long surfaceVariant, optional long onSurfaceVariant, optional long surfaceTint, optional long inverseSurface, optional long inverseOnSurface, optional long error, optional long onError, optional long errorContainer, optional long onErrorContainer, optional long outline, optional long outlineVariant, optional long scrim);
-    method public static androidx.compose.material3.ColorScheme lightColorScheme(optional long primary, optional long onPrimary, optional long primaryContainer, optional long onPrimaryContainer, optional long inversePrimary, optional long secondary, optional long onSecondary, optional long secondaryContainer, optional long onSecondaryContainer, optional long tertiary, optional long onTertiary, optional long tertiaryContainer, optional long onTertiaryContainer, optional long background, optional long onBackground, optional long surface, optional long onSurface, optional long surfaceVariant, optional long onSurfaceVariant, optional long surfaceTint, optional long inverseSurface, optional long inverseOnSurface, optional long error, optional long onError, optional long errorContainer, optional long onErrorContainer, optional long outline, optional long outlineVariant, optional long scrim);
-    method public static long surfaceColorAtElevation(androidx.compose.material3.ColorScheme, float elevation);
-  }
-
-  public final class ContentColorKt {
-    method public static androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.ui.graphics.Color> getLocalContentColor();
-    property public static final androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.ui.graphics.Color> LocalContentColor;
-  }
-
-  @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Immutable public final class DatePickerColors {
-  }
-
-  @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Stable public final class DatePickerDefaults {
-    method @androidx.compose.runtime.Composable public void DatePickerHeadline(Long? selectedDateMillis, int displayMode, androidx.compose.material3.DatePickerFormatter dateFormatter, optional androidx.compose.ui.Modifier modifier);
-    method @androidx.compose.runtime.Composable public void DatePickerTitle(int displayMode, optional androidx.compose.ui.Modifier modifier);
-    method @androidx.compose.runtime.Composable public androidx.compose.material3.DatePickerColors colors(optional long containerColor, optional long titleContentColor, optional long headlineContentColor, optional long weekdayContentColor, optional long subheadContentColor, optional long navigationContentColor, optional long yearContentColor, optional long disabledYearContentColor, optional long currentYearContentColor, optional long selectedYearContentColor, optional long disabledSelectedYearContentColor, optional long selectedYearContainerColor, optional long disabledSelectedYearContainerColor, optional long dayContentColor, optional long disabledDayContentColor, optional long selectedDayContentColor, optional long disabledSelectedDayContentColor, optional long selectedDayContainerColor, optional long disabledSelectedDayContainerColor, optional long todayContentColor, optional long todayDateBorderColor, optional long dayInSelectionRangeContentColor, optional long dayInSelectionRangeContainerColor, optional long dividerColor, optional androidx.compose.material3.TextFieldColors dateTextFieldColors);
-    method public androidx.compose.material3.DatePickerFormatter dateFormatter(optional String yearSelectionSkeleton, optional String selectedDateSkeleton, optional String selectedDateDescriptionSkeleton);
-    method @androidx.compose.runtime.Composable public androidx.compose.ui.graphics.Shape getShape();
-    method public float getTonalElevation();
-    method public kotlin.ranges.IntRange getYearRange();
-    property public final float TonalElevation;
-    property public final kotlin.ranges.IntRange YearRange;
-    property @androidx.compose.runtime.Composable public final androidx.compose.ui.graphics.Shape shape;
-    field public static final androidx.compose.material3.DatePickerDefaults INSTANCE;
-    field public static final String YearAbbrMonthDaySkeleton = "yMMMd";
-    field public static final String YearMonthSkeleton = "yMMMM";
-    field public static final String YearMonthWeekdayDaySkeleton = "yMMMMEEEEd";
-  }
-
-  public final class DatePickerDialog_androidKt {
-    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void DatePickerDialog(kotlin.jvm.functions.Function0<kotlin.Unit> onDismissRequest, kotlin.jvm.functions.Function0<kotlin.Unit> confirmButton, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function0<kotlin.Unit>? dismissButton, optional androidx.compose.ui.graphics.Shape shape, optional float tonalElevation, optional androidx.compose.material3.DatePickerColors colors, optional androidx.compose.ui.window.DialogProperties properties, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit> content);
-  }
-
-  @androidx.compose.material3.ExperimentalMaterial3Api public interface DatePickerFormatter {
-    method public String? formatDate(Long? dateMillis, java.util.Locale locale, optional boolean forContentDescription);
-    method public String? formatMonthYear(Long? monthMillis, java.util.Locale locale);
-  }
-
-  public final class DatePickerKt {
-    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void DatePicker(androidx.compose.material3.DatePickerState state, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.material3.DatePickerFormatter dateFormatter, optional kotlin.jvm.functions.Function0<kotlin.Unit>? title, optional kotlin.jvm.functions.Function0<kotlin.Unit>? headline, optional boolean showModeToggle, optional androidx.compose.material3.DatePickerColors colors);
-    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static androidx.compose.material3.DatePickerState rememberDatePickerState(optional Long? initialSelectedDateMillis, optional Long? initialDisplayedMonthMillis, optional kotlin.ranges.IntRange yearRange, optional int initialDisplayMode, optional androidx.compose.material3.SelectableDates selectableDates);
-  }
-
-  @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Stable public interface DatePickerState {
-    method public int getDisplayMode();
-    method public long getDisplayedMonthMillis();
-    method public androidx.compose.material3.SelectableDates getSelectableDates();
-    method public Long? getSelectedDateMillis();
-    method public kotlin.ranges.IntRange getYearRange();
-    method public void setDisplayMode(int);
-    method public void setDisplayedMonthMillis(long);
-    method public void setSelectedDateMillis(Long?);
-    property public abstract int displayMode;
-    property public abstract long displayedMonthMillis;
-    property public abstract androidx.compose.material3.SelectableDates selectableDates;
-    property public abstract Long? selectedDateMillis;
-    property public abstract kotlin.ranges.IntRange yearRange;
-  }
-
-  @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Stable public final class DateRangePickerDefaults {
-    method @androidx.compose.runtime.Composable public void DateRangePickerHeadline(Long? selectedStartDateMillis, Long? selectedEndDateMillis, int displayMode, androidx.compose.material3.DatePickerFormatter dateFormatter, optional androidx.compose.ui.Modifier modifier);
-    method @androidx.compose.runtime.Composable public void DateRangePickerTitle(int displayMode, optional androidx.compose.ui.Modifier modifier);
-    field public static final androidx.compose.material3.DateRangePickerDefaults INSTANCE;
-  }
-
-  public final class DateRangePickerKt {
-    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void DateRangePicker(androidx.compose.material3.DateRangePickerState state, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.material3.DatePickerFormatter dateFormatter, optional kotlin.jvm.functions.Function0<kotlin.Unit>? title, optional kotlin.jvm.functions.Function0<kotlin.Unit>? headline, optional boolean showModeToggle, optional androidx.compose.material3.DatePickerColors colors);
-    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static androidx.compose.material3.DateRangePickerState rememberDateRangePickerState(optional Long? initialSelectedStartDateMillis, optional Long? initialSelectedEndDateMillis, optional Long? initialDisplayedMonthMillis, optional kotlin.ranges.IntRange yearRange, optional int initialDisplayMode, optional androidx.compose.material3.SelectableDates selectableDates);
-  }
-
-  @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Stable public interface DateRangePickerState {
-    method public int getDisplayMode();
-    method public long getDisplayedMonthMillis();
-    method public androidx.compose.material3.SelectableDates getSelectableDates();
-    method public Long? getSelectedEndDateMillis();
-    method public Long? getSelectedStartDateMillis();
-    method public kotlin.ranges.IntRange getYearRange();
-    method public void setDisplayMode(int);
-    method public void setDisplayedMonthMillis(long);
-    method public void setSelection(Long? startDateMillis, Long? endDateMillis);
-    property public abstract int displayMode;
-    property public abstract long displayedMonthMillis;
-    property public abstract androidx.compose.material3.SelectableDates selectableDates;
-    property public abstract Long? selectedEndDateMillis;
-    property public abstract Long? selectedStartDateMillis;
-    property public abstract kotlin.ranges.IntRange yearRange;
-  }
-
-  @androidx.compose.material3.ExperimentalMaterial3Api public enum DismissDirection {
-    method public static androidx.compose.material3.DismissDirection valueOf(String value) throws java.lang.IllegalArgumentException, java.lang.NullPointerException;
-    method public static androidx.compose.material3.DismissDirection[] values();
-    enum_constant public static final androidx.compose.material3.DismissDirection EndToStart;
-    enum_constant public static final androidx.compose.material3.DismissDirection StartToEnd;
-  }
-
-  @androidx.compose.material3.ExperimentalMaterial3Api public final class DismissState {
-    ctor public DismissState(androidx.compose.material3.DismissValue initialValue, optional kotlin.jvm.functions.Function1<? super androidx.compose.material3.DismissValue,java.lang.Boolean> confirmValueChange, optional kotlin.jvm.functions.Function2<? super androidx.compose.ui.unit.Density,? super java.lang.Float,java.lang.Float> positionalThreshold);
-    method public suspend Object? dismiss(androidx.compose.material3.DismissDirection direction, kotlin.coroutines.Continuation<? super kotlin.Unit>);
-    method public androidx.compose.material3.DismissValue getCurrentValue();
-    method public androidx.compose.material3.DismissDirection? getDismissDirection();
-    method public float getProgress();
-    method public androidx.compose.material3.DismissValue getTargetValue();
-    method public boolean isDismissed(androidx.compose.material3.DismissDirection direction);
-    method public float requireOffset();
-    method public suspend Object? reset(kotlin.coroutines.Continuation<? super kotlin.Unit>);
-    method public suspend Object? snapTo(androidx.compose.material3.DismissValue targetValue, kotlin.coroutines.Continuation<? super kotlin.Unit>);
-    property public final androidx.compose.material3.DismissValue currentValue;
-    property public final androidx.compose.material3.DismissDirection? dismissDirection;
-    property public final float progress;
-    property public final androidx.compose.material3.DismissValue targetValue;
-    field public static final androidx.compose.material3.DismissState.Companion Companion;
-  }
-
-  public static final class DismissState.Companion {
-    method public androidx.compose.runtime.saveable.Saver<androidx.compose.material3.DismissState,androidx.compose.material3.DismissValue> Saver(kotlin.jvm.functions.Function1<? super androidx.compose.material3.DismissValue,java.lang.Boolean> confirmValueChange, kotlin.jvm.functions.Function2<? super androidx.compose.ui.unit.Density,? super java.lang.Float,java.lang.Float> positionalThreshold);
-  }
-
-  @androidx.compose.material3.ExperimentalMaterial3Api public enum DismissValue {
-    method public static androidx.compose.material3.DismissValue valueOf(String value) throws java.lang.IllegalArgumentException, java.lang.NullPointerException;
-    method public static androidx.compose.material3.DismissValue[] values();
-    enum_constant public static final androidx.compose.material3.DismissValue Default;
-    enum_constant public static final androidx.compose.material3.DismissValue DismissedToEnd;
-    enum_constant public static final androidx.compose.material3.DismissValue DismissedToStart;
-  }
-
-  @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class DisplayMode {
-    field public static final androidx.compose.material3.DisplayMode.Companion Companion;
-  }
-
-  public static final class DisplayMode.Companion {
-    method public int getInput();
-    method public int getPicker();
-    property public final int Input;
-    property public final int Picker;
-  }
-
-  public final class DividerDefaults {
-    method @androidx.compose.runtime.Composable public long getColor();
-    method public float getThickness();
-    property public final float Thickness;
-    property @androidx.compose.runtime.Composable public final long color;
-    field public static final androidx.compose.material3.DividerDefaults INSTANCE;
-  }
-
-  public final class DividerKt {
-    method @androidx.compose.runtime.Composable public static void Divider(optional androidx.compose.ui.Modifier modifier, optional float thickness, optional long color);
-  }
-
-  public final class DrawerDefaults {
-    method @androidx.compose.runtime.Composable public long getContainerColor();
-    method public float getDismissibleDrawerElevation();
-    method public float getMaximumDrawerWidth();
-    method public float getModalDrawerElevation();
-    method public float getPermanentDrawerElevation();
-    method @androidx.compose.runtime.Composable public long getScrimColor();
-    method @androidx.compose.runtime.Composable public androidx.compose.ui.graphics.Shape getShape();
-    method @androidx.compose.runtime.Composable public androidx.compose.foundation.layout.WindowInsets getWindowInsets();
-    property public final float DismissibleDrawerElevation;
-    property public final float MaximumDrawerWidth;
-    property public final float ModalDrawerElevation;
-    property public final float PermanentDrawerElevation;
-    property @androidx.compose.runtime.Composable public final long containerColor;
-    property @androidx.compose.runtime.Composable public final long scrimColor;
-    property @androidx.compose.runtime.Composable public final androidx.compose.ui.graphics.Shape shape;
-    property @androidx.compose.runtime.Composable public final androidx.compose.foundation.layout.WindowInsets windowInsets;
-    field public static final androidx.compose.material3.DrawerDefaults INSTANCE;
-  }
-
-  @androidx.compose.runtime.Stable public final class DrawerState {
-    ctor public DrawerState(androidx.compose.material3.DrawerValue initialValue, optional kotlin.jvm.functions.Function1<? super androidx.compose.material3.DrawerValue,java.lang.Boolean> confirmStateChange);
-    method public suspend Object? animateTo(androidx.compose.material3.DrawerValue targetValue, androidx.compose.animation.core.AnimationSpec<java.lang.Float> anim, kotlin.coroutines.Continuation<? super kotlin.Unit>);
-    method public suspend Object? close(kotlin.coroutines.Continuation<? super kotlin.Unit>);
-    method public androidx.compose.material3.DrawerValue getCurrentValue();
-    method public androidx.compose.runtime.State<java.lang.Float> getOffset();
-    method public androidx.compose.material3.DrawerValue getTargetValue();
-    method public boolean isAnimationRunning();
-    method public boolean isClosed();
-    method public boolean isOpen();
-    method public suspend Object? open(kotlin.coroutines.Continuation<? super kotlin.Unit>);
-    method public suspend Object? snapTo(androidx.compose.material3.DrawerValue targetValue, kotlin.coroutines.Continuation<? super kotlin.Unit>);
-    property public final androidx.compose.material3.DrawerValue currentValue;
-    property public final boolean isAnimationRunning;
-    property public final boolean isClosed;
-    property public final boolean isOpen;
-    property public final androidx.compose.runtime.State<java.lang.Float> offset;
-    property public final androidx.compose.material3.DrawerValue targetValue;
-    field public static final androidx.compose.material3.DrawerState.Companion Companion;
-  }
-
-  public static final class DrawerState.Companion {
-    method public androidx.compose.runtime.saveable.Saver<androidx.compose.material3.DrawerState,androidx.compose.material3.DrawerValue> Saver(kotlin.jvm.functions.Function1<? super androidx.compose.material3.DrawerValue,java.lang.Boolean> confirmStateChange);
-  }
-
-  public enum DrawerValue {
-    method public static androidx.compose.material3.DrawerValue valueOf(String value) throws java.lang.IllegalArgumentException, java.lang.NullPointerException;
-    method public static androidx.compose.material3.DrawerValue[] values();
-    enum_constant public static final androidx.compose.material3.DrawerValue Closed;
-    enum_constant public static final androidx.compose.material3.DrawerValue Open;
-  }
-
-  public final class DynamicTonalPaletteKt {
-    method @RequiresApi(android.os.Build.VERSION_CODES.S) public static androidx.compose.material3.ColorScheme dynamicDarkColorScheme(android.content.Context context);
-    method @RequiresApi(android.os.Build.VERSION_CODES.S) public static androidx.compose.material3.ColorScheme dynamicLightColorScheme(android.content.Context context);
-  }
-
-  @kotlin.RequiresOptIn(message="This material API is experimental and is likely to change or to be removed in" + " the future.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface ExperimentalMaterial3Api {
-  }
-
-  @androidx.compose.material3.ExperimentalMaterial3Api public interface ExposedDropdownMenuBoxScope {
-    method @androidx.compose.runtime.Composable public default void ExposedDropdownMenu(boolean expanded, kotlin.jvm.functions.Function0<kotlin.Unit> onDismissRequest, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.foundation.ScrollState scrollState, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit> content);
-    method public androidx.compose.ui.Modifier exposedDropdownSize(androidx.compose.ui.Modifier, optional boolean matchTextFieldWidth);
-    method public androidx.compose.ui.Modifier menuAnchor(androidx.compose.ui.Modifier);
-  }
-
-  @androidx.compose.material3.ExperimentalMaterial3Api public final class ExposedDropdownMenuDefaults {
-    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public void TrailingIcon(boolean expanded);
-    method public androidx.compose.foundation.layout.PaddingValues getItemContentPadding();
-    method @Deprecated @androidx.compose.runtime.Composable public androidx.compose.material3.TextFieldColors outlinedTextFieldColors(optional long textColor, optional long disabledTextColor, optional long containerColor, optional long cursorColor, optional long errorCursorColor, optional androidx.compose.foundation.text.selection.TextSelectionColors selectionColors, optional long focusedBorderColor, optional long unfocusedBorderColor, optional long disabledBorderColor, optional long errorBorderColor, optional long focusedLeadingIconColor, optional long unfocusedLeadingIconColor, optional long disabledLeadingIconColor, optional long errorLeadingIconColor, optional long focusedTrailingIconColor, optional long unfocusedTrailingIconColor, optional long disabledTrailingIconColor, optional long errorTrailingIconColor, optional long focusedLabelColor, optional long unfocusedLabelColor, optional long disabledLabelColor, optional long errorLabelColor, optional long placeholderColor, optional long disabledPlaceholderColor);
-    method @Deprecated @androidx.compose.runtime.Composable public androidx.compose.material3.TextFieldColors outlinedTextFieldColors(optional long focusedTextColor, optional long unfocusedTextColor, optional long disabledTextColor, optional long errorTextColor, optional long containerColor, optional long errorContainerColor, optional long cursorColor, optional long errorCursorColor, optional androidx.compose.foundation.text.selection.TextSelectionColors selectionColors, optional long focusedBorderColor, optional long unfocusedBorderColor, optional long disabledBorderColor, optional long errorBorderColor, optional long focusedLeadingIconColor, optional long unfocusedLeadingIconColor, optional long disabledLeadingIconColor, optional long errorLeadingIconColor, optional long focusedTrailingIconColor, optional long unfocusedTrailingIconColor, optional long disabledTrailingIconColor, optional long errorTrailingIconColor, optional long focusedLabelColor, optional long unfocusedLabelColor, optional long disabledLabelColor, optional long errorLabelColor, optional long focusedPlaceholderColor, optional long unfocusedPlaceholderColor, optional long disabledPlaceholderColor, optional long errorPlaceholderColor, optional long focusedPrefixColor, optional long unfocusedPrefixColor, optional long disabledPrefixColor, optional long errorPrefixColor, optional long focusedSuffixColor, optional long unfocusedSuffixColor, optional long disabledSuffixColor, optional long errorSuffixColor);
-    method @androidx.compose.runtime.Composable public androidx.compose.material3.TextFieldColors outlinedTextFieldColors(optional long focusedTextColor, optional long unfocusedTextColor, optional long disabledTextColor, optional long errorTextColor, optional long focusedContainerColor, optional long unfocusedContainerColor, optional long disabledContainerColor, optional long errorContainerColor, optional long cursorColor, optional long errorCursorColor, optional androidx.compose.foundation.text.selection.TextSelectionColors selectionColors, optional long focusedBorderColor, optional long unfocusedBorderColor, optional long disabledBorderColor, optional long errorBorderColor, optional long focusedLeadingIconColor, optional long unfocusedLeadingIconColor, optional long disabledLeadingIconColor, optional long errorLeadingIconColor, optional long focusedTrailingIconColor, optional long unfocusedTrailingIconColor, optional long disabledTrailingIconColor, optional long errorTrailingIconColor, optional long focusedLabelColor, optional long unfocusedLabelColor, optional long disabledLabelColor, optional long errorLabelColor, optional long focusedPlaceholderColor, optional long unfocusedPlaceholderColor, optional long disabledPlaceholderColor, optional long errorPlaceholderColor, optional long focusedPrefixColor, optional long unfocusedPrefixColor, optional long disabledPrefixColor, optional long errorPrefixColor, optional long focusedSuffixColor, optional long unfocusedSuffixColor, optional long disabledSuffixColor, optional long errorSuffixColor);
-    method @Deprecated @androidx.compose.runtime.Composable public androidx.compose.material3.TextFieldColors textFieldColors(optional long textColor, optional long disabledTextColor, optional long containerColor, optional long cursorColor, optional long errorCursorColor, optional androidx.compose.foundation.text.selection.TextSelectionColors selectionColors, optional long focusedIndicatorColor, optional long unfocusedIndicatorColor, optional long disabledIndicatorColor, optional long errorIndicatorColor, optional long focusedLeadingIconColor, optional long unfocusedLeadingIconColor, optional long disabledLeadingIconColor, optional long errorLeadingIconColor, optional long focusedTrailingIconColor, optional long unfocusedTrailingIconColor, optional long disabledTrailingIconColor, optional long errorTrailingIconColor, optional long focusedLabelColor, optional long unfocusedLabelColor, optional long disabledLabelColor, optional long errorLabelColor, optional long placeholderColor, optional long disabledPlaceholderColor);
-    method @Deprecated @androidx.compose.runtime.Composable public androidx.compose.material3.TextFieldColors textFieldColors(optional long focusedTextColor, optional long unfocusedTextColor, optional long disabledTextColor, optional long errorTextColor, optional long containerColor, optional long errorContainerColor, optional long cursorColor, optional long errorCursorColor, optional androidx.compose.foundation.text.selection.TextSelectionColors selectionColors, optional long focusedIndicatorColor, optional long unfocusedIndicatorColor, optional long disabledIndicatorColor, optional long errorIndicatorColor, optional long focusedLeadingIconColor, optional long unfocusedLeadingIconColor, optional long disabledLeadingIconColor, optional long errorLeadingIconColor, optional long focusedTrailingIconColor, optional long unfocusedTrailingIconColor, optional long disabledTrailingIconColor, optional long errorTrailingIconColor, optional long focusedLabelColor, optional long unfocusedLabelColor, optional long disabledLabelColor, optional long errorLabelColor, optional long focusedPlaceholderColor, optional long unfocusedPlaceholderColor, optional long disabledPlaceholderColor, optional long errorPlaceholderColor, optional long focusedPrefixColor, optional long unfocusedPrefixColor, optional long disabledPrefixColor, optional long errorPrefixColor, optional long focusedSuffixColor, optional long unfocusedSuffixColor, optional long disabledSuffixColor, optional long errorSuffixColor);
-    method @androidx.compose.runtime.Composable public androidx.compose.material3.TextFieldColors textFieldColors(optional long focusedTextColor, optional long unfocusedTextColor, optional long disabledTextColor, optional long errorTextColor, optional long focusedContainerColor, optional long unfocusedContainerColor, optional long disabledContainerColor, optional long errorContainerColor, optional long cursorColor, optional long errorCursorColor, optional androidx.compose.foundation.text.selection.TextSelectionColors selectionColors, optional long focusedIndicatorColor, optional long unfocusedIndicatorColor, optional long disabledIndicatorColor, optional long errorIndicatorColor, optional long focusedLeadingIconColor, optional long unfocusedLeadingIconColor, optional long disabledLeadingIconColor, optional long errorLeadingIconColor, optional long focusedTrailingIconColor, optional long unfocusedTrailingIconColor, optional long disabledTrailingIconColor, optional long errorTrailingIconColor, optional long focusedLabelColor, optional long unfocusedLabelColor, optional long disabledLabelColor, optional long errorLabelColor, optional long focusedPlaceholderColor, optional long unfocusedPlaceholderColor, optional long disabledPlaceholderColor, optional long errorPlaceholderColor, optional long focusedPrefixColor, optional long unfocusedPrefixColor, optional long disabledPrefixColor, optional long errorPrefixColor, optional long focusedSuffixColor, optional long unfocusedSuffixColor, optional long disabledSuffixColor, optional long errorSuffixColor);
-    property public final androidx.compose.foundation.layout.PaddingValues ItemContentPadding;
-    field public static final androidx.compose.material3.ExposedDropdownMenuDefaults INSTANCE;
-  }
-
-  public final class ExposedDropdownMenuKt {
-    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void ExposedDropdownMenuBox(boolean expanded, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit> onExpandedChange, optional androidx.compose.ui.Modifier modifier, kotlin.jvm.functions.Function1<? super androidx.compose.material3.ExposedDropdownMenuBoxScope,kotlin.Unit> content);
-  }
-
-  @kotlin.jvm.JvmInline public final value class FabPosition {
-    field public static final androidx.compose.material3.FabPosition.Companion Companion;
-  }
-
-  public static final class FabPosition.Companion {
-    method public int getCenter();
-    method public int getEnd();
-    property public final int Center;
-    property public final int End;
-  }
-
-  @androidx.compose.material3.ExperimentalMaterial3Api public final class FilterChipDefaults {
-    method @androidx.compose.runtime.Composable public androidx.compose.material3.SelectableChipColors elevatedFilterChipColors(optional long containerColor, optional long labelColor, optional long iconColor, optional long disabledContainerColor, optional long disabledLabelColor, optional long disabledLeadingIconColor, optional long disabledTrailingIconColor, optional long selectedContainerColor, optional long disabledSelectedContainerColor, optional long selectedLabelColor, optional long selectedLeadingIconColor, optional long selectedTrailingIconColor);
-    method @androidx.compose.runtime.Composable public androidx.compose.material3.SelectableChipElevation elevatedFilterChipElevation(optional float elevation, optional float pressedElevation, optional float focusedElevation, optional float hoveredElevation, optional float draggedElevation, optional float disabledElevation);
-    method @androidx.compose.runtime.Composable public androidx.compose.material3.SelectableChipBorder filterChipBorder(optional long borderColor, optional long selectedBorderColor, optional long disabledBorderColor, optional long disabledSelectedBorderColor, optional float borderWidth, optional float selectedBorderWidth);
-    method @androidx.compose.runtime.Composable public androidx.compose.material3.SelectableChipColors filterChipColors(optional long containerColor, optional long labelColor, optional long iconColor, optional long disabledContainerColor, optional long disabledLabelColor, optional long disabledLeadingIconColor, optional long disabledTrailingIconColor, optional long selectedContainerColor, optional long disabledSelectedContainerColor, optional long selectedLabelColor, optional long selectedLeadingIconColor, optional long selectedTrailingIconColor);
-    method @androidx.compose.runtime.Composable public androidx.compose.material3.SelectableChipElevation filterChipElevation(optional float elevation, optional float pressedElevation, optional float focusedElevation, optional float hoveredElevation, optional float draggedElevation, optional float disabledElevation);
-    method public float getHeight();
-    method public float getIconSize();
-    method @androidx.compose.runtime.Composable public androidx.compose.ui.graphics.Shape getShape();
-    property public final float Height;
-    property public final float IconSize;
-    property @androidx.compose.runtime.Composable public final androidx.compose.ui.graphics.Shape shape;
-    field public static final androidx.compose.material3.FilterChipDefaults INSTANCE;
-  }
-
-  public final class FloatingActionButtonDefaults {
-    method public androidx.compose.material3.FloatingActionButtonElevation bottomAppBarFabElevation(optional float defaultElevation, optional float pressedElevation, optional float focusedElevation, optional float hoveredElevation);
-    method @androidx.compose.runtime.Composable public androidx.compose.material3.FloatingActionButtonElevation elevation(optional float defaultElevation, optional float pressedElevation, optional float focusedElevation, optional float hoveredElevation);
-    method @androidx.compose.runtime.Composable public long getContainerColor();
-    method @androidx.compose.runtime.Composable public androidx.compose.ui.graphics.Shape getExtendedFabShape();
-    method public float getLargeIconSize();
-    method @androidx.compose.runtime.Composable public androidx.compose.ui.graphics.Shape getLargeShape();
-    method @androidx.compose.runtime.Composable public androidx.compose.ui.graphics.Shape getShape();
-    method @androidx.compose.runtime.Composable public androidx.compose.ui.graphics.Shape getSmallShape();
-    method @androidx.compose.runtime.Composable public androidx.compose.material3.FloatingActionButtonElevation loweredElevation(optional float defaultElevation, optional float pressedElevation, optional float focusedElevation, optional float hoveredElevation);
-    property public final float LargeIconSize;
-    property @androidx.compose.runtime.Composable public final long containerColor;
-    property @androidx.compose.runtime.Composable public final androidx.compose.ui.graphics.Shape extendedFabShape;
-    property @androidx.compose.runtime.Composable public final androidx.compose.ui.graphics.Shape largeShape;
-    property @androidx.compose.runtime.Composable public final androidx.compose.ui.graphics.Shape shape;
-    property @androidx.compose.runtime.Composable public final androidx.compose.ui.graphics.Shape smallShape;
-    field public static final androidx.compose.material3.FloatingActionButtonDefaults INSTANCE;
-  }
-
-  @androidx.compose.runtime.Stable public class FloatingActionButtonElevation {
-  }
-
-  public final class FloatingActionButtonKt {
-    method @androidx.compose.runtime.Composable public static void ExtendedFloatingActionButton(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.graphics.Shape shape, optional long containerColor, optional long contentColor, optional androidx.compose.material3.FloatingActionButtonElevation elevation, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit> content);
-    method @androidx.compose.runtime.Composable public static void ExtendedFloatingActionButton(kotlin.jvm.functions.Function0<kotlin.Unit> text, kotlin.jvm.functions.Function0<kotlin.Unit> icon, kotlin.jvm.functions.Function0<kotlin.Unit> onClick, optional androidx.compose.ui.Modifier modifier, optional boolean expanded, optional androidx.compose.ui.graphics.Shape shape, optional long containerColor, optional long contentColor, optional androidx.compose.material3.FloatingActionButtonElevation elevation, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource);
-    method @androidx.compose.runtime.Composable public static void FloatingActionButton(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.graphics.Shape shape, optional long containerColor, optional long contentColor, optional androidx.compose.material3.FloatingActionButtonElevation elevation, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, kotlin.jvm.functions.Function0<kotlin.Unit> content);
-    method @androidx.compose.runtime.Composable public static void LargeFloatingActionButton(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.graphics.Shape shape, optional long containerColor, optional long contentColor, optional androidx.compose.material3.FloatingActionButtonElevation elevation, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, kotlin.jvm.functions.Function0<kotlin.Unit> content);
-    method @androidx.compose.runtime.Composable public static void SmallFloatingActionButton(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.graphics.Shape shape, optional long containerColor, optional long contentColor, optional androidx.compose.material3.FloatingActionButtonElevation elevation, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, kotlin.jvm.functions.Function0<kotlin.Unit> content);
-  }
-
-  @androidx.compose.runtime.Immutable public final class IconButtonColors {
-  }
-
-  public final class IconButtonDefaults {
-    method @androidx.compose.runtime.Composable public androidx.compose.material3.IconButtonColors filledIconButtonColors(optional long containerColor, optional long contentColor, optional long disabledContainerColor, optional long disabledContentColor);
-    method @androidx.compose.runtime.Composable public androidx.compose.material3.IconToggleButtonColors filledIconToggleButtonColors(optional long containerColor, optional long contentColor, optional long disabledContainerColor, optional long disabledContentColor, optional long checkedContainerColor, optional long checkedContentColor);
-    method @androidx.compose.runtime.Composable public androidx.compose.material3.IconButtonColors filledTonalIconButtonColors(optional long containerColor, optional long contentColor, optional long disabledContainerColor, optional long disabledContentColor);
-    method @androidx.compose.runtime.Composable public androidx.compose.material3.IconToggleButtonColors filledTonalIconToggleButtonColors(optional long containerColor, optional long contentColor, optional long disabledContainerColor, optional long disabledContentColor, optional long checkedContainerColor, optional long checkedContentColor);
-    method @androidx.compose.runtime.Composable public androidx.compose.ui.graphics.Shape getFilledShape();
-    method @androidx.compose.runtime.Composable public androidx.compose.ui.graphics.Shape getOutlinedShape();
-    method @androidx.compose.runtime.Composable public androidx.compose.material3.IconButtonColors iconButtonColors(optional long containerColor, optional long contentColor, optional long disabledContainerColor, optional long disabledContentColor);
-    method @androidx.compose.runtime.Composable public androidx.compose.material3.IconToggleButtonColors iconToggleButtonColors(optional long containerColor, optional long contentColor, optional long disabledContainerColor, optional long disabledContentColor, optional long checkedContainerColor, optional long checkedContentColor);
-    method @androidx.compose.runtime.Composable public androidx.compose.foundation.BorderStroke outlinedIconButtonBorder(boolean enabled);
-    method @androidx.compose.runtime.Composable public androidx.compose.material3.IconButtonColors outlinedIconButtonColors(optional long containerColor, optional long contentColor, optional long disabledContainerColor, optional long disabledContentColor);
-    method @androidx.compose.runtime.Composable public androidx.compose.foundation.BorderStroke? outlinedIconToggleButtonBorder(boolean enabled, boolean checked);
-    method @androidx.compose.runtime.Composable public androidx.compose.material3.IconToggleButtonColors outlinedIconToggleButtonColors(optional long containerColor, optional long contentColor, optional long disabledContainerColor, optional long disabledContentColor, optional long checkedContainerColor, optional long checkedContentColor);
-    property @androidx.compose.runtime.Composable public final androidx.compose.ui.graphics.Shape filledShape;
-    property @androidx.compose.runtime.Composable public final androidx.compose.ui.graphics.Shape outlinedShape;
-    field public static final androidx.compose.material3.IconButtonDefaults INSTANCE;
-  }
-
-  public final class IconButtonKt {
-    method @androidx.compose.runtime.Composable public static void FilledIconButton(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.IconButtonColors colors, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, kotlin.jvm.functions.Function0<kotlin.Unit> content);
-    method @androidx.compose.runtime.Composable public static void FilledIconToggleButton(boolean checked, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit> onCheckedChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.IconToggleButtonColors colors, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, kotlin.jvm.functions.Function0<kotlin.Unit> content);
-    method @androidx.compose.runtime.Composable public static void FilledTonalIconButton(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.IconButtonColors colors, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, kotlin.jvm.functions.Function0<kotlin.Unit> content);
-    method @androidx.compose.runtime.Composable public static void FilledTonalIconToggleButton(boolean checked, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit> onCheckedChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.IconToggleButtonColors colors, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, kotlin.jvm.functions.Function0<kotlin.Unit> content);
-    method @androidx.compose.runtime.Composable public static void IconButton(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.material3.IconButtonColors colors, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, kotlin.jvm.functions.Function0<kotlin.Unit> content);
-    method @androidx.compose.runtime.Composable public static void IconToggleButton(boolean checked, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit> onCheckedChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.material3.IconToggleButtonColors colors, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, kotlin.jvm.functions.Function0<kotlin.Unit> content);
-    method @androidx.compose.runtime.Composable public static void OutlinedIconButton(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.IconButtonColors colors, optional androidx.compose.foundation.BorderStroke? border, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, kotlin.jvm.functions.Function0<kotlin.Unit> content);
-    method @androidx.compose.runtime.Composable public static void OutlinedIconToggleButton(boolean checked, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit> onCheckedChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.IconToggleButtonColors colors, optional androidx.compose.foundation.BorderStroke? border, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, kotlin.jvm.functions.Function0<kotlin.Unit> content);
-  }
-
-  public final class IconKt {
-    method @androidx.compose.runtime.Composable public static void Icon(androidx.compose.ui.graphics.ImageBitmap bitmap, String? contentDescription, optional androidx.compose.ui.Modifier modifier, optional long tint);
-    method @androidx.compose.runtime.Composable public static void Icon(androidx.compose.ui.graphics.painter.Painter painter, String? contentDescription, optional androidx.compose.ui.Modifier modifier, optional long tint);
-    method @androidx.compose.runtime.Composable public static void Icon(androidx.compose.ui.graphics.vector.ImageVector imageVector, String? contentDescription, optional androidx.compose.ui.Modifier modifier, optional long tint);
-  }
-
-  @androidx.compose.runtime.Immutable public final class IconToggleButtonColors {
-  }
-
-  @androidx.compose.material3.ExperimentalMaterial3Api public final class InputChipDefaults {
-    method public float getAvatarSize();
-    method public float getHeight();
-    method public float getIconSize();
-    method @androidx.compose.runtime.Composable public androidx.compose.ui.graphics.Shape getShape();
-    method @androidx.compose.runtime.Composable public androidx.compose.material3.SelectableChipBorder inputChipBorder(optional long borderColor, optional long selectedBorderColor, optional long disabledBorderColor, optional long disabledSelectedBorderColor, optional float borderWidth, optional float selectedBorderWidth);
-    method @androidx.compose.runtime.Composable public androidx.compose.material3.SelectableChipColors inputChipColors(optional long containerColor, optional long labelColor, optional long leadingIconColor, optional long trailingIconColor, optional long disabledContainerColor, optional long disabledLabelColor, optional long disabledLeadingIconColor, optional long disabledTrailingIconColor, optional long selectedContainerColor, optional long disabledSelectedContainerColor, optional long selectedLabelColor, optional long selectedLeadingIconColor, optional long selectedTrailingIconColor);
-    method @androidx.compose.runtime.Composable public androidx.compose.material3.SelectableChipElevation inputChipElevation(optional float elevation, optional float pressedElevation, optional float focusedElevation, optional float hoveredElevation, optional float draggedElevation, optional float disabledElevation);
-    property public final float AvatarSize;
-    property public final float Height;
-    property public final float IconSize;
-    property @androidx.compose.runtime.Composable public final androidx.compose.ui.graphics.Shape shape;
-    field public static final androidx.compose.material3.InputChipDefaults INSTANCE;
-  }
-
-  public final class InteractiveComponentSizeKt {
-    method @androidx.compose.material3.ExperimentalMaterial3Api public static androidx.compose.runtime.ProvidableCompositionLocal<java.lang.Boolean> getLocalMinimumInteractiveComponentEnforcement();
-    method @Deprecated @androidx.compose.material3.ExperimentalMaterial3Api public static androidx.compose.runtime.ProvidableCompositionLocal<java.lang.Boolean> getLocalMinimumTouchTargetEnforcement();
-    method public static androidx.compose.ui.Modifier minimumInteractiveComponentSize(androidx.compose.ui.Modifier);
-    property @androidx.compose.material3.ExperimentalMaterial3Api public static final androidx.compose.runtime.ProvidableCompositionLocal<java.lang.Boolean> LocalMinimumInteractiveComponentEnforcement;
-    property @Deprecated @androidx.compose.material3.ExperimentalMaterial3Api public static final androidx.compose.runtime.ProvidableCompositionLocal<java.lang.Boolean> LocalMinimumTouchTargetEnforcement;
-  }
-
-  @androidx.compose.runtime.Immutable public final class ListItemColors {
-  }
-
-  public final class ListItemDefaults {
-    method @androidx.compose.runtime.Composable public androidx.compose.material3.ListItemColors colors(optional long containerColor, optional long headlineColor, optional long leadingIconColor, optional long overlineColor, optional long supportingColor, optional long trailingIconColor, optional long disabledHeadlineColor, optional long disabledLeadingIconColor, optional long disabledTrailingIconColor);
-    method @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public long getContainerColor();
-    method @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public long getContentColor();
-    method public float getElevation();
-    method @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public androidx.compose.ui.graphics.Shape getShape();
-    property public final float Elevation;
-    property @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public final long containerColor;
-    property @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public final long contentColor;
-    property @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public final androidx.compose.ui.graphics.Shape shape;
-    field public static final androidx.compose.material3.ListItemDefaults INSTANCE;
-  }
-
-  public final class ListItemKt {
-    method @androidx.compose.runtime.Composable public static void ListItem(kotlin.jvm.functions.Function0<kotlin.Unit> headlineContent, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function0<kotlin.Unit>? overlineContent, optional kotlin.jvm.functions.Function0<kotlin.Unit>? supportingContent, optional kotlin.jvm.functions.Function0<kotlin.Unit>? leadingContent, optional kotlin.jvm.functions.Function0<kotlin.Unit>? trailingContent, optional androidx.compose.material3.ListItemColors colors, optional float tonalElevation, optional float shadowElevation);
-  }
-
-  public final class MaterialTheme {
-    method @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public androidx.compose.material3.ColorScheme getColorScheme();
-    method @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public androidx.compose.material3.Shapes getShapes();
-    method @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public androidx.compose.material3.Typography getTypography();
-    property @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public final androidx.compose.material3.ColorScheme colorScheme;
-    property @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public final androidx.compose.material3.Shapes shapes;
-    property @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public final androidx.compose.material3.Typography typography;
-    field public static final androidx.compose.material3.MaterialTheme INSTANCE;
-  }
-
-  public final class MaterialThemeKt {
-    method @androidx.compose.runtime.Composable public static void MaterialTheme(optional androidx.compose.material3.ColorScheme colorScheme, optional androidx.compose.material3.Shapes shapes, optional androidx.compose.material3.Typography typography, kotlin.jvm.functions.Function0<kotlin.Unit> content);
-  }
-
-  public final class MenuDefaults {
-    method public androidx.compose.foundation.layout.PaddingValues getDropdownMenuItemContentPadding();
-    method @androidx.compose.runtime.Composable public androidx.compose.material3.MenuItemColors itemColors(optional long textColor, optional long leadingIconColor, optional long trailingIconColor, optional long disabledTextColor, optional long disabledLeadingIconColor, optional long disabledTrailingIconColor);
-    property public final androidx.compose.foundation.layout.PaddingValues DropdownMenuItemContentPadding;
-    field public static final androidx.compose.material3.MenuDefaults INSTANCE;
-  }
-
-  @androidx.compose.runtime.Immutable public final class MenuItemColors {
-  }
-
-  public final class ModalBottomSheet_androidKt {
-    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void ModalBottomSheet(kotlin.jvm.functions.Function0<kotlin.Unit> onDismissRequest, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.material3.SheetState sheetState, optional androidx.compose.ui.graphics.Shape shape, optional long containerColor, optional long contentColor, optional float tonalElevation, optional long scrimColor, optional kotlin.jvm.functions.Function0<kotlin.Unit>? dragHandle, optional androidx.compose.foundation.layout.WindowInsets windowInsets, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit> content);
-    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static androidx.compose.material3.SheetState rememberModalBottomSheetState(optional boolean skipPartiallyExpanded, optional kotlin.jvm.functions.Function1<? super androidx.compose.material3.SheetValue,java.lang.Boolean> confirmValueChange);
-  }
-
-  public final class NavigationBarDefaults {
-    method @androidx.compose.runtime.Composable public long getContainerColor();
-    method public float getElevation();
-    method @androidx.compose.runtime.Composable public androidx.compose.foundation.layout.WindowInsets getWindowInsets();
-    property public final float Elevation;
-    property @androidx.compose.runtime.Composable public final long containerColor;
-    property @androidx.compose.runtime.Composable public final androidx.compose.foundation.layout.WindowInsets windowInsets;
-    field public static final androidx.compose.material3.NavigationBarDefaults INSTANCE;
-  }
-
-  @androidx.compose.runtime.Stable public final class NavigationBarItemColors {
-  }
-
-  public final class NavigationBarItemDefaults {
-    method @Deprecated @androidx.compose.runtime.Composable public androidx.compose.material3.NavigationBarItemColors colors(optional long selectedIconColor, optional long selectedTextColor, optional long indicatorColor, optional long unselectedIconColor, optional long unselectedTextColor);
-    method @androidx.compose.runtime.Composable public androidx.compose.material3.NavigationBarItemColors colors(optional long selectedIconColor, optional long selectedTextColor, optional long indicatorColor, optional long unselectedIconColor, optional long unselectedTextColor, optional long disabledIconColor, optional long disabledTextColor);
-    field public static final androidx.compose.material3.NavigationBarItemDefaults INSTANCE;
-  }
-
-  public final class NavigationBarKt {
-    method @androidx.compose.runtime.Composable public static void NavigationBar(optional androidx.compose.ui.Modifier modifier, optional long containerColor, optional long contentColor, optional float tonalElevation, optional androidx.compose.foundation.layout.WindowInsets windowInsets, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit> content);
-    method @androidx.compose.runtime.Composable public static void NavigationBarItem(androidx.compose.foundation.layout.RowScope, boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onClick, kotlin.jvm.functions.Function0<kotlin.Unit> icon, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional kotlin.jvm.functions.Function0<kotlin.Unit>? label, optional boolean alwaysShowLabel, optional androidx.compose.material3.NavigationBarItemColors colors, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource);
-  }
-
-  @androidx.compose.runtime.Stable public interface NavigationDrawerItemColors {
-    method @androidx.compose.runtime.Composable public androidx.compose.runtime.State<androidx.compose.ui.graphics.Color> badgeColor(boolean selected);
-    method @androidx.compose.runtime.Composable public androidx.compose.runtime.State<androidx.compose.ui.graphics.Color> containerColor(boolean selected);
-    method @androidx.compose.runtime.Composable public androidx.compose.runtime.State<androidx.compose.ui.graphics.Color> iconColor(boolean selected);
-    method @androidx.compose.runtime.Composable public androidx.compose.runtime.State<androidx.compose.ui.graphics.Color> textColor(boolean selected);
-  }
-
-  public final class NavigationDrawerItemDefaults {
-    method @androidx.compose.runtime.Composable public androidx.compose.material3.NavigationDrawerItemColors colors(optional long selectedContainerColor, optional long unselectedContainerColor, optional long selectedIconColor, optional long unselectedIconColor, optional long selectedTextColor, optional long unselectedTextColor, optional long selectedBadgeColor, optional long unselectedBadgeColor);
-    method public androidx.compose.foundation.layout.PaddingValues getItemPadding();
-    property public final androidx.compose.foundation.layout.PaddingValues ItemPadding;
-    field public static final androidx.compose.material3.NavigationDrawerItemDefaults INSTANCE;
-  }
-
-  public final class NavigationDrawerKt {
-    method @androidx.compose.runtime.Composable public static void DismissibleDrawerSheet(optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.graphics.Shape drawerShape, optional long drawerContainerColor, optional long drawerContentColor, optional float drawerTonalElevation, optional androidx.compose.foundation.layout.WindowInsets windowInsets, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit> content);
-    method @androidx.compose.runtime.Composable public static void DismissibleNavigationDrawer(kotlin.jvm.functions.Function0<kotlin.Unit> drawerContent, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.material3.DrawerState drawerState, optional boolean gesturesEnabled, kotlin.jvm.functions.Function0<kotlin.Unit> content);
-    method @androidx.compose.runtime.Composable public static void ModalDrawerSheet(optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.graphics.Shape drawerShape, optional long drawerContainerColor, optional long drawerContentColor, optional float drawerTonalElevation, optional androidx.compose.foundation.layout.WindowInsets windowInsets, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit> content);
-    method @androidx.compose.runtime.Composable public static void ModalNavigationDrawer(kotlin.jvm.functions.Function0<kotlin.Unit> drawerContent, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.material3.DrawerState drawerState, optional boolean gesturesEnabled, optional long scrimColor, kotlin.jvm.functions.Function0<kotlin.Unit> content);
-    method @androidx.compose.runtime.Composable public static void NavigationDrawerItem(kotlin.jvm.functions.Function0<kotlin.Unit> label, boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onClick, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function0<kotlin.Unit>? icon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? badge, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.NavigationDrawerItemColors colors, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource);
-    method @androidx.compose.runtime.Composable public static void PermanentDrawerSheet(optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.graphics.Shape drawerShape, optional long drawerContainerColor, optional long drawerContentColor, optional float drawerTonalElevation, optional androidx.compose.foundation.layout.WindowInsets windowInsets, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit> content);
-    method @androidx.compose.runtime.Composable public static void PermanentNavigationDrawer(kotlin.jvm.functions.Function0<kotlin.Unit> drawerContent, optional androidx.compose.ui.Modifier modifier, kotlin.jvm.functions.Function0<kotlin.Unit> content);
-    method @androidx.compose.runtime.Composable public static androidx.compose.material3.DrawerState rememberDrawerState(androidx.compose.material3.DrawerValue initialValue, optional kotlin.jvm.functions.Function1<? super androidx.compose.material3.DrawerValue,java.lang.Boolean> confirmStateChange);
-  }
-
-  public final class NavigationRailDefaults {
-    method @androidx.compose.runtime.Composable public long getContainerColor();
-    method @androidx.compose.runtime.Composable public androidx.compose.foundation.layout.WindowInsets getWindowInsets();
-    property @androidx.compose.runtime.Composable public final long ContainerColor;
-    property @androidx.compose.runtime.Composable public final androidx.compose.foundation.layout.WindowInsets windowInsets;
-    field public static final androidx.compose.material3.NavigationRailDefaults INSTANCE;
-  }
-
-  @androidx.compose.runtime.Stable public final class NavigationRailItemColors {
-  }
-
-  public final class NavigationRailItemDefaults {
-    method @Deprecated @androidx.compose.runtime.Composable public androidx.compose.material3.NavigationRailItemColors colors(optional long selectedIconColor, optional long selectedTextColor, optional long indicatorColor, optional long unselectedIconColor, optional long unselectedTextColor);
-    method @androidx.compose.runtime.Composable public androidx.compose.material3.NavigationRailItemColors colors(optional long selectedIconColor, optional long selectedTextColor, optional long indicatorColor, optional long unselectedIconColor, optional long unselectedTextColor, optional long disabledIconColor, optional long disabledTextColor);
-    field public static final androidx.compose.material3.NavigationRailItemDefaults INSTANCE;
-  }
-
-  public final class NavigationRailKt {
-    method @androidx.compose.runtime.Composable public static void NavigationRail(optional androidx.compose.ui.Modifier modifier, optional long containerColor, optional long contentColor, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit>? header, optional androidx.compose.foundation.layout.WindowInsets windowInsets, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit> content);
-    method @androidx.compose.runtime.Composable public static void NavigationRailItem(boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onClick, kotlin.jvm.functions.Function0<kotlin.Unit> icon, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional kotlin.jvm.functions.Function0<kotlin.Unit>? label, optional boolean alwaysShowLabel, optional androidx.compose.material3.NavigationRailItemColors colors, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource);
-  }
-
-  @androidx.compose.runtime.Immutable public final class OutlinedTextFieldDefaults {
-    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public void ContainerBox(boolean enabled, boolean isError, androidx.compose.foundation.interaction.InteractionSource interactionSource, androidx.compose.material3.TextFieldColors colors, optional androidx.compose.ui.graphics.Shape shape, optional float focusedBorderThickness, optional float unfocusedBorderThickness);
-    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public void DecorationBox(String value, kotlin.jvm.functions.Function0<kotlin.Unit> innerTextField, boolean enabled, boolean singleLine, androidx.compose.ui.text.input.VisualTransformation visualTransformation, androidx.compose.foundation.interaction.InteractionSource interactionSource, optional boolean isError, optional kotlin.jvm.functions.Function0<kotlin.Unit>? label, optional kotlin.jvm.functions.Function0<kotlin.Unit>? placeholder, optional kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? prefix, optional kotlin.jvm.functions.Function0<kotlin.Unit>? suffix, optional kotlin.jvm.functions.Function0<kotlin.Unit>? supportingText, optional androidx.compose.material3.TextFieldColors colors, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional kotlin.jvm.functions.Function0<kotlin.Unit> container);
-    method @androidx.compose.runtime.Composable public androidx.compose.material3.TextFieldColors colors(optional long focusedTextColor, optional long unfocusedTextColor, optional long disabledTextColor, optional long errorTextColor, optional long focusedContainerColor, optional long unfocusedContainerColor, optional long disabledContainerColor, optional long errorContainerColor, optional long cursorColor, optional long errorCursorColor, optional androidx.compose.foundation.text.selection.TextSelectionColors selectionColors, optional long focusedBorderColor, optional long unfocusedBorderColor, optional long disabledBorderColor, optional long errorBorderColor, optional long focusedLeadingIconColor, optional long unfocusedLeadingIconColor, optional long disabledLeadingIconColor, optional long errorLeadingIconColor, optional long focusedTrailingIconColor, optional long unfocusedTrailingIconColor, optional long disabledTrailingIconColor, optional long errorTrailingIconColor, optional long focusedLabelColor, optional long unfocusedLabelColor, optional long disabledLabelColor, optional long errorLabelColor, optional long focusedPlaceholderColor, optional long unfocusedPlaceholderColor, optional long disabledPlaceholderColor, optional long errorPlaceholderColor, optional long focusedSupportingTextColor, optional long unfocusedSupportingTextColor, optional long disabledSupportingTextColor, optional long errorSupportingTextColor, optional long focusedPrefixColor, optional long unfocusedPrefixColor, optional long disabledPrefixColor, optional long errorPrefixColor, optional long focusedSuffixColor, optional long unfocusedSuffixColor, optional long disabledSuffixColor, optional long errorSuffixColor);
-    method public androidx.compose.foundation.layout.PaddingValues contentPadding(optional float start, optional float top, optional float end, optional float bottom);
-    method public float getFocusedBorderThickness();
-    method public float getMinHeight();
-    method public float getMinWidth();
-    method @androidx.compose.runtime.Composable public androidx.compose.ui.graphics.Shape getShape();
-    method public float getUnfocusedBorderThickness();
-    property public final float FocusedBorderThickness;
-    property public final float MinHeight;
-    property public final float MinWidth;
-    property public final float UnfocusedBorderThickness;
-    property @androidx.compose.runtime.Composable public final androidx.compose.ui.graphics.Shape shape;
-    field public static final androidx.compose.material3.OutlinedTextFieldDefaults INSTANCE;
-  }
-
-  public final class OutlinedTextFieldKt {
-    method @Deprecated @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void OutlinedTextField(androidx.compose.ui.text.input.TextFieldValue value, kotlin.jvm.functions.Function1<? super androidx.compose.ui.text.input.TextFieldValue,kotlin.Unit> onValueChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional boolean readOnly, optional androidx.compose.ui.text.TextStyle textStyle, optional kotlin.jvm.functions.Function0<kotlin.Unit>? label, optional kotlin.jvm.functions.Function0<kotlin.Unit>? placeholder, optional kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? supportingText, optional boolean isError, optional androidx.compose.ui.text.input.VisualTransformation visualTransformation, optional androidx.compose.foundation.text.KeyboardOptions keyboardOptions, optional androidx.compose.foundation.text.KeyboardActions keyboardActions, optional boolean singleLine, optional int maxLines, optional int minLines, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.TextFieldColors colors);
-    method @androidx.compose.runtime.Composable public static void OutlinedTextField(androidx.compose.ui.text.input.TextFieldValue value, kotlin.jvm.functions.Function1<? super androidx.compose.ui.text.input.TextFieldValue,kotlin.Unit> onValueChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional boolean readOnly, optional androidx.compose.ui.text.TextStyle textStyle, optional kotlin.jvm.functions.Function0<kotlin.Unit>? label, optional kotlin.jvm.functions.Function0<kotlin.Unit>? placeholder, optional kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? prefix, optional kotlin.jvm.functions.Function0<kotlin.Unit>? suffix, optional kotlin.jvm.functions.Function0<kotlin.Unit>? supportingText, optional boolean isError, optional androidx.compose.ui.text.input.VisualTransformation visualTransformation, optional androidx.compose.foundation.text.KeyboardOptions keyboardOptions, optional androidx.compose.foundation.text.KeyboardActions keyboardActions, optional boolean singleLine, optional int maxLines, optional int minLines, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.TextFieldColors colors);
-    method @Deprecated @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void OutlinedTextField(String value, kotlin.jvm.functions.Function1<? super java.lang.String,kotlin.Unit> onValueChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional boolean readOnly, optional androidx.compose.ui.text.TextStyle textStyle, optional kotlin.jvm.functions.Function0<kotlin.Unit>? label, optional kotlin.jvm.functions.Function0<kotlin.Unit>? placeholder, optional kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? supportingText, optional boolean isError, optional androidx.compose.ui.text.input.VisualTransformation visualTransformation, optional androidx.compose.foundation.text.KeyboardOptions keyboardOptions, optional androidx.compose.foundation.text.KeyboardActions keyboardActions, optional boolean singleLine, optional int maxLines, optional int minLines, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.TextFieldColors colors);
-    method @androidx.compose.runtime.Composable public static void OutlinedTextField(String value, kotlin.jvm.functions.Function1<? super java.lang.String,kotlin.Unit> onValueChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional boolean readOnly, optional androidx.compose.ui.text.TextStyle textStyle, optional kotlin.jvm.functions.Function0<kotlin.Unit>? label, optional kotlin.jvm.functions.Function0<kotlin.Unit>? placeholder, optional kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? prefix, optional kotlin.jvm.functions.Function0<kotlin.Unit>? suffix, optional kotlin.jvm.functions.Function0<kotlin.Unit>? supportingText, optional boolean isError, optional androidx.compose.ui.text.input.VisualTransformation visualTransformation, optional androidx.compose.foundation.text.KeyboardOptions keyboardOptions, optional androidx.compose.foundation.text.KeyboardActions keyboardActions, optional boolean singleLine, optional int maxLines, optional int minLines, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.TextFieldColors colors);
-  }
-
-  @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Stable public interface PlainTooltipState extends androidx.compose.material3.TooltipState {
-  }
-
-  public final class ProgressIndicatorDefaults {
-    method @androidx.compose.runtime.Composable public long getCircularColor();
-    method public int getCircularDeterminateStrokeCap();
-    method public int getCircularIndeterminateStrokeCap();
-    method public float getCircularStrokeWidth();
-    method @androidx.compose.runtime.Composable public long getCircularTrackColor();
-    method @androidx.compose.runtime.Composable public long getLinearColor();
-    method public int getLinearStrokeCap();
-    method @androidx.compose.runtime.Composable public long getLinearTrackColor();
-    method public androidx.compose.animation.core.SpringSpec<java.lang.Float> getProgressAnimationSpec();
-    property public final int CircularDeterminateStrokeCap;
-    property public final int CircularIndeterminateStrokeCap;
-    property public final float CircularStrokeWidth;
-    property public final int LinearStrokeCap;
-    property public final androidx.compose.animation.core.SpringSpec<java.lang.Float> ProgressAnimationSpec;
-    property @androidx.compose.runtime.Composable public final long circularColor;
-    property @androidx.compose.runtime.Composable public final long circularTrackColor;
-    property @androidx.compose.runtime.Composable public final long linearColor;
-    property @androidx.compose.runtime.Composable public final long linearTrackColor;
-    field public static final androidx.compose.material3.ProgressIndicatorDefaults INSTANCE;
-  }
-
-  public final class ProgressIndicatorKt {
-    method @Deprecated @androidx.compose.runtime.Composable public static void CircularProgressIndicator(optional androidx.compose.ui.Modifier modifier, optional long color, optional float strokeWidth);
-    method @androidx.compose.runtime.Composable public static void CircularProgressIndicator(optional androidx.compose.ui.Modifier modifier, optional long color, optional float strokeWidth, optional long trackColor, optional int strokeCap);
-    method @Deprecated @androidx.compose.runtime.Composable public static void CircularProgressIndicator(float progress, optional androidx.compose.ui.Modifier modifier, optional long color, optional float strokeWidth);
-    method @androidx.compose.runtime.Composable public static void CircularProgressIndicator(float progress, optional androidx.compose.ui.Modifier modifier, optional long color, optional float strokeWidth, optional long trackColor, optional int strokeCap);
-    method @Deprecated @androidx.compose.runtime.Composable public static void LinearProgressIndicator(optional androidx.compose.ui.Modifier modifier, optional long color, optional long trackColor);
-    method @androidx.compose.runtime.Composable public static void LinearProgressIndicator(optional androidx.compose.ui.Modifier modifier, optional long color, optional long trackColor, optional int strokeCap);
-    method @Deprecated @androidx.compose.runtime.Composable public static void LinearProgressIndicator(float progress, optional androidx.compose.ui.Modifier modifier, optional long color, optional long trackColor);
-    method @androidx.compose.runtime.Composable public static void LinearProgressIndicator(float progress, optional androidx.compose.ui.Modifier modifier, optional long color, optional long trackColor, optional int strokeCap);
-  }
-
-  @androidx.compose.runtime.Immutable public final class RadioButtonColors {
-  }
-
-  public final class RadioButtonDefaults {
-    method @androidx.compose.runtime.Composable public androidx.compose.material3.RadioButtonColors colors(optional long selectedColor, optional long unselectedColor, optional long disabledSelectedColor, optional long disabledUnselectedColor);
-    field public static final androidx.compose.material3.RadioButtonDefaults INSTANCE;
-  }
-
-  public final class RadioButtonKt {
-    method @androidx.compose.runtime.Composable public static void RadioButton(boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit>? onClick, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.material3.RadioButtonColors colors, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource);
-  }
-
-  @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Immutable @androidx.compose.runtime.Stable public final class RichTooltipColors {
-    ctor public RichTooltipColors(long containerColor, long contentColor, long titleContentColor, long actionContentColor);
-    method public long getActionContentColor();
-    method public long getContainerColor();
-    method public long getContentColor();
-    method public long getTitleContentColor();
-    property public final long actionContentColor;
-    property public final long containerColor;
-    property public final long contentColor;
-    property public final long titleContentColor;
-  }
-
-  @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Stable public interface RichTooltipState extends androidx.compose.material3.TooltipState {
-    method public boolean isPersistent();
-    property public abstract boolean isPersistent;
-  }
-
-  public final class ScaffoldDefaults {
-    method @androidx.compose.runtime.Composable public androidx.compose.foundation.layout.WindowInsets getContentWindowInsets();
-    property @androidx.compose.runtime.Composable public final androidx.compose.foundation.layout.WindowInsets contentWindowInsets;
-    field public static final androidx.compose.material3.ScaffoldDefaults INSTANCE;
-  }
-
-  public final class ScaffoldKt {
-    method @androidx.compose.runtime.Composable public static void Scaffold(optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function0<kotlin.Unit> topBar, optional kotlin.jvm.functions.Function0<kotlin.Unit> bottomBar, optional kotlin.jvm.functions.Function0<kotlin.Unit> snackbarHost, optional kotlin.jvm.functions.Function0<kotlin.Unit> floatingActionButton, optional int floatingActionButtonPosition, optional long containerColor, optional long contentColor, optional androidx.compose.foundation.layout.WindowInsets contentWindowInsets, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.PaddingValues,kotlin.Unit> content);
-  }
-
-  @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Immutable public final class SearchBarColors {
-    method public long getContainerColor();
-    method public long getDividerColor();
-    method public androidx.compose.material3.TextFieldColors getInputFieldColors();
-    property public final long containerColor;
-    property public final long dividerColor;
-    property public final androidx.compose.material3.TextFieldColors inputFieldColors;
-  }
-
-  @androidx.compose.material3.ExperimentalMaterial3Api public final class SearchBarDefaults {
-    method @androidx.compose.runtime.Composable public androidx.compose.material3.SearchBarColors colors(optional long containerColor, optional long dividerColor, optional androidx.compose.material3.TextFieldColors inputFieldColors);
-    method @androidx.compose.runtime.Composable public androidx.compose.ui.graphics.Shape getDockedShape();
-    method public float getElevation();
-    method @androidx.compose.runtime.Composable public androidx.compose.ui.graphics.Shape getFullScreenShape();
-    method public float getInputFieldHeight();
-    method @androidx.compose.runtime.Composable public androidx.compose.ui.graphics.Shape getInputFieldShape();
-    method @androidx.compose.runtime.Composable public androidx.compose.foundation.layout.WindowInsets getWindowInsets();
-    method @Deprecated @androidx.compose.runtime.Composable public androidx.compose.material3.TextFieldColors inputFieldColors(optional long textColor, optional long disabledTextColor, optional long cursorColor, optional androidx.compose.foundation.text.selection.TextSelectionColors selectionColors, optional long focusedLeadingIconColor, optional long unfocusedLeadingIconColor, optional long disabledLeadingIconColor, optional long focusedTrailingIconColor, optional long unfocusedTrailingIconColor, optional long disabledTrailingIconColor, optional long placeholderColor, optional long disabledPlaceholderColor);
-    method @androidx.compose.runtime.Composable public androidx.compose.material3.TextFieldColors inputFieldColors(optional long focusedTextColor, optional long unfocusedTextColor, optional long disabledTextColor, optional long cursorColor, optional androidx.compose.foundation.text.selection.TextSelectionColors selectionColors, optional long focusedLeadingIconColor, optional long unfocusedLeadingIconColor, optional long disabledLeadingIconColor, optional long focusedTrailingIconColor, optional long unfocusedTrailingIconColor, optional long disabledTrailingIconColor, optional long focusedPlaceholderColor, optional long unfocusedPlaceholderColor, optional long disabledPlaceholderColor);
-    property public final float Elevation;
-    property public final float InputFieldHeight;
-    property @androidx.compose.runtime.Composable public final androidx.compose.ui.graphics.Shape dockedShape;
-    property @androidx.compose.runtime.Composable public final androidx.compose.ui.graphics.Shape fullScreenShape;
-    property @androidx.compose.runtime.Composable public final androidx.compose.ui.graphics.Shape inputFieldShape;
-    property @androidx.compose.runtime.Composable public final androidx.compose.foundation.layout.WindowInsets windowInsets;
-    field public static final androidx.compose.material3.SearchBarDefaults INSTANCE;
-  }
-
-  public final class SearchBarKt {
-    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void DockedSearchBar(String query, kotlin.jvm.functions.Function1<? super java.lang.String,kotlin.Unit> onQueryChange, kotlin.jvm.functions.Function1<? super java.lang.String,kotlin.Unit> onSearch, boolean active, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit> onActiveChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional kotlin.jvm.functions.Function0<kotlin.Unit>? placeholder, optional kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.SearchBarColors colors, optional float tonalElevation, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit> content);
-    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void SearchBar(String query, kotlin.jvm.functions.Function1<? super java.lang.String,kotlin.Unit> onQueryChange, kotlin.jvm.functions.Function1<? super java.lang.String,kotlin.Unit> onSearch, boolean active, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit> onActiveChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional kotlin.jvm.functions.Function0<kotlin.Unit>? placeholder, optional kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.SearchBarColors colors, optional float tonalElevation, optional androidx.compose.foundation.layout.WindowInsets windowInsets, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit> content);
-  }
-
-  @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Immutable public final class SelectableChipBorder {
-  }
-
-  @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Immutable public final class SelectableChipColors {
-  }
-
-  @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Immutable public final class SelectableChipElevation {
-  }
-
-  @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Stable public interface SelectableDates {
-    method public default boolean isSelectableDate(long utcTimeMillis);
-    method public default boolean isSelectableYear(int year);
-  }
-
-  public final class ShapeDefaults {
-    method public androidx.compose.foundation.shape.CornerBasedShape getExtraLarge();
-    method public androidx.compose.foundation.shape.CornerBasedShape getExtraSmall();
-    method public androidx.compose.foundation.shape.CornerBasedShape getLarge();
-    method public androidx.compose.foundation.shape.CornerBasedShape getMedium();
-    method public androidx.compose.foundation.shape.CornerBasedShape getSmall();
-    property public final androidx.compose.foundation.shape.CornerBasedShape ExtraLarge;
-    property public final androidx.compose.foundation.shape.CornerBasedShape ExtraSmall;
-    property public final androidx.compose.foundation.shape.CornerBasedShape Large;
-    property public final androidx.compose.foundation.shape.CornerBasedShape Medium;
-    property public final androidx.compose.foundation.shape.CornerBasedShape Small;
-    field public static final androidx.compose.material3.ShapeDefaults INSTANCE;
-  }
-
-  @androidx.compose.runtime.Immutable public final class Shapes {
-    ctor public Shapes(optional androidx.compose.foundation.shape.CornerBasedShape extraSmall, optional androidx.compose.foundation.shape.CornerBasedShape small, optional androidx.compose.foundation.shape.CornerBasedShape medium, optional androidx.compose.foundation.shape.CornerBasedShape large, optional androidx.compose.foundation.shape.CornerBasedShape extraLarge);
-    method public androidx.compose.material3.Shapes copy(optional androidx.compose.foundation.shape.CornerBasedShape extraSmall, optional androidx.compose.foundation.shape.CornerBasedShape small, optional androidx.compose.foundation.shape.CornerBasedShape medium, optional androidx.compose.foundation.shape.CornerBasedShape large, optional androidx.compose.foundation.shape.CornerBasedShape extraLarge);
-    method public androidx.compose.foundation.shape.CornerBasedShape getExtraLarge();
-    method public androidx.compose.foundation.shape.CornerBasedShape getExtraSmall();
-    method public androidx.compose.foundation.shape.CornerBasedShape getLarge();
-    method public androidx.compose.foundation.shape.CornerBasedShape getMedium();
-    method public androidx.compose.foundation.shape.CornerBasedShape getSmall();
-    property public final androidx.compose.foundation.shape.CornerBasedShape extraLarge;
-    property public final androidx.compose.foundation.shape.CornerBasedShape extraSmall;
-    property public final androidx.compose.foundation.shape.CornerBasedShape large;
-    property public final androidx.compose.foundation.shape.CornerBasedShape medium;
-    property public final androidx.compose.foundation.shape.CornerBasedShape small;
-  }
-
-  @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Stable public final class SheetState {
-    ctor public SheetState(boolean skipPartiallyExpanded, optional androidx.compose.material3.SheetValue initialValue, optional kotlin.jvm.functions.Function1<? super androidx.compose.material3.SheetValue,java.lang.Boolean> confirmValueChange, optional boolean skipHiddenState);
-    method public suspend Object? expand(kotlin.coroutines.Continuation<? super kotlin.Unit>);
-    method public androidx.compose.material3.SheetValue getCurrentValue();
-    method public boolean getHasExpandedState();
-    method public boolean getHasPartiallyExpandedState();
-    method public androidx.compose.material3.SheetValue getTargetValue();
-    method public suspend Object? hide(kotlin.coroutines.Continuation<? super kotlin.Unit>);
-    method public boolean isVisible();
-    method public suspend Object? partialExpand(kotlin.coroutines.Continuation<? super kotlin.Unit>);
-    method public float requireOffset();
-    method public suspend Object? show(kotlin.coroutines.Continuation<? super kotlin.Unit>);
-    property public final androidx.compose.material3.SheetValue currentValue;
-    property public final boolean hasExpandedState;
-    property public final boolean hasPartiallyExpandedState;
-    property public final boolean isVisible;
-    property public final androidx.compose.material3.SheetValue targetValue;
-    field public static final androidx.compose.material3.SheetState.Companion Companion;
-  }
-
-  public static final class SheetState.Companion {
-    method public androidx.compose.runtime.saveable.Saver<androidx.compose.material3.SheetState,androidx.compose.material3.SheetValue> Saver(boolean skipPartiallyExpanded, kotlin.jvm.functions.Function1<? super androidx.compose.material3.SheetValue,java.lang.Boolean> confirmValueChange);
-  }
-
-  @androidx.compose.material3.ExperimentalMaterial3Api public enum SheetValue {
-    method public static androidx.compose.material3.SheetValue valueOf(String value) throws java.lang.IllegalArgumentException, java.lang.NullPointerException;
-    method public static androidx.compose.material3.SheetValue[] values();
-    enum_constant public static final androidx.compose.material3.SheetValue Expanded;
-    enum_constant public static final androidx.compose.material3.SheetValue Hidden;
-    enum_constant public static final androidx.compose.material3.SheetValue PartiallyExpanded;
-  }
-
-  @androidx.compose.runtime.Immutable public final class SliderColors {
-  }
-
-  @androidx.compose.runtime.Stable public final class SliderDefaults {
-    method @androidx.compose.runtime.Composable public void Thumb(androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.material3.SliderColors colors, optional boolean enabled, optional long thumbSize);
-    method @androidx.compose.runtime.Composable public void Track(androidx.compose.material3.SliderPositions sliderPositions, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.material3.SliderColors colors, optional boolean enabled);
-    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public void Track(androidx.compose.material3.SliderState sliderState, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.material3.SliderColors colors, optional boolean enabled);
-    method @androidx.compose.runtime.Composable public androidx.compose.material3.SliderColors colors(optional long thumbColor, optional long activeTrackColor, optional long activeTickColor, optional long inactiveTrackColor, optional long inactiveTickColor, optional long disabledThumbColor, optional long disabledActiveTrackColor, optional long disabledActiveTickColor, optional long disabledInactiveTrackColor, optional long disabledInactiveTickColor);
-    field public static final androidx.compose.material3.SliderDefaults INSTANCE;
-  }
-
-  public final class SliderKt {
-    method @androidx.compose.runtime.Composable public static void RangeSlider(kotlin.ranges.ClosedFloatingPointRange<java.lang.Float> value, kotlin.jvm.functions.Function1<? super kotlin.ranges.ClosedFloatingPointRange<java.lang.Float>,kotlin.Unit> onValueChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional kotlin.ranges.ClosedFloatingPointRange<java.lang.Float> valueRange, optional int steps, optional kotlin.jvm.functions.Function0<kotlin.Unit>? onValueChangeFinished, optional androidx.compose.material3.SliderColors colors);
-    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void RangeSlider(kotlin.ranges.ClosedFloatingPointRange<java.lang.Float> value, kotlin.jvm.functions.Function1<? super kotlin.ranges.ClosedFloatingPointRange<java.lang.Float>,kotlin.Unit> onValueChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional kotlin.ranges.ClosedFloatingPointRange<java.lang.Float> valueRange, optional kotlin.jvm.functions.Function0<kotlin.Unit>? onValueChangeFinished, optional androidx.compose.material3.SliderColors colors, optional androidx.compose.foundation.interaction.MutableInteractionSource startInteractionSource, optional androidx.compose.foundation.interaction.MutableInteractionSource endInteractionSource, optional kotlin.jvm.functions.Function1<? super androidx.compose.material3.SliderPositions,kotlin.Unit> startThumb, optional kotlin.jvm.functions.Function1<? super androidx.compose.material3.SliderPositions,kotlin.Unit> endThumb, optional kotlin.jvm.functions.Function1<? super androidx.compose.material3.SliderPositions,kotlin.Unit> track, optional int steps);
-    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void Slider(androidx.compose.material3.SliderState state, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.material3.SliderColors colors, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional kotlin.jvm.functions.Function1<? super androidx.compose.material3.SliderState,kotlin.Unit> thumb, optional kotlin.jvm.functions.Function1<? super androidx.compose.material3.SliderState,kotlin.Unit> track);
-    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void Slider(float value, kotlin.jvm.functions.Function1<? super java.lang.Float,kotlin.Unit> onValueChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional kotlin.jvm.functions.Function0<kotlin.Unit>? onValueChangeFinished, optional androidx.compose.material3.SliderColors colors, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional int steps, optional kotlin.jvm.functions.Function1<? super androidx.compose.material3.SliderState,kotlin.Unit> thumb, optional kotlin.jvm.functions.Function1<? super androidx.compose.material3.SliderState,kotlin.Unit> track, optional kotlin.ranges.ClosedFloatingPointRange<java.lang.Float> valueRange);
-    method @androidx.compose.runtime.Composable public static void Slider(float value, kotlin.jvm.functions.Function1<? super java.lang.Float,kotlin.Unit> onValueChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional kotlin.ranges.ClosedFloatingPointRange<java.lang.Float> valueRange, optional int steps, optional kotlin.jvm.functions.Function0<kotlin.Unit>? onValueChangeFinished, optional androidx.compose.material3.SliderColors colors, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource);
-  }
-
-  @androidx.compose.runtime.Stable public final class SliderPositions {
-    ctor public SliderPositions(optional kotlin.ranges.ClosedFloatingPointRange<java.lang.Float> initialActiveRange, optional float[] initialTickFractions);
-    method public kotlin.ranges.ClosedFloatingPointRange<java.lang.Float> getActiveRange();
-    method public float[] getTickFractions();
-    property public final kotlin.ranges.ClosedFloatingPointRange<java.lang.Float> activeRange;
-    property public final float[] tickFractions;
-  }
-
-  @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Stable public final class SliderState {
-    ctor public SliderState(optional float initialValue, optional kotlin.jvm.functions.Function1<? super java.lang.Float,kotlin.Unit>? initialOnValueChange, optional int steps, optional kotlin.ranges.ClosedFloatingPointRange<java.lang.Float> valueRange, optional kotlin.jvm.functions.Function0<kotlin.Unit>? onValueChangeFinished);
-    method public kotlin.jvm.functions.Function0<kotlin.Unit>? getOnValueChangeFinished();
-    method public int getSteps();
-    method public float getValue();
-    method public kotlin.ranges.ClosedFloatingPointRange<java.lang.Float> getValueRange();
-    method public void setOnValueChangeFinished(kotlin.jvm.functions.Function0<kotlin.Unit>?);
-    method public void setValue(float);
-    property public final kotlin.jvm.functions.Function0<kotlin.Unit>? onValueChangeFinished;
-    property public final int steps;
-    property public final float value;
-    property public final kotlin.ranges.ClosedFloatingPointRange<java.lang.Float> valueRange;
-  }
-
-  @androidx.compose.runtime.Stable public interface SnackbarData {
-    method public void dismiss();
-    method public androidx.compose.material3.SnackbarVisuals getVisuals();
-    method public void performAction();
-    property public abstract androidx.compose.material3.SnackbarVisuals visuals;
-  }
-
-  public final class SnackbarDefaults {
-    method @androidx.compose.runtime.Composable public long getActionColor();
-    method @androidx.compose.runtime.Composable public long getActionContentColor();
-    method @androidx.compose.runtime.Composable public long getColor();
-    method @androidx.compose.runtime.Composable public long getContentColor();
-    method @androidx.compose.runtime.Composable public long getDismissActionContentColor();
-    method @androidx.compose.runtime.Composable public androidx.compose.ui.graphics.Shape getShape();
-    property @androidx.compose.runtime.Composable public final long actionColor;
-    property @androidx.compose.runtime.Composable public final long actionContentColor;
-    property @androidx.compose.runtime.Composable public final long color;
-    property @androidx.compose.runtime.Composable public final long contentColor;
-    property @androidx.compose.runtime.Composable public final long dismissActionContentColor;
-    property @androidx.compose.runtime.Composable public final androidx.compose.ui.graphics.Shape shape;
-    field public static final androidx.compose.material3.SnackbarDefaults INSTANCE;
-  }
-
-  public enum SnackbarDuration {
-    method public static androidx.compose.material3.SnackbarDuration valueOf(String value) throws java.lang.IllegalArgumentException, java.lang.NullPointerException;
-    method public static androidx.compose.material3.SnackbarDuration[] values();
-    enum_constant public static final androidx.compose.material3.SnackbarDuration Indefinite;
-    enum_constant public static final androidx.compose.material3.SnackbarDuration Long;
-    enum_constant public static final androidx.compose.material3.SnackbarDuration Short;
-  }
-
-  public final class SnackbarHostKt {
-    method @androidx.compose.runtime.Composable public static void SnackbarHost(androidx.compose.material3.SnackbarHostState hostState, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function1<? super androidx.compose.material3.SnackbarData,kotlin.Unit> snackbar);
-  }
-
-  @androidx.compose.runtime.Stable public final class SnackbarHostState {
-    ctor public SnackbarHostState();
-    method public androidx.compose.material3.SnackbarData? getCurrentSnackbarData();
-    method public suspend Object? showSnackbar(androidx.compose.material3.SnackbarVisuals visuals, kotlin.coroutines.Continuation<? super androidx.compose.material3.SnackbarResult>);
-    method public suspend Object? showSnackbar(String message, optional String? actionLabel, optional boolean withDismissAction, optional androidx.compose.material3.SnackbarDuration duration, optional kotlin.coroutines.Continuation<? super androidx.compose.material3.SnackbarResult>);
-    property public final androidx.compose.material3.SnackbarData? currentSnackbarData;
-  }
-
-  public final class SnackbarKt {
-    method @androidx.compose.runtime.Composable public static void Snackbar(androidx.compose.material3.SnackbarData snackbarData, optional androidx.compose.ui.Modifier modifier, optional boolean actionOnNewLine, optional androidx.compose.ui.graphics.Shape shape, optional long containerColor, optional long contentColor, optional long actionColor, optional long actionContentColor, optional long dismissActionContentColor);
-    method @androidx.compose.runtime.Composable public static void Snackbar(optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function0<kotlin.Unit>? action, optional kotlin.jvm.functions.Function0<kotlin.Unit>? dismissAction, optional boolean actionOnNewLine, optional androidx.compose.ui.graphics.Shape shape, optional long containerColor, optional long contentColor, optional long actionContentColor, optional long dismissActionContentColor, kotlin.jvm.functions.Function0<kotlin.Unit> content);
-  }
-
-  public enum SnackbarResult {
-    method public static androidx.compose.material3.SnackbarResult valueOf(String value) throws java.lang.IllegalArgumentException, java.lang.NullPointerException;
-    method public static androidx.compose.material3.SnackbarResult[] values();
-    enum_constant public static final androidx.compose.material3.SnackbarResult ActionPerformed;
-    enum_constant public static final androidx.compose.material3.SnackbarResult Dismissed;
-  }
-
-  @androidx.compose.runtime.Stable public interface SnackbarVisuals {
-    method public String? getActionLabel();
-    method public androidx.compose.material3.SnackbarDuration getDuration();
-    method public String getMessage();
-    method public boolean getWithDismissAction();
-    property public abstract String? actionLabel;
-    property public abstract androidx.compose.material3.SnackbarDuration duration;
-    property public abstract String message;
-    property public abstract boolean withDismissAction;
-  }
-
-  public final class SuggestionChipDefaults {
-    method @androidx.compose.runtime.Composable public androidx.compose.material3.ChipColors elevatedSuggestionChipColors(optional long containerColor, optional long labelColor, optional long iconContentColor, optional long disabledContainerColor, optional long disabledLabelColor, optional long disabledIconContentColor);
-    method @androidx.compose.runtime.Composable public androidx.compose.material3.ChipElevation elevatedSuggestionChipElevation(optional float elevation, optional float pressedElevation, optional float focusedElevation, optional float hoveredElevation, optional float draggedElevation, optional float disabledElevation);
-    method public float getHeight();
-    method public float getIconSize();
-    method @androidx.compose.runtime.Composable public androidx.compose.ui.graphics.Shape getShape();
-    method @androidx.compose.runtime.Composable public androidx.compose.material3.ChipBorder suggestionChipBorder(optional long borderColor, optional long disabledBorderColor, optional float borderWidth);
-    method @androidx.compose.runtime.Composable public androidx.compose.material3.ChipColors suggestionChipColors(optional long containerColor, optional long labelColor, optional long iconContentColor, optional long disabledContainerColor, optional long disabledLabelColor, optional long disabledIconContentColor);
-    method @androidx.compose.runtime.Composable public androidx.compose.material3.ChipElevation suggestionChipElevation(optional float elevation, optional float pressedElevation, optional float focusedElevation, optional float hoveredElevation, optional float draggedElevation, optional float disabledElevation);
-    property public final float Height;
-    property public final float IconSize;
-    property @androidx.compose.runtime.Composable public final androidx.compose.ui.graphics.Shape shape;
-    field public static final androidx.compose.material3.SuggestionChipDefaults INSTANCE;
-  }
-
-  public final class SurfaceKt {
-    method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static void Surface(optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.graphics.Shape shape, optional long color, optional long contentColor, optional float tonalElevation, optional float shadowElevation, optional androidx.compose.foundation.BorderStroke? border, kotlin.jvm.functions.Function0<kotlin.Unit> content);
-    method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static void Surface(boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onClick, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.ui.graphics.Shape shape, optional long color, optional long contentColor, optional float tonalElevation, optional float shadowElevation, optional androidx.compose.foundation.BorderStroke? border, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, kotlin.jvm.functions.Function0<kotlin.Unit> content);
-    method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static void Surface(boolean checked, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit> onCheckedChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.ui.graphics.Shape shape, optional long color, optional long contentColor, optional float tonalElevation, optional float shadowElevation, optional androidx.compose.foundation.BorderStroke? border, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, kotlin.jvm.functions.Function0<kotlin.Unit> content);
-    method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static void Surface(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.ui.graphics.Shape shape, optional long color, optional long contentColor, optional float tonalElevation, optional float shadowElevation, optional androidx.compose.foundation.BorderStroke? border, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, kotlin.jvm.functions.Function0<kotlin.Unit> content);
-    method public static androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.ui.unit.Dp> getLocalAbsoluteTonalElevation();
-    property public static final androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.ui.unit.Dp> LocalAbsoluteTonalElevation;
-  }
-
-  @androidx.compose.material3.ExperimentalMaterial3Api public final class SwipeToDismissDefaults {
-    method public kotlin.jvm.functions.Function2<androidx.compose.ui.unit.Density,java.lang.Float,java.lang.Float> getFixedPositionalThreshold();
-    property public final kotlin.jvm.functions.Function2<androidx.compose.ui.unit.Density,java.lang.Float,java.lang.Float> FixedPositionalThreshold;
-    field public static final androidx.compose.material3.SwipeToDismissDefaults INSTANCE;
-  }
-
-  public final class SwipeToDismissKt {
-    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void SwipeToDismiss(androidx.compose.material3.DismissState state, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit> background, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit> dismissContent, optional androidx.compose.ui.Modifier modifier, optional java.util.Set<? extends androidx.compose.material3.DismissDirection> directions);
-    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static androidx.compose.material3.DismissState rememberDismissState(optional androidx.compose.material3.DismissValue initialValue, optional kotlin.jvm.functions.Function1<? super androidx.compose.material3.DismissValue,java.lang.Boolean> confirmValueChange, optional kotlin.jvm.functions.Function2<? super androidx.compose.ui.unit.Density,? super java.lang.Float,java.lang.Float> positionalThreshold);
-  }
-
-  @androidx.compose.runtime.Immutable public final class SwitchColors {
-  }
-
-  public final class SwitchDefaults {
-    method @androidx.compose.runtime.Composable public androidx.compose.material3.SwitchColors colors(optional long checkedThumbColor, optional long checkedTrackColor, optional long checkedBorderColor, optional long checkedIconColor, optional long uncheckedThumbColor, optional long uncheckedTrackColor, optional long uncheckedBorderColor, optional long uncheckedIconColor, optional long disabledCheckedThumbColor, optional long disabledCheckedTrackColor, optional long disabledCheckedBorderColor, optional long disabledCheckedIconColor, optional long disabledUncheckedThumbColor, optional long disabledUncheckedTrackColor, optional long disabledUncheckedBorderColor, optional long disabledUncheckedIconColor);
-    method public float getIconSize();
-    property public final float IconSize;
-    field public static final androidx.compose.material3.SwitchDefaults INSTANCE;
-  }
-
-  public final class SwitchKt {
-    method @androidx.compose.runtime.Composable public static void Switch(boolean checked, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit>? onCheckedChange, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function0<kotlin.Unit>? thumbContent, optional boolean enabled, optional androidx.compose.material3.SwitchColors colors, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource);
-  }
-
-  public final class TabKt {
-    method @androidx.compose.runtime.Composable public static void LeadingIconTab(boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onClick, kotlin.jvm.functions.Function0<kotlin.Unit> text, kotlin.jvm.functions.Function0<kotlin.Unit> icon, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional long selectedContentColor, optional long unselectedContentColor, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource);
-    method @androidx.compose.runtime.Composable public static void Tab(boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onClick, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional kotlin.jvm.functions.Function0<kotlin.Unit>? text, optional kotlin.jvm.functions.Function0<kotlin.Unit>? icon, optional long selectedContentColor, optional long unselectedContentColor, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource);
-    method @androidx.compose.runtime.Composable public static void Tab(boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onClick, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional long selectedContentColor, optional long unselectedContentColor, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit> content);
-  }
-
-  @androidx.compose.runtime.Immutable public final class TabPosition {
-    method public float getContentWidth();
-    method public float getLeft();
-    method public float getRight();
-    method public float getWidth();
-    property public final float contentWidth;
-    property public final float left;
-    property public final float right;
-    property public final float width;
-  }
-
-  public final class TabRowDefaults {
-    method @Deprecated @androidx.compose.runtime.Composable public void Indicator(optional androidx.compose.ui.Modifier modifier, optional float height, optional long color);
-    method @androidx.compose.runtime.Composable public void PrimaryIndicator(optional androidx.compose.ui.Modifier modifier, optional float width, optional float height, optional long color, optional androidx.compose.ui.graphics.Shape shape);
-    method @androidx.compose.runtime.Composable public void SecondaryIndicator(optional androidx.compose.ui.Modifier modifier, optional float height, optional long color);
-    method @androidx.compose.runtime.Composable public long getContainerColor();
-    method @androidx.compose.runtime.Composable public long getContentColor();
-    method public androidx.compose.ui.Modifier tabIndicatorOffset(androidx.compose.ui.Modifier, androidx.compose.material3.TabPosition currentTabPosition);
-    property @androidx.compose.runtime.Composable public final long containerColor;
-    property @androidx.compose.runtime.Composable public final long contentColor;
-    field public static final androidx.compose.material3.TabRowDefaults INSTANCE;
-  }
-
-  public final class TabRowKt {
-    method @androidx.compose.runtime.Composable public static void ScrollableTabRow(int selectedTabIndex, optional androidx.compose.ui.Modifier modifier, optional long containerColor, optional long contentColor, optional float edgePadding, optional kotlin.jvm.functions.Function1<? super java.util.List<androidx.compose.material3.TabPosition>,kotlin.Unit> indicator, optional kotlin.jvm.functions.Function0<kotlin.Unit> divider, kotlin.jvm.functions.Function0<kotlin.Unit> tabs);
-    method @androidx.compose.runtime.Composable public static void TabRow(int selectedTabIndex, optional androidx.compose.ui.Modifier modifier, optional long containerColor, optional long contentColor, optional kotlin.jvm.functions.Function1<? super java.util.List<androidx.compose.material3.TabPosition>,kotlin.Unit> indicator, optional kotlin.jvm.functions.Function0<kotlin.Unit> divider, kotlin.jvm.functions.Function0<kotlin.Unit> tabs);
-  }
-
-  @androidx.compose.runtime.Immutable public final class TextFieldColors {
-  }
-
-  @androidx.compose.runtime.Immutable public final class TextFieldDefaults {
-    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public void ContainerBox(boolean enabled, boolean isError, androidx.compose.foundation.interaction.InteractionSource interactionSource, androidx.compose.material3.TextFieldColors colors, optional androidx.compose.ui.graphics.Shape shape);
-    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public void DecorationBox(String value, kotlin.jvm.functions.Function0<kotlin.Unit> innerTextField, boolean enabled, boolean singleLine, androidx.compose.ui.text.input.VisualTransformation visualTransformation, androidx.compose.foundation.interaction.InteractionSource interactionSource, optional boolean isError, optional kotlin.jvm.functions.Function0<kotlin.Unit>? label, optional kotlin.jvm.functions.Function0<kotlin.Unit>? placeholder, optional kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? prefix, optional kotlin.jvm.functions.Function0<kotlin.Unit>? suffix, optional kotlin.jvm.functions.Function0<kotlin.Unit>? supportingText, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.TextFieldColors colors, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional kotlin.jvm.functions.Function0<kotlin.Unit> container);
-    method @Deprecated @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public void FilledContainerBox(boolean enabled, boolean isError, androidx.compose.foundation.interaction.InteractionSource interactionSource, androidx.compose.material3.TextFieldColors colors, optional androidx.compose.ui.graphics.Shape shape);
-    method @Deprecated @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public void OutlinedBorderContainerBox(boolean enabled, boolean isError, androidx.compose.foundation.interaction.InteractionSource interactionSource, androidx.compose.material3.TextFieldColors colors, optional androidx.compose.ui.graphics.Shape shape, optional float focusedBorderThickness, optional float unfocusedBorderThickness);
-    method @Deprecated @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public void OutlinedTextFieldDecorationBox(String value, kotlin.jvm.functions.Function0<kotlin.Unit> innerTextField, boolean enabled, boolean singleLine, androidx.compose.ui.text.input.VisualTransformation visualTransformation, androidx.compose.foundation.interaction.InteractionSource interactionSource, optional boolean isError, optional kotlin.jvm.functions.Function0<kotlin.Unit>? label, optional kotlin.jvm.functions.Function0<kotlin.Unit>? placeholder, optional kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? supportingText, optional androidx.compose.material3.TextFieldColors colors, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional kotlin.jvm.functions.Function0<kotlin.Unit> container);
-    method @Deprecated @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public void OutlinedTextFieldDecorationBox(String value, kotlin.jvm.functions.Function0<kotlin.Unit> innerTextField, boolean enabled, boolean singleLine, androidx.compose.ui.text.input.VisualTransformation visualTransformation, androidx.compose.foundation.interaction.InteractionSource interactionSource, optional boolean isError, optional kotlin.jvm.functions.Function0<kotlin.Unit>? label, optional kotlin.jvm.functions.Function0<kotlin.Unit>? placeholder, optional kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? prefix, optional kotlin.jvm.functions.Function0<kotlin.Unit>? suffix, optional kotlin.jvm.functions.Function0<kotlin.Unit>? supportingText, optional androidx.compose.material3.TextFieldColors colors, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional kotlin.jvm.functions.Function0<kotlin.Unit> container);
-    method @Deprecated @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public void TextFieldDecorationBox(String value, kotlin.jvm.functions.Function0<kotlin.Unit> innerTextField, boolean enabled, boolean singleLine, androidx.compose.ui.text.input.VisualTransformation visualTransformation, androidx.compose.foundation.interaction.InteractionSource interactionSource, optional boolean isError, optional kotlin.jvm.functions.Function0<kotlin.Unit>? label, optional kotlin.jvm.functions.Function0<kotlin.Unit>? placeholder, optional kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? supportingText, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.TextFieldColors colors, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional kotlin.jvm.functions.Function0<kotlin.Unit> container);
-    method @Deprecated @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public void TextFieldDecorationBox(String value, kotlin.jvm.functions.Function0<kotlin.Unit> innerTextField, boolean enabled, boolean singleLine, androidx.compose.ui.text.input.VisualTransformation visualTransformation, androidx.compose.foundation.interaction.InteractionSource interactionSource, optional boolean isError, optional kotlin.jvm.functions.Function0<kotlin.Unit>? label, optional kotlin.jvm.functions.Function0<kotlin.Unit>? placeholder, optional kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? prefix, optional kotlin.jvm.functions.Function0<kotlin.Unit>? suffix, optional kotlin.jvm.functions.Function0<kotlin.Unit>? supportingText, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.TextFieldColors colors, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional kotlin.jvm.functions.Function0<kotlin.Unit> container);
-    method @androidx.compose.runtime.Composable public androidx.compose.material3.TextFieldColors colors(optional long focusedTextColor, optional long unfocusedTextColor, optional long disabledTextColor, optional long errorTextColor, optional long focusedContainerColor, optional long unfocusedContainerColor, optional long disabledContainerColor, optional long errorContainerColor, optional long cursorColor, optional long errorCursorColor, optional androidx.compose.foundation.text.selection.TextSelectionColors selectionColors, optional long focusedIndicatorColor, optional long unfocusedIndicatorColor, optional long disabledIndicatorColor, optional long errorIndicatorColor, optional long focusedLeadingIconColor, optional long unfocusedLeadingIconColor, optional long disabledLeadingIconColor, optional long errorLeadingIconColor, optional long focusedTrailingIconColor, optional long unfocusedTrailingIconColor, optional long disabledTrailingIconColor, optional long errorTrailingIconColor, optional long focusedLabelColor, optional long unfocusedLabelColor, optional long disabledLabelColor, optional long errorLabelColor, optional long focusedPlaceholderColor, optional long unfocusedPlaceholderColor, optional long disabledPlaceholderColor, optional long errorPlaceholderColor, optional long focusedSupportingTextColor, optional long unfocusedSupportingTextColor, optional long disabledSupportingTextColor, optional long errorSupportingTextColor, optional long focusedPrefixColor, optional long unfocusedPrefixColor, optional long disabledPrefixColor, optional long errorPrefixColor, optional long focusedSuffixColor, optional long unfocusedSuffixColor, optional long disabledSuffixColor, optional long errorSuffixColor);
-    method public androidx.compose.foundation.layout.PaddingValues contentPaddingWithLabel(optional float start, optional float end, optional float top, optional float bottom);
-    method public androidx.compose.foundation.layout.PaddingValues contentPaddingWithoutLabel(optional float start, optional float top, optional float end, optional float bottom);
-    method @Deprecated @androidx.compose.runtime.Composable public androidx.compose.ui.graphics.Shape getFilledShape();
-    method @Deprecated public float getFocusedBorderThickness();
-    method public float getFocusedIndicatorThickness();
-    method public float getMinHeight();
-    method public float getMinWidth();
-    method @Deprecated @androidx.compose.runtime.Composable public androidx.compose.ui.graphics.Shape getOutlinedShape();
-    method @androidx.compose.runtime.Composable public androidx.compose.ui.graphics.Shape getShape();
-    method @Deprecated public float getUnfocusedBorderThickness();
-    method public float getUnfocusedIndicatorThickness();
-    method @androidx.compose.material3.ExperimentalMaterial3Api public androidx.compose.ui.Modifier indicatorLine(androidx.compose.ui.Modifier, boolean enabled, boolean isError, androidx.compose.foundation.interaction.InteractionSource interactionSource, androidx.compose.material3.TextFieldColors colors, optional float focusedIndicatorLineThickness, optional float unfocusedIndicatorLineThickness);
-    method @Deprecated @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public androidx.compose.material3.TextFieldColors outlinedTextFieldColors(optional long textColor, optional long disabledTextColor, optional long containerColor, optional long cursorColor, optional long errorCursorColor, optional androidx.compose.foundation.text.selection.TextSelectionColors selectionColors, optional long focusedBorderColor, optional long unfocusedBorderColor, optional long disabledBorderColor, optional long errorBorderColor, optional long focusedLeadingIconColor, optional long unfocusedLeadingIconColor, optional long disabledLeadingIconColor, optional long errorLeadingIconColor, optional long focusedTrailingIconColor, optional long unfocusedTrailingIconColor, optional long disabledTrailingIconColor, optional long errorTrailingIconColor, optional long focusedLabelColor, optional long unfocusedLabelColor, optional long disabledLabelColor, optional long errorLabelColor, optional long placeholderColor, optional long disabledPlaceholderColor, optional long focusedSupportingTextColor, optional long unfocusedSupportingTextColor, optional long disabledSupportingTextColor, optional long errorSupportingTextColor, optional long focusedPrefixColor, optional long unfocusedPrefixColor, optional long disabledPrefixColor, optional long errorPrefixColor, optional long focusedSuffixColor, optional long unfocusedSuffixColor, optional long disabledSuffixColor, optional long errorSuffixColor);
-    method @Deprecated @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public androidx.compose.material3.TextFieldColors outlinedTextFieldColors(optional long focusedTextColor, optional long unfocusedTextColor, optional long disabledTextColor, optional long errorTextColor, optional long containerColor, optional long errorContainerColor, optional long cursorColor, optional long errorCursorColor, optional androidx.compose.foundation.text.selection.TextSelectionColors selectionColors, optional long focusedBorderColor, optional long unfocusedBorderColor, optional long disabledBorderColor, optional long errorBorderColor, optional long focusedLeadingIconColor, optional long unfocusedLeadingIconColor, optional long disabledLeadingIconColor, optional long errorLeadingIconColor, optional long focusedTrailingIconColor, optional long unfocusedTrailingIconColor, optional long disabledTrailingIconColor, optional long errorTrailingIconColor, optional long focusedLabelColor, optional long unfocusedLabelColor, optional long disabledLabelColor, optional long errorLabelColor, optional long focusedPlaceholderColor, optional long unfocusedPlaceholderColor, optional long disabledPlaceholderColor, optional long errorPlaceholderColor, optional long focusedSupportingTextColor, optional long unfocusedSupportingTextColor, optional long disabledSupportingTextColor, optional long errorSupportingTextColor, optional long focusedPrefixColor, optional long unfocusedPrefixColor, optional long disabledPrefixColor, optional long errorPrefixColor, optional long focusedSuffixColor, optional long unfocusedSuffixColor, optional long disabledSuffixColor, optional long errorSuffixColor);
-    method @Deprecated public androidx.compose.foundation.layout.PaddingValues outlinedTextFieldPadding(optional float start, optional float top, optional float end, optional float bottom);
-    method @Deprecated @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public androidx.compose.material3.TextFieldColors textFieldColors(optional long textColor, optional long disabledTextColor, optional long containerColor, optional long cursorColor, optional long errorCursorColor, optional androidx.compose.foundation.text.selection.TextSelectionColors selectionColors, optional long focusedIndicatorColor, optional long unfocusedIndicatorColor, optional long disabledIndicatorColor, optional long errorIndicatorColor, optional long focusedLeadingIconColor, optional long unfocusedLeadingIconColor, optional long disabledLeadingIconColor, optional long errorLeadingIconColor, optional long focusedTrailingIconColor, optional long unfocusedTrailingIconColor, optional long disabledTrailingIconColor, optional long errorTrailingIconColor, optional long focusedLabelColor, optional long unfocusedLabelColor, optional long disabledLabelColor, optional long errorLabelColor, optional long placeholderColor, optional long disabledPlaceholderColor, optional long focusedSupportingTextColor, optional long unfocusedSupportingTextColor, optional long disabledSupportingTextColor, optional long errorSupportingTextColor, optional long focusedPrefixColor, optional long unfocusedPrefixColor, optional long disabledPrefixColor, optional long errorPrefixColor, optional long focusedSuffixColor, optional long unfocusedSuffixColor, optional long disabledSuffixColor, optional long errorSuffixColor);
-    method @Deprecated @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public androidx.compose.material3.TextFieldColors textFieldColors(optional long focusedTextColor, optional long unfocusedTextColor, optional long disabledTextColor, optional long errorTextColor, optional long containerColor, optional long errorContainerColor, optional long cursorColor, optional long errorCursorColor, optional androidx.compose.foundation.text.selection.TextSelectionColors selectionColors, optional long focusedIndicatorColor, optional long unfocusedIndicatorColor, optional long disabledIndicatorColor, optional long errorIndicatorColor, optional long focusedLeadingIconColor, optional long unfocusedLeadingIconColor, optional long disabledLeadingIconColor, optional long errorLeadingIconColor, optional long focusedTrailingIconColor, optional long unfocusedTrailingIconColor, optional long disabledTrailingIconColor, optional long errorTrailingIconColor, optional long focusedLabelColor, optional long unfocusedLabelColor, optional long disabledLabelColor, optional long errorLabelColor, optional long focusedPlaceholderColor, optional long unfocusedPlaceholderColor, optional long disabledPlaceholderColor, optional long errorPlaceholderColor, optional long focusedSupportingTextColor, optional long unfocusedSupportingTextColor, optional long disabledSupportingTextColor, optional long errorSupportingTextColor, optional long focusedPrefixColor, optional long unfocusedPrefixColor, optional long disabledPrefixColor, optional long errorPrefixColor, optional long focusedSuffixColor, optional long unfocusedSuffixColor, optional long disabledSuffixColor, optional long errorSuffixColor);
-    method @Deprecated public androidx.compose.foundation.layout.PaddingValues textFieldWithLabelPadding(optional float start, optional float end, optional float top, optional float bottom);
-    method @Deprecated public androidx.compose.foundation.layout.PaddingValues textFieldWithoutLabelPadding(optional float start, optional float top, optional float end, optional float bottom);
-    property @Deprecated public final float FocusedBorderThickness;
-    property public final float FocusedIndicatorThickness;
-    property public final float MinHeight;
-    property public final float MinWidth;
-    property @Deprecated public final float UnfocusedBorderThickness;
-    property public final float UnfocusedIndicatorThickness;
-    property @Deprecated @androidx.compose.runtime.Composable public final androidx.compose.ui.graphics.Shape filledShape;
-    property @Deprecated @androidx.compose.runtime.Composable public final androidx.compose.ui.graphics.Shape outlinedShape;
-    property @androidx.compose.runtime.Composable public final androidx.compose.ui.graphics.Shape shape;
-    field public static final androidx.compose.material3.TextFieldDefaults INSTANCE;
-  }
-
-  public final class TextFieldKt {
-    method @Deprecated @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void TextField(androidx.compose.ui.text.input.TextFieldValue value, kotlin.jvm.functions.Function1<? super androidx.compose.ui.text.input.TextFieldValue,kotlin.Unit> onValueChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional boolean readOnly, optional androidx.compose.ui.text.TextStyle textStyle, optional kotlin.jvm.functions.Function0<kotlin.Unit>? label, optional kotlin.jvm.functions.Function0<kotlin.Unit>? placeholder, optional kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? supportingText, optional boolean isError, optional androidx.compose.ui.text.input.VisualTransformation visualTransformation, optional androidx.compose.foundation.text.KeyboardOptions keyboardOptions, optional androidx.compose.foundation.text.KeyboardActions keyboardActions, optional boolean singleLine, optional int maxLines, optional int minLines, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.TextFieldColors colors);
-    method @androidx.compose.runtime.Composable public static void TextField(androidx.compose.ui.text.input.TextFieldValue value, kotlin.jvm.functions.Function1<? super androidx.compose.ui.text.input.TextFieldValue,kotlin.Unit> onValueChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional boolean readOnly, optional androidx.compose.ui.text.TextStyle textStyle, optional kotlin.jvm.functions.Function0<kotlin.Unit>? label, optional kotlin.jvm.functions.Function0<kotlin.Unit>? placeholder, optional kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? prefix, optional kotlin.jvm.functions.Function0<kotlin.Unit>? suffix, optional kotlin.jvm.functions.Function0<kotlin.Unit>? supportingText, optional boolean isError, optional androidx.compose.ui.text.input.VisualTransformation visualTransformation, optional androidx.compose.foundation.text.KeyboardOptions keyboardOptions, optional androidx.compose.foundation.text.KeyboardActions keyboardActions, optional boolean singleLine, optional int maxLines, optional int minLines, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.TextFieldColors colors);
-    method @Deprecated @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void TextField(String value, kotlin.jvm.functions.Function1<? super java.lang.String,kotlin.Unit> onValueChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional boolean readOnly, optional androidx.compose.ui.text.TextStyle textStyle, optional kotlin.jvm.functions.Function0<kotlin.Unit>? label, optional kotlin.jvm.functions.Function0<kotlin.Unit>? placeholder, optional kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? supportingText, optional boolean isError, optional androidx.compose.ui.text.input.VisualTransformation visualTransformation, optional androidx.compose.foundation.text.KeyboardOptions keyboardOptions, optional androidx.compose.foundation.text.KeyboardActions keyboardActions, optional boolean singleLine, optional int maxLines, optional int minLines, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.TextFieldColors colors);
-    method @androidx.compose.runtime.Composable public static void TextField(String value, kotlin.jvm.functions.Function1<? super java.lang.String,kotlin.Unit> onValueChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional boolean readOnly, optional androidx.compose.ui.text.TextStyle textStyle, optional kotlin.jvm.functions.Function0<kotlin.Unit>? label, optional kotlin.jvm.functions.Function0<kotlin.Unit>? placeholder, optional kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? prefix, optional kotlin.jvm.functions.Function0<kotlin.Unit>? suffix, optional kotlin.jvm.functions.Function0<kotlin.Unit>? supportingText, optional boolean isError, optional androidx.compose.ui.text.input.VisualTransformation visualTransformation, optional androidx.compose.foundation.text.KeyboardOptions keyboardOptions, optional androidx.compose.foundation.text.KeyboardActions keyboardActions, optional boolean singleLine, optional int maxLines, optional int minLines, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.TextFieldColors colors);
-  }
-
-  public final class TextKt {
-    method @androidx.compose.runtime.Composable public static void ProvideTextStyle(androidx.compose.ui.text.TextStyle value, kotlin.jvm.functions.Function0<kotlin.Unit> content);
-    method @androidx.compose.runtime.Composable public static void Text(androidx.compose.ui.text.AnnotatedString text, optional androidx.compose.ui.Modifier modifier, optional long color, optional long fontSize, optional androidx.compose.ui.text.font.FontStyle? fontStyle, optional androidx.compose.ui.text.font.FontWeight? fontWeight, optional androidx.compose.ui.text.font.FontFamily? fontFamily, optional long letterSpacing, optional androidx.compose.ui.text.style.TextDecoration? textDecoration, optional androidx.compose.ui.text.style.TextAlign? textAlign, optional long lineHeight, optional int overflow, optional boolean softWrap, optional int maxLines, optional int minLines, optional java.util.Map<java.lang.String,androidx.compose.foundation.text.InlineTextContent> inlineContent, optional kotlin.jvm.functions.Function1<? super androidx.compose.ui.text.TextLayoutResult,kotlin.Unit> onTextLayout, optional androidx.compose.ui.text.TextStyle style);
-    method @Deprecated @androidx.compose.runtime.Composable public static void Text(androidx.compose.ui.text.AnnotatedString text, optional androidx.compose.ui.Modifier modifier, optional long color, optional long fontSize, optional androidx.compose.ui.text.font.FontStyle? fontStyle, optional androidx.compose.ui.text.font.FontWeight? fontWeight, optional androidx.compose.ui.text.font.FontFamily? fontFamily, optional long letterSpacing, optional androidx.compose.ui.text.style.TextDecoration? textDecoration, optional androidx.compose.ui.text.style.TextAlign? textAlign, optional long lineHeight, optional int overflow, optional boolean softWrap, optional int maxLines, optional java.util.Map<java.lang.String,androidx.compose.foundation.text.InlineTextContent> inlineContent, optional kotlin.jvm.functions.Function1<? super androidx.compose.ui.text.TextLayoutResult,kotlin.Unit> onTextLayout, optional androidx.compose.ui.text.TextStyle style);
-    method @androidx.compose.runtime.Composable public static void Text(String text, optional androidx.compose.ui.Modifier modifier, optional long color, optional long fontSize, optional androidx.compose.ui.text.font.FontStyle? fontStyle, optional androidx.compose.ui.text.font.FontWeight? fontWeight, optional androidx.compose.ui.text.font.FontFamily? fontFamily, optional long letterSpacing, optional androidx.compose.ui.text.style.TextDecoration? textDecoration, optional androidx.compose.ui.text.style.TextAlign? textAlign, optional long lineHeight, optional int overflow, optional boolean softWrap, optional int maxLines, optional int minLines, optional kotlin.jvm.functions.Function1<? super androidx.compose.ui.text.TextLayoutResult,kotlin.Unit>? onTextLayout, optional androidx.compose.ui.text.TextStyle style);
-    method @Deprecated @androidx.compose.runtime.Composable public static void Text(String text, optional androidx.compose.ui.Modifier modifier, optional long color, optional long fontSize, optional androidx.compose.ui.text.font.FontStyle? fontStyle, optional androidx.compose.ui.text.font.FontWeight? fontWeight, optional androidx.compose.ui.text.font.FontFamily? fontFamily, optional long letterSpacing, optional androidx.compose.ui.text.style.TextDecoration? textDecoration, optional androidx.compose.ui.text.style.TextAlign? textAlign, optional long lineHeight, optional int overflow, optional boolean softWrap, optional int maxLines, optional kotlin.jvm.functions.Function1<? super androidx.compose.ui.text.TextLayoutResult,kotlin.Unit> onTextLayout, optional androidx.compose.ui.text.TextStyle style);
-    method public static androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.ui.text.TextStyle> getLocalTextStyle();
-    property public static final androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.ui.text.TextStyle> LocalTextStyle;
-  }
-
-  @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Immutable public final class TimePickerColors {
-  }
-
-  @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Stable public final class TimePickerDefaults {
-    method @androidx.compose.runtime.Composable public androidx.compose.material3.TimePickerColors colors(optional long clockDialColor, optional long clockDialSelectedContentColor, optional long clockDialUnselectedContentColor, optional long selectorColor, optional long containerColor, optional long periodSelectorBorderColor, optional long periodSelectorSelectedContainerColor, optional long periodSelectorUnselectedContainerColor, optional long periodSelectorSelectedContentColor, optional long periodSelectorUnselectedContentColor, optional long timeSelectorSelectedContainerColor, optional long timeSelectorUnselectedContainerColor, optional long timeSelectorSelectedContentColor, optional long timeSelectorUnselectedContentColor);
-    method @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public int layoutType();
-    field public static final androidx.compose.material3.TimePickerDefaults INSTANCE;
-  }
-
-  public final class TimePickerKt {
-    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void TimeInput(androidx.compose.material3.TimePickerState state, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.material3.TimePickerColors colors);
-    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void TimePicker(androidx.compose.material3.TimePickerState state, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.material3.TimePickerColors colors, optional int layoutType);
-    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static androidx.compose.material3.TimePickerState rememberTimePickerState(optional int initialHour, optional int initialMinute, optional boolean is24Hour);
-  }
-
-  @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class TimePickerLayoutType {
-    field public static final androidx.compose.material3.TimePickerLayoutType.Companion Companion;
-  }
-
-  public static final class TimePickerLayoutType.Companion {
-    method public int getHorizontal();
-    method public int getVertical();
-    property public final int Horizontal;
-    property public final int Vertical;
-  }
-
-  @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Stable public final class TimePickerState {
-    ctor public TimePickerState(int initialHour, int initialMinute, boolean is24Hour);
-    method public int getHour();
-    method public int getMinute();
-    method public boolean is24hour();
-    method public suspend Object? settle(kotlin.coroutines.Continuation<? super kotlin.Unit>);
-    property public final int hour;
-    property public final boolean is24hour;
-    property public final int minute;
-    field public static final androidx.compose.material3.TimePickerState.Companion Companion;
-  }
-
-  public static final class TimePickerState.Companion {
-    method public androidx.compose.runtime.saveable.Saver<androidx.compose.material3.TimePickerState,?> Saver();
-  }
-
-  @androidx.compose.material3.ExperimentalMaterial3Api public interface TooltipBoxScope {
-    method public androidx.compose.ui.Modifier tooltipTrigger(androidx.compose.ui.Modifier);
-  }
-
-  @androidx.compose.material3.ExperimentalMaterial3Api public final class TooltipDefaults {
-    method public androidx.compose.foundation.MutatorMutex getGlobalMutatorMutex();
-    method @androidx.compose.runtime.Composable public long getPlainTooltipContainerColor();
-    method @androidx.compose.runtime.Composable public androidx.compose.ui.graphics.Shape getPlainTooltipContainerShape();
-    method @androidx.compose.runtime.Composable public long getPlainTooltipContentColor();
-    method @androidx.compose.runtime.Composable public androidx.compose.ui.graphics.Shape getRichTooltipContainerShape();
-    method @androidx.compose.runtime.Composable public androidx.compose.material3.RichTooltipColors richTooltipColors(optional long containerColor, optional long contentColor, optional long titleContentColor, optional long actionContentColor);
-    property public final androidx.compose.foundation.MutatorMutex GlobalMutatorMutex;
-    property @androidx.compose.runtime.Composable public final long plainTooltipContainerColor;
-    property @androidx.compose.runtime.Composable public final androidx.compose.ui.graphics.Shape plainTooltipContainerShape;
-    property @androidx.compose.runtime.Composable public final long plainTooltipContentColor;
-    property @androidx.compose.runtime.Composable public final androidx.compose.ui.graphics.Shape richTooltipContainerShape;
-    field public static final androidx.compose.material3.TooltipDefaults INSTANCE;
-  }
-
-  public final class TooltipKt {
-    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void PlainTooltipBox(kotlin.jvm.functions.Function0<kotlin.Unit> tooltip, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.material3.PlainTooltipState tooltipState, optional androidx.compose.ui.graphics.Shape shape, optional long containerColor, optional long contentColor, kotlin.jvm.functions.Function1<? super androidx.compose.material3.TooltipBoxScope,kotlin.Unit> content);
-    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void RichTooltipBox(kotlin.jvm.functions.Function0<kotlin.Unit> text, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function0<kotlin.Unit>? title, optional kotlin.jvm.functions.Function0<kotlin.Unit>? action, optional androidx.compose.material3.RichTooltipState tooltipState, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.RichTooltipColors colors, kotlin.jvm.functions.Function1<? super androidx.compose.material3.TooltipBoxScope,kotlin.Unit> content);
-    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static androidx.compose.material3.PlainTooltipState rememberPlainTooltipState(optional androidx.compose.foundation.MutatorMutex mutatorMutex);
-    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static androidx.compose.material3.RichTooltipState rememberRichTooltipState(boolean isPersistent, optional androidx.compose.foundation.MutatorMutex mutatorMutex);
-  }
-
-  @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Stable public interface TooltipState {
-    method public void dismiss();
-    method public boolean isVisible();
-    method public void onDispose();
-    method public suspend Object? show(kotlin.coroutines.Continuation<? super kotlin.Unit>);
-    property public abstract boolean isVisible;
-  }
-
-  @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Stable public final class TopAppBarColors {
-  }
-
-  @androidx.compose.material3.ExperimentalMaterial3Api public final class TopAppBarDefaults {
-    method @androidx.compose.runtime.Composable public androidx.compose.material3.TopAppBarColors centerAlignedTopAppBarColors(optional long containerColor, optional long scrolledContainerColor, optional long navigationIconContentColor, optional long titleContentColor, optional long actionIconContentColor);
-    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public androidx.compose.material3.TopAppBarScrollBehavior enterAlwaysScrollBehavior(optional androidx.compose.material3.TopAppBarState state, optional kotlin.jvm.functions.Function0<java.lang.Boolean> canScroll, optional androidx.compose.animation.core.AnimationSpec<java.lang.Float>? snapAnimationSpec, optional androidx.compose.animation.core.DecayAnimationSpec<java.lang.Float>? flingAnimationSpec);
-    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public androidx.compose.material3.TopAppBarScrollBehavior exitUntilCollapsedScrollBehavior(optional androidx.compose.material3.TopAppBarState state, optional kotlin.jvm.functions.Function0<java.lang.Boolean> canScroll, optional androidx.compose.animation.core.AnimationSpec<java.lang.Float>? snapAnimationSpec, optional androidx.compose.animation.core.DecayAnimationSpec<java.lang.Float>? flingAnimationSpec);
-    method @androidx.compose.runtime.Composable public androidx.compose.foundation.layout.WindowInsets getWindowInsets();
-    method @androidx.compose.runtime.Composable public androidx.compose.material3.TopAppBarColors largeTopAppBarColors(optional long containerColor, optional long scrolledContainerColor, optional long navigationIconContentColor, optional long titleContentColor, optional long actionIconContentColor);
-    method @androidx.compose.runtime.Composable public androidx.compose.material3.TopAppBarColors mediumTopAppBarColors(optional long containerColor, optional long scrolledContainerColor, optional long navigationIconContentColor, optional long titleContentColor, optional long actionIconContentColor);
-    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public androidx.compose.material3.TopAppBarScrollBehavior pinnedScrollBehavior(optional androidx.compose.material3.TopAppBarState state, optional kotlin.jvm.functions.Function0<java.lang.Boolean> canScroll);
-    method @Deprecated @androidx.compose.runtime.Composable public androidx.compose.material3.TopAppBarColors smallTopAppBarColors(optional long containerColor, optional long scrolledContainerColor, optional long navigationIconContentColor, optional long titleContentColor, optional long actionIconContentColor);
-    method @androidx.compose.runtime.Composable public androidx.compose.material3.TopAppBarColors topAppBarColors(optional long containerColor, optional long scrolledContainerColor, optional long navigationIconContentColor, optional long titleContentColor, optional long actionIconContentColor);
-    property @androidx.compose.runtime.Composable public final androidx.compose.foundation.layout.WindowInsets windowInsets;
-    field public static final androidx.compose.material3.TopAppBarDefaults INSTANCE;
-  }
-
-  @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Stable public interface TopAppBarScrollBehavior {
-    method public androidx.compose.animation.core.DecayAnimationSpec<java.lang.Float>? getFlingAnimationSpec();
-    method public androidx.compose.ui.input.nestedscroll.NestedScrollConnection getNestedScrollConnection();
-    method public androidx.compose.animation.core.AnimationSpec<java.lang.Float>? getSnapAnimationSpec();
-    method public androidx.compose.material3.TopAppBarState getState();
-    method public boolean isPinned();
-    property public abstract androidx.compose.animation.core.DecayAnimationSpec<java.lang.Float>? flingAnimationSpec;
-    property public abstract boolean isPinned;
-    property public abstract androidx.compose.ui.input.nestedscroll.NestedScrollConnection nestedScrollConnection;
-    property public abstract androidx.compose.animation.core.AnimationSpec<java.lang.Float>? snapAnimationSpec;
-    property public abstract androidx.compose.material3.TopAppBarState state;
-  }
-
-  @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Stable public final class TopAppBarState {
-    ctor public TopAppBarState(float initialHeightOffsetLimit, float initialHeightOffset, float initialContentOffset);
-    method public float getCollapsedFraction();
-    method public float getContentOffset();
-    method public float getHeightOffset();
-    method public float getHeightOffsetLimit();
-    method public float getOverlappedFraction();
-    method public void setContentOffset(float);
-    method public void setHeightOffset(float);
-    method public void setHeightOffsetLimit(float);
-    property public final float collapsedFraction;
-    property public final float contentOffset;
-    property public final float heightOffset;
-    property public final float heightOffsetLimit;
-    property public final float overlappedFraction;
-    field public static final androidx.compose.material3.TopAppBarState.Companion Companion;
-  }
-
-  public static final class TopAppBarState.Companion {
-    method public androidx.compose.runtime.saveable.Saver<androidx.compose.material3.TopAppBarState,?> getSaver();
-    property public final androidx.compose.runtime.saveable.Saver<androidx.compose.material3.TopAppBarState,?> Saver;
-  }
-
-  @androidx.compose.runtime.Immutable public final class Typography {
-    ctor public Typography(optional androidx.compose.ui.text.TextStyle displayLarge, optional androidx.compose.ui.text.TextStyle displayMedium, optional androidx.compose.ui.text.TextStyle displaySmall, optional androidx.compose.ui.text.TextStyle headlineLarge, optional androidx.compose.ui.text.TextStyle headlineMedium, optional androidx.compose.ui.text.TextStyle headlineSmall, optional androidx.compose.ui.text.TextStyle titleLarge, optional androidx.compose.ui.text.TextStyle titleMedium, optional androidx.compose.ui.text.TextStyle titleSmall, optional androidx.compose.ui.text.TextStyle bodyLarge, optional androidx.compose.ui.text.TextStyle bodyMedium, optional androidx.compose.ui.text.TextStyle bodySmall, optional androidx.compose.ui.text.TextStyle labelLarge, optional androidx.compose.ui.text.TextStyle labelMedium, optional androidx.compose.ui.text.TextStyle labelSmall);
-    method public androidx.compose.material3.Typography copy(optional androidx.compose.ui.text.TextStyle displayLarge, optional androidx.compose.ui.text.TextStyle displayMedium, optional androidx.compose.ui.text.TextStyle displaySmall, optional androidx.compose.ui.text.TextStyle headlineLarge, optional androidx.compose.ui.text.TextStyle headlineMedium, optional androidx.compose.ui.text.TextStyle headlineSmall, optional androidx.compose.ui.text.TextStyle titleLarge, optional androidx.compose.ui.text.TextStyle titleMedium, optional androidx.compose.ui.text.TextStyle titleSmall, optional androidx.compose.ui.text.TextStyle bodyLarge, optional androidx.compose.ui.text.TextStyle bodyMedium, optional androidx.compose.ui.text.TextStyle bodySmall, optional androidx.compose.ui.text.TextStyle labelLarge, optional androidx.compose.ui.text.TextStyle labelMedium, optional androidx.compose.ui.text.TextStyle labelSmall);
-    method public androidx.compose.ui.text.TextStyle getBodyLarge();
-    method public androidx.compose.ui.text.TextStyle getBodyMedium();
-    method public androidx.compose.ui.text.TextStyle getBodySmall();
-    method public androidx.compose.ui.text.TextStyle getDisplayLarge();
-    method public androidx.compose.ui.text.TextStyle getDisplayMedium();
-    method public androidx.compose.ui.text.TextStyle getDisplaySmall();
-    method public androidx.compose.ui.text.TextStyle getHeadlineLarge();
-    method public androidx.compose.ui.text.TextStyle getHeadlineMedium();
-    method public androidx.compose.ui.text.TextStyle getHeadlineSmall();
-    method public androidx.compose.ui.text.TextStyle getLabelLarge();
-    method public androidx.compose.ui.text.TextStyle getLabelMedium();
-    method public androidx.compose.ui.text.TextStyle getLabelSmall();
-    method public androidx.compose.ui.text.TextStyle getTitleLarge();
-    method public androidx.compose.ui.text.TextStyle getTitleMedium();
-    method public androidx.compose.ui.text.TextStyle getTitleSmall();
-    property public final androidx.compose.ui.text.TextStyle bodyLarge;
-    property public final androidx.compose.ui.text.TextStyle bodyMedium;
-    property public final androidx.compose.ui.text.TextStyle bodySmall;
-    property public final androidx.compose.ui.text.TextStyle displayLarge;
-    property public final androidx.compose.ui.text.TextStyle displayMedium;
-    property public final androidx.compose.ui.text.TextStyle displaySmall;
-    property public final androidx.compose.ui.text.TextStyle headlineLarge;
-    property public final androidx.compose.ui.text.TextStyle headlineMedium;
-    property public final androidx.compose.ui.text.TextStyle headlineSmall;
-    property public final androidx.compose.ui.text.TextStyle labelLarge;
-    property public final androidx.compose.ui.text.TextStyle labelMedium;
-    property public final androidx.compose.ui.text.TextStyle labelSmall;
-    property public final androidx.compose.ui.text.TextStyle titleLarge;
-    property public final androidx.compose.ui.text.TextStyle titleMedium;
-    property public final androidx.compose.ui.text.TextStyle titleSmall;
-  }
-
-}
-
diff --git a/compose/material3/material3/api/restricted_current.ignore b/compose/material3/material3/api/restricted_current.ignore
index dd3f23a..5455aab 100644
--- a/compose/material3/material3/api/restricted_current.ignore
+++ b/compose/material3/material3/api/restricted_current.ignore
@@ -1,3 +1,33 @@
 // Baseline format: 1.0
-RemovedClass: androidx.compose.material3.TimePickerState:
-    Removed class androidx.compose.material3.TimePickerState
+BecameUnchecked: Field TimePickerState.hour:
+    Removed Field TimePickerState.hour from compatibility checked API surface
+BecameUnchecked: Field TimePickerState.is24hour:
+    Removed Field TimePickerState.is24hour from compatibility checked API surface
+BecameUnchecked: Field TimePickerState.minute:
+    Removed Field TimePickerState.minute from compatibility checked API surface
+BecameUnchecked: androidx.compose.material3.TimePickerState:
+    Removed class androidx.compose.material3.TimePickerState from compatibility checked API surface
+BecameUnchecked: androidx.compose.material3.TimePickerState#Companion:
+    Removed field androidx.compose.material3.TimePickerState.Companion from compatibility checked API surface
+BecameUnchecked: androidx.compose.material3.TimePickerState#TimePickerState(int, int, boolean):
+    Removed constructor androidx.compose.material3.TimePickerState(int,int,boolean) from compatibility checked API surface
+BecameUnchecked: androidx.compose.material3.TimePickerState#TimePickerState(int, int, boolean) parameter #0:
+    Removed parameter initialHour in androidx.compose.material3.TimePickerState(int initialHour, int initialMinute, boolean is24Hour) from compatibility checked API surface
+BecameUnchecked: androidx.compose.material3.TimePickerState#TimePickerState(int, int, boolean) parameter #1:
+    Removed parameter initialMinute in androidx.compose.material3.TimePickerState(int initialHour, int initialMinute, boolean is24Hour) from compatibility checked API surface
+BecameUnchecked: androidx.compose.material3.TimePickerState#TimePickerState(int, int, boolean) parameter #2:
+    Removed parameter is24Hour in androidx.compose.material3.TimePickerState(int initialHour, int initialMinute, boolean is24Hour) from compatibility checked API surface
+BecameUnchecked: androidx.compose.material3.TimePickerState#getHour():
+    Removed method androidx.compose.material3.TimePickerState.getHour() from compatibility checked API surface
+BecameUnchecked: androidx.compose.material3.TimePickerState#getMinute():
+    Removed method androidx.compose.material3.TimePickerState.getMinute() from compatibility checked API surface
+BecameUnchecked: androidx.compose.material3.TimePickerState#is24hour():
+    Removed method androidx.compose.material3.TimePickerState.is24hour() from compatibility checked API surface
+BecameUnchecked: androidx.compose.material3.TimePickerState#settle(kotlin.coroutines.Continuation<? super kotlin.Unit>):
+    Removed method androidx.compose.material3.TimePickerState.settle(kotlin.coroutines.Continuation<? super kotlin.Unit>) from compatibility checked API surface
+BecameUnchecked: androidx.compose.material3.TimePickerState#settle(kotlin.coroutines.Continuation<? super kotlin.Unit>) parameter #0:
+    Removed parameter arg1 in androidx.compose.material3.TimePickerState.settle(kotlin.coroutines.Continuation<? super kotlin.Unit> arg1) from compatibility checked API surface
+BecameUnchecked: androidx.compose.material3.TimePickerState.Companion:
+    Removed class androidx.compose.material3.TimePickerState.Companion from compatibility checked API surface
+BecameUnchecked: androidx.compose.material3.TimePickerState.Companion#Saver():
+    Removed method androidx.compose.material3.TimePickerState.Companion.Saver() from compatibility checked API surface
diff --git a/compose/material3/material3/api/restricted_current.txt b/compose/material3/material3/api/restricted_current.txt
index 4754af1..422f0ec 100644
--- a/compose/material3/material3/api/restricted_current.txt
+++ b/compose/material3/material3/api/restricted_current.txt
@@ -18,6 +18,7 @@
   }
 
   public final class AndroidAlertDialog_androidKt {
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void AlertDialog(kotlin.jvm.functions.Function0<kotlin.Unit> onDismissRequest, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.window.DialogProperties properties, kotlin.jvm.functions.Function0<kotlin.Unit> content);
     method @androidx.compose.runtime.Composable public static void AlertDialog(kotlin.jvm.functions.Function0<kotlin.Unit> onDismissRequest, kotlin.jvm.functions.Function0<kotlin.Unit> confirmButton, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function0<kotlin.Unit>? dismissButton, optional kotlin.jvm.functions.Function0<kotlin.Unit>? icon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? title, optional kotlin.jvm.functions.Function0<kotlin.Unit>? text, optional androidx.compose.ui.graphics.Shape shape, optional long containerColor, optional long iconContentColor, optional long titleContentColor, optional long textContentColor, optional float tonalElevation, optional androidx.compose.ui.window.DialogProperties properties);
   }
 
@@ -30,6 +31,12 @@
   public final class AppBarKt {
     method @androidx.compose.runtime.Composable public static void BottomAppBar(optional androidx.compose.ui.Modifier modifier, optional long containerColor, optional long contentColor, optional float tonalElevation, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional androidx.compose.foundation.layout.WindowInsets windowInsets, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit> content);
     method @androidx.compose.runtime.Composable public static void BottomAppBar(kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit> actions, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function0<kotlin.Unit>? floatingActionButton, optional long containerColor, optional long contentColor, optional float tonalElevation, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional androidx.compose.foundation.layout.WindowInsets windowInsets);
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void CenterAlignedTopAppBar(kotlin.jvm.functions.Function0<kotlin.Unit> title, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function0<kotlin.Unit> navigationIcon, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit> actions, optional androidx.compose.foundation.layout.WindowInsets windowInsets, optional androidx.compose.material3.TopAppBarColors colors, optional androidx.compose.material3.TopAppBarScrollBehavior? scrollBehavior);
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void LargeTopAppBar(kotlin.jvm.functions.Function0<kotlin.Unit> title, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function0<kotlin.Unit> navigationIcon, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit> actions, optional androidx.compose.foundation.layout.WindowInsets windowInsets, optional androidx.compose.material3.TopAppBarColors colors, optional androidx.compose.material3.TopAppBarScrollBehavior? scrollBehavior);
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void MediumTopAppBar(kotlin.jvm.functions.Function0<kotlin.Unit> title, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function0<kotlin.Unit> navigationIcon, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit> actions, optional androidx.compose.foundation.layout.WindowInsets windowInsets, optional androidx.compose.material3.TopAppBarColors colors, optional androidx.compose.material3.TopAppBarScrollBehavior? scrollBehavior);
+    method @Deprecated @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void SmallTopAppBar(kotlin.jvm.functions.Function0<kotlin.Unit> title, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function0<kotlin.Unit> navigationIcon, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit> actions, optional androidx.compose.foundation.layout.WindowInsets windowInsets, optional androidx.compose.material3.TopAppBarColors colors, optional androidx.compose.material3.TopAppBarScrollBehavior? scrollBehavior);
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void TopAppBar(kotlin.jvm.functions.Function0<kotlin.Unit> title, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function0<kotlin.Unit> navigationIcon, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit> actions, optional androidx.compose.foundation.layout.WindowInsets windowInsets, optional androidx.compose.material3.TopAppBarColors colors, optional androidx.compose.material3.TopAppBarScrollBehavior? scrollBehavior);
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static androidx.compose.material3.TopAppBarState rememberTopAppBarState(optional float initialHeightOffsetLimit, optional float initialHeightOffset, optional float initialContentOffset);
   }
 
   public final class AssistChipDefaults {
@@ -47,6 +54,17 @@
     field public static final androidx.compose.material3.AssistChipDefaults INSTANCE;
   }
 
+  @androidx.compose.material3.ExperimentalMaterial3Api public final class BadgeDefaults {
+    method @androidx.compose.runtime.Composable public long getContainerColor();
+    property @androidx.compose.runtime.Composable public final long containerColor;
+    field public static final androidx.compose.material3.BadgeDefaults INSTANCE;
+  }
+
+  public final class BadgeKt {
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void Badge(optional androidx.compose.ui.Modifier modifier, optional long containerColor, optional long contentColor, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit>? content);
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void BadgedBox(kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.BoxScope,kotlin.Unit> badge, optional androidx.compose.ui.Modifier modifier, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.BoxScope,kotlin.Unit> content);
+  }
+
   public final class BottomAppBarDefaults {
     method @androidx.compose.runtime.Composable public long getBottomAppBarFabColor();
     method @androidx.compose.runtime.Composable public long getContainerColor();
@@ -61,6 +79,39 @@
     field public static final androidx.compose.material3.BottomAppBarDefaults INSTANCE;
   }
 
+  @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Stable public final class BottomSheetDefaults {
+    method @androidx.compose.runtime.Composable public void DragHandle(optional androidx.compose.ui.Modifier modifier, optional float width, optional float height, optional androidx.compose.ui.graphics.Shape shape, optional long color);
+    method @androidx.compose.runtime.Composable public long getContainerColor();
+    method public float getElevation();
+    method @androidx.compose.runtime.Composable public androidx.compose.ui.graphics.Shape getExpandedShape();
+    method @androidx.compose.runtime.Composable public androidx.compose.ui.graphics.Shape getHiddenShape();
+    method @androidx.compose.runtime.Composable public long getScrimColor();
+    method public float getSheetPeekHeight();
+    method @androidx.compose.runtime.Composable public androidx.compose.foundation.layout.WindowInsets getWindowInsets();
+    property @androidx.compose.runtime.Composable public final long ContainerColor;
+    property public final float Elevation;
+    property @androidx.compose.runtime.Composable public final androidx.compose.ui.graphics.Shape ExpandedShape;
+    property @androidx.compose.runtime.Composable public final androidx.compose.ui.graphics.Shape HiddenShape;
+    property @androidx.compose.runtime.Composable public final long ScrimColor;
+    property public final float SheetPeekHeight;
+    property @androidx.compose.runtime.Composable public final androidx.compose.foundation.layout.WindowInsets windowInsets;
+    field public static final androidx.compose.material3.BottomSheetDefaults INSTANCE;
+  }
+
+  public final class BottomSheetScaffoldKt {
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void BottomSheetScaffold(kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit> sheetContent, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.material3.BottomSheetScaffoldState scaffoldState, optional float sheetPeekHeight, optional androidx.compose.ui.graphics.Shape sheetShape, optional long sheetContainerColor, optional long sheetContentColor, optional float sheetTonalElevation, optional float sheetShadowElevation, optional kotlin.jvm.functions.Function0<kotlin.Unit>? sheetDragHandle, optional boolean sheetSwipeEnabled, optional kotlin.jvm.functions.Function0<kotlin.Unit>? topBar, optional kotlin.jvm.functions.Function1<? super androidx.compose.material3.SnackbarHostState,kotlin.Unit> snackbarHost, optional long containerColor, optional long contentColor, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.PaddingValues,kotlin.Unit> content);
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static androidx.compose.material3.BottomSheetScaffoldState rememberBottomSheetScaffoldState(optional androidx.compose.material3.SheetState bottomSheetState, optional androidx.compose.material3.SnackbarHostState snackbarHostState);
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static androidx.compose.material3.SheetState rememberStandardBottomSheetState(optional androidx.compose.material3.SheetValue initialValue, optional kotlin.jvm.functions.Function1<? super androidx.compose.material3.SheetValue,java.lang.Boolean> confirmValueChange, optional boolean skipHiddenState);
+  }
+
+  @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Stable public final class BottomSheetScaffoldState {
+    ctor public BottomSheetScaffoldState(androidx.compose.material3.SheetState bottomSheetState, androidx.compose.material3.SnackbarHostState snackbarHostState);
+    method public androidx.compose.material3.SheetState getBottomSheetState();
+    method public androidx.compose.material3.SnackbarHostState getSnackbarHostState();
+    property public final androidx.compose.material3.SheetState bottomSheetState;
+    property public final androidx.compose.material3.SnackbarHostState snackbarHostState;
+  }
+
   @androidx.compose.runtime.Immutable public final class ButtonColors {
   }
 
@@ -115,6 +166,14 @@
     method @androidx.compose.runtime.Composable public static void TextButton(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.ButtonColors colors, optional androidx.compose.material3.ButtonElevation? elevation, optional androidx.compose.foundation.BorderStroke? border, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit> content);
   }
 
+  public final class CalendarModelKt {
+    method @androidx.compose.material3.ExperimentalMaterial3Api public static String formatWithSkeleton(long utcTimeMillis, String skeleton, optional java.util.Locale locale);
+  }
+
+  public final class CalendarModel_androidKt {
+    method @androidx.compose.material3.ExperimentalMaterial3Api public static String formatWithSkeleton(long utcTimeMillis, String skeleton, java.util.Locale locale);
+  }
+
   @androidx.compose.runtime.Immutable public final class CardColors {
   }
 
@@ -140,8 +199,11 @@
 
   public final class CardKt {
     method @androidx.compose.runtime.Composable public static void Card(optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.CardColors colors, optional androidx.compose.material3.CardElevation elevation, optional androidx.compose.foundation.BorderStroke? border, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit> content);
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void Card(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.CardColors colors, optional androidx.compose.material3.CardElevation elevation, optional androidx.compose.foundation.BorderStroke? border, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit> content);
     method @androidx.compose.runtime.Composable public static void ElevatedCard(optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.CardColors colors, optional androidx.compose.material3.CardElevation elevation, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit> content);
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void ElevatedCard(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.CardColors colors, optional androidx.compose.material3.CardElevation elevation, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit> content);
     method @androidx.compose.runtime.Composable public static void OutlinedCard(optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.CardColors colors, optional androidx.compose.material3.CardElevation elevation, optional androidx.compose.foundation.BorderStroke border, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit> content);
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void OutlinedCard(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.CardColors colors, optional androidx.compose.material3.CardElevation elevation, optional androidx.compose.foundation.BorderStroke border, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit> content);
   }
 
   @androidx.compose.runtime.Immutable public final class CheckboxColors {
@@ -169,7 +231,10 @@
   public final class ChipKt {
     method @androidx.compose.runtime.Composable public static void AssistChip(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, kotlin.jvm.functions.Function0<kotlin.Unit> label, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.ChipColors colors, optional androidx.compose.material3.ChipElevation? elevation, optional androidx.compose.material3.ChipBorder? border, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource);
     method @androidx.compose.runtime.Composable public static void ElevatedAssistChip(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, kotlin.jvm.functions.Function0<kotlin.Unit> label, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.ChipColors colors, optional androidx.compose.material3.ChipElevation? elevation, optional androidx.compose.material3.ChipBorder? border, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource);
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void ElevatedFilterChip(boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onClick, kotlin.jvm.functions.Function0<kotlin.Unit> label, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.SelectableChipColors colors, optional androidx.compose.material3.SelectableChipElevation? elevation, optional androidx.compose.material3.SelectableChipBorder? border, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource);
     method @androidx.compose.runtime.Composable public static void ElevatedSuggestionChip(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, kotlin.jvm.functions.Function0<kotlin.Unit> label, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional kotlin.jvm.functions.Function0<kotlin.Unit>? icon, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.ChipColors colors, optional androidx.compose.material3.ChipElevation? elevation, optional androidx.compose.material3.ChipBorder? border, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource);
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void FilterChip(boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onClick, kotlin.jvm.functions.Function0<kotlin.Unit> label, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.SelectableChipColors colors, optional androidx.compose.material3.SelectableChipElevation? elevation, optional androidx.compose.material3.SelectableChipBorder? border, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource);
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void InputChip(boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onClick, kotlin.jvm.functions.Function0<kotlin.Unit> label, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? avatar, optional kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.SelectableChipColors colors, optional androidx.compose.material3.SelectableChipElevation? elevation, optional androidx.compose.material3.SelectableChipBorder? border, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource);
     method @androidx.compose.runtime.Composable public static void SuggestionChip(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, kotlin.jvm.functions.Function0<kotlin.Unit> label, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional kotlin.jvm.functions.Function0<kotlin.Unit>? icon, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.ChipColors colors, optional androidx.compose.material3.ChipElevation? elevation, optional androidx.compose.material3.ChipBorder? border, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource);
   }
 
@@ -249,6 +314,133 @@
     property public static final androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.ui.graphics.Color> LocalContentColor;
   }
 
+  @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Immutable public final class DatePickerColors {
+  }
+
+  @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Stable public final class DatePickerDefaults {
+    method @androidx.compose.runtime.Composable public void DatePickerHeadline(Long? selectedDateMillis, int displayMode, androidx.compose.material3.DatePickerFormatter dateFormatter, optional androidx.compose.ui.Modifier modifier);
+    method @androidx.compose.runtime.Composable public void DatePickerTitle(int displayMode, optional androidx.compose.ui.Modifier modifier);
+    method @androidx.compose.runtime.Composable public androidx.compose.material3.DatePickerColors colors(optional long containerColor, optional long titleContentColor, optional long headlineContentColor, optional long weekdayContentColor, optional long subheadContentColor, optional long navigationContentColor, optional long yearContentColor, optional long disabledYearContentColor, optional long currentYearContentColor, optional long selectedYearContentColor, optional long disabledSelectedYearContentColor, optional long selectedYearContainerColor, optional long disabledSelectedYearContainerColor, optional long dayContentColor, optional long disabledDayContentColor, optional long selectedDayContentColor, optional long disabledSelectedDayContentColor, optional long selectedDayContainerColor, optional long disabledSelectedDayContainerColor, optional long todayContentColor, optional long todayDateBorderColor, optional long dayInSelectionRangeContentColor, optional long dayInSelectionRangeContainerColor, optional long dividerColor, optional androidx.compose.material3.TextFieldColors dateTextFieldColors);
+    method public androidx.compose.material3.DatePickerFormatter dateFormatter(optional String yearSelectionSkeleton, optional String selectedDateSkeleton, optional String selectedDateDescriptionSkeleton);
+    method @androidx.compose.runtime.Composable public androidx.compose.ui.graphics.Shape getShape();
+    method public float getTonalElevation();
+    method public kotlin.ranges.IntRange getYearRange();
+    property public final float TonalElevation;
+    property public final kotlin.ranges.IntRange YearRange;
+    property @androidx.compose.runtime.Composable public final androidx.compose.ui.graphics.Shape shape;
+    field public static final androidx.compose.material3.DatePickerDefaults INSTANCE;
+    field public static final String YearAbbrMonthDaySkeleton = "yMMMd";
+    field public static final String YearMonthSkeleton = "yMMMM";
+    field public static final String YearMonthWeekdayDaySkeleton = "yMMMMEEEEd";
+  }
+
+  public final class DatePickerDialog_androidKt {
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void DatePickerDialog(kotlin.jvm.functions.Function0<kotlin.Unit> onDismissRequest, kotlin.jvm.functions.Function0<kotlin.Unit> confirmButton, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function0<kotlin.Unit>? dismissButton, optional androidx.compose.ui.graphics.Shape shape, optional float tonalElevation, optional androidx.compose.material3.DatePickerColors colors, optional androidx.compose.ui.window.DialogProperties properties, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit> content);
+  }
+
+  @androidx.compose.material3.ExperimentalMaterial3Api public interface DatePickerFormatter {
+    method public String? formatDate(Long? dateMillis, java.util.Locale locale, optional boolean forContentDescription);
+    method public String? formatMonthYear(Long? monthMillis, java.util.Locale locale);
+  }
+
+  public final class DatePickerKt {
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void DatePicker(androidx.compose.material3.DatePickerState state, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.material3.DatePickerFormatter dateFormatter, optional kotlin.jvm.functions.Function0<kotlin.Unit>? title, optional kotlin.jvm.functions.Function0<kotlin.Unit>? headline, optional boolean showModeToggle, optional androidx.compose.material3.DatePickerColors colors);
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static androidx.compose.material3.DatePickerState rememberDatePickerState(optional Long? initialSelectedDateMillis, optional Long? initialDisplayedMonthMillis, optional kotlin.ranges.IntRange yearRange, optional int initialDisplayMode, optional androidx.compose.material3.SelectableDates selectableDates);
+  }
+
+  @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Stable public interface DatePickerState {
+    method public int getDisplayMode();
+    method public long getDisplayedMonthMillis();
+    method public androidx.compose.material3.SelectableDates getSelectableDates();
+    method public Long? getSelectedDateMillis();
+    method public kotlin.ranges.IntRange getYearRange();
+    method public void setDisplayMode(int);
+    method public void setDisplayedMonthMillis(long);
+    method public void setSelectedDateMillis(Long?);
+    property public abstract int displayMode;
+    property public abstract long displayedMonthMillis;
+    property public abstract androidx.compose.material3.SelectableDates selectableDates;
+    property public abstract Long? selectedDateMillis;
+    property public abstract kotlin.ranges.IntRange yearRange;
+  }
+
+  @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Stable public final class DateRangePickerDefaults {
+    method @androidx.compose.runtime.Composable public void DateRangePickerHeadline(Long? selectedStartDateMillis, Long? selectedEndDateMillis, int displayMode, androidx.compose.material3.DatePickerFormatter dateFormatter, optional androidx.compose.ui.Modifier modifier);
+    method @androidx.compose.runtime.Composable public void DateRangePickerTitle(int displayMode, optional androidx.compose.ui.Modifier modifier);
+    field public static final androidx.compose.material3.DateRangePickerDefaults INSTANCE;
+  }
+
+  public final class DateRangePickerKt {
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void DateRangePicker(androidx.compose.material3.DateRangePickerState state, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.material3.DatePickerFormatter dateFormatter, optional kotlin.jvm.functions.Function0<kotlin.Unit>? title, optional kotlin.jvm.functions.Function0<kotlin.Unit>? headline, optional boolean showModeToggle, optional androidx.compose.material3.DatePickerColors colors);
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static androidx.compose.material3.DateRangePickerState rememberDateRangePickerState(optional Long? initialSelectedStartDateMillis, optional Long? initialSelectedEndDateMillis, optional Long? initialDisplayedMonthMillis, optional kotlin.ranges.IntRange yearRange, optional int initialDisplayMode, optional androidx.compose.material3.SelectableDates selectableDates);
+  }
+
+  @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Stable public interface DateRangePickerState {
+    method public int getDisplayMode();
+    method public long getDisplayedMonthMillis();
+    method public androidx.compose.material3.SelectableDates getSelectableDates();
+    method public Long? getSelectedEndDateMillis();
+    method public Long? getSelectedStartDateMillis();
+    method public kotlin.ranges.IntRange getYearRange();
+    method public void setDisplayMode(int);
+    method public void setDisplayedMonthMillis(long);
+    method public void setSelection(Long? startDateMillis, Long? endDateMillis);
+    property public abstract int displayMode;
+    property public abstract long displayedMonthMillis;
+    property public abstract androidx.compose.material3.SelectableDates selectableDates;
+    property public abstract Long? selectedEndDateMillis;
+    property public abstract Long? selectedStartDateMillis;
+    property public abstract kotlin.ranges.IntRange yearRange;
+  }
+
+  @androidx.compose.material3.ExperimentalMaterial3Api public enum DismissDirection {
+    method public static androidx.compose.material3.DismissDirection valueOf(String value) throws java.lang.IllegalArgumentException, java.lang.NullPointerException;
+    method public static androidx.compose.material3.DismissDirection[] values();
+    enum_constant public static final androidx.compose.material3.DismissDirection EndToStart;
+    enum_constant public static final androidx.compose.material3.DismissDirection StartToEnd;
+  }
+
+  @androidx.compose.material3.ExperimentalMaterial3Api public final class DismissState {
+    ctor public DismissState(androidx.compose.material3.DismissValue initialValue, optional kotlin.jvm.functions.Function1<? super androidx.compose.material3.DismissValue,java.lang.Boolean> confirmValueChange, optional kotlin.jvm.functions.Function2<? super androidx.compose.ui.unit.Density,? super java.lang.Float,java.lang.Float> positionalThreshold);
+    method public suspend Object? dismiss(androidx.compose.material3.DismissDirection direction, kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    method public androidx.compose.material3.DismissValue getCurrentValue();
+    method public androidx.compose.material3.DismissDirection? getDismissDirection();
+    method public float getProgress();
+    method public androidx.compose.material3.DismissValue getTargetValue();
+    method public boolean isDismissed(androidx.compose.material3.DismissDirection direction);
+    method public float requireOffset();
+    method public suspend Object? reset(kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    method public suspend Object? snapTo(androidx.compose.material3.DismissValue targetValue, kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    property public final androidx.compose.material3.DismissValue currentValue;
+    property public final androidx.compose.material3.DismissDirection? dismissDirection;
+    property public final float progress;
+    property public final androidx.compose.material3.DismissValue targetValue;
+    field public static final androidx.compose.material3.DismissState.Companion Companion;
+  }
+
+  public static final class DismissState.Companion {
+    method public androidx.compose.runtime.saveable.Saver<androidx.compose.material3.DismissState,androidx.compose.material3.DismissValue> Saver(kotlin.jvm.functions.Function1<? super androidx.compose.material3.DismissValue,java.lang.Boolean> confirmValueChange, kotlin.jvm.functions.Function2<? super androidx.compose.ui.unit.Density,? super java.lang.Float,java.lang.Float> positionalThreshold);
+  }
+
+  @androidx.compose.material3.ExperimentalMaterial3Api public enum DismissValue {
+    method public static androidx.compose.material3.DismissValue valueOf(String value) throws java.lang.IllegalArgumentException, java.lang.NullPointerException;
+    method public static androidx.compose.material3.DismissValue[] values();
+    enum_constant public static final androidx.compose.material3.DismissValue Default;
+    enum_constant public static final androidx.compose.material3.DismissValue DismissedToEnd;
+    enum_constant public static final androidx.compose.material3.DismissValue DismissedToStart;
+  }
+
+  @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class DisplayMode {
+    field public static final androidx.compose.material3.DisplayMode.Companion Companion;
+  }
+
+  public static final class DisplayMode.Companion {
+    method public int getInput();
+    method public int getPicker();
+    property public final int Input;
+    property public final int Picker;
+  }
+
   public final class DividerDefaults {
     method @androidx.compose.runtime.Composable public long getColor();
     method public float getThickness();
@@ -318,6 +510,32 @@
     method @RequiresApi(android.os.Build.VERSION_CODES.S) public static androidx.compose.material3.ColorScheme dynamicLightColorScheme(android.content.Context context);
   }
 
+  @kotlin.RequiresOptIn(message="This material API is experimental and is likely to change or to be removed in" + " the future.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface ExperimentalMaterial3Api {
+  }
+
+  @androidx.compose.material3.ExperimentalMaterial3Api public interface ExposedDropdownMenuBoxScope {
+    method @androidx.compose.runtime.Composable public default void ExposedDropdownMenu(boolean expanded, kotlin.jvm.functions.Function0<kotlin.Unit> onDismissRequest, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.foundation.ScrollState scrollState, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit> content);
+    method public androidx.compose.ui.Modifier exposedDropdownSize(androidx.compose.ui.Modifier, optional boolean matchTextFieldWidth);
+    method public androidx.compose.ui.Modifier menuAnchor(androidx.compose.ui.Modifier);
+  }
+
+  @androidx.compose.material3.ExperimentalMaterial3Api public final class ExposedDropdownMenuDefaults {
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public void TrailingIcon(boolean expanded);
+    method public androidx.compose.foundation.layout.PaddingValues getItemContentPadding();
+    method @Deprecated @androidx.compose.runtime.Composable public androidx.compose.material3.TextFieldColors outlinedTextFieldColors(optional long textColor, optional long disabledTextColor, optional long containerColor, optional long cursorColor, optional long errorCursorColor, optional androidx.compose.foundation.text.selection.TextSelectionColors selectionColors, optional long focusedBorderColor, optional long unfocusedBorderColor, optional long disabledBorderColor, optional long errorBorderColor, optional long focusedLeadingIconColor, optional long unfocusedLeadingIconColor, optional long disabledLeadingIconColor, optional long errorLeadingIconColor, optional long focusedTrailingIconColor, optional long unfocusedTrailingIconColor, optional long disabledTrailingIconColor, optional long errorTrailingIconColor, optional long focusedLabelColor, optional long unfocusedLabelColor, optional long disabledLabelColor, optional long errorLabelColor, optional long placeholderColor, optional long disabledPlaceholderColor);
+    method @Deprecated @androidx.compose.runtime.Composable public androidx.compose.material3.TextFieldColors outlinedTextFieldColors(optional long focusedTextColor, optional long unfocusedTextColor, optional long disabledTextColor, optional long errorTextColor, optional long containerColor, optional long errorContainerColor, optional long cursorColor, optional long errorCursorColor, optional androidx.compose.foundation.text.selection.TextSelectionColors selectionColors, optional long focusedBorderColor, optional long unfocusedBorderColor, optional long disabledBorderColor, optional long errorBorderColor, optional long focusedLeadingIconColor, optional long unfocusedLeadingIconColor, optional long disabledLeadingIconColor, optional long errorLeadingIconColor, optional long focusedTrailingIconColor, optional long unfocusedTrailingIconColor, optional long disabledTrailingIconColor, optional long errorTrailingIconColor, optional long focusedLabelColor, optional long unfocusedLabelColor, optional long disabledLabelColor, optional long errorLabelColor, optional long focusedPlaceholderColor, optional long unfocusedPlaceholderColor, optional long disabledPlaceholderColor, optional long errorPlaceholderColor, optional long focusedPrefixColor, optional long unfocusedPrefixColor, optional long disabledPrefixColor, optional long errorPrefixColor, optional long focusedSuffixColor, optional long unfocusedSuffixColor, optional long disabledSuffixColor, optional long errorSuffixColor);
+    method @androidx.compose.runtime.Composable public androidx.compose.material3.TextFieldColors outlinedTextFieldColors(optional long focusedTextColor, optional long unfocusedTextColor, optional long disabledTextColor, optional long errorTextColor, optional long focusedContainerColor, optional long unfocusedContainerColor, optional long disabledContainerColor, optional long errorContainerColor, optional long cursorColor, optional long errorCursorColor, optional androidx.compose.foundation.text.selection.TextSelectionColors selectionColors, optional long focusedBorderColor, optional long unfocusedBorderColor, optional long disabledBorderColor, optional long errorBorderColor, optional long focusedLeadingIconColor, optional long unfocusedLeadingIconColor, optional long disabledLeadingIconColor, optional long errorLeadingIconColor, optional long focusedTrailingIconColor, optional long unfocusedTrailingIconColor, optional long disabledTrailingIconColor, optional long errorTrailingIconColor, optional long focusedLabelColor, optional long unfocusedLabelColor, optional long disabledLabelColor, optional long errorLabelColor, optional long focusedPlaceholderColor, optional long unfocusedPlaceholderColor, optional long disabledPlaceholderColor, optional long errorPlaceholderColor, optional long focusedPrefixColor, optional long unfocusedPrefixColor, optional long disabledPrefixColor, optional long errorPrefixColor, optional long focusedSuffixColor, optional long unfocusedSuffixColor, optional long disabledSuffixColor, optional long errorSuffixColor);
+    method @Deprecated @androidx.compose.runtime.Composable public androidx.compose.material3.TextFieldColors textFieldColors(optional long textColor, optional long disabledTextColor, optional long containerColor, optional long cursorColor, optional long errorCursorColor, optional androidx.compose.foundation.text.selection.TextSelectionColors selectionColors, optional long focusedIndicatorColor, optional long unfocusedIndicatorColor, optional long disabledIndicatorColor, optional long errorIndicatorColor, optional long focusedLeadingIconColor, optional long unfocusedLeadingIconColor, optional long disabledLeadingIconColor, optional long errorLeadingIconColor, optional long focusedTrailingIconColor, optional long unfocusedTrailingIconColor, optional long disabledTrailingIconColor, optional long errorTrailingIconColor, optional long focusedLabelColor, optional long unfocusedLabelColor, optional long disabledLabelColor, optional long errorLabelColor, optional long placeholderColor, optional long disabledPlaceholderColor);
+    method @Deprecated @androidx.compose.runtime.Composable public androidx.compose.material3.TextFieldColors textFieldColors(optional long focusedTextColor, optional long unfocusedTextColor, optional long disabledTextColor, optional long errorTextColor, optional long containerColor, optional long errorContainerColor, optional long cursorColor, optional long errorCursorColor, optional androidx.compose.foundation.text.selection.TextSelectionColors selectionColors, optional long focusedIndicatorColor, optional long unfocusedIndicatorColor, optional long disabledIndicatorColor, optional long errorIndicatorColor, optional long focusedLeadingIconColor, optional long unfocusedLeadingIconColor, optional long disabledLeadingIconColor, optional long errorLeadingIconColor, optional long focusedTrailingIconColor, optional long unfocusedTrailingIconColor, optional long disabledTrailingIconColor, optional long errorTrailingIconColor, optional long focusedLabelColor, optional long unfocusedLabelColor, optional long disabledLabelColor, optional long errorLabelColor, optional long focusedPlaceholderColor, optional long unfocusedPlaceholderColor, optional long disabledPlaceholderColor, optional long errorPlaceholderColor, optional long focusedPrefixColor, optional long unfocusedPrefixColor, optional long disabledPrefixColor, optional long errorPrefixColor, optional long focusedSuffixColor, optional long unfocusedSuffixColor, optional long disabledSuffixColor, optional long errorSuffixColor);
+    method @androidx.compose.runtime.Composable public androidx.compose.material3.TextFieldColors textFieldColors(optional long focusedTextColor, optional long unfocusedTextColor, optional long disabledTextColor, optional long errorTextColor, optional long focusedContainerColor, optional long unfocusedContainerColor, optional long disabledContainerColor, optional long errorContainerColor, optional long cursorColor, optional long errorCursorColor, optional androidx.compose.foundation.text.selection.TextSelectionColors selectionColors, optional long focusedIndicatorColor, optional long unfocusedIndicatorColor, optional long disabledIndicatorColor, optional long errorIndicatorColor, optional long focusedLeadingIconColor, optional long unfocusedLeadingIconColor, optional long disabledLeadingIconColor, optional long errorLeadingIconColor, optional long focusedTrailingIconColor, optional long unfocusedTrailingIconColor, optional long disabledTrailingIconColor, optional long errorTrailingIconColor, optional long focusedLabelColor, optional long unfocusedLabelColor, optional long disabledLabelColor, optional long errorLabelColor, optional long focusedPlaceholderColor, optional long unfocusedPlaceholderColor, optional long disabledPlaceholderColor, optional long errorPlaceholderColor, optional long focusedPrefixColor, optional long unfocusedPrefixColor, optional long disabledPrefixColor, optional long errorPrefixColor, optional long focusedSuffixColor, optional long unfocusedSuffixColor, optional long disabledSuffixColor, optional long errorSuffixColor);
+    property public final androidx.compose.foundation.layout.PaddingValues ItemContentPadding;
+    field public static final androidx.compose.material3.ExposedDropdownMenuDefaults INSTANCE;
+  }
+
+  public final class ExposedDropdownMenuKt {
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void ExposedDropdownMenuBox(boolean expanded, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit> onExpandedChange, optional androidx.compose.ui.Modifier modifier, kotlin.jvm.functions.Function1<? super androidx.compose.material3.ExposedDropdownMenuBoxScope,kotlin.Unit> content);
+  }
+
   @kotlin.jvm.JvmInline public final value class FabPosition {
     field public static final androidx.compose.material3.FabPosition.Companion Companion;
   }
@@ -329,6 +547,21 @@
     property public final int End;
   }
 
+  @androidx.compose.material3.ExperimentalMaterial3Api public final class FilterChipDefaults {
+    method @androidx.compose.runtime.Composable public androidx.compose.material3.SelectableChipColors elevatedFilterChipColors(optional long containerColor, optional long labelColor, optional long iconColor, optional long disabledContainerColor, optional long disabledLabelColor, optional long disabledLeadingIconColor, optional long disabledTrailingIconColor, optional long selectedContainerColor, optional long disabledSelectedContainerColor, optional long selectedLabelColor, optional long selectedLeadingIconColor, optional long selectedTrailingIconColor);
+    method @androidx.compose.runtime.Composable public androidx.compose.material3.SelectableChipElevation elevatedFilterChipElevation(optional float elevation, optional float pressedElevation, optional float focusedElevation, optional float hoveredElevation, optional float draggedElevation, optional float disabledElevation);
+    method @androidx.compose.runtime.Composable public androidx.compose.material3.SelectableChipBorder filterChipBorder(optional long borderColor, optional long selectedBorderColor, optional long disabledBorderColor, optional long disabledSelectedBorderColor, optional float borderWidth, optional float selectedBorderWidth);
+    method @androidx.compose.runtime.Composable public androidx.compose.material3.SelectableChipColors filterChipColors(optional long containerColor, optional long labelColor, optional long iconColor, optional long disabledContainerColor, optional long disabledLabelColor, optional long disabledLeadingIconColor, optional long disabledTrailingIconColor, optional long selectedContainerColor, optional long disabledSelectedContainerColor, optional long selectedLabelColor, optional long selectedLeadingIconColor, optional long selectedTrailingIconColor);
+    method @androidx.compose.runtime.Composable public androidx.compose.material3.SelectableChipElevation filterChipElevation(optional float elevation, optional float pressedElevation, optional float focusedElevation, optional float hoveredElevation, optional float draggedElevation, optional float disabledElevation);
+    method public float getHeight();
+    method public float getIconSize();
+    method @androidx.compose.runtime.Composable public androidx.compose.ui.graphics.Shape getShape();
+    property public final float Height;
+    property public final float IconSize;
+    property @androidx.compose.runtime.Composable public final androidx.compose.ui.graphics.Shape shape;
+    field public static final androidx.compose.material3.FilterChipDefaults INSTANCE;
+  }
+
   public final class FloatingActionButtonDefaults {
     method public androidx.compose.material3.FloatingActionButtonElevation bottomAppBarFabElevation(optional float defaultElevation, optional float pressedElevation, optional float focusedElevation, optional float hoveredElevation);
     method @androidx.compose.runtime.Composable public androidx.compose.material3.FloatingActionButtonElevation elevation(optional float defaultElevation, optional float pressedElevation, optional float focusedElevation, optional float hoveredElevation);
@@ -400,8 +633,27 @@
   @androidx.compose.runtime.Immutable public final class IconToggleButtonColors {
   }
 
+  @androidx.compose.material3.ExperimentalMaterial3Api public final class InputChipDefaults {
+    method public float getAvatarSize();
+    method public float getHeight();
+    method public float getIconSize();
+    method @androidx.compose.runtime.Composable public androidx.compose.ui.graphics.Shape getShape();
+    method @androidx.compose.runtime.Composable public androidx.compose.material3.SelectableChipBorder inputChipBorder(optional long borderColor, optional long selectedBorderColor, optional long disabledBorderColor, optional long disabledSelectedBorderColor, optional float borderWidth, optional float selectedBorderWidth);
+    method @androidx.compose.runtime.Composable public androidx.compose.material3.SelectableChipColors inputChipColors(optional long containerColor, optional long labelColor, optional long leadingIconColor, optional long trailingIconColor, optional long disabledContainerColor, optional long disabledLabelColor, optional long disabledLeadingIconColor, optional long disabledTrailingIconColor, optional long selectedContainerColor, optional long disabledSelectedContainerColor, optional long selectedLabelColor, optional long selectedLeadingIconColor, optional long selectedTrailingIconColor);
+    method @androidx.compose.runtime.Composable public androidx.compose.material3.SelectableChipElevation inputChipElevation(optional float elevation, optional float pressedElevation, optional float focusedElevation, optional float hoveredElevation, optional float draggedElevation, optional float disabledElevation);
+    property public final float AvatarSize;
+    property public final float Height;
+    property public final float IconSize;
+    property @androidx.compose.runtime.Composable public final androidx.compose.ui.graphics.Shape shape;
+    field public static final androidx.compose.material3.InputChipDefaults INSTANCE;
+  }
+
   public final class InteractiveComponentSizeKt {
+    method @androidx.compose.material3.ExperimentalMaterial3Api public static androidx.compose.runtime.ProvidableCompositionLocal<java.lang.Boolean> getLocalMinimumInteractiveComponentEnforcement();
+    method @Deprecated @androidx.compose.material3.ExperimentalMaterial3Api public static androidx.compose.runtime.ProvidableCompositionLocal<java.lang.Boolean> getLocalMinimumTouchTargetEnforcement();
     method public static androidx.compose.ui.Modifier minimumInteractiveComponentSize(androidx.compose.ui.Modifier);
+    property @androidx.compose.material3.ExperimentalMaterial3Api public static final androidx.compose.runtime.ProvidableCompositionLocal<java.lang.Boolean> LocalMinimumInteractiveComponentEnforcement;
+    property @Deprecated @androidx.compose.material3.ExperimentalMaterial3Api public static final androidx.compose.runtime.ProvidableCompositionLocal<java.lang.Boolean> LocalMinimumTouchTargetEnforcement;
   }
 
   @androidx.compose.runtime.Immutable public final class ListItemColors {
@@ -448,6 +700,11 @@
   @androidx.compose.runtime.Immutable public final class MenuItemColors {
   }
 
+  public final class ModalBottomSheet_androidKt {
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void ModalBottomSheet(kotlin.jvm.functions.Function0<kotlin.Unit> onDismissRequest, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.material3.SheetState sheetState, optional androidx.compose.ui.graphics.Shape shape, optional long containerColor, optional long contentColor, optional float tonalElevation, optional long scrimColor, optional kotlin.jvm.functions.Function0<kotlin.Unit>? dragHandle, optional androidx.compose.foundation.layout.WindowInsets windowInsets, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit> content);
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static androidx.compose.material3.SheetState rememberModalBottomSheetState(optional boolean skipPartiallyExpanded, optional kotlin.jvm.functions.Function1<? super androidx.compose.material3.SheetValue,java.lang.Boolean> confirmValueChange);
+  }
+
   public final class NavigationBarDefaults {
     method @androidx.compose.runtime.Composable public long getContainerColor();
     method public float getElevation();
@@ -520,6 +777,8 @@
   }
 
   @androidx.compose.runtime.Immutable public final class OutlinedTextFieldDefaults {
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public void ContainerBox(boolean enabled, boolean isError, androidx.compose.foundation.interaction.InteractionSource interactionSource, androidx.compose.material3.TextFieldColors colors, optional androidx.compose.ui.graphics.Shape shape, optional float focusedBorderThickness, optional float unfocusedBorderThickness);
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public void DecorationBox(String value, kotlin.jvm.functions.Function0<kotlin.Unit> innerTextField, boolean enabled, boolean singleLine, androidx.compose.ui.text.input.VisualTransformation visualTransformation, androidx.compose.foundation.interaction.InteractionSource interactionSource, optional boolean isError, optional kotlin.jvm.functions.Function0<kotlin.Unit>? label, optional kotlin.jvm.functions.Function0<kotlin.Unit>? placeholder, optional kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? prefix, optional kotlin.jvm.functions.Function0<kotlin.Unit>? suffix, optional kotlin.jvm.functions.Function0<kotlin.Unit>? supportingText, optional androidx.compose.material3.TextFieldColors colors, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional kotlin.jvm.functions.Function0<kotlin.Unit> container);
     method @androidx.compose.runtime.Composable public androidx.compose.material3.TextFieldColors colors(optional long focusedTextColor, optional long unfocusedTextColor, optional long disabledTextColor, optional long errorTextColor, optional long focusedContainerColor, optional long unfocusedContainerColor, optional long disabledContainerColor, optional long errorContainerColor, optional long cursorColor, optional long errorCursorColor, optional androidx.compose.foundation.text.selection.TextSelectionColors selectionColors, optional long focusedBorderColor, optional long unfocusedBorderColor, optional long disabledBorderColor, optional long errorBorderColor, optional long focusedLeadingIconColor, optional long unfocusedLeadingIconColor, optional long disabledLeadingIconColor, optional long errorLeadingIconColor, optional long focusedTrailingIconColor, optional long unfocusedTrailingIconColor, optional long disabledTrailingIconColor, optional long errorTrailingIconColor, optional long focusedLabelColor, optional long unfocusedLabelColor, optional long disabledLabelColor, optional long errorLabelColor, optional long focusedPlaceholderColor, optional long unfocusedPlaceholderColor, optional long disabledPlaceholderColor, optional long errorPlaceholderColor, optional long focusedSupportingTextColor, optional long unfocusedSupportingTextColor, optional long disabledSupportingTextColor, optional long errorSupportingTextColor, optional long focusedPrefixColor, optional long unfocusedPrefixColor, optional long disabledPrefixColor, optional long errorPrefixColor, optional long focusedSuffixColor, optional long unfocusedSuffixColor, optional long disabledSuffixColor, optional long errorSuffixColor);
     method public androidx.compose.foundation.layout.PaddingValues contentPadding(optional float start, optional float top, optional float end, optional float bottom);
     method public float getFocusedBorderThickness();
@@ -536,10 +795,15 @@
   }
 
   public final class OutlinedTextFieldKt {
+    method @Deprecated @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void OutlinedTextField(androidx.compose.ui.text.input.TextFieldValue value, kotlin.jvm.functions.Function1<? super androidx.compose.ui.text.input.TextFieldValue,kotlin.Unit> onValueChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional boolean readOnly, optional androidx.compose.ui.text.TextStyle textStyle, optional kotlin.jvm.functions.Function0<kotlin.Unit>? label, optional kotlin.jvm.functions.Function0<kotlin.Unit>? placeholder, optional kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? supportingText, optional boolean isError, optional androidx.compose.ui.text.input.VisualTransformation visualTransformation, optional androidx.compose.foundation.text.KeyboardOptions keyboardOptions, optional androidx.compose.foundation.text.KeyboardActions keyboardActions, optional boolean singleLine, optional int maxLines, optional int minLines, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.TextFieldColors colors);
     method @androidx.compose.runtime.Composable public static void OutlinedTextField(androidx.compose.ui.text.input.TextFieldValue value, kotlin.jvm.functions.Function1<? super androidx.compose.ui.text.input.TextFieldValue,kotlin.Unit> onValueChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional boolean readOnly, optional androidx.compose.ui.text.TextStyle textStyle, optional kotlin.jvm.functions.Function0<kotlin.Unit>? label, optional kotlin.jvm.functions.Function0<kotlin.Unit>? placeholder, optional kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? prefix, optional kotlin.jvm.functions.Function0<kotlin.Unit>? suffix, optional kotlin.jvm.functions.Function0<kotlin.Unit>? supportingText, optional boolean isError, optional androidx.compose.ui.text.input.VisualTransformation visualTransformation, optional androidx.compose.foundation.text.KeyboardOptions keyboardOptions, optional androidx.compose.foundation.text.KeyboardActions keyboardActions, optional boolean singleLine, optional int maxLines, optional int minLines, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.TextFieldColors colors);
+    method @Deprecated @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void OutlinedTextField(String value, kotlin.jvm.functions.Function1<? super java.lang.String,kotlin.Unit> onValueChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional boolean readOnly, optional androidx.compose.ui.text.TextStyle textStyle, optional kotlin.jvm.functions.Function0<kotlin.Unit>? label, optional kotlin.jvm.functions.Function0<kotlin.Unit>? placeholder, optional kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? supportingText, optional boolean isError, optional androidx.compose.ui.text.input.VisualTransformation visualTransformation, optional androidx.compose.foundation.text.KeyboardOptions keyboardOptions, optional androidx.compose.foundation.text.KeyboardActions keyboardActions, optional boolean singleLine, optional int maxLines, optional int minLines, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.TextFieldColors colors);
     method @androidx.compose.runtime.Composable public static void OutlinedTextField(String value, kotlin.jvm.functions.Function1<? super java.lang.String,kotlin.Unit> onValueChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional boolean readOnly, optional androidx.compose.ui.text.TextStyle textStyle, optional kotlin.jvm.functions.Function0<kotlin.Unit>? label, optional kotlin.jvm.functions.Function0<kotlin.Unit>? placeholder, optional kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? prefix, optional kotlin.jvm.functions.Function0<kotlin.Unit>? suffix, optional kotlin.jvm.functions.Function0<kotlin.Unit>? supportingText, optional boolean isError, optional androidx.compose.ui.text.input.VisualTransformation visualTransformation, optional androidx.compose.foundation.text.KeyboardOptions keyboardOptions, optional androidx.compose.foundation.text.KeyboardActions keyboardActions, optional boolean singleLine, optional int maxLines, optional int minLines, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.TextFieldColors colors);
   }
 
+  @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Stable public interface PlainTooltipState extends androidx.compose.material3.TooltipState {
+  }
+
   public final class ProgressIndicatorDefaults {
     method @androidx.compose.runtime.Composable public long getCircularColor();
     method public int getCircularDeterminateStrokeCap();
@@ -585,6 +849,23 @@
     method @androidx.compose.runtime.Composable public static void RadioButton(boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit>? onClick, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.material3.RadioButtonColors colors, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource);
   }
 
+  @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Immutable @androidx.compose.runtime.Stable public final class RichTooltipColors {
+    ctor public RichTooltipColors(long containerColor, long contentColor, long titleContentColor, long actionContentColor);
+    method public long getActionContentColor();
+    method public long getContainerColor();
+    method public long getContentColor();
+    method public long getTitleContentColor();
+    property public final long actionContentColor;
+    property public final long containerColor;
+    property public final long contentColor;
+    property public final long titleContentColor;
+  }
+
+  @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Stable public interface RichTooltipState extends androidx.compose.material3.TooltipState {
+    method public boolean isPersistent();
+    property public abstract boolean isPersistent;
+  }
+
   public final class ScaffoldDefaults {
     method @androidx.compose.runtime.Composable public androidx.compose.foundation.layout.WindowInsets getContentWindowInsets();
     property @androidx.compose.runtime.Composable public final androidx.compose.foundation.layout.WindowInsets contentWindowInsets;
@@ -595,6 +876,53 @@
     method @androidx.compose.runtime.Composable public static void Scaffold(optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function0<kotlin.Unit> topBar, optional kotlin.jvm.functions.Function0<kotlin.Unit> bottomBar, optional kotlin.jvm.functions.Function0<kotlin.Unit> snackbarHost, optional kotlin.jvm.functions.Function0<kotlin.Unit> floatingActionButton, optional int floatingActionButtonPosition, optional long containerColor, optional long contentColor, optional androidx.compose.foundation.layout.WindowInsets contentWindowInsets, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.PaddingValues,kotlin.Unit> content);
   }
 
+  @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Immutable public final class SearchBarColors {
+    method public long getContainerColor();
+    method public long getDividerColor();
+    method public androidx.compose.material3.TextFieldColors getInputFieldColors();
+    property public final long containerColor;
+    property public final long dividerColor;
+    property public final androidx.compose.material3.TextFieldColors inputFieldColors;
+  }
+
+  @androidx.compose.material3.ExperimentalMaterial3Api public final class SearchBarDefaults {
+    method @androidx.compose.runtime.Composable public androidx.compose.material3.SearchBarColors colors(optional long containerColor, optional long dividerColor, optional androidx.compose.material3.TextFieldColors inputFieldColors);
+    method @androidx.compose.runtime.Composable public androidx.compose.ui.graphics.Shape getDockedShape();
+    method public float getElevation();
+    method @androidx.compose.runtime.Composable public androidx.compose.ui.graphics.Shape getFullScreenShape();
+    method public float getInputFieldHeight();
+    method @androidx.compose.runtime.Composable public androidx.compose.ui.graphics.Shape getInputFieldShape();
+    method @androidx.compose.runtime.Composable public androidx.compose.foundation.layout.WindowInsets getWindowInsets();
+    method @Deprecated @androidx.compose.runtime.Composable public androidx.compose.material3.TextFieldColors inputFieldColors(optional long textColor, optional long disabledTextColor, optional long cursorColor, optional androidx.compose.foundation.text.selection.TextSelectionColors selectionColors, optional long focusedLeadingIconColor, optional long unfocusedLeadingIconColor, optional long disabledLeadingIconColor, optional long focusedTrailingIconColor, optional long unfocusedTrailingIconColor, optional long disabledTrailingIconColor, optional long placeholderColor, optional long disabledPlaceholderColor);
+    method @androidx.compose.runtime.Composable public androidx.compose.material3.TextFieldColors inputFieldColors(optional long focusedTextColor, optional long unfocusedTextColor, optional long disabledTextColor, optional long cursorColor, optional androidx.compose.foundation.text.selection.TextSelectionColors selectionColors, optional long focusedLeadingIconColor, optional long unfocusedLeadingIconColor, optional long disabledLeadingIconColor, optional long focusedTrailingIconColor, optional long unfocusedTrailingIconColor, optional long disabledTrailingIconColor, optional long focusedPlaceholderColor, optional long unfocusedPlaceholderColor, optional long disabledPlaceholderColor);
+    property public final float Elevation;
+    property public final float InputFieldHeight;
+    property @androidx.compose.runtime.Composable public final androidx.compose.ui.graphics.Shape dockedShape;
+    property @androidx.compose.runtime.Composable public final androidx.compose.ui.graphics.Shape fullScreenShape;
+    property @androidx.compose.runtime.Composable public final androidx.compose.ui.graphics.Shape inputFieldShape;
+    property @androidx.compose.runtime.Composable public final androidx.compose.foundation.layout.WindowInsets windowInsets;
+    field public static final androidx.compose.material3.SearchBarDefaults INSTANCE;
+  }
+
+  public final class SearchBarKt {
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void DockedSearchBar(String query, kotlin.jvm.functions.Function1<? super java.lang.String,kotlin.Unit> onQueryChange, kotlin.jvm.functions.Function1<? super java.lang.String,kotlin.Unit> onSearch, boolean active, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit> onActiveChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional kotlin.jvm.functions.Function0<kotlin.Unit>? placeholder, optional kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.SearchBarColors colors, optional float tonalElevation, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit> content);
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void SearchBar(String query, kotlin.jvm.functions.Function1<? super java.lang.String,kotlin.Unit> onQueryChange, kotlin.jvm.functions.Function1<? super java.lang.String,kotlin.Unit> onSearch, boolean active, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit> onActiveChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional kotlin.jvm.functions.Function0<kotlin.Unit>? placeholder, optional kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.SearchBarColors colors, optional float tonalElevation, optional androidx.compose.foundation.layout.WindowInsets windowInsets, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit> content);
+  }
+
+  @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Immutable public final class SelectableChipBorder {
+  }
+
+  @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Immutable public final class SelectableChipColors {
+  }
+
+  @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Immutable public final class SelectableChipElevation {
+  }
+
+  @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Stable public interface SelectableDates {
+    method public default boolean isSelectableDate(long utcTimeMillis);
+    method public default boolean isSelectableYear(int year);
+  }
+
   public final class ShapeDefaults {
     method public androidx.compose.foundation.shape.CornerBasedShape getExtraLarge();
     method public androidx.compose.foundation.shape.CornerBasedShape getExtraSmall();
@@ -624,18 +952,54 @@
     property public final androidx.compose.foundation.shape.CornerBasedShape small;
   }
 
+  @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Stable public final class SheetState {
+    ctor public SheetState(boolean skipPartiallyExpanded, optional androidx.compose.material3.SheetValue initialValue, optional kotlin.jvm.functions.Function1<? super androidx.compose.material3.SheetValue,java.lang.Boolean> confirmValueChange, optional boolean skipHiddenState);
+    method public suspend Object? expand(kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    method public androidx.compose.material3.SheetValue getCurrentValue();
+    method public boolean getHasExpandedState();
+    method public boolean getHasPartiallyExpandedState();
+    method public androidx.compose.material3.SheetValue getTargetValue();
+    method public suspend Object? hide(kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    method public boolean isVisible();
+    method public suspend Object? partialExpand(kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    method public float requireOffset();
+    method public suspend Object? show(kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    property public final androidx.compose.material3.SheetValue currentValue;
+    property public final boolean hasExpandedState;
+    property public final boolean hasPartiallyExpandedState;
+    property public final boolean isVisible;
+    property public final androidx.compose.material3.SheetValue targetValue;
+    field public static final androidx.compose.material3.SheetState.Companion Companion;
+  }
+
+  public static final class SheetState.Companion {
+    method public androidx.compose.runtime.saveable.Saver<androidx.compose.material3.SheetState,androidx.compose.material3.SheetValue> Saver(boolean skipPartiallyExpanded, kotlin.jvm.functions.Function1<? super androidx.compose.material3.SheetValue,java.lang.Boolean> confirmValueChange);
+  }
+
+  @androidx.compose.material3.ExperimentalMaterial3Api public enum SheetValue {
+    method public static androidx.compose.material3.SheetValue valueOf(String value) throws java.lang.IllegalArgumentException, java.lang.NullPointerException;
+    method public static androidx.compose.material3.SheetValue[] values();
+    enum_constant public static final androidx.compose.material3.SheetValue Expanded;
+    enum_constant public static final androidx.compose.material3.SheetValue Hidden;
+    enum_constant public static final androidx.compose.material3.SheetValue PartiallyExpanded;
+  }
+
   @androidx.compose.runtime.Immutable public final class SliderColors {
   }
 
   @androidx.compose.runtime.Stable public final class SliderDefaults {
     method @androidx.compose.runtime.Composable public void Thumb(androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.material3.SliderColors colors, optional boolean enabled, optional long thumbSize);
     method @androidx.compose.runtime.Composable public void Track(androidx.compose.material3.SliderPositions sliderPositions, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.material3.SliderColors colors, optional boolean enabled);
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public void Track(androidx.compose.material3.SliderState sliderState, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.material3.SliderColors colors, optional boolean enabled);
     method @androidx.compose.runtime.Composable public androidx.compose.material3.SliderColors colors(optional long thumbColor, optional long activeTrackColor, optional long activeTickColor, optional long inactiveTrackColor, optional long inactiveTickColor, optional long disabledThumbColor, optional long disabledActiveTrackColor, optional long disabledActiveTickColor, optional long disabledInactiveTrackColor, optional long disabledInactiveTickColor);
     field public static final androidx.compose.material3.SliderDefaults INSTANCE;
   }
 
   public final class SliderKt {
     method @androidx.compose.runtime.Composable public static void RangeSlider(kotlin.ranges.ClosedFloatingPointRange<java.lang.Float> value, kotlin.jvm.functions.Function1<? super kotlin.ranges.ClosedFloatingPointRange<java.lang.Float>,kotlin.Unit> onValueChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional kotlin.ranges.ClosedFloatingPointRange<java.lang.Float> valueRange, optional int steps, optional kotlin.jvm.functions.Function0<kotlin.Unit>? onValueChangeFinished, optional androidx.compose.material3.SliderColors colors);
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void RangeSlider(kotlin.ranges.ClosedFloatingPointRange<java.lang.Float> value, kotlin.jvm.functions.Function1<? super kotlin.ranges.ClosedFloatingPointRange<java.lang.Float>,kotlin.Unit> onValueChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional kotlin.ranges.ClosedFloatingPointRange<java.lang.Float> valueRange, optional kotlin.jvm.functions.Function0<kotlin.Unit>? onValueChangeFinished, optional androidx.compose.material3.SliderColors colors, optional androidx.compose.foundation.interaction.MutableInteractionSource startInteractionSource, optional androidx.compose.foundation.interaction.MutableInteractionSource endInteractionSource, optional kotlin.jvm.functions.Function1<? super androidx.compose.material3.SliderPositions,kotlin.Unit> startThumb, optional kotlin.jvm.functions.Function1<? super androidx.compose.material3.SliderPositions,kotlin.Unit> endThumb, optional kotlin.jvm.functions.Function1<? super androidx.compose.material3.SliderPositions,kotlin.Unit> track, optional int steps);
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void Slider(androidx.compose.material3.SliderState state, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.material3.SliderColors colors, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional kotlin.jvm.functions.Function1<? super androidx.compose.material3.SliderState,kotlin.Unit> thumb, optional kotlin.jvm.functions.Function1<? super androidx.compose.material3.SliderState,kotlin.Unit> track);
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void Slider(float value, kotlin.jvm.functions.Function1<? super java.lang.Float,kotlin.Unit> onValueChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional kotlin.jvm.functions.Function0<kotlin.Unit>? onValueChangeFinished, optional androidx.compose.material3.SliderColors colors, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional int steps, optional kotlin.jvm.functions.Function1<? super androidx.compose.material3.SliderState,kotlin.Unit> thumb, optional kotlin.jvm.functions.Function1<? super androidx.compose.material3.SliderState,kotlin.Unit> track, optional kotlin.ranges.ClosedFloatingPointRange<java.lang.Float> valueRange);
     method @androidx.compose.runtime.Composable public static void Slider(float value, kotlin.jvm.functions.Function1<? super java.lang.Float,kotlin.Unit> onValueChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional kotlin.ranges.ClosedFloatingPointRange<java.lang.Float> valueRange, optional int steps, optional kotlin.jvm.functions.Function0<kotlin.Unit>? onValueChangeFinished, optional androidx.compose.material3.SliderColors colors, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource);
   }
 
@@ -647,6 +1011,20 @@
     property public final float[] tickFractions;
   }
 
+  @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Stable public final class SliderState {
+    ctor public SliderState(optional float initialValue, optional kotlin.jvm.functions.Function1<? super java.lang.Float,kotlin.Unit>? initialOnValueChange, optional int steps, optional kotlin.ranges.ClosedFloatingPointRange<java.lang.Float> valueRange, optional kotlin.jvm.functions.Function0<kotlin.Unit>? onValueChangeFinished);
+    method public kotlin.jvm.functions.Function0<kotlin.Unit>? getOnValueChangeFinished();
+    method public int getSteps();
+    method public float getValue();
+    method public kotlin.ranges.ClosedFloatingPointRange<java.lang.Float> getValueRange();
+    method public void setOnValueChangeFinished(kotlin.jvm.functions.Function0<kotlin.Unit>?);
+    method public void setValue(float);
+    property public final kotlin.jvm.functions.Function0<kotlin.Unit>? onValueChangeFinished;
+    property public final int steps;
+    property public final float value;
+    property public final kotlin.ranges.ClosedFloatingPointRange<java.lang.Float> valueRange;
+  }
+
   @androidx.compose.runtime.Stable public interface SnackbarData {
     method public void dismiss();
     method public androidx.compose.material3.SnackbarVisuals getVisuals();
@@ -737,6 +1115,17 @@
     property public static final androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.ui.unit.Dp> LocalAbsoluteTonalElevation;
   }
 
+  @androidx.compose.material3.ExperimentalMaterial3Api public final class SwipeToDismissDefaults {
+    method public kotlin.jvm.functions.Function2<androidx.compose.ui.unit.Density,java.lang.Float,java.lang.Float> getFixedPositionalThreshold();
+    property public final kotlin.jvm.functions.Function2<androidx.compose.ui.unit.Density,java.lang.Float,java.lang.Float> FixedPositionalThreshold;
+    field public static final androidx.compose.material3.SwipeToDismissDefaults INSTANCE;
+  }
+
+  public final class SwipeToDismissKt {
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void SwipeToDismiss(androidx.compose.material3.DismissState state, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit> background, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit> dismissContent, optional androidx.compose.ui.Modifier modifier, optional java.util.Set<? extends androidx.compose.material3.DismissDirection> directions);
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static androidx.compose.material3.DismissState rememberDismissState(optional androidx.compose.material3.DismissValue initialValue, optional kotlin.jvm.functions.Function1<? super androidx.compose.material3.DismissValue,java.lang.Boolean> confirmValueChange, optional kotlin.jvm.functions.Function2<? super androidx.compose.ui.unit.Density,? super java.lang.Float,java.lang.Float> positionalThreshold);
+  }
+
   @androidx.compose.runtime.Immutable public final class SwitchColors {
   }
 
@@ -789,6 +1178,14 @@
   }
 
   @androidx.compose.runtime.Immutable public final class TextFieldDefaults {
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public void ContainerBox(boolean enabled, boolean isError, androidx.compose.foundation.interaction.InteractionSource interactionSource, androidx.compose.material3.TextFieldColors colors, optional androidx.compose.ui.graphics.Shape shape);
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public void DecorationBox(String value, kotlin.jvm.functions.Function0<kotlin.Unit> innerTextField, boolean enabled, boolean singleLine, androidx.compose.ui.text.input.VisualTransformation visualTransformation, androidx.compose.foundation.interaction.InteractionSource interactionSource, optional boolean isError, optional kotlin.jvm.functions.Function0<kotlin.Unit>? label, optional kotlin.jvm.functions.Function0<kotlin.Unit>? placeholder, optional kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? prefix, optional kotlin.jvm.functions.Function0<kotlin.Unit>? suffix, optional kotlin.jvm.functions.Function0<kotlin.Unit>? supportingText, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.TextFieldColors colors, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional kotlin.jvm.functions.Function0<kotlin.Unit> container);
+    method @Deprecated @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public void FilledContainerBox(boolean enabled, boolean isError, androidx.compose.foundation.interaction.InteractionSource interactionSource, androidx.compose.material3.TextFieldColors colors, optional androidx.compose.ui.graphics.Shape shape);
+    method @Deprecated @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public void OutlinedBorderContainerBox(boolean enabled, boolean isError, androidx.compose.foundation.interaction.InteractionSource interactionSource, androidx.compose.material3.TextFieldColors colors, optional androidx.compose.ui.graphics.Shape shape, optional float focusedBorderThickness, optional float unfocusedBorderThickness);
+    method @Deprecated @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public void OutlinedTextFieldDecorationBox(String value, kotlin.jvm.functions.Function0<kotlin.Unit> innerTextField, boolean enabled, boolean singleLine, androidx.compose.ui.text.input.VisualTransformation visualTransformation, androidx.compose.foundation.interaction.InteractionSource interactionSource, optional boolean isError, optional kotlin.jvm.functions.Function0<kotlin.Unit>? label, optional kotlin.jvm.functions.Function0<kotlin.Unit>? placeholder, optional kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? supportingText, optional androidx.compose.material3.TextFieldColors colors, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional kotlin.jvm.functions.Function0<kotlin.Unit> container);
+    method @Deprecated @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public void OutlinedTextFieldDecorationBox(String value, kotlin.jvm.functions.Function0<kotlin.Unit> innerTextField, boolean enabled, boolean singleLine, androidx.compose.ui.text.input.VisualTransformation visualTransformation, androidx.compose.foundation.interaction.InteractionSource interactionSource, optional boolean isError, optional kotlin.jvm.functions.Function0<kotlin.Unit>? label, optional kotlin.jvm.functions.Function0<kotlin.Unit>? placeholder, optional kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? prefix, optional kotlin.jvm.functions.Function0<kotlin.Unit>? suffix, optional kotlin.jvm.functions.Function0<kotlin.Unit>? supportingText, optional androidx.compose.material3.TextFieldColors colors, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional kotlin.jvm.functions.Function0<kotlin.Unit> container);
+    method @Deprecated @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public void TextFieldDecorationBox(String value, kotlin.jvm.functions.Function0<kotlin.Unit> innerTextField, boolean enabled, boolean singleLine, androidx.compose.ui.text.input.VisualTransformation visualTransformation, androidx.compose.foundation.interaction.InteractionSource interactionSource, optional boolean isError, optional kotlin.jvm.functions.Function0<kotlin.Unit>? label, optional kotlin.jvm.functions.Function0<kotlin.Unit>? placeholder, optional kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? supportingText, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.TextFieldColors colors, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional kotlin.jvm.functions.Function0<kotlin.Unit> container);
+    method @Deprecated @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public void TextFieldDecorationBox(String value, kotlin.jvm.functions.Function0<kotlin.Unit> innerTextField, boolean enabled, boolean singleLine, androidx.compose.ui.text.input.VisualTransformation visualTransformation, androidx.compose.foundation.interaction.InteractionSource interactionSource, optional boolean isError, optional kotlin.jvm.functions.Function0<kotlin.Unit>? label, optional kotlin.jvm.functions.Function0<kotlin.Unit>? placeholder, optional kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? prefix, optional kotlin.jvm.functions.Function0<kotlin.Unit>? suffix, optional kotlin.jvm.functions.Function0<kotlin.Unit>? supportingText, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.TextFieldColors colors, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional kotlin.jvm.functions.Function0<kotlin.Unit> container);
     method @androidx.compose.runtime.Composable public androidx.compose.material3.TextFieldColors colors(optional long focusedTextColor, optional long unfocusedTextColor, optional long disabledTextColor, optional long errorTextColor, optional long focusedContainerColor, optional long unfocusedContainerColor, optional long disabledContainerColor, optional long errorContainerColor, optional long cursorColor, optional long errorCursorColor, optional androidx.compose.foundation.text.selection.TextSelectionColors selectionColors, optional long focusedIndicatorColor, optional long unfocusedIndicatorColor, optional long disabledIndicatorColor, optional long errorIndicatorColor, optional long focusedLeadingIconColor, optional long unfocusedLeadingIconColor, optional long disabledLeadingIconColor, optional long errorLeadingIconColor, optional long focusedTrailingIconColor, optional long unfocusedTrailingIconColor, optional long disabledTrailingIconColor, optional long errorTrailingIconColor, optional long focusedLabelColor, optional long unfocusedLabelColor, optional long disabledLabelColor, optional long errorLabelColor, optional long focusedPlaceholderColor, optional long unfocusedPlaceholderColor, optional long disabledPlaceholderColor, optional long errorPlaceholderColor, optional long focusedSupportingTextColor, optional long unfocusedSupportingTextColor, optional long disabledSupportingTextColor, optional long errorSupportingTextColor, optional long focusedPrefixColor, optional long unfocusedPrefixColor, optional long disabledPrefixColor, optional long errorPrefixColor, optional long focusedSuffixColor, optional long unfocusedSuffixColor, optional long disabledSuffixColor, optional long errorSuffixColor);
     method public androidx.compose.foundation.layout.PaddingValues contentPaddingWithLabel(optional float start, optional float end, optional float top, optional float bottom);
     method public androidx.compose.foundation.layout.PaddingValues contentPaddingWithoutLabel(optional float start, optional float top, optional float end, optional float bottom);
@@ -801,7 +1198,12 @@
     method @androidx.compose.runtime.Composable public androidx.compose.ui.graphics.Shape getShape();
     method @Deprecated public float getUnfocusedBorderThickness();
     method public float getUnfocusedIndicatorThickness();
+    method @androidx.compose.material3.ExperimentalMaterial3Api public androidx.compose.ui.Modifier indicatorLine(androidx.compose.ui.Modifier, boolean enabled, boolean isError, androidx.compose.foundation.interaction.InteractionSource interactionSource, androidx.compose.material3.TextFieldColors colors, optional float focusedIndicatorLineThickness, optional float unfocusedIndicatorLineThickness);
+    method @Deprecated @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public androidx.compose.material3.TextFieldColors outlinedTextFieldColors(optional long textColor, optional long disabledTextColor, optional long containerColor, optional long cursorColor, optional long errorCursorColor, optional androidx.compose.foundation.text.selection.TextSelectionColors selectionColors, optional long focusedBorderColor, optional long unfocusedBorderColor, optional long disabledBorderColor, optional long errorBorderColor, optional long focusedLeadingIconColor, optional long unfocusedLeadingIconColor, optional long disabledLeadingIconColor, optional long errorLeadingIconColor, optional long focusedTrailingIconColor, optional long unfocusedTrailingIconColor, optional long disabledTrailingIconColor, optional long errorTrailingIconColor, optional long focusedLabelColor, optional long unfocusedLabelColor, optional long disabledLabelColor, optional long errorLabelColor, optional long placeholderColor, optional long disabledPlaceholderColor, optional long focusedSupportingTextColor, optional long unfocusedSupportingTextColor, optional long disabledSupportingTextColor, optional long errorSupportingTextColor, optional long focusedPrefixColor, optional long unfocusedPrefixColor, optional long disabledPrefixColor, optional long errorPrefixColor, optional long focusedSuffixColor, optional long unfocusedSuffixColor, optional long disabledSuffixColor, optional long errorSuffixColor);
+    method @Deprecated @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public androidx.compose.material3.TextFieldColors outlinedTextFieldColors(optional long focusedTextColor, optional long unfocusedTextColor, optional long disabledTextColor, optional long errorTextColor, optional long containerColor, optional long errorContainerColor, optional long cursorColor, optional long errorCursorColor, optional androidx.compose.foundation.text.selection.TextSelectionColors selectionColors, optional long focusedBorderColor, optional long unfocusedBorderColor, optional long disabledBorderColor, optional long errorBorderColor, optional long focusedLeadingIconColor, optional long unfocusedLeadingIconColor, optional long disabledLeadingIconColor, optional long errorLeadingIconColor, optional long focusedTrailingIconColor, optional long unfocusedTrailingIconColor, optional long disabledTrailingIconColor, optional long errorTrailingIconColor, optional long focusedLabelColor, optional long unfocusedLabelColor, optional long disabledLabelColor, optional long errorLabelColor, optional long focusedPlaceholderColor, optional long unfocusedPlaceholderColor, optional long disabledPlaceholderColor, optional long errorPlaceholderColor, optional long focusedSupportingTextColor, optional long unfocusedSupportingTextColor, optional long disabledSupportingTextColor, optional long errorSupportingTextColor, optional long focusedPrefixColor, optional long unfocusedPrefixColor, optional long disabledPrefixColor, optional long errorPrefixColor, optional long focusedSuffixColor, optional long unfocusedSuffixColor, optional long disabledSuffixColor, optional long errorSuffixColor);
     method @Deprecated public androidx.compose.foundation.layout.PaddingValues outlinedTextFieldPadding(optional float start, optional float top, optional float end, optional float bottom);
+    method @Deprecated @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public androidx.compose.material3.TextFieldColors textFieldColors(optional long textColor, optional long disabledTextColor, optional long containerColor, optional long cursorColor, optional long errorCursorColor, optional androidx.compose.foundation.text.selection.TextSelectionColors selectionColors, optional long focusedIndicatorColor, optional long unfocusedIndicatorColor, optional long disabledIndicatorColor, optional long errorIndicatorColor, optional long focusedLeadingIconColor, optional long unfocusedLeadingIconColor, optional long disabledLeadingIconColor, optional long errorLeadingIconColor, optional long focusedTrailingIconColor, optional long unfocusedTrailingIconColor, optional long disabledTrailingIconColor, optional long errorTrailingIconColor, optional long focusedLabelColor, optional long unfocusedLabelColor, optional long disabledLabelColor, optional long errorLabelColor, optional long placeholderColor, optional long disabledPlaceholderColor, optional long focusedSupportingTextColor, optional long unfocusedSupportingTextColor, optional long disabledSupportingTextColor, optional long errorSupportingTextColor, optional long focusedPrefixColor, optional long unfocusedPrefixColor, optional long disabledPrefixColor, optional long errorPrefixColor, optional long focusedSuffixColor, optional long unfocusedSuffixColor, optional long disabledSuffixColor, optional long errorSuffixColor);
+    method @Deprecated @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public androidx.compose.material3.TextFieldColors textFieldColors(optional long focusedTextColor, optional long unfocusedTextColor, optional long disabledTextColor, optional long errorTextColor, optional long containerColor, optional long errorContainerColor, optional long cursorColor, optional long errorCursorColor, optional androidx.compose.foundation.text.selection.TextSelectionColors selectionColors, optional long focusedIndicatorColor, optional long unfocusedIndicatorColor, optional long disabledIndicatorColor, optional long errorIndicatorColor, optional long focusedLeadingIconColor, optional long unfocusedLeadingIconColor, optional long disabledLeadingIconColor, optional long errorLeadingIconColor, optional long focusedTrailingIconColor, optional long unfocusedTrailingIconColor, optional long disabledTrailingIconColor, optional long errorTrailingIconColor, optional long focusedLabelColor, optional long unfocusedLabelColor, optional long disabledLabelColor, optional long errorLabelColor, optional long focusedPlaceholderColor, optional long unfocusedPlaceholderColor, optional long disabledPlaceholderColor, optional long errorPlaceholderColor, optional long focusedSupportingTextColor, optional long unfocusedSupportingTextColor, optional long disabledSupportingTextColor, optional long errorSupportingTextColor, optional long focusedPrefixColor, optional long unfocusedPrefixColor, optional long disabledPrefixColor, optional long errorPrefixColor, optional long focusedSuffixColor, optional long unfocusedSuffixColor, optional long disabledSuffixColor, optional long errorSuffixColor);
     method @Deprecated public androidx.compose.foundation.layout.PaddingValues textFieldWithLabelPadding(optional float start, optional float end, optional float top, optional float bottom);
     method @Deprecated public androidx.compose.foundation.layout.PaddingValues textFieldWithoutLabelPadding(optional float start, optional float top, optional float end, optional float bottom);
     property @Deprecated public final float FocusedBorderThickness;
@@ -817,7 +1219,9 @@
   }
 
   public final class TextFieldKt {
+    method @Deprecated @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void TextField(androidx.compose.ui.text.input.TextFieldValue value, kotlin.jvm.functions.Function1<? super androidx.compose.ui.text.input.TextFieldValue,kotlin.Unit> onValueChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional boolean readOnly, optional androidx.compose.ui.text.TextStyle textStyle, optional kotlin.jvm.functions.Function0<kotlin.Unit>? label, optional kotlin.jvm.functions.Function0<kotlin.Unit>? placeholder, optional kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? supportingText, optional boolean isError, optional androidx.compose.ui.text.input.VisualTransformation visualTransformation, optional androidx.compose.foundation.text.KeyboardOptions keyboardOptions, optional androidx.compose.foundation.text.KeyboardActions keyboardActions, optional boolean singleLine, optional int maxLines, optional int minLines, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.TextFieldColors colors);
     method @androidx.compose.runtime.Composable public static void TextField(androidx.compose.ui.text.input.TextFieldValue value, kotlin.jvm.functions.Function1<? super androidx.compose.ui.text.input.TextFieldValue,kotlin.Unit> onValueChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional boolean readOnly, optional androidx.compose.ui.text.TextStyle textStyle, optional kotlin.jvm.functions.Function0<kotlin.Unit>? label, optional kotlin.jvm.functions.Function0<kotlin.Unit>? placeholder, optional kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? prefix, optional kotlin.jvm.functions.Function0<kotlin.Unit>? suffix, optional kotlin.jvm.functions.Function0<kotlin.Unit>? supportingText, optional boolean isError, optional androidx.compose.ui.text.input.VisualTransformation visualTransformation, optional androidx.compose.foundation.text.KeyboardOptions keyboardOptions, optional androidx.compose.foundation.text.KeyboardActions keyboardActions, optional boolean singleLine, optional int maxLines, optional int minLines, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.TextFieldColors colors);
+    method @Deprecated @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void TextField(String value, kotlin.jvm.functions.Function1<? super java.lang.String,kotlin.Unit> onValueChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional boolean readOnly, optional androidx.compose.ui.text.TextStyle textStyle, optional kotlin.jvm.functions.Function0<kotlin.Unit>? label, optional kotlin.jvm.functions.Function0<kotlin.Unit>? placeholder, optional kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? supportingText, optional boolean isError, optional androidx.compose.ui.text.input.VisualTransformation visualTransformation, optional androidx.compose.foundation.text.KeyboardOptions keyboardOptions, optional androidx.compose.foundation.text.KeyboardActions keyboardActions, optional boolean singleLine, optional int maxLines, optional int minLines, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.TextFieldColors colors);
     method @androidx.compose.runtime.Composable public static void TextField(String value, kotlin.jvm.functions.Function1<? super java.lang.String,kotlin.Unit> onValueChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional boolean readOnly, optional androidx.compose.ui.text.TextStyle textStyle, optional kotlin.jvm.functions.Function0<kotlin.Unit>? label, optional kotlin.jvm.functions.Function0<kotlin.Unit>? placeholder, optional kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon, optional kotlin.jvm.functions.Function0<kotlin.Unit>? prefix, optional kotlin.jvm.functions.Function0<kotlin.Unit>? suffix, optional kotlin.jvm.functions.Function0<kotlin.Unit>? supportingText, optional boolean isError, optional androidx.compose.ui.text.input.VisualTransformation visualTransformation, optional androidx.compose.foundation.text.KeyboardOptions keyboardOptions, optional androidx.compose.foundation.text.KeyboardActions keyboardActions, optional boolean singleLine, optional int maxLines, optional int minLines, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.TextFieldColors colors);
   }
 
@@ -831,6 +1235,135 @@
     property public static final androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.ui.text.TextStyle> LocalTextStyle;
   }
 
+  @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Immutable public final class TimePickerColors {
+  }
+
+  @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Stable public final class TimePickerDefaults {
+    method @androidx.compose.runtime.Composable public androidx.compose.material3.TimePickerColors colors(optional long clockDialColor, optional long clockDialSelectedContentColor, optional long clockDialUnselectedContentColor, optional long selectorColor, optional long containerColor, optional long periodSelectorBorderColor, optional long periodSelectorSelectedContainerColor, optional long periodSelectorUnselectedContainerColor, optional long periodSelectorSelectedContentColor, optional long periodSelectorUnselectedContentColor, optional long timeSelectorSelectedContainerColor, optional long timeSelectorUnselectedContainerColor, optional long timeSelectorSelectedContentColor, optional long timeSelectorUnselectedContentColor);
+    method @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public int layoutType();
+    field public static final androidx.compose.material3.TimePickerDefaults INSTANCE;
+  }
+
+  public final class TimePickerKt {
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void TimeInput(androidx.compose.material3.TimePickerState state, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.material3.TimePickerColors colors);
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void TimePicker(androidx.compose.material3.TimePickerState state, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.material3.TimePickerColors colors, optional int layoutType);
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static androidx.compose.material3.TimePickerState rememberTimePickerState(optional int initialHour, optional int initialMinute, optional boolean is24Hour);
+  }
+
+  @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class TimePickerLayoutType {
+    field public static final androidx.compose.material3.TimePickerLayoutType.Companion Companion;
+  }
+
+  public static final class TimePickerLayoutType.Companion {
+    method public int getHorizontal();
+    method public int getVertical();
+    property public final int Horizontal;
+    property public final int Vertical;
+  }
+
+  @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Stable public final class TimePickerState {
+    ctor public TimePickerState(int initialHour, int initialMinute, boolean is24Hour);
+    method public int getHour();
+    method public int getMinute();
+    method public boolean is24hour();
+    method public suspend Object? settle(kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    property public final int hour;
+    property public final boolean is24hour;
+    property public final int minute;
+    field public static final androidx.compose.material3.TimePickerState.Companion Companion;
+  }
+
+  public static final class TimePickerState.Companion {
+    method public androidx.compose.runtime.saveable.Saver<androidx.compose.material3.TimePickerState,?> Saver();
+  }
+
+  @androidx.compose.material3.ExperimentalMaterial3Api public interface TooltipBoxScope {
+    method public androidx.compose.ui.Modifier tooltipTrigger(androidx.compose.ui.Modifier);
+  }
+
+  @androidx.compose.material3.ExperimentalMaterial3Api public final class TooltipDefaults {
+    method public androidx.compose.foundation.MutatorMutex getGlobalMutatorMutex();
+    method @androidx.compose.runtime.Composable public long getPlainTooltipContainerColor();
+    method @androidx.compose.runtime.Composable public androidx.compose.ui.graphics.Shape getPlainTooltipContainerShape();
+    method @androidx.compose.runtime.Composable public long getPlainTooltipContentColor();
+    method @androidx.compose.runtime.Composable public androidx.compose.ui.graphics.Shape getRichTooltipContainerShape();
+    method @androidx.compose.runtime.Composable public androidx.compose.material3.RichTooltipColors richTooltipColors(optional long containerColor, optional long contentColor, optional long titleContentColor, optional long actionContentColor);
+    property public final androidx.compose.foundation.MutatorMutex GlobalMutatorMutex;
+    property @androidx.compose.runtime.Composable public final long plainTooltipContainerColor;
+    property @androidx.compose.runtime.Composable public final androidx.compose.ui.graphics.Shape plainTooltipContainerShape;
+    property @androidx.compose.runtime.Composable public final long plainTooltipContentColor;
+    property @androidx.compose.runtime.Composable public final androidx.compose.ui.graphics.Shape richTooltipContainerShape;
+    field public static final androidx.compose.material3.TooltipDefaults INSTANCE;
+  }
+
+  public final class TooltipKt {
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void PlainTooltipBox(kotlin.jvm.functions.Function0<kotlin.Unit> tooltip, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.material3.PlainTooltipState tooltipState, optional androidx.compose.ui.graphics.Shape shape, optional long containerColor, optional long contentColor, kotlin.jvm.functions.Function1<? super androidx.compose.material3.TooltipBoxScope,kotlin.Unit> content);
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static void RichTooltipBox(kotlin.jvm.functions.Function0<kotlin.Unit> text, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function0<kotlin.Unit>? title, optional kotlin.jvm.functions.Function0<kotlin.Unit>? action, optional androidx.compose.material3.RichTooltipState tooltipState, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material3.RichTooltipColors colors, kotlin.jvm.functions.Function1<? super androidx.compose.material3.TooltipBoxScope,kotlin.Unit> content);
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static androidx.compose.material3.PlainTooltipState rememberPlainTooltipState(optional androidx.compose.foundation.MutatorMutex mutatorMutex);
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public static androidx.compose.material3.RichTooltipState rememberRichTooltipState(boolean isPersistent, optional androidx.compose.foundation.MutatorMutex mutatorMutex);
+  }
+
+  @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Stable public interface TooltipState {
+    method public void dismiss();
+    method public boolean isVisible();
+    method public void onDispose();
+    method public suspend Object? show(kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    property public abstract boolean isVisible;
+  }
+
+  @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Stable public final class TopAppBarColors {
+  }
+
+  @androidx.compose.material3.ExperimentalMaterial3Api public final class TopAppBarDefaults {
+    method @androidx.compose.runtime.Composable public androidx.compose.material3.TopAppBarColors centerAlignedTopAppBarColors(optional long containerColor, optional long scrolledContainerColor, optional long navigationIconContentColor, optional long titleContentColor, optional long actionIconContentColor);
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public androidx.compose.material3.TopAppBarScrollBehavior enterAlwaysScrollBehavior(optional androidx.compose.material3.TopAppBarState state, optional kotlin.jvm.functions.Function0<java.lang.Boolean> canScroll, optional androidx.compose.animation.core.AnimationSpec<java.lang.Float>? snapAnimationSpec, optional androidx.compose.animation.core.DecayAnimationSpec<java.lang.Float>? flingAnimationSpec);
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public androidx.compose.material3.TopAppBarScrollBehavior exitUntilCollapsedScrollBehavior(optional androidx.compose.material3.TopAppBarState state, optional kotlin.jvm.functions.Function0<java.lang.Boolean> canScroll, optional androidx.compose.animation.core.AnimationSpec<java.lang.Float>? snapAnimationSpec, optional androidx.compose.animation.core.DecayAnimationSpec<java.lang.Float>? flingAnimationSpec);
+    method @androidx.compose.runtime.Composable public androidx.compose.foundation.layout.WindowInsets getWindowInsets();
+    method @androidx.compose.runtime.Composable public androidx.compose.material3.TopAppBarColors largeTopAppBarColors(optional long containerColor, optional long scrolledContainerColor, optional long navigationIconContentColor, optional long titleContentColor, optional long actionIconContentColor);
+    method @androidx.compose.runtime.Composable public androidx.compose.material3.TopAppBarColors mediumTopAppBarColors(optional long containerColor, optional long scrolledContainerColor, optional long navigationIconContentColor, optional long titleContentColor, optional long actionIconContentColor);
+    method @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Composable public androidx.compose.material3.TopAppBarScrollBehavior pinnedScrollBehavior(optional androidx.compose.material3.TopAppBarState state, optional kotlin.jvm.functions.Function0<java.lang.Boolean> canScroll);
+    method @Deprecated @androidx.compose.runtime.Composable public androidx.compose.material3.TopAppBarColors smallTopAppBarColors(optional long containerColor, optional long scrolledContainerColor, optional long navigationIconContentColor, optional long titleContentColor, optional long actionIconContentColor);
+    method @androidx.compose.runtime.Composable public androidx.compose.material3.TopAppBarColors topAppBarColors(optional long containerColor, optional long scrolledContainerColor, optional long navigationIconContentColor, optional long titleContentColor, optional long actionIconContentColor);
+    property @androidx.compose.runtime.Composable public final androidx.compose.foundation.layout.WindowInsets windowInsets;
+    field public static final androidx.compose.material3.TopAppBarDefaults INSTANCE;
+  }
+
+  @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Stable public interface TopAppBarScrollBehavior {
+    method public androidx.compose.animation.core.DecayAnimationSpec<java.lang.Float>? getFlingAnimationSpec();
+    method public androidx.compose.ui.input.nestedscroll.NestedScrollConnection getNestedScrollConnection();
+    method public androidx.compose.animation.core.AnimationSpec<java.lang.Float>? getSnapAnimationSpec();
+    method public androidx.compose.material3.TopAppBarState getState();
+    method public boolean isPinned();
+    property public abstract androidx.compose.animation.core.DecayAnimationSpec<java.lang.Float>? flingAnimationSpec;
+    property public abstract boolean isPinned;
+    property public abstract androidx.compose.ui.input.nestedscroll.NestedScrollConnection nestedScrollConnection;
+    property public abstract androidx.compose.animation.core.AnimationSpec<java.lang.Float>? snapAnimationSpec;
+    property public abstract androidx.compose.material3.TopAppBarState state;
+  }
+
+  @androidx.compose.material3.ExperimentalMaterial3Api @androidx.compose.runtime.Stable public final class TopAppBarState {
+    ctor public TopAppBarState(float initialHeightOffsetLimit, float initialHeightOffset, float initialContentOffset);
+    method public float getCollapsedFraction();
+    method public float getContentOffset();
+    method public float getHeightOffset();
+    method public float getHeightOffsetLimit();
+    method public float getOverlappedFraction();
+    method public void setContentOffset(float);
+    method public void setHeightOffset(float);
+    method public void setHeightOffsetLimit(float);
+    property public final float collapsedFraction;
+    property public final float contentOffset;
+    property public final float heightOffset;
+    property public final float heightOffsetLimit;
+    property public final float overlappedFraction;
+    field public static final androidx.compose.material3.TopAppBarState.Companion Companion;
+  }
+
+  public static final class TopAppBarState.Companion {
+    method public androidx.compose.runtime.saveable.Saver<androidx.compose.material3.TopAppBarState,?> getSaver();
+    property public final androidx.compose.runtime.saveable.Saver<androidx.compose.material3.TopAppBarState,?> Saver;
+  }
+
   @androidx.compose.runtime.Immutable public final class Typography {
     ctor public Typography(optional androidx.compose.ui.text.TextStyle displayLarge, optional androidx.compose.ui.text.TextStyle displayMedium, optional androidx.compose.ui.text.TextStyle displaySmall, optional androidx.compose.ui.text.TextStyle headlineLarge, optional androidx.compose.ui.text.TextStyle headlineMedium, optional androidx.compose.ui.text.TextStyle headlineSmall, optional androidx.compose.ui.text.TextStyle titleLarge, optional androidx.compose.ui.text.TextStyle titleMedium, optional androidx.compose.ui.text.TextStyle titleSmall, optional androidx.compose.ui.text.TextStyle bodyLarge, optional androidx.compose.ui.text.TextStyle bodyMedium, optional androidx.compose.ui.text.TextStyle bodySmall, optional androidx.compose.ui.text.TextStyle labelLarge, optional androidx.compose.ui.text.TextStyle labelMedium, optional androidx.compose.ui.text.TextStyle labelSmall);
     method public androidx.compose.material3.Typography copy(optional androidx.compose.ui.text.TextStyle displayLarge, optional androidx.compose.ui.text.TextStyle displayMedium, optional androidx.compose.ui.text.TextStyle displaySmall, optional androidx.compose.ui.text.TextStyle headlineLarge, optional androidx.compose.ui.text.TextStyle headlineMedium, optional androidx.compose.ui.text.TextStyle headlineSmall, optional androidx.compose.ui.text.TextStyle titleLarge, optional androidx.compose.ui.text.TextStyle titleMedium, optional androidx.compose.ui.text.TextStyle titleSmall, optional androidx.compose.ui.text.TextStyle bodyLarge, optional androidx.compose.ui.text.TextStyle bodyMedium, optional androidx.compose.ui.text.TextStyle bodySmall, optional androidx.compose.ui.text.TextStyle labelLarge, optional androidx.compose.ui.text.TextStyle labelMedium, optional androidx.compose.ui.text.TextStyle labelSmall);
diff --git a/compose/material3/material3/samples/src/main/java/androidx/compose/material3/samples/TabSamples.kt b/compose/material3/material3/samples/src/main/java/androidx/compose/material3/samples/TabSamples.kt
index c19a692..4354c59 100644
--- a/compose/material3/material3/samples/src/main/java/androidx/compose/material3/samples/TabSamples.kt
+++ b/compose/material3/material3/samples/src/main/java/androidx/compose/material3/samples/TabSamples.kt
@@ -61,6 +61,7 @@
 import androidx.compose.ui.tooling.preview.Preview
 import androidx.compose.ui.unit.dp
 
+@Preview
 @Composable
 fun PrimaryTabs() {
     var state by remember { mutableStateOf(0) }
@@ -91,6 +92,7 @@
     }
 }
 
+@Preview
 @Composable
 fun SecondaryTabs() {
     var state by remember { mutableStateOf(0) }
@@ -137,6 +139,7 @@
     }
 }
 
+@Preview
 @Composable
 fun IconTabs() {
     var state by remember { mutableStateOf(0) }
@@ -159,6 +162,7 @@
     }
 }
 
+@Preview
 @Composable
 fun TextAndIconTabs() {
     var state by remember { mutableStateOf(0) }
@@ -186,6 +190,7 @@
     }
 }
 
+@Preview
 @Composable
 fun LeadingIconTabs() {
     var state by remember { mutableStateOf(0) }
@@ -213,6 +218,7 @@
     }
 }
 
+@Preview
 @Composable
 fun ScrollingPrimaryTabs() {
     var state by remember { mutableStateOf(0) }
@@ -254,6 +260,7 @@
     }
 }
 
+@Preview
 @Composable
 fun ScrollingSecondaryTabs() {
     var state by remember { mutableStateOf(0) }
@@ -287,6 +294,7 @@
     }
 }
 
+@Preview
 @Composable
 fun ScrollingTextTabs() {
     var state by remember { mutableStateOf(0) }
@@ -412,6 +420,7 @@
     }
 }
 
+@Preview
 @Composable
 fun ScrollingFancyIndicatorContainerTabs() {
     var state by remember { mutableStateOf(0) }
@@ -452,7 +461,6 @@
     }
 }
 
-@Preview
 @Sampled
 @Composable
 fun FancyTab(title: String, onClick: () -> Unit, selected: Boolean) {
@@ -478,7 +486,6 @@
     }
 }
 
-@Preview
 @Sampled
 @Composable
 fun FancyIndicator(color: Color, modifier: Modifier = Modifier) {
@@ -492,7 +499,6 @@
     )
 }
 
-@Preview
 @Sampled
 @Composable
 fun FancyAnimatedIndicator(tabPositions: List<TabPosition>, selectedTabIndex: Int) {
diff --git a/compose/material3/material3/src/androidMain/res/values-af/strings.xml b/compose/material3/material3/src/androidMain/res/values-af/strings.xml
index 52938d3..b0e4ca1 100644
--- a/compose/material3/material3/src/androidMain/res/values-af/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-af/strings.xml
@@ -54,6 +54,7 @@
     <string name="m3c_date_range_picker_day_in_range" msgid="2138321128465719402">"Binne datumreeks"</string>
     <string name="m3c_date_range_input_title" msgid="3148384720560189467">"Voer datums in"</string>
     <string name="m3c_date_range_input_invalid_range_input" msgid="3190049423327661366">"Ongeldige datumreeksinvoer"</string>
+    <string name="m3c_bottom_sheet_pane_title" msgid="3010635850035863127">"Onderste blad"</string>
     <string name="m3c_bottom_sheet_drag_handle_description" msgid="8403354765404029791">"Sleephandvatsel"</string>
     <string name="m3c_bottom_sheet_collapse_description" msgid="2988463736136100848">"Vou onderste blad in"</string>
     <string name="m3c_bottom_sheet_dismiss_description" msgid="1555567894577437024">"Maak onderste blad toe"</string>
diff --git a/compose/material3/material3/src/androidMain/res/values-am/strings.xml b/compose/material3/material3/src/androidMain/res/values-am/strings.xml
index a91d248..31b1eaa1 100644
--- a/compose/material3/material3/src/androidMain/res/values-am/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-am/strings.xml
@@ -54,6 +54,7 @@
     <string name="m3c_date_range_picker_day_in_range" msgid="2138321128465719402">"በክልል ውስጥ"</string>
     <string name="m3c_date_range_input_title" msgid="3148384720560189467">"ቀናትን ያስገቡ"</string>
     <string name="m3c_date_range_input_invalid_range_input" msgid="3190049423327661366">"ልክ ያልሆነ የቀን ክልል ግቤት"</string>
+    <string name="m3c_bottom_sheet_pane_title" msgid="3010635850035863127">"የግርጌ ሉህ"</string>
     <string name="m3c_bottom_sheet_drag_handle_description" msgid="8403354765404029791">"መያዣ ይጎትቱ"</string>
     <string name="m3c_bottom_sheet_collapse_description" msgid="2988463736136100848">"የግርጌ ሉህን ይሰብስቡ"</string>
     <string name="m3c_bottom_sheet_dismiss_description" msgid="1555567894577437024">"የግርጌ ሉህን ያሰናብቱ"</string>
diff --git a/compose/material3/material3/src/androidMain/res/values-ar/strings.xml b/compose/material3/material3/src/androidMain/res/values-ar/strings.xml
index c133e1c5..473b9ee 100644
--- a/compose/material3/material3/src/androidMain/res/values-ar/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-ar/strings.xml
@@ -54,6 +54,8 @@
     <string name="m3c_date_range_picker_day_in_range" msgid="2138321128465719402">"في النطاق"</string>
     <string name="m3c_date_range_input_title" msgid="3148384720560189467">"إدخال التواريخ"</string>
     <string name="m3c_date_range_input_invalid_range_input" msgid="3190049423327661366">"إدخال نطاق زمني غير صالح"</string>
+    <!-- no translation found for m3c_bottom_sheet_pane_title (3010635850035863127) -->
+    <skip />
     <string name="m3c_bottom_sheet_drag_handle_description" msgid="8403354765404029791">"مقبض السحب"</string>
     <string name="m3c_bottom_sheet_collapse_description" msgid="2988463736136100848">"تصغير البطاقة السفلية"</string>
     <string name="m3c_bottom_sheet_dismiss_description" msgid="1555567894577437024">"إغلاق البطاقة السفلية"</string>
diff --git a/compose/material3/material3/src/androidMain/res/values-as/strings.xml b/compose/material3/material3/src/androidMain/res/values-as/strings.xml
index 20cbe7e..8613356 100644
--- a/compose/material3/material3/src/androidMain/res/values-as/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-as/strings.xml
@@ -54,6 +54,8 @@
     <string name="m3c_date_range_picker_day_in_range" msgid="2138321128465719402">"পৰিসৰৰ ভিতৰত আছে"</string>
     <string name="m3c_date_range_input_title" msgid="3148384720560189467">"তাৰিখ দিয়ক"</string>
     <string name="m3c_date_range_input_invalid_range_input" msgid="3190049423327661366">"অমান্য তাৰিখৰ পৰিসৰৰ ইনপুট"</string>
+    <!-- no translation found for m3c_bottom_sheet_pane_title (3010635850035863127) -->
+    <skip />
     <string name="m3c_bottom_sheet_drag_handle_description" msgid="8403354765404029791">"ড্ৰেগ হেণ্ডেল"</string>
     <string name="m3c_bottom_sheet_collapse_description" msgid="2988463736136100848">"তলৰ শ্বীটখন সংকোচন কৰক"</string>
     <string name="m3c_bottom_sheet_dismiss_description" msgid="1555567894577437024">"তলৰ শ্বীটখন অগ্ৰাহ্য কৰক"</string>
diff --git a/compose/material3/material3/src/androidMain/res/values-az/strings.xml b/compose/material3/material3/src/androidMain/res/values-az/strings.xml
index 4d882ac..ffd5a79 100644
--- a/compose/material3/material3/src/androidMain/res/values-az/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-az/strings.xml
@@ -54,6 +54,8 @@
     <string name="m3c_date_range_picker_day_in_range" msgid="2138321128465719402">"Bu aralıqda"</string>
     <string name="m3c_date_range_input_title" msgid="3148384720560189467">"Tarixlər daxil edin"</string>
     <string name="m3c_date_range_input_invalid_range_input" msgid="3190049423327661366">"Yanlış tarix aralığı daxiletməsi"</string>
+    <!-- no translation found for m3c_bottom_sheet_pane_title (3010635850035863127) -->
+    <skip />
     <string name="m3c_bottom_sheet_drag_handle_description" msgid="8403354765404029791">"Dəstəyi çəkin"</string>
     <string name="m3c_bottom_sheet_collapse_description" msgid="2988463736136100848">"Aşağıdakı vərəqi yığcamlaşdırın"</string>
     <string name="m3c_bottom_sheet_dismiss_description" msgid="1555567894577437024">"Aşağıdakı vərəqi rədd edin"</string>
diff --git a/compose/material3/material3/src/androidMain/res/values-b+sr+Latn/strings.xml b/compose/material3/material3/src/androidMain/res/values-b+sr+Latn/strings.xml
index 82602ea..7ef7d38 100644
--- a/compose/material3/material3/src/androidMain/res/values-b+sr+Latn/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-b+sr+Latn/strings.xml
@@ -54,6 +54,7 @@
     <string name="m3c_date_range_picker_day_in_range" msgid="2138321128465719402">"U opsegu"</string>
     <string name="m3c_date_range_input_title" msgid="3148384720560189467">"Unesite datume"</string>
     <string name="m3c_date_range_input_invalid_range_input" msgid="3190049423327661366">"Unos opsega datuma je nevažeći"</string>
+    <string name="m3c_bottom_sheet_pane_title" msgid="3010635850035863127">"Donja tabela"</string>
     <string name="m3c_bottom_sheet_drag_handle_description" msgid="8403354765404029791">"Identifikator za prevlačenje"</string>
     <string name="m3c_bottom_sheet_collapse_description" msgid="2988463736136100848">"Skupite donju tabelu"</string>
     <string name="m3c_bottom_sheet_dismiss_description" msgid="1555567894577437024">"Odbacite donju tabelu"</string>
diff --git a/compose/material3/material3/src/androidMain/res/values-be/strings.xml b/compose/material3/material3/src/androidMain/res/values-be/strings.xml
index bf493db..09ba25c 100644
--- a/compose/material3/material3/src/androidMain/res/values-be/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-be/strings.xml
@@ -54,6 +54,8 @@
     <string name="m3c_date_range_picker_day_in_range" msgid="2138321128465719402">"У межах дыяпазону"</string>
     <string name="m3c_date_range_input_title" msgid="3148384720560189467">"Увядзіце даты"</string>
     <string name="m3c_date_range_input_invalid_range_input" msgid="3190049423327661366">"Уведзены няправільны дыяпазон дат"</string>
+    <!-- no translation found for m3c_bottom_sheet_pane_title (3010635850035863127) -->
+    <skip />
     <string name="m3c_bottom_sheet_drag_handle_description" msgid="8403354765404029791">"Маркер перацягвання"</string>
     <string name="m3c_bottom_sheet_collapse_description" msgid="2988463736136100848">"Згарнуць ніжні аркуш"</string>
     <string name="m3c_bottom_sheet_dismiss_description" msgid="1555567894577437024">"Закрыць ніжні аркуш"</string>
diff --git a/compose/material3/material3/src/androidMain/res/values-bg/strings.xml b/compose/material3/material3/src/androidMain/res/values-bg/strings.xml
index f600a9a..d8ae5c8 100644
--- a/compose/material3/material3/src/androidMain/res/values-bg/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-bg/strings.xml
@@ -54,6 +54,8 @@
     <string name="m3c_date_range_picker_day_in_range" msgid="2138321128465719402">"В диапазона"</string>
     <string name="m3c_date_range_input_title" msgid="3148384720560189467">"Въвеждане на дати"</string>
     <string name="m3c_date_range_input_invalid_range_input" msgid="3190049423327661366">"Въведен е невалиден период от време"</string>
+    <!-- no translation found for m3c_bottom_sheet_pane_title (3010635850035863127) -->
+    <skip />
     <string name="m3c_bottom_sheet_drag_handle_description" msgid="8403354765404029791">"Манипулатор за преместване с плъзгане"</string>
     <string name="m3c_bottom_sheet_collapse_description" msgid="2988463736136100848">"Свиване на долния лист"</string>
     <string name="m3c_bottom_sheet_dismiss_description" msgid="1555567894577437024">"Отхвърляне на долния лист"</string>
diff --git a/compose/material3/material3/src/androidMain/res/values-bn/strings.xml b/compose/material3/material3/src/androidMain/res/values-bn/strings.xml
index 1a04e7f..78b8edb 100644
--- a/compose/material3/material3/src/androidMain/res/values-bn/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-bn/strings.xml
@@ -54,6 +54,8 @@
     <string name="m3c_date_range_picker_day_in_range" msgid="2138321128465719402">"সীমার মধ্যে"</string>
     <string name="m3c_date_range_input_title" msgid="3148384720560189467">"তারিখ লিখুন"</string>
     <string name="m3c_date_range_input_invalid_range_input" msgid="3190049423327661366">"তারিখের ব্যাপ্তি সম্পর্কিত ইনপুট ভুল দেওয়া আছে"</string>
+    <!-- no translation found for m3c_bottom_sheet_pane_title (3010635850035863127) -->
+    <skip />
     <string name="m3c_bottom_sheet_drag_handle_description" msgid="8403354765404029791">"টেনে আনার হ্যান্ডেল"</string>
     <string name="m3c_bottom_sheet_collapse_description" msgid="2988463736136100848">"স্ক্রিনের নিচে অ্যাটাচ করা শিট আড়াল করুন"</string>
     <string name="m3c_bottom_sheet_dismiss_description" msgid="1555567894577437024">"স্ক্রিনের নিচে অ্যাটাচ করা শিট বাতিল করুন"</string>
diff --git a/compose/material3/material3/src/androidMain/res/values-bs/strings.xml b/compose/material3/material3/src/androidMain/res/values-bs/strings.xml
index 584bfe0..1320a85 100644
--- a/compose/material3/material3/src/androidMain/res/values-bs/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-bs/strings.xml
@@ -54,6 +54,7 @@
     <string name="m3c_date_range_picker_day_in_range" msgid="2138321128465719402">"U rasponu"</string>
     <string name="m3c_date_range_input_title" msgid="3148384720560189467">"Unos datuma"</string>
     <string name="m3c_date_range_input_invalid_range_input" msgid="3190049423327661366">"Nevažeći unos raspona datuma"</string>
+    <string name="m3c_bottom_sheet_pane_title" msgid="3010635850035863127">"Donja tabela"</string>
     <string name="m3c_bottom_sheet_drag_handle_description" msgid="8403354765404029791">"Ručica za prevlačenje"</string>
     <string name="m3c_bottom_sheet_collapse_description" msgid="2988463736136100848">"Sužavanje donje tabele"</string>
     <string name="m3c_bottom_sheet_dismiss_description" msgid="1555567894577437024">"Odbacivanje donje tabele"</string>
diff --git a/compose/material3/material3/src/androidMain/res/values-ca/strings.xml b/compose/material3/material3/src/androidMain/res/values-ca/strings.xml
index 982a4b0..c186bcf 100644
--- a/compose/material3/material3/src/androidMain/res/values-ca/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-ca/strings.xml
@@ -54,6 +54,8 @@
     <string name="m3c_date_range_picker_day_in_range" msgid="2138321128465719402">"Dins de l\'interval"</string>
     <string name="m3c_date_range_input_title" msgid="3148384720560189467">"Introdueix les dates"</string>
     <string name="m3c_date_range_input_invalid_range_input" msgid="3190049423327661366">"S\'ha introduït un interval de dates no vàlid"</string>
+    <!-- no translation found for m3c_bottom_sheet_pane_title (3010635850035863127) -->
+    <skip />
     <string name="m3c_bottom_sheet_drag_handle_description" msgid="8403354765404029791">"Ansa per arrossegar"</string>
     <string name="m3c_bottom_sheet_collapse_description" msgid="2988463736136100848">"Replega el full inferior"</string>
     <string name="m3c_bottom_sheet_dismiss_description" msgid="1555567894577437024">"Ignora el full inferior"</string>
diff --git a/compose/material3/material3/src/androidMain/res/values-cs/strings.xml b/compose/material3/material3/src/androidMain/res/values-cs/strings.xml
index 0a3c854..a6d5771 100644
--- a/compose/material3/material3/src/androidMain/res/values-cs/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-cs/strings.xml
@@ -54,6 +54,7 @@
     <string name="m3c_date_range_picker_day_in_range" msgid="2138321128465719402">"V rozsahu"</string>
     <string name="m3c_date_range_input_title" msgid="3148384720560189467">"Zadejte data"</string>
     <string name="m3c_date_range_input_invalid_range_input" msgid="3190049423327661366">"Neplatné období"</string>
+    <string name="m3c_bottom_sheet_pane_title" msgid="3010635850035863127">"Spodní tabulka"</string>
     <string name="m3c_bottom_sheet_drag_handle_description" msgid="8403354765404029791">"Úchyt pro přetažení"</string>
     <string name="m3c_bottom_sheet_collapse_description" msgid="2988463736136100848">"Sbalit spodní tabulku"</string>
     <string name="m3c_bottom_sheet_dismiss_description" msgid="1555567894577437024">"Zavřít spodní tabulku"</string>
diff --git a/compose/material3/material3/src/androidMain/res/values-da/strings.xml b/compose/material3/material3/src/androidMain/res/values-da/strings.xml
index 1acf697..3e5f09c 100644
--- a/compose/material3/material3/src/androidMain/res/values-da/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-da/strings.xml
@@ -54,6 +54,8 @@
     <string name="m3c_date_range_picker_day_in_range" msgid="2138321128465719402">"Inden for de valgte dage"</string>
     <string name="m3c_date_range_input_title" msgid="3148384720560189467">"Angiv datoer"</string>
     <string name="m3c_date_range_input_invalid_range_input" msgid="3190049423327661366">"Det angivne datointerval er ugyldigt"</string>
+    <!-- no translation found for m3c_bottom_sheet_pane_title (3010635850035863127) -->
+    <skip />
     <string name="m3c_bottom_sheet_drag_handle_description" msgid="8403354765404029791">"Håndtag"</string>
     <string name="m3c_bottom_sheet_collapse_description" msgid="2988463736136100848">"Skjul felt i bunden"</string>
     <string name="m3c_bottom_sheet_dismiss_description" msgid="1555567894577437024">"Luk felt i bunden"</string>
diff --git a/compose/material3/material3/src/androidMain/res/values-de/strings.xml b/compose/material3/material3/src/androidMain/res/values-de/strings.xml
index 3cee3b1..fe8f168 100644
--- a/compose/material3/material3/src/androidMain/res/values-de/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-de/strings.xml
@@ -54,6 +54,7 @@
     <string name="m3c_date_range_picker_day_in_range" msgid="2138321128465719402">"Im Zeitraum"</string>
     <string name="m3c_date_range_input_title" msgid="3148384720560189467">"Daten eingeben"</string>
     <string name="m3c_date_range_input_invalid_range_input" msgid="3190049423327661366">"Angegebener Zeitraum ungültig"</string>
+    <string name="m3c_bottom_sheet_pane_title" msgid="3010635850035863127">"Ansicht am unteren Rand"</string>
     <string name="m3c_bottom_sheet_drag_handle_description" msgid="8403354765404029791">"Ziehpunkt"</string>
     <string name="m3c_bottom_sheet_collapse_description" msgid="2988463736136100848">"Ansicht am unteren Rand minimieren"</string>
     <string name="m3c_bottom_sheet_dismiss_description" msgid="1555567894577437024">"Ansicht am unteren Rand schließen"</string>
diff --git a/compose/material3/material3/src/androidMain/res/values-el/strings.xml b/compose/material3/material3/src/androidMain/res/values-el/strings.xml
index bee936e..9376135 100644
--- a/compose/material3/material3/src/androidMain/res/values-el/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-el/strings.xml
@@ -54,6 +54,7 @@
     <string name="m3c_date_range_picker_day_in_range" msgid="2138321128465719402">"Εντός εύρους"</string>
     <string name="m3c_date_range_input_title" msgid="3148384720560189467">"Εισαγωγή ημερομηνιών"</string>
     <string name="m3c_date_range_input_invalid_range_input" msgid="3190049423327661366">"Μη έγκυρη εισαγωγή εύρους ημερομηνιών"</string>
+    <string name="m3c_bottom_sheet_pane_title" msgid="3010635850035863127">"Φύλλο κάτω μέρους"</string>
     <string name="m3c_bottom_sheet_drag_handle_description" msgid="8403354765404029791">"Λαβή μεταφοράς"</string>
     <string name="m3c_bottom_sheet_collapse_description" msgid="2988463736136100848">"Σύμπτυξη φύλλου κάτω μέρους"</string>
     <string name="m3c_bottom_sheet_dismiss_description" msgid="1555567894577437024">"Παράβλεψη φύλλου κάτω μέρους"</string>
diff --git a/compose/material3/material3/src/androidMain/res/values-en-rAU/strings.xml b/compose/material3/material3/src/androidMain/res/values-en-rAU/strings.xml
index f2f7017..bd8c434 100644
--- a/compose/material3/material3/src/androidMain/res/values-en-rAU/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-en-rAU/strings.xml
@@ -54,6 +54,8 @@
     <string name="m3c_date_range_picker_day_in_range" msgid="2138321128465719402">"In range"</string>
     <string name="m3c_date_range_input_title" msgid="3148384720560189467">"Enter dates"</string>
     <string name="m3c_date_range_input_invalid_range_input" msgid="3190049423327661366">"Invalid date range input"</string>
+    <!-- no translation found for m3c_bottom_sheet_pane_title (3010635850035863127) -->
+    <skip />
     <string name="m3c_bottom_sheet_drag_handle_description" msgid="8403354765404029791">"Drag handle"</string>
     <string name="m3c_bottom_sheet_collapse_description" msgid="2988463736136100848">"Collapse bottom sheet"</string>
     <string name="m3c_bottom_sheet_dismiss_description" msgid="1555567894577437024">"Dismiss bottom sheet"</string>
diff --git a/compose/material3/material3/src/androidMain/res/values-en-rCA/strings.xml b/compose/material3/material3/src/androidMain/res/values-en-rCA/strings.xml
index 8914bb2..b16c233 100644
--- a/compose/material3/material3/src/androidMain/res/values-en-rCA/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-en-rCA/strings.xml
@@ -54,6 +54,7 @@
     <string name="m3c_date_range_picker_day_in_range" msgid="2138321128465719402">"In range"</string>
     <string name="m3c_date_range_input_title" msgid="3148384720560189467">"Enter dates"</string>
     <string name="m3c_date_range_input_invalid_range_input" msgid="3190049423327661366">"Invalid date range input"</string>
+    <string name="m3c_bottom_sheet_pane_title" msgid="3010635850035863127">"Bottom Sheet"</string>
     <string name="m3c_bottom_sheet_drag_handle_description" msgid="8403354765404029791">"Drag handle"</string>
     <string name="m3c_bottom_sheet_collapse_description" msgid="2988463736136100848">"Collapse bottom sheet"</string>
     <string name="m3c_bottom_sheet_dismiss_description" msgid="1555567894577437024">"Dismiss bottom sheet"</string>
diff --git a/compose/material3/material3/src/androidMain/res/values-en-rGB/strings.xml b/compose/material3/material3/src/androidMain/res/values-en-rGB/strings.xml
index f2f7017..bd8c434 100644
--- a/compose/material3/material3/src/androidMain/res/values-en-rGB/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-en-rGB/strings.xml
@@ -54,6 +54,8 @@
     <string name="m3c_date_range_picker_day_in_range" msgid="2138321128465719402">"In range"</string>
     <string name="m3c_date_range_input_title" msgid="3148384720560189467">"Enter dates"</string>
     <string name="m3c_date_range_input_invalid_range_input" msgid="3190049423327661366">"Invalid date range input"</string>
+    <!-- no translation found for m3c_bottom_sheet_pane_title (3010635850035863127) -->
+    <skip />
     <string name="m3c_bottom_sheet_drag_handle_description" msgid="8403354765404029791">"Drag handle"</string>
     <string name="m3c_bottom_sheet_collapse_description" msgid="2988463736136100848">"Collapse bottom sheet"</string>
     <string name="m3c_bottom_sheet_dismiss_description" msgid="1555567894577437024">"Dismiss bottom sheet"</string>
diff --git a/compose/material3/material3/src/androidMain/res/values-en-rIN/strings.xml b/compose/material3/material3/src/androidMain/res/values-en-rIN/strings.xml
index f2f7017..bd8c434 100644
--- a/compose/material3/material3/src/androidMain/res/values-en-rIN/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-en-rIN/strings.xml
@@ -54,6 +54,8 @@
     <string name="m3c_date_range_picker_day_in_range" msgid="2138321128465719402">"In range"</string>
     <string name="m3c_date_range_input_title" msgid="3148384720560189467">"Enter dates"</string>
     <string name="m3c_date_range_input_invalid_range_input" msgid="3190049423327661366">"Invalid date range input"</string>
+    <!-- no translation found for m3c_bottom_sheet_pane_title (3010635850035863127) -->
+    <skip />
     <string name="m3c_bottom_sheet_drag_handle_description" msgid="8403354765404029791">"Drag handle"</string>
     <string name="m3c_bottom_sheet_collapse_description" msgid="2988463736136100848">"Collapse bottom sheet"</string>
     <string name="m3c_bottom_sheet_dismiss_description" msgid="1555567894577437024">"Dismiss bottom sheet"</string>
diff --git a/compose/material3/material3/src/androidMain/res/values-en-rXC/strings.xml b/compose/material3/material3/src/androidMain/res/values-en-rXC/strings.xml
index 8713ddb..886a109 100644
--- a/compose/material3/material3/src/androidMain/res/values-en-rXC/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-en-rXC/strings.xml
@@ -54,6 +54,7 @@
     <string name="m3c_date_range_picker_day_in_range" msgid="2138321128465719402">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‏‏‎‏‏‎‏‎‏‏‎‎‏‏‎‏‎‏‏‏‏‎‏‏‏‏‎‎‏‎‏‎‏‏‎‏‏‏‏‎‏‎‎‏‎‏‏‎‎‎‎‎‎‏‏‎‏‎‏‎‎In range‎‏‎‎‏‎"</string>
     <string name="m3c_date_range_input_title" msgid="3148384720560189467">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‏‎‏‏‏‎‏‏‎‎‎‏‎‏‎‎‏‏‏‏‎‎‏‏‏‎‎‎‏‏‏‏‎‏‎‏‎‏‎‎‎‎‎‏‏‏‏‏‎‎‎‎‎‎‎‏‏‎‏‏‎Enter dates‎‏‎‎‏‎"</string>
     <string name="m3c_date_range_input_invalid_range_input" msgid="3190049423327661366">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‏‏‎‎‎‏‎‎‎‏‎‏‎‏‎‏‎‏‎‏‎‎‎‎‏‏‎‎‏‎‎‎‎‏‎‏‎‏‏‎‎‎‏‎‏‎‎‎‏‏‎‏‎‎‏‏‎‏‏‎‎Invalid date range input‎‏‎‎‏‎"</string>
+    <string name="m3c_bottom_sheet_pane_title" msgid="3010635850035863127">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‏‎‎‏‏‏‎‎‎‏‏‏‏‏‏‎‏‏‎‏‎‏‎‏‏‎‏‎‏‏‎‎‎‏‎‏‎‏‏‏‎‎‎‏‏‎‎‏‏‏‏‎‎‏‎‏‎‏‏‏‎Bottom Sheet‎‏‎‎‏‎"</string>
     <string name="m3c_bottom_sheet_drag_handle_description" msgid="8403354765404029791">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‏‎‎‏‎‎‏‏‏‏‎‏‎‏‏‎‏‏‎‏‎‏‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‏‎‎‏‎‎‎‎‏‏‎‏‎‏‏‏‏‏‎Drag handle‎‏‎‎‏‎"</string>
     <string name="m3c_bottom_sheet_collapse_description" msgid="2988463736136100848">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‏‎‎‏‎‏‏‏‏‎‎‏‎‎‏‎‎‏‏‏‏‏‏‎‏‏‏‏‎‎‏‏‏‎‎‎‏‎‎‎‎‏‏‏‎‏‏‎‏‎‏‏‏‏‏‏‎‎‎‎‎Collapse bottom sheet‎‏‎‎‏‎"</string>
     <string name="m3c_bottom_sheet_dismiss_description" msgid="1555567894577437024">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‎‏‎‏‏‎‎‏‎‏‏‎‎‏‏‏‏‏‎‎‏‏‎‎‎‎‏‎‎‎‏‎‎‏‎‎‎‏‎‎‏‎‏‎‎‏‎‏‏‎‎‏‎‏‏‎‎‎‎‎‎Dismiss bottom sheet‎‏‎‎‏‎"</string>
diff --git a/compose/material3/material3/src/androidMain/res/values-es-rUS/strings.xml b/compose/material3/material3/src/androidMain/res/values-es-rUS/strings.xml
index 3ffdcf73..f67e8c2 100644
--- a/compose/material3/material3/src/androidMain/res/values-es-rUS/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-es-rUS/strings.xml
@@ -54,6 +54,7 @@
     <string name="m3c_date_range_picker_day_in_range" msgid="2138321128465719402">"En el rango"</string>
     <string name="m3c_date_range_input_title" msgid="3148384720560189467">"Ingresar fechas"</string>
     <string name="m3c_date_range_input_invalid_range_input" msgid="3190049423327661366">"Se introdujo un período no válido"</string>
+    <string name="m3c_bottom_sheet_pane_title" msgid="3010635850035863127">"Hoja inferior"</string>
     <string name="m3c_bottom_sheet_drag_handle_description" msgid="8403354765404029791">"Controlador de arrastre"</string>
     <string name="m3c_bottom_sheet_collapse_description" msgid="2988463736136100848">"Contraer la hoja inferior"</string>
     <string name="m3c_bottom_sheet_dismiss_description" msgid="1555567894577437024">"Descartar la hoja inferior"</string>
diff --git a/compose/material3/material3/src/androidMain/res/values-es/strings.xml b/compose/material3/material3/src/androidMain/res/values-es/strings.xml
index 659ba0b..212a0c2 100644
--- a/compose/material3/material3/src/androidMain/res/values-es/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-es/strings.xml
@@ -54,6 +54,8 @@
     <string name="m3c_date_range_picker_day_in_range" msgid="2138321128465719402">"Dentro del intervalo"</string>
     <string name="m3c_date_range_input_title" msgid="3148384720560189467">"Introducir fechas"</string>
     <string name="m3c_date_range_input_invalid_range_input" msgid="3190049423327661366">"El intervalo de fechas no es válido"</string>
+    <!-- no translation found for m3c_bottom_sheet_pane_title (3010635850035863127) -->
+    <skip />
     <string name="m3c_bottom_sheet_drag_handle_description" msgid="8403354765404029791">"Controlador de arrastre"</string>
     <string name="m3c_bottom_sheet_collapse_description" msgid="2988463736136100848">"Contrae la hoja inferior"</string>
     <string name="m3c_bottom_sheet_dismiss_description" msgid="1555567894577437024">"Cierra la hoja inferior"</string>
diff --git a/compose/material3/material3/src/androidMain/res/values-et/strings.xml b/compose/material3/material3/src/androidMain/res/values-et/strings.xml
index f283b3d..a3c0edf 100644
--- a/compose/material3/material3/src/androidMain/res/values-et/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-et/strings.xml
@@ -54,6 +54,8 @@
     <string name="m3c_date_range_picker_day_in_range" msgid="2138321128465719402">"Vahemikus"</string>
     <string name="m3c_date_range_input_title" msgid="3148384720560189467">"Sisestage kuupäevad"</string>
     <string name="m3c_date_range_input_invalid_range_input" msgid="3190049423327661366">"Sisestati sobimatu kuupäevavahemik"</string>
+    <!-- no translation found for m3c_bottom_sheet_pane_title (3010635850035863127) -->
+    <skip />
     <string name="m3c_bottom_sheet_drag_handle_description" msgid="8403354765404029791">"Lohistamispide"</string>
     <string name="m3c_bottom_sheet_collapse_description" msgid="2988463736136100848">"Alumise lehe ahendamine"</string>
     <string name="m3c_bottom_sheet_dismiss_description" msgid="1555567894577437024">"Alumisest lehest loobumine"</string>
diff --git a/compose/material3/material3/src/androidMain/res/values-eu/strings.xml b/compose/material3/material3/src/androidMain/res/values-eu/strings.xml
index 4a3ec21..d8e2674 100644
--- a/compose/material3/material3/src/androidMain/res/values-eu/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-eu/strings.xml
@@ -54,6 +54,8 @@
     <string name="m3c_date_range_picker_day_in_range" msgid="2138321128465719402">"Barrutian"</string>
     <string name="m3c_date_range_input_title" msgid="3148384720560189467">"Idatzi datak"</string>
     <string name="m3c_date_range_input_invalid_range_input" msgid="3190049423327661366">"Idatzitako data tarteak ez du balio"</string>
+    <!-- no translation found for m3c_bottom_sheet_pane_title (3010635850035863127) -->
+    <skip />
     <string name="m3c_bottom_sheet_drag_handle_description" msgid="8403354765404029791">"Arrastatzeko kontrol-puntua"</string>
     <string name="m3c_bottom_sheet_collapse_description" msgid="2988463736136100848">"Tolestu pantailaren behealdean ainguratutako orria"</string>
     <string name="m3c_bottom_sheet_dismiss_description" msgid="1555567894577437024">"Baztertu pantailaren behealdean ainguratutako orria"</string>
diff --git a/compose/material3/material3/src/androidMain/res/values-fa/strings.xml b/compose/material3/material3/src/androidMain/res/values-fa/strings.xml
index 0cae189..06c23e3 100644
--- a/compose/material3/material3/src/androidMain/res/values-fa/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-fa/strings.xml
@@ -54,6 +54,7 @@
     <string name="m3c_date_range_picker_day_in_range" msgid="2138321128465719402">"در محدوده"</string>
     <string name="m3c_date_range_input_title" msgid="3148384720560189467">"تاریخ‌ها را وارد کنید"</string>
     <string name="m3c_date_range_input_invalid_range_input" msgid="3190049423327661366">"محدوده تاریخ واردشده نامعتبر است"</string>
+    <string name="m3c_bottom_sheet_pane_title" msgid="3010635850035863127">"برگ زیرین"</string>
     <string name="m3c_bottom_sheet_drag_handle_description" msgid="8403354765404029791">"دستگیره کشاندن"</string>
     <string name="m3c_bottom_sheet_collapse_description" msgid="2988463736136100848">"جمع کردن برگ زیرین"</string>
     <string name="m3c_bottom_sheet_dismiss_description" msgid="1555567894577437024">"بستن برگ زیرین"</string>
diff --git a/compose/material3/material3/src/androidMain/res/values-fi/strings.xml b/compose/material3/material3/src/androidMain/res/values-fi/strings.xml
index 4936890..21bb3d0 100644
--- a/compose/material3/material3/src/androidMain/res/values-fi/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-fi/strings.xml
@@ -54,6 +54,8 @@
     <string name="m3c_date_range_picker_day_in_range" msgid="2138321128465719402">"Valitulla välillä"</string>
     <string name="m3c_date_range_input_title" msgid="3148384720560189467">"Lisää päivämäärät"</string>
     <string name="m3c_date_range_input_invalid_range_input" msgid="3190049423327661366">"Virheellinen ajanjakso"</string>
+    <!-- no translation found for m3c_bottom_sheet_pane_title (3010635850035863127) -->
+    <skip />
     <string name="m3c_bottom_sheet_drag_handle_description" msgid="8403354765404029791">"Vetokahva"</string>
     <string name="m3c_bottom_sheet_collapse_description" msgid="2988463736136100848">"Tiivistä alapaneeli"</string>
     <string name="m3c_bottom_sheet_dismiss_description" msgid="1555567894577437024">"Hylkää alapaneeli"</string>
diff --git a/compose/material3/material3/src/androidMain/res/values-fr-rCA/strings.xml b/compose/material3/material3/src/androidMain/res/values-fr-rCA/strings.xml
index 9f32ba2..cd23d19 100644
--- a/compose/material3/material3/src/androidMain/res/values-fr-rCA/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-fr-rCA/strings.xml
@@ -54,6 +54,7 @@
     <string name="m3c_date_range_picker_day_in_range" msgid="2138321128465719402">"Dans la fourchette"</string>
     <string name="m3c_date_range_input_title" msgid="3148384720560189467">"Entrer les dates"</string>
     <string name="m3c_date_range_input_invalid_range_input" msgid="3190049423327661366">"Entrée de période incorrecte"</string>
+    <string name="m3c_bottom_sheet_pane_title" msgid="3010635850035863127">"Zone de contenu dans le bas de l\'écran"</string>
     <string name="m3c_bottom_sheet_drag_handle_description" msgid="8403354765404029791">"Poignée de déplacement"</string>
     <string name="m3c_bottom_sheet_collapse_description" msgid="2988463736136100848">"Réduire la zone de contenu dans le bas de l\'écran"</string>
     <string name="m3c_bottom_sheet_dismiss_description" msgid="1555567894577437024">"Fermer la zone de contenu dans le bas de l\'écran"</string>
diff --git a/compose/material3/material3/src/androidMain/res/values-fr/strings.xml b/compose/material3/material3/src/androidMain/res/values-fr/strings.xml
index 617abdc..16c33c6 100644
--- a/compose/material3/material3/src/androidMain/res/values-fr/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-fr/strings.xml
@@ -54,6 +54,8 @@
     <string name="m3c_date_range_picker_day_in_range" msgid="2138321128465719402">"Dans la plage"</string>
     <string name="m3c_date_range_input_title" msgid="3148384720560189467">"Saisir des dates"</string>
     <string name="m3c_date_range_input_invalid_range_input" msgid="3190049423327661366">"Plage de dates non valide"</string>
+    <!-- no translation found for m3c_bottom_sheet_pane_title (3010635850035863127) -->
+    <skip />
     <string name="m3c_bottom_sheet_drag_handle_description" msgid="8403354765404029791">"Poignée de déplacement"</string>
     <string name="m3c_bottom_sheet_collapse_description" msgid="2988463736136100848">"Réduire la bottom sheet"</string>
     <string name="m3c_bottom_sheet_dismiss_description" msgid="1555567894577437024">"Fermer la bottom sheet"</string>
diff --git a/compose/material3/material3/src/androidMain/res/values-gl/strings.xml b/compose/material3/material3/src/androidMain/res/values-gl/strings.xml
index d0a13b4..8860bac 100644
--- a/compose/material3/material3/src/androidMain/res/values-gl/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-gl/strings.xml
@@ -54,6 +54,8 @@
     <string name="m3c_date_range_picker_day_in_range" msgid="2138321128465719402">"Dentro do intervalo"</string>
     <string name="m3c_date_range_input_title" msgid="3148384720560189467">"Indica as datas"</string>
     <string name="m3c_date_range_input_invalid_range_input" msgid="3190049423327661366">"Indicouse un intervalo de datas que non é válido"</string>
+    <!-- no translation found for m3c_bottom_sheet_pane_title (3010635850035863127) -->
+    <skip />
     <string name="m3c_bottom_sheet_drag_handle_description" msgid="8403354765404029791">"Controlador de arrastre"</string>
     <string name="m3c_bottom_sheet_collapse_description" msgid="2988463736136100848">"Contrae o panel inferior"</string>
     <string name="m3c_bottom_sheet_dismiss_description" msgid="1555567894577437024">"Pecha o panel inferior"</string>
diff --git a/compose/material3/material3/src/androidMain/res/values-gu/strings.xml b/compose/material3/material3/src/androidMain/res/values-gu/strings.xml
index cacb9c4..9017ea3 100644
--- a/compose/material3/material3/src/androidMain/res/values-gu/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-gu/strings.xml
@@ -54,6 +54,8 @@
     <string name="m3c_date_range_picker_day_in_range" msgid="2138321128465719402">"રેન્જમાં છે"</string>
     <string name="m3c_date_range_input_title" msgid="3148384720560189467">"તારીખો દાખલ કરો"</string>
     <string name="m3c_date_range_input_invalid_range_input" msgid="3190049423327661366">"તારીખની શ્રેણીનું અમાન્ય ઇનપુટ"</string>
+    <!-- no translation found for m3c_bottom_sheet_pane_title (3010635850035863127) -->
+    <skip />
     <string name="m3c_bottom_sheet_drag_handle_description" msgid="8403354765404029791">"ઑબ્જેક્ટ ખેંચવાનું હૅન્ડલ"</string>
     <string name="m3c_bottom_sheet_collapse_description" msgid="2988463736136100848">"બોટમ શીટ નાની કરો"</string>
     <string name="m3c_bottom_sheet_dismiss_description" msgid="1555567894577437024">"બોટમ શીટ છોડી દો"</string>
diff --git a/compose/material3/material3/src/androidMain/res/values-hi/strings.xml b/compose/material3/material3/src/androidMain/res/values-hi/strings.xml
index 3973f98..f6fd433 100644
--- a/compose/material3/material3/src/androidMain/res/values-hi/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-hi/strings.xml
@@ -54,6 +54,7 @@
     <string name="m3c_date_range_picker_day_in_range" msgid="2138321128465719402">"रेंज में"</string>
     <string name="m3c_date_range_input_title" msgid="3148384720560189467">"तारीखें डालें"</string>
     <string name="m3c_date_range_input_invalid_range_input" msgid="3190049423327661366">"तारीख की दी गई सीमा गलत है"</string>
+    <string name="m3c_bottom_sheet_pane_title" msgid="3010635850035863127">"बॉटम शीट"</string>
     <string name="m3c_bottom_sheet_drag_handle_description" msgid="8403354765404029791">"खींचकर छोड़ने वाला हैंडल"</string>
     <string name="m3c_bottom_sheet_collapse_description" msgid="2988463736136100848">"बॉटम शीट को छोटा करें"</string>
     <string name="m3c_bottom_sheet_dismiss_description" msgid="1555567894577437024">"बॉटम शीट को खारिज करें"</string>
diff --git a/compose/material3/material3/src/androidMain/res/values-hr/strings.xml b/compose/material3/material3/src/androidMain/res/values-hr/strings.xml
index 70dab0f..5de60b1 100644
--- a/compose/material3/material3/src/androidMain/res/values-hr/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-hr/strings.xml
@@ -54,6 +54,7 @@
     <string name="m3c_date_range_picker_day_in_range" msgid="2138321128465719402">"U dometu"</string>
     <string name="m3c_date_range_input_title" msgid="3148384720560189467">"Unos datuma"</string>
     <string name="m3c_date_range_input_invalid_range_input" msgid="3190049423327661366">"Unos datumskog raspona nije važeći"</string>
+    <string name="m3c_bottom_sheet_pane_title" msgid="3010635850035863127">"Donja tablica"</string>
     <string name="m3c_bottom_sheet_drag_handle_description" msgid="8403354765404029791">"Marker za povlačenje"</string>
     <string name="m3c_bottom_sheet_collapse_description" msgid="2988463736136100848">"Sažimanje donje tablice"</string>
     <string name="m3c_bottom_sheet_dismiss_description" msgid="1555567894577437024">"Odbacivanje donje tablice"</string>
diff --git a/compose/material3/material3/src/androidMain/res/values-hu/strings.xml b/compose/material3/material3/src/androidMain/res/values-hu/strings.xml
index 7808ce8..bc7af67 100644
--- a/compose/material3/material3/src/androidMain/res/values-hu/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-hu/strings.xml
@@ -54,6 +54,8 @@
     <string name="m3c_date_range_picker_day_in_range" msgid="2138321128465719402">"Tartományon belül"</string>
     <string name="m3c_date_range_input_title" msgid="3148384720560189467">"Dátumok megadása"</string>
     <string name="m3c_date_range_input_invalid_range_input" msgid="3190049423327661366">"Érvénytelen a megadott dátumtartomány"</string>
+    <!-- no translation found for m3c_bottom_sheet_pane_title (3010635850035863127) -->
+    <skip />
     <string name="m3c_bottom_sheet_drag_handle_description" msgid="8403354765404029791">"Fogópont"</string>
     <string name="m3c_bottom_sheet_collapse_description" msgid="2988463736136100848">"Az alsó lap összecsukása"</string>
     <string name="m3c_bottom_sheet_dismiss_description" msgid="1555567894577437024">"Az alsó lap elvetése"</string>
diff --git a/compose/material3/material3/src/androidMain/res/values-hy/strings.xml b/compose/material3/material3/src/androidMain/res/values-hy/strings.xml
index f50f0f3..087a7a9 100644
--- a/compose/material3/material3/src/androidMain/res/values-hy/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-hy/strings.xml
@@ -54,6 +54,8 @@
     <string name="m3c_date_range_picker_day_in_range" msgid="2138321128465719402">"Միջակայքում"</string>
     <string name="m3c_date_range_input_title" msgid="3148384720560189467">"Մուտքագրեք ամսաթվերը"</string>
     <string name="m3c_date_range_input_invalid_range_input" msgid="3190049423327661366">"Մուտքագրված ամսաթվերի միջակայքն անվավեր է"</string>
+    <!-- no translation found for m3c_bottom_sheet_pane_title (3010635850035863127) -->
+    <skip />
     <string name="m3c_bottom_sheet_drag_handle_description" msgid="8403354765404029791">"Տեղափոխման նշիչ"</string>
     <string name="m3c_bottom_sheet_collapse_description" msgid="2988463736136100848">"Ծալել ներքևի էկրանը"</string>
     <string name="m3c_bottom_sheet_dismiss_description" msgid="1555567894577437024">"Փակել ներքևի էկրանը"</string>
diff --git a/compose/material3/material3/src/androidMain/res/values-in/strings.xml b/compose/material3/material3/src/androidMain/res/values-in/strings.xml
index 1622117..283a4ff 100644
--- a/compose/material3/material3/src/androidMain/res/values-in/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-in/strings.xml
@@ -54,6 +54,8 @@
     <string name="m3c_date_range_picker_day_in_range" msgid="2138321128465719402">"Dalam rentang"</string>
     <string name="m3c_date_range_input_title" msgid="3148384720560189467">"Masukkan tanggal"</string>
     <string name="m3c_date_range_input_invalid_range_input" msgid="3190049423327661366">"Input rentang tanggal tidak valid"</string>
+    <!-- no translation found for m3c_bottom_sheet_pane_title (3010635850035863127) -->
+    <skip />
     <string name="m3c_bottom_sheet_drag_handle_description" msgid="8403354765404029791">"Handel geser"</string>
     <string name="m3c_bottom_sheet_collapse_description" msgid="2988463736136100848">"Menciutkan sheet bawah"</string>
     <string name="m3c_bottom_sheet_dismiss_description" msgid="1555567894577437024">"Menutup sheet bawah"</string>
diff --git a/compose/material3/material3/src/androidMain/res/values-is/strings.xml b/compose/material3/material3/src/androidMain/res/values-is/strings.xml
index 5dcf9b3..64a4e58 100644
--- a/compose/material3/material3/src/androidMain/res/values-is/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-is/strings.xml
@@ -54,6 +54,8 @@
     <string name="m3c_date_range_picker_day_in_range" msgid="2138321128465719402">"Innan tímabils"</string>
     <string name="m3c_date_range_input_title" msgid="3148384720560189467">"Slá inn dagsetningar"</string>
     <string name="m3c_date_range_input_invalid_range_input" msgid="3190049423327661366">"Ógilt tímabil fært inn"</string>
+    <!-- no translation found for m3c_bottom_sheet_pane_title (3010635850035863127) -->
+    <skip />
     <string name="m3c_bottom_sheet_drag_handle_description" msgid="8403354765404029791">"Dragkló"</string>
     <string name="m3c_bottom_sheet_collapse_description" msgid="2988463736136100848">"Minnka blað neðst"</string>
     <string name="m3c_bottom_sheet_dismiss_description" msgid="1555567894577437024">"Hunsa blað neðst"</string>
diff --git a/compose/material3/material3/src/androidMain/res/values-it/strings.xml b/compose/material3/material3/src/androidMain/res/values-it/strings.xml
index 62375a6..65fe980 100644
--- a/compose/material3/material3/src/androidMain/res/values-it/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-it/strings.xml
@@ -54,6 +54,7 @@
     <string name="m3c_date_range_picker_day_in_range" msgid="2138321128465719402">"Nell\'intervallo"</string>
     <string name="m3c_date_range_input_title" msgid="3148384720560189467">"Inserisci date"</string>
     <string name="m3c_date_range_input_invalid_range_input" msgid="3190049423327661366">"Intervallo di date inserito non valido"</string>
+    <string name="m3c_bottom_sheet_pane_title" msgid="3010635850035863127">"Riquadro inferiore"</string>
     <string name="m3c_bottom_sheet_drag_handle_description" msgid="8403354765404029791">"Punto di trascinamento"</string>
     <string name="m3c_bottom_sheet_collapse_description" msgid="2988463736136100848">"Comprimi il riquadro inferiore"</string>
     <string name="m3c_bottom_sheet_dismiss_description" msgid="1555567894577437024">"Chiudi il riquadro inferiore"</string>
diff --git a/compose/material3/material3/src/androidMain/res/values-iw/strings.xml b/compose/material3/material3/src/androidMain/res/values-iw/strings.xml
index fe7d309..a0094ca 100644
--- a/compose/material3/material3/src/androidMain/res/values-iw/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-iw/strings.xml
@@ -54,6 +54,7 @@
     <string name="m3c_date_range_picker_day_in_range" msgid="2138321128465719402">"בטווח"</string>
     <string name="m3c_date_range_input_title" msgid="3148384720560189467">"הזנת תאריכים"</string>
     <string name="m3c_date_range_input_invalid_range_input" msgid="3190049423327661366">"קלט טווח תאריכים לא חוקי"</string>
+    <string name="m3c_bottom_sheet_pane_title" msgid="3010635850035863127">"גיליון תחתון"</string>
     <string name="m3c_bottom_sheet_drag_handle_description" msgid="8403354765404029791">"נקודת אחיזה לגרירה"</string>
     <string name="m3c_bottom_sheet_collapse_description" msgid="2988463736136100848">"כיווץ הגיליון התחתון"</string>
     <string name="m3c_bottom_sheet_dismiss_description" msgid="1555567894577437024">"סגירת הגיליון התחתון"</string>
diff --git a/compose/material3/material3/src/androidMain/res/values-ja/strings.xml b/compose/material3/material3/src/androidMain/res/values-ja/strings.xml
index c624ebe..de8aa47 100644
--- a/compose/material3/material3/src/androidMain/res/values-ja/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-ja/strings.xml
@@ -54,6 +54,7 @@
     <string name="m3c_date_range_picker_day_in_range" msgid="2138321128465719402">"範囲内"</string>
     <string name="m3c_date_range_input_title" msgid="3148384720560189467">"日付の入力"</string>
     <string name="m3c_date_range_input_invalid_range_input" msgid="3190049423327661366">"入力された期間は無効です"</string>
+    <string name="m3c_bottom_sheet_pane_title" msgid="3010635850035863127">"ボトムシート"</string>
     <string name="m3c_bottom_sheet_drag_handle_description" msgid="8403354765404029791">"ドラッグ ハンドル"</string>
     <string name="m3c_bottom_sheet_collapse_description" msgid="2988463736136100848">"ボトムシートを折りたたみます"</string>
     <string name="m3c_bottom_sheet_dismiss_description" msgid="1555567894577437024">"ボトムシートを閉じます"</string>
diff --git a/compose/material3/material3/src/androidMain/res/values-ka/strings.xml b/compose/material3/material3/src/androidMain/res/values-ka/strings.xml
index 132e1f9..a214c6d 100644
--- a/compose/material3/material3/src/androidMain/res/values-ka/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-ka/strings.xml
@@ -54,6 +54,7 @@
     <string name="m3c_date_range_picker_day_in_range" msgid="2138321128465719402">"არეალშია"</string>
     <string name="m3c_date_range_input_title" msgid="3148384720560189467">"თარიღების შეყვანა"</string>
     <string name="m3c_date_range_input_invalid_range_input" msgid="3190049423327661366">"შეყვანილია თარიღების არასწორი დიაპაზონი"</string>
+    <string name="m3c_bottom_sheet_pane_title" msgid="3010635850035863127">"ქვედა ფურცელი"</string>
     <string name="m3c_bottom_sheet_drag_handle_description" msgid="8403354765404029791">"სახელური ჩავლებისთვის"</string>
     <string name="m3c_bottom_sheet_collapse_description" msgid="2988463736136100848">"ქვედა ფურცლის ჩაკეცვა"</string>
     <string name="m3c_bottom_sheet_dismiss_description" msgid="1555567894577437024">"ქვედა ფურცლის უარყოფა"</string>
diff --git a/compose/material3/material3/src/androidMain/res/values-kk/strings.xml b/compose/material3/material3/src/androidMain/res/values-kk/strings.xml
index e208383..4434953 100644
--- a/compose/material3/material3/src/androidMain/res/values-kk/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-kk/strings.xml
@@ -54,6 +54,8 @@
     <string name="m3c_date_range_picker_day_in_range" msgid="2138321128465719402">"Күндер аралығында"</string>
     <string name="m3c_date_range_input_title" msgid="3148384720560189467">"Күндерді енгізіңіз"</string>
     <string name="m3c_date_range_input_invalid_range_input" msgid="3190049423327661366">"Жарамсыз күндер аралығы енгізілген."</string>
+    <!-- no translation found for m3c_bottom_sheet_pane_title (3010635850035863127) -->
+    <skip />
     <string name="m3c_bottom_sheet_drag_handle_description" msgid="8403354765404029791">"Сүйрейтін тетік"</string>
     <string name="m3c_bottom_sheet_collapse_description" msgid="2988463736136100848">"Төменгі парақшаны жию"</string>
     <string name="m3c_bottom_sheet_dismiss_description" msgid="1555567894577437024">"Төменгі парақшаны жабу"</string>
diff --git a/compose/material3/material3/src/androidMain/res/values-km/strings.xml b/compose/material3/material3/src/androidMain/res/values-km/strings.xml
index 0e6572c..8b9ff91 100644
--- a/compose/material3/material3/src/androidMain/res/values-km/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-km/strings.xml
@@ -54,6 +54,7 @@
     <string name="m3c_date_range_picker_day_in_range" msgid="2138321128465719402">"ក្នុងចន្លោះ"</string>
     <string name="m3c_date_range_input_title" msgid="3148384720560189467">"បញ្ចូល​កាលបរិច្ឆេទ"</string>
     <string name="m3c_date_range_input_invalid_range_input" msgid="3190049423327661366">"ការបញ្ចូលចន្លោះកាលបរិច្ឆេទមិនត្រឹមត្រូវ"</string>
+    <string name="m3c_bottom_sheet_pane_title" msgid="3010635850035863127">"សន្លឹក​ខាងក្រោម"</string>
     <string name="m3c_bottom_sheet_drag_handle_description" msgid="8403354765404029791">"ដង​អូស"</string>
     <string name="m3c_bottom_sheet_collapse_description" msgid="2988463736136100848">"បង្រួម​សន្លឹកខាងក្រោម"</string>
     <string name="m3c_bottom_sheet_dismiss_description" msgid="1555567894577437024">"ច្រានចោល​សន្លឹកខាងក្រោម"</string>
diff --git a/compose/material3/material3/src/androidMain/res/values-kn/strings.xml b/compose/material3/material3/src/androidMain/res/values-kn/strings.xml
index dfb622b..14ef000 100644
--- a/compose/material3/material3/src/androidMain/res/values-kn/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-kn/strings.xml
@@ -54,6 +54,8 @@
     <string name="m3c_date_range_picker_day_in_range" msgid="2138321128465719402">"ವ್ಯಾಪ್ತಿಯಲ್ಲಿದೆ"</string>
     <string name="m3c_date_range_input_title" msgid="3148384720560189467">"ದಿನಾಂಕಗಳನ್ನು ನಮೂದಿಸಿ"</string>
     <string name="m3c_date_range_input_invalid_range_input" msgid="3190049423327661366">"ದಿನಾಂಕ ವ್ಯಾಪ್ತಿಯ ಇನ್‌ಪುಟ್ ಅಮಾನ್ಯವಾಗಿದೆ"</string>
+    <!-- no translation found for m3c_bottom_sheet_pane_title (3010635850035863127) -->
+    <skip />
     <string name="m3c_bottom_sheet_drag_handle_description" msgid="8403354765404029791">"ಹ್ಯಾಂಡಲ್ ಡ್ರ್ಯಾಗ್ ಮಾಡಿ"</string>
     <string name="m3c_bottom_sheet_collapse_description" msgid="2988463736136100848">"ಕೆಳಭಾಗದ ಶೀಟ್ ಅನ್ನು ಕುಗ್ಗಿಸಿ"</string>
     <string name="m3c_bottom_sheet_dismiss_description" msgid="1555567894577437024">"ಕೆಳಭಾಗದ ಶೀಟ್ ಅನ್ನು ವಜಾಗೊಳಿಸಿ"</string>
diff --git a/compose/material3/material3/src/androidMain/res/values-ko/strings.xml b/compose/material3/material3/src/androidMain/res/values-ko/strings.xml
index fb57d2d..1e40372 100644
--- a/compose/material3/material3/src/androidMain/res/values-ko/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-ko/strings.xml
@@ -54,6 +54,8 @@
     <string name="m3c_date_range_picker_day_in_range" msgid="2138321128465719402">"범위 내"</string>
     <string name="m3c_date_range_input_title" msgid="3148384720560189467">"날짜 입력"</string>
     <string name="m3c_date_range_input_invalid_range_input" msgid="3190049423327661366">"잘못된 기간 입력"</string>
+    <!-- no translation found for m3c_bottom_sheet_pane_title (3010635850035863127) -->
+    <skip />
     <string name="m3c_bottom_sheet_drag_handle_description" msgid="8403354765404029791">"드래그 핸들"</string>
     <string name="m3c_bottom_sheet_collapse_description" msgid="2988463736136100848">"하단 시트 접기"</string>
     <string name="m3c_bottom_sheet_dismiss_description" msgid="1555567894577437024">"하단 시트 닫기"</string>
diff --git a/compose/material3/material3/src/androidMain/res/values-ky/strings.xml b/compose/material3/material3/src/androidMain/res/values-ky/strings.xml
index 849a323..11f4e20 100644
--- a/compose/material3/material3/src/androidMain/res/values-ky/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-ky/strings.xml
@@ -54,6 +54,8 @@
     <string name="m3c_date_range_picker_day_in_range" msgid="2138321128465719402">"Төмөнкү убакыт аралыгындагы күн"</string>
     <string name="m3c_date_range_input_title" msgid="3148384720560189467">"Күндөрдү киргизүү"</string>
     <string name="m3c_date_range_input_invalid_range_input" msgid="3190049423327661366">"Даталар диапазону туура эмес тандалды"</string>
+    <!-- no translation found for m3c_bottom_sheet_pane_title (3010635850035863127) -->
+    <skip />
     <string name="m3c_bottom_sheet_drag_handle_description" msgid="8403354765404029791">"Сүйрөө маркери"</string>
     <string name="m3c_bottom_sheet_collapse_description" msgid="2988463736136100848">"Ылдыйкы экранды жыйыштыруу"</string>
     <string name="m3c_bottom_sheet_dismiss_description" msgid="1555567894577437024">"Ылдыйкы экранды жабуу"</string>
diff --git a/compose/material3/material3/src/androidMain/res/values-lo/strings.xml b/compose/material3/material3/src/androidMain/res/values-lo/strings.xml
index f4f11a3..09bd945 100644
--- a/compose/material3/material3/src/androidMain/res/values-lo/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-lo/strings.xml
@@ -54,6 +54,7 @@
     <string name="m3c_date_range_picker_day_in_range" msgid="2138321128465719402">"ຢູ່ໃນໄລຍະວັນທີທີ່ເລືອກ"</string>
     <string name="m3c_date_range_input_title" msgid="3148384720560189467">"ໃສ່ວັນທີ"</string>
     <string name="m3c_date_range_input_invalid_range_input" msgid="3190049423327661366">"ອິນພຸດໄລຍະວັນທີບໍ່ຖືກຕ້ອງ"</string>
+    <string name="m3c_bottom_sheet_pane_title" msgid="3010635850035863127">"ຊີດລຸ່ມສຸດ"</string>
     <string name="m3c_bottom_sheet_drag_handle_description" msgid="8403354765404029791">"ບ່ອນຈັບລາກ"</string>
     <string name="m3c_bottom_sheet_collapse_description" msgid="2988463736136100848">"ຫຍໍ້ຊີດລຸ່ມສຸດລົງ"</string>
     <string name="m3c_bottom_sheet_dismiss_description" msgid="1555567894577437024">"ປິດຊີດລຸ່ມສຸດໄວ້"</string>
diff --git a/compose/material3/material3/src/androidMain/res/values-lt/strings.xml b/compose/material3/material3/src/androidMain/res/values-lt/strings.xml
index a24fa91..5d5fc0e 100644
--- a/compose/material3/material3/src/androidMain/res/values-lt/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-lt/strings.xml
@@ -54,6 +54,8 @@
     <string name="m3c_date_range_picker_day_in_range" msgid="2138321128465719402">"Diapazone"</string>
     <string name="m3c_date_range_input_title" msgid="3148384720560189467">"Įvesti datas"</string>
     <string name="m3c_date_range_input_invalid_range_input" msgid="3190049423327661366">"Netinkama dienų sekos įvestis"</string>
+    <!-- no translation found for m3c_bottom_sheet_pane_title (3010635850035863127) -->
+    <skip />
     <string name="m3c_bottom_sheet_drag_handle_description" msgid="8403354765404029791">"Vilkimo rankenėlė"</string>
     <string name="m3c_bottom_sheet_collapse_description" msgid="2988463736136100848">"Sutraukti apatinį lapą"</string>
     <string name="m3c_bottom_sheet_dismiss_description" msgid="1555567894577437024">"Atsisakyti apatinio lapo"</string>
diff --git a/compose/material3/material3/src/androidMain/res/values-lv/strings.xml b/compose/material3/material3/src/androidMain/res/values-lv/strings.xml
index 508be30..ca30c49 100644
--- a/compose/material3/material3/src/androidMain/res/values-lv/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-lv/strings.xml
@@ -54,6 +54,7 @@
     <string name="m3c_date_range_picker_day_in_range" msgid="2138321128465719402">"Atlasītajā diapazonā"</string>
     <string name="m3c_date_range_input_title" msgid="3148384720560189467">"Ievadiet datumus"</string>
     <string name="m3c_date_range_input_invalid_range_input" msgid="3190049423327661366">"Ievadīts nederīgs datumu diapazons."</string>
+    <string name="m3c_bottom_sheet_pane_title" msgid="3010635850035863127">"Ekrāna apakšdaļas lapa"</string>
     <string name="m3c_bottom_sheet_drag_handle_description" msgid="8403354765404029791">"Vilkšanas turis"</string>
     <string name="m3c_bottom_sheet_collapse_description" msgid="2988463736136100848">"Sakļaut ekrāna apakšdaļas lapu"</string>
     <string name="m3c_bottom_sheet_dismiss_description" msgid="1555567894577437024">"Noraidīt ekrāna apakšdaļas lapu"</string>
diff --git a/compose/material3/material3/src/androidMain/res/values-mk/strings.xml b/compose/material3/material3/src/androidMain/res/values-mk/strings.xml
index f137b45..50b7e6d 100644
--- a/compose/material3/material3/src/androidMain/res/values-mk/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-mk/strings.xml
@@ -54,6 +54,8 @@
     <string name="m3c_date_range_picker_day_in_range" msgid="2138321128465719402">"Во опсег"</string>
     <string name="m3c_date_range_input_title" msgid="3148384720560189467">"Внесете датуми"</string>
     <string name="m3c_date_range_input_invalid_range_input" msgid="3190049423327661366">"Внесовте неважечки временски период"</string>
+    <!-- no translation found for m3c_bottom_sheet_pane_title (3010635850035863127) -->
+    <skip />
     <string name="m3c_bottom_sheet_drag_handle_description" msgid="8403354765404029791">"Рачка за влечење"</string>
     <string name="m3c_bottom_sheet_collapse_description" msgid="2988463736136100848">"Собери го долниот лист"</string>
     <string name="m3c_bottom_sheet_dismiss_description" msgid="1555567894577437024">"Отфрли го долниот лист"</string>
diff --git a/compose/material3/material3/src/androidMain/res/values-ml/strings.xml b/compose/material3/material3/src/androidMain/res/values-ml/strings.xml
index a800a5a..7e3c96b 100644
--- a/compose/material3/material3/src/androidMain/res/values-ml/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-ml/strings.xml
@@ -54,6 +54,8 @@
     <string name="m3c_date_range_picker_day_in_range" msgid="2138321128465719402">"പരിധിയിൽ"</string>
     <string name="m3c_date_range_input_title" msgid="3148384720560189467">"തീയതികൾ നൽകുക"</string>
     <string name="m3c_date_range_input_invalid_range_input" msgid="3190049423327661366">"തീയതി ശ്രേണി ഇൻപുട്ട് അസാധുവാണ്"</string>
+    <!-- no translation found for m3c_bottom_sheet_pane_title (3010635850035863127) -->
+    <skip />
     <string name="m3c_bottom_sheet_drag_handle_description" msgid="8403354765404029791">"വലിച്ചിടുന്നതിനുള്ള ഹാൻഡിൽ"</string>
     <string name="m3c_bottom_sheet_collapse_description" msgid="2988463736136100848">"ബോട്ടം ഷീറ്റ് ചുരുക്കുക"</string>
     <string name="m3c_bottom_sheet_dismiss_description" msgid="1555567894577437024">"ബോട്ടം ഷീറ്റ് ഡിസ്മിസ് ചെയ്യുക"</string>
diff --git a/compose/material3/material3/src/androidMain/res/values-mn/strings.xml b/compose/material3/material3/src/androidMain/res/values-mn/strings.xml
index 485667d..e7f1a06 100644
--- a/compose/material3/material3/src/androidMain/res/values-mn/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-mn/strings.xml
@@ -54,6 +54,8 @@
     <string name="m3c_date_range_picker_day_in_range" msgid="2138321128465719402">"Мужид байгаа"</string>
     <string name="m3c_date_range_input_title" msgid="3148384720560189467">"Огноо оруулах"</string>
     <string name="m3c_date_range_input_invalid_range_input" msgid="3190049423327661366">"Хугацааны интервалын оролт буруу байна"</string>
+    <!-- no translation found for m3c_bottom_sheet_pane_title (3010635850035863127) -->
+    <skip />
     <string name="m3c_bottom_sheet_drag_handle_description" msgid="8403354765404029791">"Чирэх бариул"</string>
     <string name="m3c_bottom_sheet_collapse_description" msgid="2988463736136100848">"Доод хүснэгтийг хураах"</string>
     <string name="m3c_bottom_sheet_dismiss_description" msgid="1555567894577437024">"Доод хүснэгтийг хаах"</string>
diff --git a/compose/material3/material3/src/androidMain/res/values-mr/strings.xml b/compose/material3/material3/src/androidMain/res/values-mr/strings.xml
index f5231f06..6433c85 100644
--- a/compose/material3/material3/src/androidMain/res/values-mr/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-mr/strings.xml
@@ -54,6 +54,7 @@
     <string name="m3c_date_range_picker_day_in_range" msgid="2138321128465719402">"रेंजमध्ये"</string>
     <string name="m3c_date_range_input_title" msgid="3148384720560189467">"तारखा एंटर करा"</string>
     <string name="m3c_date_range_input_invalid_range_input" msgid="3190049423327661366">"तारीख रेंजचे इनपुट चुकीचे आहे"</string>
+    <string name="m3c_bottom_sheet_pane_title" msgid="3010635850035863127">"तळाशी असलेली शीट"</string>
     <string name="m3c_bottom_sheet_drag_handle_description" msgid="8403354765404029791">"ड्रॅग हॅंडल"</string>
     <string name="m3c_bottom_sheet_collapse_description" msgid="2988463736136100848">"तळाशी असलेली शीट कोलॅप्स करा"</string>
     <string name="m3c_bottom_sheet_dismiss_description" msgid="1555567894577437024">"तळाशी असलेली शीट डिसमिस करा"</string>
diff --git a/compose/material3/material3/src/androidMain/res/values-ms/strings.xml b/compose/material3/material3/src/androidMain/res/values-ms/strings.xml
index e6c51cd..f0cae88 100644
--- a/compose/material3/material3/src/androidMain/res/values-ms/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-ms/strings.xml
@@ -54,6 +54,7 @@
     <string name="m3c_date_range_picker_day_in_range" msgid="2138321128465719402">"Dalam liputan"</string>
     <string name="m3c_date_range_input_title" msgid="3148384720560189467">"Masukkan tarikh"</string>
     <string name="m3c_date_range_input_invalid_range_input" msgid="3190049423327661366">"Input julat tarikh tidak sah"</string>
+    <string name="m3c_bottom_sheet_pane_title" msgid="3010635850035863127">"Helaian Bawah"</string>
     <string name="m3c_bottom_sheet_drag_handle_description" msgid="8403354765404029791">"Pemegang seret"</string>
     <string name="m3c_bottom_sheet_collapse_description" msgid="2988463736136100848">"Kuncupkan helaian bawah"</string>
     <string name="m3c_bottom_sheet_dismiss_description" msgid="1555567894577437024">"Ketepikan helaian bawah"</string>
diff --git a/compose/material3/material3/src/androidMain/res/values-my/strings.xml b/compose/material3/material3/src/androidMain/res/values-my/strings.xml
index 9d1ec09..6314074 100644
--- a/compose/material3/material3/src/androidMain/res/values-my/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-my/strings.xml
@@ -54,6 +54,8 @@
     <string name="m3c_date_range_picker_day_in_range" msgid="2138321128465719402">"အပိုင်းအခြားအတွင်း"</string>
     <string name="m3c_date_range_input_title" msgid="3148384720560189467">"ရက်စွဲများထည့်ပါ"</string>
     <string name="m3c_date_range_input_invalid_range_input" msgid="3190049423327661366">"ဒေတာအပိုင်းအခြား ထည့်သွင်းမှု မမှန်ပါ"</string>
+    <!-- no translation found for m3c_bottom_sheet_pane_title (3010635850035863127) -->
+    <skip />
     <string name="m3c_bottom_sheet_drag_handle_description" msgid="8403354765404029791">"ဖိဆွဲအထိန်း"</string>
     <string name="m3c_bottom_sheet_collapse_description" msgid="2988463736136100848">"အောက်ခြေအပိုဆောင်း စာမျက်နှာကို ချုံ့သည်"</string>
     <string name="m3c_bottom_sheet_dismiss_description" msgid="1555567894577437024">"အောက်ခြေအပိုဆောင်း စာမျက်နှာကို ပယ်သည်"</string>
diff --git a/compose/material3/material3/src/androidMain/res/values-nb/strings.xml b/compose/material3/material3/src/androidMain/res/values-nb/strings.xml
index 04edceb..1032b2a 100644
--- a/compose/material3/material3/src/androidMain/res/values-nb/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-nb/strings.xml
@@ -54,6 +54,8 @@
     <string name="m3c_date_range_picker_day_in_range" msgid="2138321128465719402">"Innenfor området"</string>
     <string name="m3c_date_range_input_title" msgid="3148384720560189467">"Legg inn datoer"</string>
     <string name="m3c_date_range_input_invalid_range_input" msgid="3190049423327661366">"En ugyldig datoperiode er valgt"</string>
+    <!-- no translation found for m3c_bottom_sheet_pane_title (3010635850035863127) -->
+    <skip />
     <string name="m3c_bottom_sheet_drag_handle_description" msgid="8403354765404029791">"Håndtak"</string>
     <string name="m3c_bottom_sheet_collapse_description" msgid="2988463736136100848">"Skjul feltet nederst"</string>
     <string name="m3c_bottom_sheet_dismiss_description" msgid="1555567894577437024">"Lukk feltet nederst"</string>
diff --git a/compose/material3/material3/src/androidMain/res/values-ne/strings.xml b/compose/material3/material3/src/androidMain/res/values-ne/strings.xml
index 5079393..033116c 100644
--- a/compose/material3/material3/src/androidMain/res/values-ne/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-ne/strings.xml
@@ -54,6 +54,7 @@
     <string name="m3c_date_range_picker_day_in_range" msgid="2138321128465719402">"चयन गरिएका दिनभित्र पर्ने"</string>
     <string name="m3c_date_range_input_title" msgid="3148384720560189467">"मितिहरू हाल्नुहोस्"</string>
     <string name="m3c_date_range_input_invalid_range_input" msgid="3190049423327661366">"मितिको अवैध दायरा हालियो"</string>
+    <string name="m3c_bottom_sheet_pane_title" msgid="3010635850035863127">"पुछारको पाना"</string>
     <string name="m3c_bottom_sheet_drag_handle_description" msgid="8403354765404029791">"ड्र्याग ह्यान्डल"</string>
     <string name="m3c_bottom_sheet_collapse_description" msgid="2988463736136100848">"पुछारको पाना कोल्याप्स गर्नुहोस्"</string>
     <string name="m3c_bottom_sheet_dismiss_description" msgid="1555567894577437024">"पुछारको पाना हटाउनुहोस्"</string>
diff --git a/compose/material3/material3/src/androidMain/res/values-nl/strings.xml b/compose/material3/material3/src/androidMain/res/values-nl/strings.xml
index 0fd598d..359d164 100644
--- a/compose/material3/material3/src/androidMain/res/values-nl/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-nl/strings.xml
@@ -54,6 +54,8 @@
     <string name="m3c_date_range_picker_day_in_range" msgid="2138321128465719402">"Binnen bereik"</string>
     <string name="m3c_date_range_input_title" msgid="3148384720560189467">"Datums opgeven"</string>
     <string name="m3c_date_range_input_invalid_range_input" msgid="3190049423327661366">"Ongeldige invoer voor periode"</string>
+    <!-- no translation found for m3c_bottom_sheet_pane_title (3010635850035863127) -->
+    <skip />
     <string name="m3c_bottom_sheet_drag_handle_description" msgid="8403354765404029791">"Handgreep voor slepen"</string>
     <string name="m3c_bottom_sheet_collapse_description" msgid="2988463736136100848">"Blad onderaan samenvouwen"</string>
     <string name="m3c_bottom_sheet_dismiss_description" msgid="1555567894577437024">"Blad onderaan sluiten"</string>
diff --git a/compose/material3/material3/src/androidMain/res/values-or/strings.xml b/compose/material3/material3/src/androidMain/res/values-or/strings.xml
index 9babec3..954f415 100644
--- a/compose/material3/material3/src/androidMain/res/values-or/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-or/strings.xml
@@ -54,6 +54,8 @@
     <string name="m3c_date_range_picker_day_in_range" msgid="2138321128465719402">"ରେଞ୍ଜରେ ଅଛି"</string>
     <string name="m3c_date_range_input_title" msgid="3148384720560189467">"ତାରିଖଗୁଡ଼ିକ ଲେଖନ୍ତୁ"</string>
     <string name="m3c_date_range_input_invalid_range_input" msgid="3190049423327661366">"ଅବୈଧ ତାରିଖ ରେଞ୍ଜ ଇନପୁଟ"</string>
+    <!-- no translation found for m3c_bottom_sheet_pane_title (3010635850035863127) -->
+    <skip />
     <string name="m3c_bottom_sheet_drag_handle_description" msgid="8403354765404029791">"ଡ୍ରାଗ ହେଣ୍ଡେଲ"</string>
     <string name="m3c_bottom_sheet_collapse_description" msgid="2988463736136100848">"ବଟମ ସିଟକୁ ସଙ୍କୁଚିତ କରନ୍ତୁ"</string>
     <string name="m3c_bottom_sheet_dismiss_description" msgid="1555567894577437024">"ବଟମ ସିଟକୁ ଖାରଜ କରନ୍ତୁ"</string>
diff --git a/compose/material3/material3/src/androidMain/res/values-pa/strings.xml b/compose/material3/material3/src/androidMain/res/values-pa/strings.xml
index ccb24f9..f7ef4eb 100644
--- a/compose/material3/material3/src/androidMain/res/values-pa/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-pa/strings.xml
@@ -54,6 +54,8 @@
     <string name="m3c_date_range_picker_day_in_range" msgid="2138321128465719402">"ਰੇਂਜ ਵਿੱਚ"</string>
     <string name="m3c_date_range_input_title" msgid="3148384720560189467">"ਤਾਰੀਖਾਂ ਦਾਖਲ ਕਰੋ"</string>
     <string name="m3c_date_range_input_invalid_range_input" msgid="3190049423327661366">"ਇਨਪੁੱਟ ਕੀਤੀ ਗਈ ਤਾਰੀਖ ਦੀ ਰੇਂਜ ਅਵੈਧ ਹੈ"</string>
+    <!-- no translation found for m3c_bottom_sheet_pane_title (3010635850035863127) -->
+    <skip />
     <string name="m3c_bottom_sheet_drag_handle_description" msgid="8403354765404029791">"ਘਸੀਟਣ ਵਾਲਾ ਹੈਂਡਲ"</string>
     <string name="m3c_bottom_sheet_collapse_description" msgid="2988463736136100848">"ਹੇਠਲੀ ਸ਼ੀਟ ਨੂੰ ਸਮੇਟੋ"</string>
     <string name="m3c_bottom_sheet_dismiss_description" msgid="1555567894577437024">"ਹੇਠਲੀ ਸ਼ੀਟ ਨੂੰ ਖਾਰਜ ਕਰੋ"</string>
diff --git a/compose/material3/material3/src/androidMain/res/values-pl/strings.xml b/compose/material3/material3/src/androidMain/res/values-pl/strings.xml
index 69066e2..1f0ae4d 100644
--- a/compose/material3/material3/src/androidMain/res/values-pl/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-pl/strings.xml
@@ -54,6 +54,8 @@
     <string name="m3c_date_range_picker_day_in_range" msgid="2138321128465719402">"W zakresie"</string>
     <string name="m3c_date_range_input_title" msgid="3148384720560189467">"Wprowadź daty"</string>
     <string name="m3c_date_range_input_invalid_range_input" msgid="3190049423327661366">"Nieprawidłowy zakres dat"</string>
+    <!-- no translation found for m3c_bottom_sheet_pane_title (3010635850035863127) -->
+    <skip />
     <string name="m3c_bottom_sheet_drag_handle_description" msgid="8403354765404029791">"Uchwyt do przeciągania"</string>
     <string name="m3c_bottom_sheet_collapse_description" msgid="2988463736136100848">"Zwiń planszę dolną"</string>
     <string name="m3c_bottom_sheet_dismiss_description" msgid="1555567894577437024">"Zamknij planszę dolną"</string>
diff --git a/compose/material3/material3/src/androidMain/res/values-pt-rBR/strings.xml b/compose/material3/material3/src/androidMain/res/values-pt-rBR/strings.xml
index c281759..be13972 100644
--- a/compose/material3/material3/src/androidMain/res/values-pt-rBR/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-pt-rBR/strings.xml
@@ -54,6 +54,7 @@
     <string name="m3c_date_range_picker_day_in_range" msgid="2138321128465719402">"Dentro do período"</string>
     <string name="m3c_date_range_input_title" msgid="3148384720560189467">"Informar datas"</string>
     <string name="m3c_date_range_input_invalid_range_input" msgid="3190049423327661366">"Período inválido"</string>
+    <string name="m3c_bottom_sheet_pane_title" msgid="3010635850035863127">"Página inferior"</string>
     <string name="m3c_bottom_sheet_drag_handle_description" msgid="8403354765404029791">"Alça de arrastar"</string>
     <string name="m3c_bottom_sheet_collapse_description" msgid="2988463736136100848">"Fechar página inferior"</string>
     <string name="m3c_bottom_sheet_dismiss_description" msgid="1555567894577437024">"Dispensar página inferior"</string>
diff --git a/compose/material3/material3/src/androidMain/res/values-pt-rPT/strings.xml b/compose/material3/material3/src/androidMain/res/values-pt-rPT/strings.xml
index 2a4eb3b..ebcd3985 100644
--- a/compose/material3/material3/src/androidMain/res/values-pt-rPT/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-pt-rPT/strings.xml
@@ -54,6 +54,8 @@
     <string name="m3c_date_range_picker_day_in_range" msgid="2138321128465719402">"Dentro do intervalo"</string>
     <string name="m3c_date_range_input_title" msgid="3148384720560189467">"Introduza as datas"</string>
     <string name="m3c_date_range_input_invalid_range_input" msgid="3190049423327661366">"Entrada do intervalo de datas inválida"</string>
+    <!-- no translation found for m3c_bottom_sheet_pane_title (3010635850035863127) -->
+    <skip />
     <string name="m3c_bottom_sheet_drag_handle_description" msgid="8403354765404029791">"Indicador para arrastar"</string>
     <string name="m3c_bottom_sheet_collapse_description" msgid="2988463736136100848">"Reduza a secção inferior"</string>
     <string name="m3c_bottom_sheet_dismiss_description" msgid="1555567894577437024">"Ignore a secção inferior"</string>
diff --git a/compose/material3/material3/src/androidMain/res/values-pt/strings.xml b/compose/material3/material3/src/androidMain/res/values-pt/strings.xml
index c281759..be13972 100644
--- a/compose/material3/material3/src/androidMain/res/values-pt/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-pt/strings.xml
@@ -54,6 +54,7 @@
     <string name="m3c_date_range_picker_day_in_range" msgid="2138321128465719402">"Dentro do período"</string>
     <string name="m3c_date_range_input_title" msgid="3148384720560189467">"Informar datas"</string>
     <string name="m3c_date_range_input_invalid_range_input" msgid="3190049423327661366">"Período inválido"</string>
+    <string name="m3c_bottom_sheet_pane_title" msgid="3010635850035863127">"Página inferior"</string>
     <string name="m3c_bottom_sheet_drag_handle_description" msgid="8403354765404029791">"Alça de arrastar"</string>
     <string name="m3c_bottom_sheet_collapse_description" msgid="2988463736136100848">"Fechar página inferior"</string>
     <string name="m3c_bottom_sheet_dismiss_description" msgid="1555567894577437024">"Dispensar página inferior"</string>
diff --git a/compose/material3/material3/src/androidMain/res/values-ro/strings.xml b/compose/material3/material3/src/androidMain/res/values-ro/strings.xml
index 0b357c8..9810ca8 100644
--- a/compose/material3/material3/src/androidMain/res/values-ro/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-ro/strings.xml
@@ -54,6 +54,7 @@
     <string name="m3c_date_range_picker_day_in_range" msgid="2138321128465719402">"În interval"</string>
     <string name="m3c_date_range_input_title" msgid="3148384720560189467">"Introdu datele"</string>
     <string name="m3c_date_range_input_invalid_range_input" msgid="3190049423327661366">"Intervalul de date introdus nu este valid"</string>
+    <string name="m3c_bottom_sheet_pane_title" msgid="3010635850035863127">"Foaia din partea de jos"</string>
     <string name="m3c_bottom_sheet_drag_handle_description" msgid="8403354765404029791">"Ghidaj de tragere"</string>
     <string name="m3c_bottom_sheet_collapse_description" msgid="2988463736136100848">"Restrânge foaia din partea de jos"</string>
     <string name="m3c_bottom_sheet_dismiss_description" msgid="1555567894577437024">"Închide foaia din partea de jos"</string>
diff --git a/compose/material3/material3/src/androidMain/res/values-ru/strings.xml b/compose/material3/material3/src/androidMain/res/values-ru/strings.xml
index 2443c51..71413c77 100644
--- a/compose/material3/material3/src/androidMain/res/values-ru/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-ru/strings.xml
@@ -54,6 +54,8 @@
     <string name="m3c_date_range_picker_day_in_range" msgid="2138321128465719402">"День в диапазоне дат"</string>
     <string name="m3c_date_range_input_title" msgid="3148384720560189467">"Введите даты"</string>
     <string name="m3c_date_range_input_invalid_range_input" msgid="3190049423327661366">"Указан недопустимый диапазон дат."</string>
+    <!-- no translation found for m3c_bottom_sheet_pane_title (3010635850035863127) -->
+    <skip />
     <string name="m3c_bottom_sheet_drag_handle_description" msgid="8403354765404029791">"Маркер перемещения"</string>
     <string name="m3c_bottom_sheet_collapse_description" msgid="2988463736136100848">"Свернуть нижний экран"</string>
     <string name="m3c_bottom_sheet_dismiss_description" msgid="1555567894577437024">"Закрыть нижний экран"</string>
diff --git a/compose/material3/material3/src/androidMain/res/values-si/strings.xml b/compose/material3/material3/src/androidMain/res/values-si/strings.xml
index 461c6bf..27939f6 100644
--- a/compose/material3/material3/src/androidMain/res/values-si/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-si/strings.xml
@@ -54,6 +54,8 @@
     <string name="m3c_date_range_picker_day_in_range" msgid="2138321128465719402">"පරාසය තුළ"</string>
     <string name="m3c_date_range_input_title" msgid="3148384720560189467">"දින ඇතුළු කරන්න"</string>
     <string name="m3c_date_range_input_invalid_range_input" msgid="3190049423327661366">"අවලංගු දින පරාස ආදානය"</string>
+    <!-- no translation found for m3c_bottom_sheet_pane_title (3010635850035863127) -->
+    <skip />
     <string name="m3c_bottom_sheet_drag_handle_description" msgid="8403354765404029791">"ඇදීම් හැඬලය"</string>
     <string name="m3c_bottom_sheet_collapse_description" msgid="2988463736136100848">"පහළම පත්‍රය හකුළන්න"</string>
     <string name="m3c_bottom_sheet_dismiss_description" msgid="1555567894577437024">"පහළම පත්‍රය අස් කරන්න"</string>
diff --git a/compose/material3/material3/src/androidMain/res/values-sk/strings.xml b/compose/material3/material3/src/androidMain/res/values-sk/strings.xml
index 744b6eb..bf4db5e 100644
--- a/compose/material3/material3/src/androidMain/res/values-sk/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-sk/strings.xml
@@ -54,6 +54,7 @@
     <string name="m3c_date_range_picker_day_in_range" msgid="2138321128465719402">"V rozsahu"</string>
     <string name="m3c_date_range_input_title" msgid="3148384720560189467">"Zadať dátumy"</string>
     <string name="m3c_date_range_input_invalid_range_input" msgid="3190049423327661366">"Neplatné zadané obdobie"</string>
+    <string name="m3c_bottom_sheet_pane_title" msgid="3010635850035863127">"Dolný hárok"</string>
     <string name="m3c_bottom_sheet_drag_handle_description" msgid="8403354765404029791">"Presúvadlo"</string>
     <string name="m3c_bottom_sheet_collapse_description" msgid="2988463736136100848">"Zbaliť dolný hárok"</string>
     <string name="m3c_bottom_sheet_dismiss_description" msgid="1555567894577437024">"Zavrieť dolný hárok"</string>
diff --git a/compose/material3/material3/src/androidMain/res/values-sl/strings.xml b/compose/material3/material3/src/androidMain/res/values-sl/strings.xml
index 3d9543a..3505958 100644
--- a/compose/material3/material3/src/androidMain/res/values-sl/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-sl/strings.xml
@@ -54,6 +54,8 @@
     <string name="m3c_date_range_picker_day_in_range" msgid="2138321128465719402">"Znotraj obdobja"</string>
     <string name="m3c_date_range_input_title" msgid="3148384720560189467">"Vnesite datume"</string>
     <string name="m3c_date_range_input_invalid_range_input" msgid="3190049423327661366">"Neveljaven vnos obdobja."</string>
+    <!-- no translation found for m3c_bottom_sheet_pane_title (3010635850035863127) -->
+    <skip />
     <string name="m3c_bottom_sheet_drag_handle_description" msgid="8403354765404029791">"Ročica za vlečenje"</string>
     <string name="m3c_bottom_sheet_collapse_description" msgid="2988463736136100848">"Strnitev razdelka na dnu zaslona"</string>
     <string name="m3c_bottom_sheet_dismiss_description" msgid="1555567894577437024">"Opustitev razdelka na dnu zaslona"</string>
diff --git a/compose/material3/material3/src/androidMain/res/values-sq/strings.xml b/compose/material3/material3/src/androidMain/res/values-sq/strings.xml
index 781881a..7815c4f 100644
--- a/compose/material3/material3/src/androidMain/res/values-sq/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-sq/strings.xml
@@ -54,6 +54,7 @@
     <string name="m3c_date_range_picker_day_in_range" msgid="2138321128465719402">"Brenda intervalit"</string>
     <string name="m3c_date_range_input_title" msgid="3148384720560189467">"Fut datat"</string>
     <string name="m3c_date_range_input_invalid_range_input" msgid="3190049423327661366">"Hyrje e pavlefshme e diapazonit të datave"</string>
+    <string name="m3c_bottom_sheet_pane_title" msgid="3010635850035863127">"Fleta e poshtme"</string>
     <string name="m3c_bottom_sheet_drag_handle_description" msgid="8403354765404029791">"Doreza e zvarritjes"</string>
     <string name="m3c_bottom_sheet_collapse_description" msgid="2988463736136100848">"Palos fletën e poshtme"</string>
     <string name="m3c_bottom_sheet_dismiss_description" msgid="1555567894577437024">"Hiq fletën e poshtme"</string>
diff --git a/compose/material3/material3/src/androidMain/res/values-sr/strings.xml b/compose/material3/material3/src/androidMain/res/values-sr/strings.xml
index 030fc23..43b7254 100644
--- a/compose/material3/material3/src/androidMain/res/values-sr/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-sr/strings.xml
@@ -54,6 +54,7 @@
     <string name="m3c_date_range_picker_day_in_range" msgid="2138321128465719402">"У опсегу"</string>
     <string name="m3c_date_range_input_title" msgid="3148384720560189467">"Унесите датуме"</string>
     <string name="m3c_date_range_input_invalid_range_input" msgid="3190049423327661366">"Унос опсега датума је неважећи"</string>
+    <string name="m3c_bottom_sheet_pane_title" msgid="3010635850035863127">"Доња табела"</string>
     <string name="m3c_bottom_sheet_drag_handle_description" msgid="8403354765404029791">"Идентификатор за превлачење"</string>
     <string name="m3c_bottom_sheet_collapse_description" msgid="2988463736136100848">"Скупите доњу табелу"</string>
     <string name="m3c_bottom_sheet_dismiss_description" msgid="1555567894577437024">"Одбаците доњу табелу"</string>
diff --git a/compose/material3/material3/src/androidMain/res/values-sv/strings.xml b/compose/material3/material3/src/androidMain/res/values-sv/strings.xml
index b5a62cc..d1eaa82 100644
--- a/compose/material3/material3/src/androidMain/res/values-sv/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-sv/strings.xml
@@ -54,6 +54,8 @@
     <string name="m3c_date_range_picker_day_in_range" msgid="2138321128465719402">"Inom intervall"</string>
     <string name="m3c_date_range_input_title" msgid="3148384720560189467">"Ange datum"</string>
     <string name="m3c_date_range_input_invalid_range_input" msgid="3190049423327661366">"Ett ogiltigt datumintervall har angetts"</string>
+    <!-- no translation found for m3c_bottom_sheet_pane_title (3010635850035863127) -->
+    <skip />
     <string name="m3c_bottom_sheet_drag_handle_description" msgid="8403354765404029791">"Handtag"</string>
     <string name="m3c_bottom_sheet_collapse_description" msgid="2988463736136100848">"Komprimera arket på nedre delen av skärmen"</string>
     <string name="m3c_bottom_sheet_dismiss_description" msgid="1555567894577437024">"Stäng arket på nedre delen av skärmen"</string>
diff --git a/compose/material3/material3/src/androidMain/res/values-sw/strings.xml b/compose/material3/material3/src/androidMain/res/values-sw/strings.xml
index cc4d5a6..7af13f3 100644
--- a/compose/material3/material3/src/androidMain/res/values-sw/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-sw/strings.xml
@@ -54,6 +54,7 @@
     <string name="m3c_date_range_picker_day_in_range" msgid="2138321128465719402">"Ipo katika kipindi"</string>
     <string name="m3c_date_range_input_title" msgid="3148384720560189467">"Weka tarehe"</string>
     <string name="m3c_date_range_input_invalid_range_input" msgid="3190049423327661366">"Kipindi ulichoweka si sahihi"</string>
+    <string name="m3c_bottom_sheet_pane_title" msgid="3010635850035863127">"Safu ya Chini"</string>
     <string name="m3c_bottom_sheet_drag_handle_description" msgid="8403354765404029791">"Aikoni ya buruta"</string>
     <string name="m3c_bottom_sheet_collapse_description" msgid="2988463736136100848">"Kunja safu ya chini"</string>
     <string name="m3c_bottom_sheet_dismiss_description" msgid="1555567894577437024">"Ondoa safu ya chini"</string>
diff --git a/compose/material3/material3/src/androidMain/res/values-ta/strings.xml b/compose/material3/material3/src/androidMain/res/values-ta/strings.xml
index 12c420a..c3a6b40 100644
--- a/compose/material3/material3/src/androidMain/res/values-ta/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-ta/strings.xml
@@ -54,6 +54,8 @@
     <string name="m3c_date_range_picker_day_in_range" msgid="2138321128465719402">"வரம்பிற்குள் உள்ளது"</string>
     <string name="m3c_date_range_input_title" msgid="3148384720560189467">"தேதிகளை உள்ளிடுங்கள்"</string>
     <string name="m3c_date_range_input_invalid_range_input" msgid="3190049423327661366">"தவறான தேதி வரம்பை உள்ளிட்டுள்ளீர்கள்"</string>
+    <!-- no translation found for m3c_bottom_sheet_pane_title (3010635850035863127) -->
+    <skip />
     <string name="m3c_bottom_sheet_drag_handle_description" msgid="8403354765404029791">"இழுப்பதற்கான ஹேண்டில்"</string>
     <string name="m3c_bottom_sheet_collapse_description" msgid="2988463736136100848">"கீழ்ப்புற ஷீட்டைச் சுருக்கும்"</string>
     <string name="m3c_bottom_sheet_dismiss_description" msgid="1555567894577437024">"கீழ்ப்புற ஷீட்டை நிராகரிக்கும்"</string>
diff --git a/compose/material3/material3/src/androidMain/res/values-te/strings.xml b/compose/material3/material3/src/androidMain/res/values-te/strings.xml
index 29a5642..539d571 100644
--- a/compose/material3/material3/src/androidMain/res/values-te/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-te/strings.xml
@@ -54,6 +54,8 @@
     <string name="m3c_date_range_picker_day_in_range" msgid="2138321128465719402">"పరిధిలో ఉంది"</string>
     <string name="m3c_date_range_input_title" msgid="3148384720560189467">"తేదీలను ఎంటర్ చేయండి"</string>
     <string name="m3c_date_range_input_invalid_range_input" msgid="3190049423327661366">"తేదీల పరిధి ఇన్‌పుట్ చెల్లదు"</string>
+    <!-- no translation found for m3c_bottom_sheet_pane_title (3010635850035863127) -->
+    <skip />
     <string name="m3c_bottom_sheet_drag_handle_description" msgid="8403354765404029791">"లాగే హ్యాండిల్"</string>
     <string name="m3c_bottom_sheet_collapse_description" msgid="2988463736136100848">"దిగువున ఉన్న షీట్‌ను కుదిస్తుంది"</string>
     <string name="m3c_bottom_sheet_dismiss_description" msgid="1555567894577437024">"దిగువున ఉన్న షీట్‌ను విస్మరిస్తుంది"</string>
diff --git a/compose/material3/material3/src/androidMain/res/values-th/strings.xml b/compose/material3/material3/src/androidMain/res/values-th/strings.xml
index e591400..b710696 100644
--- a/compose/material3/material3/src/androidMain/res/values-th/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-th/strings.xml
@@ -54,6 +54,8 @@
     <string name="m3c_date_range_picker_day_in_range" msgid="2138321128465719402">"อยู่ในช่วงวันที่ที่เลือก"</string>
     <string name="m3c_date_range_input_title" msgid="3148384720560189467">"ป้อนวันที่"</string>
     <string name="m3c_date_range_input_invalid_range_input" msgid="3190049423327661366">"การป้อนข้อมูลช่วงวันที่ไม่ถูกต้อง"</string>
+    <!-- no translation found for m3c_bottom_sheet_pane_title (3010635850035863127) -->
+    <skip />
     <string name="m3c_bottom_sheet_drag_handle_description" msgid="8403354765404029791">"แฮนเดิลการลาก"</string>
     <string name="m3c_bottom_sheet_collapse_description" msgid="2988463736136100848">"ยุบ Bottom Sheet"</string>
     <string name="m3c_bottom_sheet_dismiss_description" msgid="1555567894577437024">"ปิด Bottom Sheet"</string>
diff --git a/compose/material3/material3/src/androidMain/res/values-tl/strings.xml b/compose/material3/material3/src/androidMain/res/values-tl/strings.xml
index 6eee833..78aefd7 100644
--- a/compose/material3/material3/src/androidMain/res/values-tl/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-tl/strings.xml
@@ -54,6 +54,8 @@
     <string name="m3c_date_range_picker_day_in_range" msgid="2138321128465719402">"May signal"</string>
     <string name="m3c_date_range_input_title" msgid="3148384720560189467">"Maglagay ng mga petsa"</string>
     <string name="m3c_date_range_input_invalid_range_input" msgid="3190049423327661366">"Invalid ang input na hanay ng petsa"</string>
+    <!-- no translation found for m3c_bottom_sheet_pane_title (3010635850035863127) -->
+    <skip />
     <string name="m3c_bottom_sheet_drag_handle_description" msgid="8403354765404029791">"Handle sa pag-drag"</string>
     <string name="m3c_bottom_sheet_collapse_description" msgid="2988463736136100848">"I-collapse ang bottom sheet"</string>
     <string name="m3c_bottom_sheet_dismiss_description" msgid="1555567894577437024">"I-dismiss ang bottom sheet"</string>
diff --git a/compose/material3/material3/src/androidMain/res/values-tr/strings.xml b/compose/material3/material3/src/androidMain/res/values-tr/strings.xml
index a1bb70e..0be0e2d 100644
--- a/compose/material3/material3/src/androidMain/res/values-tr/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-tr/strings.xml
@@ -54,6 +54,8 @@
     <string name="m3c_date_range_picker_day_in_range" msgid="2138321128465719402">"Aralıkta"</string>
     <string name="m3c_date_range_input_title" msgid="3148384720560189467">"Tarihleri girin"</string>
     <string name="m3c_date_range_input_invalid_range_input" msgid="3190049423327661366">"Geçersiz tarih aralığı girişi"</string>
+    <!-- no translation found for m3c_bottom_sheet_pane_title (3010635850035863127) -->
+    <skip />
     <string name="m3c_bottom_sheet_drag_handle_description" msgid="8403354765404029791">"Sürükleme tutamacı"</string>
     <string name="m3c_bottom_sheet_collapse_description" msgid="2988463736136100848">"Alt sayfayı daralt"</string>
     <string name="m3c_bottom_sheet_dismiss_description" msgid="1555567894577437024">"Alt sayfayı kapat"</string>
diff --git a/compose/material3/material3/src/androidMain/res/values-uk/strings.xml b/compose/material3/material3/src/androidMain/res/values-uk/strings.xml
index 5c563cf..b9c7bd5 100644
--- a/compose/material3/material3/src/androidMain/res/values-uk/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-uk/strings.xml
@@ -54,6 +54,8 @@
     <string name="m3c_date_range_picker_day_in_range" msgid="2138321128465719402">"У діапазоні"</string>
     <string name="m3c_date_range_input_title" msgid="3148384720560189467">"Введіть дати"</string>
     <string name="m3c_date_range_input_invalid_range_input" msgid="3190049423327661366">"Указано недійсний діапазон дат"</string>
+    <!-- no translation found for m3c_bottom_sheet_pane_title (3010635850035863127) -->
+    <skip />
     <string name="m3c_bottom_sheet_drag_handle_description" msgid="8403354765404029791">"Маркер переміщення"</string>
     <string name="m3c_bottom_sheet_collapse_description" msgid="2988463736136100848">"Згорнути нижній екран"</string>
     <string name="m3c_bottom_sheet_dismiss_description" msgid="1555567894577437024">"Закрити нижній екран"</string>
diff --git a/compose/material3/material3/src/androidMain/res/values-ur/strings.xml b/compose/material3/material3/src/androidMain/res/values-ur/strings.xml
index 90a6720..5240518 100644
--- a/compose/material3/material3/src/androidMain/res/values-ur/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-ur/strings.xml
@@ -54,6 +54,7 @@
     <string name="m3c_date_range_picker_day_in_range" msgid="2138321128465719402">"رینج میں ہے"</string>
     <string name="m3c_date_range_input_title" msgid="3148384720560189467">"تواریخ درج کریں"</string>
     <string name="m3c_date_range_input_invalid_range_input" msgid="3190049423327661366">"تاریخ کی حد کا غلط ان پٹ"</string>
+    <string name="m3c_bottom_sheet_pane_title" msgid="3010635850035863127">"نیچے کی شیٹ"</string>
     <string name="m3c_bottom_sheet_drag_handle_description" msgid="8403354765404029791">"گھسیٹنے کا ہینڈل"</string>
     <string name="m3c_bottom_sheet_collapse_description" msgid="2988463736136100848">"نیچے کی شیٹ کو سکیڑیں"</string>
     <string name="m3c_bottom_sheet_dismiss_description" msgid="1555567894577437024">"نیچے کی شیٹ کو برخاست کریں"</string>
diff --git a/compose/material3/material3/src/androidMain/res/values-uz/strings.xml b/compose/material3/material3/src/androidMain/res/values-uz/strings.xml
index cc90175..e355fd1 100644
--- a/compose/material3/material3/src/androidMain/res/values-uz/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-uz/strings.xml
@@ -54,6 +54,7 @@
     <string name="m3c_date_range_picker_day_in_range" msgid="2138321128465719402">"Xizmat doirasida"</string>
     <string name="m3c_date_range_input_title" msgid="3148384720560189467">"Sanalarni kiriting"</string>
     <string name="m3c_date_range_input_invalid_range_input" msgid="3190049423327661366">"Kiritilgan muddat yaroqsiz"</string>
+    <string name="m3c_bottom_sheet_pane_title" msgid="3010635850035863127">"Quyi ekran"</string>
     <string name="m3c_bottom_sheet_drag_handle_description" msgid="8403354765404029791">"Surish dastagi"</string>
     <string name="m3c_bottom_sheet_collapse_description" msgid="2988463736136100848">"Quyi ekranni yigʻish"</string>
     <string name="m3c_bottom_sheet_dismiss_description" msgid="1555567894577437024">"Quyi ekranni yopish"</string>
diff --git a/compose/material3/material3/src/androidMain/res/values-vi/strings.xml b/compose/material3/material3/src/androidMain/res/values-vi/strings.xml
index 211355e..e5f1699 100644
--- a/compose/material3/material3/src/androidMain/res/values-vi/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-vi/strings.xml
@@ -54,6 +54,8 @@
     <string name="m3c_date_range_picker_day_in_range" msgid="2138321128465719402">"Trong khoảng"</string>
     <string name="m3c_date_range_input_title" msgid="3148384720560189467">"Nhập ngày"</string>
     <string name="m3c_date_range_input_invalid_range_input" msgid="3190049423327661366">"Phạm vi ngày đã nhập không hợp lệ"</string>
+    <!-- no translation found for m3c_bottom_sheet_pane_title (3010635850035863127) -->
+    <skip />
     <string name="m3c_bottom_sheet_drag_handle_description" msgid="8403354765404029791">"Nút kéo"</string>
     <string name="m3c_bottom_sheet_collapse_description" msgid="2988463736136100848">"Thu gọn bảng dưới cùng"</string>
     <string name="m3c_bottom_sheet_dismiss_description" msgid="1555567894577437024">"Đóng bảng dưới cùng"</string>
diff --git a/compose/material3/material3/src/androidMain/res/values-zh-rCN/strings.xml b/compose/material3/material3/src/androidMain/res/values-zh-rCN/strings.xml
index bcb313d..876cb0f 100644
--- a/compose/material3/material3/src/androidMain/res/values-zh-rCN/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-zh-rCN/strings.xml
@@ -54,6 +54,8 @@
     <string name="m3c_date_range_picker_day_in_range" msgid="2138321128465719402">"在范围内"</string>
     <string name="m3c_date_range_input_title" msgid="3148384720560189467">"输入日期"</string>
     <string name="m3c_date_range_input_invalid_range_input" msgid="3190049423327661366">"输入的日期范围无效"</string>
+    <!-- no translation found for m3c_bottom_sheet_pane_title (3010635850035863127) -->
+    <skip />
     <string name="m3c_bottom_sheet_drag_handle_description" msgid="8403354765404029791">"拖动手柄"</string>
     <string name="m3c_bottom_sheet_collapse_description" msgid="2988463736136100848">"收起底部动作条"</string>
     <string name="m3c_bottom_sheet_dismiss_description" msgid="1555567894577437024">"关闭底部动作条"</string>
diff --git a/compose/material3/material3/src/androidMain/res/values-zh-rHK/strings.xml b/compose/material3/material3/src/androidMain/res/values-zh-rHK/strings.xml
index c87746f..aa77db0 100644
--- a/compose/material3/material3/src/androidMain/res/values-zh-rHK/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-zh-rHK/strings.xml
@@ -54,6 +54,8 @@
     <string name="m3c_date_range_picker_day_in_range" msgid="2138321128465719402">"喺指定日期範圍內"</string>
     <string name="m3c_date_range_input_title" msgid="3148384720560189467">"輸入日期"</string>
     <string name="m3c_date_range_input_invalid_range_input" msgid="3190049423327661366">"輸入的日期範圍無效"</string>
+    <!-- no translation found for m3c_bottom_sheet_pane_title (3010635850035863127) -->
+    <skip />
     <string name="m3c_bottom_sheet_drag_handle_description" msgid="8403354765404029791">"拖曳控點"</string>
     <string name="m3c_bottom_sheet_collapse_description" msgid="2988463736136100848">"收合頁底面板"</string>
     <string name="m3c_bottom_sheet_dismiss_description" msgid="1555567894577437024">"關閉頁底面板"</string>
diff --git a/compose/material3/material3/src/androidMain/res/values-zh-rTW/strings.xml b/compose/material3/material3/src/androidMain/res/values-zh-rTW/strings.xml
index c24a29a..7052471 100644
--- a/compose/material3/material3/src/androidMain/res/values-zh-rTW/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-zh-rTW/strings.xml
@@ -54,6 +54,8 @@
     <string name="m3c_date_range_picker_day_in_range" msgid="2138321128465719402">"在有效範圍內"</string>
     <string name="m3c_date_range_input_title" msgid="3148384720560189467">"輸入日期"</string>
     <string name="m3c_date_range_input_invalid_range_input" msgid="3190049423327661366">"輸入的日期範圍無效"</string>
+    <!-- no translation found for m3c_bottom_sheet_pane_title (3010635850035863127) -->
+    <skip />
     <string name="m3c_bottom_sheet_drag_handle_description" msgid="8403354765404029791">"拖曳控點"</string>
     <string name="m3c_bottom_sheet_collapse_description" msgid="2988463736136100848">"收合底部功能表"</string>
     <string name="m3c_bottom_sheet_dismiss_description" msgid="1555567894577437024">"關閉底部功能表"</string>
diff --git a/compose/material3/material3/src/androidMain/res/values-zu/strings.xml b/compose/material3/material3/src/androidMain/res/values-zu/strings.xml
index f123626..2d5dd00 100644
--- a/compose/material3/material3/src/androidMain/res/values-zu/strings.xml
+++ b/compose/material3/material3/src/androidMain/res/values-zu/strings.xml
@@ -54,6 +54,7 @@
     <string name="m3c_date_range_picker_day_in_range" msgid="2138321128465719402">"Ebangeni"</string>
     <string name="m3c_date_range_input_title" msgid="3148384720560189467">"Faka izinsuku"</string>
     <string name="m3c_date_range_input_invalid_range_input" msgid="3190049423327661366">"Okokufaka kwebanga losuku okungavumelekile"</string>
+    <string name="m3c_bottom_sheet_pane_title" msgid="3010635850035863127">"Ishidi Eliphansi"</string>
     <string name="m3c_bottom_sheet_drag_handle_description" msgid="8403354765404029791">"Hudula isibambi"</string>
     <string name="m3c_bottom_sheet_collapse_description" msgid="2988463736136100848">"Goqa ishidi eliphansi"</string>
     <string name="m3c_bottom_sheet_dismiss_description" msgid="1555567894577437024">"Chitha ishidi eliphansi"</string>
diff --git a/compose/runtime/runtime-livedata/api/public_plus_experimental_current.txt b/compose/runtime/runtime-livedata/api/1.5.0-beta01.txt
similarity index 100%
rename from compose/runtime/runtime-livedata/api/public_plus_experimental_current.txt
rename to compose/runtime/runtime-livedata/api/1.5.0-beta01.txt
diff --git a/compose/runtime/runtime-livedata/api/res-1.5.0-beta01.txt b/compose/runtime/runtime-livedata/api/res-1.5.0-beta01.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/compose/runtime/runtime-livedata/api/res-1.5.0-beta01.txt
diff --git a/compose/runtime/runtime-livedata/api/public_plus_experimental_current.txt b/compose/runtime/runtime-livedata/api/restricted_1.5.0-beta01.txt
similarity index 100%
copy from compose/runtime/runtime-livedata/api/public_plus_experimental_current.txt
copy to compose/runtime/runtime-livedata/api/restricted_1.5.0-beta01.txt
diff --git a/compose/runtime/runtime-rxjava2/api/public_plus_experimental_current.txt b/compose/runtime/runtime-rxjava2/api/1.5.0-beta01.txt
similarity index 100%
rename from compose/runtime/runtime-rxjava2/api/public_plus_experimental_current.txt
rename to compose/runtime/runtime-rxjava2/api/1.5.0-beta01.txt
diff --git a/compose/runtime/runtime-rxjava2/api/res-1.5.0-beta01.txt b/compose/runtime/runtime-rxjava2/api/res-1.5.0-beta01.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/compose/runtime/runtime-rxjava2/api/res-1.5.0-beta01.txt
diff --git a/compose/runtime/runtime-rxjava2/api/public_plus_experimental_current.txt b/compose/runtime/runtime-rxjava2/api/restricted_1.5.0-beta01.txt
similarity index 100%
copy from compose/runtime/runtime-rxjava2/api/public_plus_experimental_current.txt
copy to compose/runtime/runtime-rxjava2/api/restricted_1.5.0-beta01.txt
diff --git a/compose/runtime/runtime-rxjava3/api/public_plus_experimental_current.txt b/compose/runtime/runtime-rxjava3/api/1.5.0-beta01.txt
similarity index 100%
rename from compose/runtime/runtime-rxjava3/api/public_plus_experimental_current.txt
rename to compose/runtime/runtime-rxjava3/api/1.5.0-beta01.txt
diff --git a/compose/runtime/runtime-rxjava3/api/res-1.5.0-beta01.txt b/compose/runtime/runtime-rxjava3/api/res-1.5.0-beta01.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/compose/runtime/runtime-rxjava3/api/res-1.5.0-beta01.txt
diff --git a/compose/runtime/runtime-rxjava3/api/public_plus_experimental_current.txt b/compose/runtime/runtime-rxjava3/api/restricted_1.5.0-beta01.txt
similarity index 100%
copy from compose/runtime/runtime-rxjava3/api/public_plus_experimental_current.txt
copy to compose/runtime/runtime-rxjava3/api/restricted_1.5.0-beta01.txt
diff --git a/compose/runtime/runtime-saveable/api/public_plus_experimental_current.txt b/compose/runtime/runtime-saveable/api/1.5.0-beta01.txt
similarity index 100%
rename from compose/runtime/runtime-saveable/api/public_plus_experimental_current.txt
rename to compose/runtime/runtime-saveable/api/1.5.0-beta01.txt
diff --git a/compose/runtime/runtime-saveable/api/res-1.5.0-beta01.txt b/compose/runtime/runtime-saveable/api/res-1.5.0-beta01.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/compose/runtime/runtime-saveable/api/res-1.5.0-beta01.txt
diff --git a/compose/runtime/runtime-saveable/api/public_plus_experimental_current.txt b/compose/runtime/runtime-saveable/api/restricted_1.5.0-beta01.txt
similarity index 100%
copy from compose/runtime/runtime-saveable/api/public_plus_experimental_current.txt
copy to compose/runtime/runtime-saveable/api/restricted_1.5.0-beta01.txt
diff --git a/compose/runtime/runtime-tracing/api/public_plus_experimental_current.txt b/compose/runtime/runtime-tracing/api/public_plus_experimental_current.txt
deleted file mode 100644
index 716d534..0000000
--- a/compose/runtime/runtime-tracing/api/public_plus_experimental_current.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-// Signature format: 4.0
-package androidx.compose.runtime.tracing {
-
-  public final class TracingInitializer implements androidx.startup.Initializer<kotlin.Unit> {
-    ctor public TracingInitializer();
-    method public void create(android.content.Context context);
-    method public java.util.List<java.lang.Class<? extends androidx.startup.Initializer<?>>> dependencies();
-  }
-
-}
-
diff --git a/compose/runtime/runtime/api/public_plus_experimental_current.txt b/compose/runtime/runtime/api/1.5.0-beta01.txt
similarity index 100%
rename from compose/runtime/runtime/api/public_plus_experimental_current.txt
rename to compose/runtime/runtime/api/1.5.0-beta01.txt
diff --git a/compose/runtime/runtime/api/current.txt b/compose/runtime/runtime/api/current.txt
index ac9ddb4..095c02f 100644
--- a/compose/runtime/runtime/api/current.txt
+++ b/compose/runtime/runtime/api/current.txt
@@ -47,6 +47,11 @@
   @kotlin.annotation.MustBeDocumented @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.TYPE, kotlin.annotation.AnnotationTarget.TYPE_PARAMETER, kotlin.annotation.AnnotationTarget.PROPERTY_GETTER}) public @interface Composable {
   }
 
+  @androidx.compose.runtime.InternalComposeApi @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.PROPERTY_GETTER}) public @interface ComposableInferredTarget {
+    method public abstract String scheme();
+    property public abstract String scheme;
+  }
+
   @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.PROPERTY_GETTER, kotlin.annotation.AnnotationTarget.TYPE, kotlin.annotation.AnnotationTarget.TYPE_PARAMETER}) public @interface ComposableOpenTarget {
     method public abstract int index();
     property public abstract int index;
@@ -99,6 +104,7 @@
 
   public sealed interface Composer {
     method @androidx.compose.runtime.ComposeCompilerApi public <V, T> void apply(V value, kotlin.jvm.functions.Function2<? super T,? super V,kotlin.Unit> block);
+    method @androidx.compose.runtime.InternalComposeApi public androidx.compose.runtime.CompositionContext buildContext();
     method @androidx.compose.runtime.ComposeCompilerApi public default boolean changed(boolean value);
     method @androidx.compose.runtime.ComposeCompilerApi public default boolean changed(byte value);
     method @androidx.compose.runtime.ComposeCompilerApi public default boolean changed(char value);
@@ -110,6 +116,7 @@
     method @androidx.compose.runtime.ComposeCompilerApi public default boolean changed(short value);
     method @androidx.compose.runtime.ComposeCompilerApi public default boolean changedInstance(Object? value);
     method public void collectParameterInformation();
+    method @androidx.compose.runtime.InternalComposeApi public <T> T consume(androidx.compose.runtime.CompositionLocal<T> key);
     method @androidx.compose.runtime.ComposeCompilerApi public <T> void createNode(kotlin.jvm.functions.Function0<? extends T> factory);
     method @androidx.compose.runtime.ComposeCompilerApi public void deactivateToEndGroup(boolean changed);
     method @androidx.compose.runtime.ComposeCompilerApi public void disableReusing();
@@ -118,6 +125,7 @@
     method @androidx.compose.runtime.ComposeCompilerApi public void endDefaults();
     method @androidx.compose.runtime.ComposeCompilerApi public void endMovableGroup();
     method @androidx.compose.runtime.ComposeCompilerApi public void endNode();
+    method @androidx.compose.runtime.InternalComposeApi public void endProviders();
     method @androidx.compose.runtime.ComposeCompilerApi public void endReplaceableGroup();
     method @androidx.compose.runtime.ComposeCompilerApi public androidx.compose.runtime.ScopeUpdateScope? endRestartGroup();
     method @androidx.compose.runtime.ComposeCompilerApi public void endReusableGroup();
@@ -134,7 +142,11 @@
     method public androidx.compose.runtime.RecomposeScope? getRecomposeScope();
     method public Object? getRecomposeScopeIdentity();
     method public boolean getSkipping();
+    method @androidx.compose.runtime.InternalComposeApi public void insertMovableContent(androidx.compose.runtime.MovableContent<?> value, Object? parameter);
+    method @androidx.compose.runtime.InternalComposeApi public void insertMovableContentReferences(java.util.List<kotlin.Pair<androidx.compose.runtime.MovableContentStateReference,androidx.compose.runtime.MovableContentStateReference>> references);
     method @androidx.compose.runtime.ComposeCompilerApi public Object joinKey(Object? left, Object? right);
+    method @androidx.compose.runtime.InternalComposeApi public void recordSideEffect(kotlin.jvm.functions.Function0<kotlin.Unit> effect);
+    method @androidx.compose.runtime.InternalComposeApi public void recordUsed(androidx.compose.runtime.RecomposeScope scope);
     method @androidx.compose.runtime.ComposeCompilerApi public Object? rememberedValue();
     method @androidx.compose.runtime.ComposeCompilerApi public void skipCurrentGroup();
     method @androidx.compose.runtime.ComposeCompilerApi public void skipToGroupEnd();
@@ -144,6 +156,7 @@
     method @androidx.compose.runtime.ComposeCompilerApi public void startDefaults();
     method @androidx.compose.runtime.ComposeCompilerApi public void startMovableGroup(int key, Object? dataKey);
     method @androidx.compose.runtime.ComposeCompilerApi public void startNode();
+    method @androidx.compose.runtime.InternalComposeApi public void startProviders(androidx.compose.runtime.ProvidedValue<?>![] values);
     method @androidx.compose.runtime.ComposeCompilerApi public void startReplaceableGroup(int key);
     method @androidx.compose.runtime.ComposeCompilerApi public androidx.compose.runtime.Composer startRestartGroup(int key);
     method @androidx.compose.runtime.ComposeCompilerApi public void startReusableGroup(int key, Object? dataKey);
@@ -151,6 +164,7 @@
     method @androidx.compose.runtime.ComposeCompilerApi public void updateRememberedValue(Object? value);
     method @androidx.compose.runtime.ComposeCompilerApi public void useNode();
     property public abstract androidx.compose.runtime.Applier<?> applier;
+    property @androidx.compose.runtime.InternalComposeApi @org.jetbrains.annotations.TestOnly public abstract kotlin.coroutines.CoroutineContext applyCoroutineContext;
     property @org.jetbrains.annotations.TestOnly public abstract androidx.compose.runtime.ControlledComposition composition;
     property public abstract androidx.compose.runtime.tooling.CompositionData compositionData;
     property public abstract int compoundKeyHash;
@@ -166,6 +180,7 @@
 
   public static final class Composer.Companion {
     method public Object getEmpty();
+    method @androidx.compose.runtime.InternalComposeTracingApi public void setTracer(androidx.compose.runtime.CompositionTracer tracer);
     property public final Object Empty;
   }
 
@@ -196,7 +211,10 @@
 
   public final class CompositionKt {
     method public static androidx.compose.runtime.Composition Composition(androidx.compose.runtime.Applier<?> applier, androidx.compose.runtime.CompositionContext parent);
+    method @androidx.compose.runtime.ExperimentalComposeApi public static androidx.compose.runtime.Composition Composition(androidx.compose.runtime.Applier<?> applier, androidx.compose.runtime.CompositionContext parent, kotlin.coroutines.CoroutineContext recomposeCoroutineContext);
     method @org.jetbrains.annotations.TestOnly public static androidx.compose.runtime.ControlledComposition ControlledComposition(androidx.compose.runtime.Applier<?> applier, androidx.compose.runtime.CompositionContext parent);
+    method @androidx.compose.runtime.ExperimentalComposeApi @org.jetbrains.annotations.TestOnly public static androidx.compose.runtime.ControlledComposition ControlledComposition(androidx.compose.runtime.Applier<?> applier, androidx.compose.runtime.CompositionContext parent, kotlin.coroutines.CoroutineContext recomposeCoroutineContext);
+    method @androidx.compose.runtime.ExperimentalComposeApi public static kotlin.coroutines.CoroutineContext getRecomposeCoroutineContext(androidx.compose.runtime.ControlledComposition);
   }
 
   @androidx.compose.runtime.Stable public abstract sealed class CompositionLocal<T> {
@@ -224,13 +242,21 @@
     property public final androidx.compose.runtime.CompositionLocalMap Empty;
   }
 
+  @androidx.compose.runtime.InternalComposeTracingApi public interface CompositionTracer {
+    method public boolean isTraceInProgress();
+    method public void traceEventEnd();
+    method public void traceEventStart(int key, int dirty1, int dirty2, String info);
+  }
+
   public sealed interface ControlledComposition extends androidx.compose.runtime.Composition {
     method public void applyChanges();
     method public void applyLateChanges();
     method public void changesApplied();
     method public void composeContent(kotlin.jvm.functions.Function0<kotlin.Unit> content);
     method public <R> R delegateInvalidations(androidx.compose.runtime.ControlledComposition? to, int groupIndex, kotlin.jvm.functions.Function0<? extends R> block);
+    method @androidx.compose.runtime.InternalComposeApi public void disposeUnusedMovableContent(androidx.compose.runtime.MovableContentState state);
     method public boolean getHasPendingChanges();
+    method @androidx.compose.runtime.InternalComposeApi public void insertMovableContent(java.util.List<kotlin.Pair<androidx.compose.runtime.MovableContentStateReference,androidx.compose.runtime.MovableContentStateReference>> references);
     method public void invalidateAll();
     method public boolean isComposing();
     method public boolean observesAnyOf(java.util.Set<?> values);
@@ -239,6 +265,7 @@
     method public void recordModificationsOf(java.util.Set<?> values);
     method public void recordReadOf(Object value);
     method public void recordWriteOf(Object value);
+    method @androidx.compose.runtime.InternalComposeApi public void verifyConsistent();
     property public abstract boolean hasPendingChanges;
     property public abstract boolean isComposing;
   }
@@ -277,6 +304,9 @@
     method @androidx.compose.runtime.Composable public static inline kotlinx.coroutines.CoroutineScope rememberCoroutineScope(optional kotlin.jvm.functions.Function0<? extends kotlin.coroutines.CoroutineContext> getContext);
   }
 
+  @kotlin.RequiresOptIn(level=kotlin.RequiresOptIn.Level.ERROR, message="This is an experimental API for Compose and is likely to change before becoming " + "stable.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.CLASS, kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.PROPERTY, kotlin.annotation.AnnotationTarget.PROPERTY_GETTER}) public @interface ExperimentalComposeApi {
+  }
+
   @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.SOURCE) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.PROPERTY_GETTER}) public @interface ExplicitGroupsComposable {
   }
 
@@ -297,6 +327,12 @@
     property @androidx.compose.runtime.snapshots.AutoboxingStateValueProperty(preferredPropertyName="intValue") public default Integer value;
   }
 
+  @kotlin.RequiresOptIn(level=kotlin.RequiresOptIn.Level.ERROR, message="This is internal API for Compose modules that may change frequently " + "and without warning.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.CLASS, kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.PROPERTY}) public @interface InternalComposeApi {
+  }
+
+  @kotlin.RequiresOptIn(level=kotlin.RequiresOptIn.Level.ERROR, message="This is internal API that may change frequently and without warning.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface InternalComposeTracingApi {
+  }
+
   @androidx.compose.runtime.Stable @kotlin.jvm.JvmDefaultWithCompatibility public interface LongState extends androidx.compose.runtime.State<java.lang.Long> {
     method public long getLongValue();
     method public default Long getValue();
@@ -321,6 +357,12 @@
     method public static suspend <R> Object? withFrameNanos(kotlin.jvm.functions.Function1<? super java.lang.Long,? extends R> onFrame, kotlin.coroutines.Continuation<? super R>);
   }
 
+  @androidx.compose.runtime.InternalComposeApi public final class MovableContent<P> {
+    ctor public MovableContent(kotlin.jvm.functions.Function1<? super P,kotlin.Unit> content);
+    method public kotlin.jvm.functions.Function1<P,kotlin.Unit> getContent();
+    property public final kotlin.jvm.functions.Function1<P,kotlin.Unit> content;
+  }
+
   public final class MovableContentKt {
     method public static kotlin.jvm.functions.Function0<kotlin.Unit> movableContentOf(kotlin.jvm.functions.Function0<kotlin.Unit> content);
     method public static <P> kotlin.jvm.functions.Function1<P,kotlin.Unit> movableContentOf(kotlin.jvm.functions.Function1<? super P,kotlin.Unit> content);
@@ -333,6 +375,12 @@
     method public static <R, P1, P2, P3> kotlin.jvm.functions.Function4<R,P1,P2,P3,kotlin.Unit> movableContentWithReceiverOf(kotlin.jvm.functions.Function4<? super R,? super P1,? super P2,? super P3,kotlin.Unit> content);
   }
 
+  @androidx.compose.runtime.InternalComposeApi public final class MovableContentState {
+  }
+
+  @androidx.compose.runtime.InternalComposeApi public final class MovableContentStateReference {
+  }
+
   @androidx.compose.runtime.Stable @kotlin.jvm.JvmDefaultWithCompatibility public interface MutableDoubleState extends androidx.compose.runtime.DoubleState androidx.compose.runtime.MutableState<java.lang.Double> {
     method public void setDoubleValue(double);
     method public default void setValue(double);
@@ -429,6 +477,7 @@
     method public void pauseCompositionFrameClock();
     method public void resumeCompositionFrameClock();
     method public suspend Object? runRecomposeAndApplyChanges(kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    method @androidx.compose.runtime.ExperimentalComposeApi public suspend Object? runRecomposeConcurrentlyAndApplyChanges(kotlin.coroutines.CoroutineContext recomposeCoroutineContext, kotlin.coroutines.Continuation<? super kotlin.Unit>);
     property public final long changeCount;
     property public final kotlinx.coroutines.flow.StateFlow<androidx.compose.runtime.Recomposer.State> currentState;
     property public kotlin.coroutines.CoroutineContext effectCoroutineContext;
@@ -656,6 +705,20 @@
     method @androidx.compose.runtime.ComposeCompilerApi public static androidx.compose.runtime.internal.ComposableLambdaN composableLambdaNInstance(int key, boolean tracked, int arity, Object block);
   }
 
+  @androidx.compose.runtime.ExperimentalComposeApi @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.CONSTRUCTOR}) public @interface Decoy {
+    method public abstract String[] signature();
+    method public abstract String targetName();
+    property public abstract String[] signature;
+    property public abstract String targetName;
+  }
+
+  @androidx.compose.runtime.ExperimentalComposeApi @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.CONSTRUCTOR}) public @interface DecoyImplementation {
+    method public abstract long id();
+    method public abstract String name();
+    property public abstract long id;
+    property public abstract String name;
+  }
+
   public final class DecoyKt {
     method @androidx.compose.runtime.ComposeCompilerApi public static Void illegalDecoyCallException(String fName);
   }
@@ -691,7 +754,10 @@
   }
 
   public final class LiveLiteralKt {
+    method @androidx.compose.runtime.InternalComposeApi public static void enableLiveLiterals();
     method public static boolean isLiveLiteralsEnabled();
+    method @androidx.compose.runtime.ComposeCompilerApi @androidx.compose.runtime.InternalComposeApi public static <T> androidx.compose.runtime.State<T> liveLiteral(String key, T value);
+    method @androidx.compose.runtime.InternalComposeApi public static void updateLiveLiteralValue(String key, Object? value);
     property public static final boolean isLiveLiteralsEnabled;
   }
 
@@ -756,6 +822,8 @@
     method public abstract androidx.compose.runtime.snapshots.Snapshot getRoot();
     method public abstract boolean hasPendingChanges();
     method public abstract androidx.compose.runtime.snapshots.Snapshot takeNestedSnapshot(optional kotlin.jvm.functions.Function1<java.lang.Object,kotlin.Unit>? readObserver);
+    method @androidx.compose.runtime.ExperimentalComposeApi public final androidx.compose.runtime.snapshots.Snapshot? unsafeEnter();
+    method @androidx.compose.runtime.ExperimentalComposeApi public final void unsafeLeave(androidx.compose.runtime.snapshots.Snapshot? oldSnapshot);
     property public int id;
     property public abstract boolean readOnly;
     property public abstract androidx.compose.runtime.snapshots.Snapshot root;
@@ -768,6 +836,7 @@
     method public boolean isApplyObserverNotificationPending();
     method public void notifyObjectsInitialized();
     method public <T> T observe(optional kotlin.jvm.functions.Function1<java.lang.Object,kotlin.Unit>? readObserver, optional kotlin.jvm.functions.Function1<java.lang.Object,kotlin.Unit>? writeObserver, kotlin.jvm.functions.Function0<? extends T> block);
+    method @androidx.compose.runtime.InternalComposeApi public int openSnapshotCount();
     method public androidx.compose.runtime.snapshots.ObserverHandle registerApplyObserver(kotlin.jvm.functions.Function2<? super java.util.Set<?>,? super androidx.compose.runtime.snapshots.Snapshot,kotlin.Unit> observer);
     method public androidx.compose.runtime.snapshots.ObserverHandle registerGlobalWriteObserver(kotlin.jvm.functions.Function1<java.lang.Object,kotlin.Unit> observer);
     method public void sendApplyNotifications();
@@ -807,6 +876,17 @@
     field public static final androidx.compose.runtime.snapshots.SnapshotApplyResult.Success INSTANCE;
   }
 
+  @androidx.compose.runtime.ExperimentalComposeApi public interface SnapshotContextElement extends kotlin.coroutines.CoroutineContext.Element {
+    field public static final androidx.compose.runtime.snapshots.SnapshotContextElement.Key Key;
+  }
+
+  public static final class SnapshotContextElement.Key implements kotlin.coroutines.CoroutineContext.Key<androidx.compose.runtime.snapshots.SnapshotContextElement> {
+  }
+
+  public final class SnapshotContextElementKt {
+    method @androidx.compose.runtime.ExperimentalComposeApi public static androidx.compose.runtime.snapshots.SnapshotContextElement asContextElement(androidx.compose.runtime.snapshots.Snapshot);
+  }
+
   public final class SnapshotKt {
     method public static <T extends androidx.compose.runtime.snapshots.StateRecord> T readable(T, androidx.compose.runtime.snapshots.StateObject state);
     method public static <T extends androidx.compose.runtime.snapshots.StateRecord> T readable(T, androidx.compose.runtime.snapshots.StateObject state, androidx.compose.runtime.snapshots.Snapshot snapshot);
diff --git a/compose/runtime/runtime/api/res-1.5.0-beta01.txt b/compose/runtime/runtime/api/res-1.5.0-beta01.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/compose/runtime/runtime/api/res-1.5.0-beta01.txt
diff --git a/compose/runtime/runtime/api/restricted_1.5.0-beta01.txt b/compose/runtime/runtime/api/restricted_1.5.0-beta01.txt
new file mode 100644
index 0000000..6cfdfcb
--- /dev/null
+++ b/compose/runtime/runtime/api/restricted_1.5.0-beta01.txt
@@ -0,0 +1,1071 @@
+// Signature format: 4.0
+package androidx.compose.runtime {
+
+  public abstract class AbstractApplier<T> implements androidx.compose.runtime.Applier<T> {
+    ctor public AbstractApplier(T root);
+    method public final void clear();
+    method public void down(T node);
+    method public T getCurrent();
+    method public final T getRoot();
+    method protected final void move(java.util.List<T>, int from, int to, int count);
+    method protected abstract void onClear();
+    method protected final void remove(java.util.List<T>, int index, int count);
+    method protected void setCurrent(T!);
+    method public void up();
+    property public T current;
+    property public final T root;
+  }
+
+  public final class ActualAndroid_androidKt {
+    method @Deprecated public static androidx.compose.runtime.MonotonicFrameClock getDefaultMonotonicFrameClock();
+    property @Deprecated public static final androidx.compose.runtime.MonotonicFrameClock DefaultMonotonicFrameClock;
+  }
+
+  public final class ActualJvm_jvmKt {
+    method @kotlin.PublishedApi internal static inline <R> R synchronized(Object lock, kotlin.jvm.functions.Function0<? extends R> block);
+  }
+
+  @kotlin.jvm.JvmDefaultWithCompatibility public interface Applier<N> {
+    method public void clear();
+    method public void down(N node);
+    method public N getCurrent();
+    method public void insertBottomUp(int index, N instance);
+    method public void insertTopDown(int index, N instance);
+    method public void move(int from, int to, int count);
+    method public default void onBeginChanges();
+    method public default void onEndChanges();
+    method public void remove(int index, int count);
+    method public void up();
+    property public abstract N current;
+  }
+
+  public final class BroadcastFrameClock implements androidx.compose.runtime.MonotonicFrameClock {
+    ctor public BroadcastFrameClock(optional kotlin.jvm.functions.Function0<kotlin.Unit>? onNewAwaiters);
+    method public void cancel(optional java.util.concurrent.CancellationException cancellationException);
+    method public boolean getHasAwaiters();
+    method public void sendFrame(long timeNanos);
+    method public suspend <R> Object? withFrameNanos(kotlin.jvm.functions.Function1<? super java.lang.Long,? extends R> onFrame, kotlin.coroutines.Continuation<? super R>);
+    property public final boolean hasAwaiters;
+  }
+
+  @kotlin.annotation.MustBeDocumented @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.TYPE, kotlin.annotation.AnnotationTarget.TYPE_PARAMETER, kotlin.annotation.AnnotationTarget.PROPERTY_GETTER}) public @interface Composable {
+  }
+
+  @androidx.compose.runtime.InternalComposeApi @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.PROPERTY_GETTER}) public @interface ComposableInferredTarget {
+    method public abstract String scheme();
+    property public abstract String scheme;
+  }
+
+  @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.PROPERTY_GETTER, kotlin.annotation.AnnotationTarget.TYPE, kotlin.annotation.AnnotationTarget.TYPE_PARAMETER}) public @interface ComposableOpenTarget {
+    method public abstract int index();
+    property public abstract int index;
+  }
+
+  @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.FILE, kotlin.annotation.AnnotationTarget.CLASS, kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.PROPERTY_GETTER, kotlin.annotation.AnnotationTarget.TYPE, kotlin.annotation.AnnotationTarget.TYPE_PARAMETER}) public @interface ComposableTarget {
+    method public abstract String applier();
+    property public abstract String applier;
+  }
+
+  @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets=kotlin.annotation.AnnotationTarget.ANNOTATION_CLASS) public @interface ComposableTargetMarker {
+    method public abstract String description() default "";
+    property public abstract String description;
+  }
+
+  public final class ComposablesKt {
+    method @androidx.compose.runtime.Composable public static inline <T extends java.lang.Object, reified E extends androidx.compose.runtime.Applier<?>> void ComposeNode(kotlin.jvm.functions.Function0<? extends T> factory, kotlin.jvm.functions.Function1<? super androidx.compose.runtime.Updater<T>,kotlin.Unit> update);
+    method @androidx.compose.runtime.Composable public static inline <T extends java.lang.Object, reified E extends androidx.compose.runtime.Applier<?>> void ComposeNode(kotlin.jvm.functions.Function0<? extends T> factory, kotlin.jvm.functions.Function1<? super androidx.compose.runtime.Updater<T>,kotlin.Unit> update, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+    method @androidx.compose.runtime.Composable @androidx.compose.runtime.ExplicitGroupsComposable public static inline <T, reified E extends androidx.compose.runtime.Applier<?>> void ComposeNode(kotlin.jvm.functions.Function0<? extends T> factory, kotlin.jvm.functions.Function1<? super androidx.compose.runtime.Updater<T>,kotlin.Unit> update, kotlin.jvm.functions.Function1<? super androidx.compose.runtime.SkippableUpdater<T>,kotlin.Unit> skippableUpdate, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+    method @androidx.compose.runtime.Composable public static inline <T extends java.lang.Object, reified E extends androidx.compose.runtime.Applier<?>> void ReusableComposeNode(kotlin.jvm.functions.Function0<? extends T> factory, kotlin.jvm.functions.Function1<? super androidx.compose.runtime.Updater<T>,kotlin.Unit> update);
+    method @androidx.compose.runtime.Composable public static inline <T extends java.lang.Object, reified E extends androidx.compose.runtime.Applier<?>> void ReusableComposeNode(kotlin.jvm.functions.Function0<? extends T> factory, kotlin.jvm.functions.Function1<? super androidx.compose.runtime.Updater<T>,kotlin.Unit> update, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+    method @androidx.compose.runtime.Composable @androidx.compose.runtime.ExplicitGroupsComposable public static inline <T, reified E extends androidx.compose.runtime.Applier<?>> void ReusableComposeNode(kotlin.jvm.functions.Function0<? extends T> factory, kotlin.jvm.functions.Function1<? super androidx.compose.runtime.Updater<T>,kotlin.Unit> update, kotlin.jvm.functions.Function1<? super androidx.compose.runtime.SkippableUpdater<T>,kotlin.Unit> skippableUpdate, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+    method @androidx.compose.runtime.Composable public static inline void ReusableContent(Object? key, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+    method @androidx.compose.runtime.Composable @androidx.compose.runtime.ExplicitGroupsComposable public static inline void ReusableContentHost(boolean active, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+    method @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public static androidx.compose.runtime.Composer getCurrentComposer();
+    method @androidx.compose.runtime.Composable @androidx.compose.runtime.ExplicitGroupsComposable public static int getCurrentCompositeKeyHash();
+    method @androidx.compose.runtime.Composable public static androidx.compose.runtime.CompositionLocalContext getCurrentCompositionLocalContext();
+    method @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public static androidx.compose.runtime.RecomposeScope getCurrentRecomposeScope();
+    method @kotlin.PublishedApi internal static void invalidApplier();
+    method @androidx.compose.runtime.Composable public static inline <T> T key(Object![]? keys, kotlin.jvm.functions.Function0<? extends T> block);
+    method @androidx.compose.runtime.Composable public static inline <T> T remember(Object? key1, Object? key2, Object? key3, kotlin.jvm.functions.Function0<? extends T> calculation);
+    method @androidx.compose.runtime.Composable public static inline <T> T remember(Object? key1, Object? key2, kotlin.jvm.functions.Function0<? extends T> calculation);
+    method @androidx.compose.runtime.Composable public static inline <T> T remember(Object? key1, kotlin.jvm.functions.Function0<? extends T> calculation);
+    method @androidx.compose.runtime.Composable public static inline <T> T remember(Object![]? keys, kotlin.jvm.functions.Function0<? extends T> calculation);
+    method @androidx.compose.runtime.Composable public static inline <T> T remember(kotlin.jvm.functions.Function0<? extends T> calculation);
+    method @androidx.compose.runtime.Composable public static androidx.compose.runtime.CompositionContext rememberCompositionContext();
+    property @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public static final androidx.compose.runtime.Composer currentComposer;
+    property @androidx.compose.runtime.Composable @androidx.compose.runtime.ExplicitGroupsComposable public static final int currentCompositeKeyHash;
+    property @androidx.compose.runtime.Composable public static final androidx.compose.runtime.CompositionLocalContext currentCompositionLocalContext;
+    property @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public static final androidx.compose.runtime.RecomposeScope currentRecomposeScope;
+  }
+
+  @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.CLASS, kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.PROPERTY, kotlin.annotation.AnnotationTarget.TYPEALIAS}) public @interface ComposeCompilerApi {
+  }
+
+  public interface ComposeNodeLifecycleCallback {
+    method public void onDeactivate();
+    method public void onRelease();
+    method public void onReuse();
+  }
+
+  public sealed interface Composer {
+    method @androidx.compose.runtime.ComposeCompilerApi public <V, T> void apply(V value, kotlin.jvm.functions.Function2<? super T,? super V,kotlin.Unit> block);
+    method @androidx.compose.runtime.InternalComposeApi public androidx.compose.runtime.CompositionContext buildContext();
+    method @androidx.compose.runtime.ComposeCompilerApi public default boolean changed(boolean value);
+    method @androidx.compose.runtime.ComposeCompilerApi public default boolean changed(byte value);
+    method @androidx.compose.runtime.ComposeCompilerApi public default boolean changed(char value);
+    method @androidx.compose.runtime.ComposeCompilerApi public default boolean changed(double value);
+    method @androidx.compose.runtime.ComposeCompilerApi public default boolean changed(float value);
+    method @androidx.compose.runtime.ComposeCompilerApi public default boolean changed(int value);
+    method @androidx.compose.runtime.ComposeCompilerApi public boolean changed(Object? value);
+    method @androidx.compose.runtime.ComposeCompilerApi public default boolean changed(long value);
+    method @androidx.compose.runtime.ComposeCompilerApi public default boolean changed(short value);
+    method @androidx.compose.runtime.ComposeCompilerApi public default boolean changedInstance(Object? value);
+    method public void collectParameterInformation();
+    method @androidx.compose.runtime.InternalComposeApi public <T> T consume(androidx.compose.runtime.CompositionLocal<T> key);
+    method @androidx.compose.runtime.ComposeCompilerApi public <T> void createNode(kotlin.jvm.functions.Function0<? extends T> factory);
+    method @androidx.compose.runtime.ComposeCompilerApi public void deactivateToEndGroup(boolean changed);
+    method @androidx.compose.runtime.ComposeCompilerApi public void disableReusing();
+    method @org.jetbrains.annotations.TestOnly public void disableSourceInformation();
+    method @androidx.compose.runtime.ComposeCompilerApi public void enableReusing();
+    method @androidx.compose.runtime.ComposeCompilerApi public void endDefaults();
+    method @androidx.compose.runtime.ComposeCompilerApi public void endMovableGroup();
+    method @androidx.compose.runtime.ComposeCompilerApi public void endNode();
+    method @androidx.compose.runtime.InternalComposeApi public void endProviders();
+    method @androidx.compose.runtime.ComposeCompilerApi public void endReplaceableGroup();
+    method @androidx.compose.runtime.ComposeCompilerApi public androidx.compose.runtime.ScopeUpdateScope? endRestartGroup();
+    method @androidx.compose.runtime.ComposeCompilerApi public void endReusableGroup();
+    method @androidx.compose.runtime.ComposeCompilerApi public void endToMarker(int marker);
+    method public androidx.compose.runtime.Applier<?> getApplier();
+    method @org.jetbrains.annotations.TestOnly public kotlin.coroutines.CoroutineContext getApplyCoroutineContext();
+    method @org.jetbrains.annotations.TestOnly public androidx.compose.runtime.ControlledComposition getComposition();
+    method public androidx.compose.runtime.tooling.CompositionData getCompositionData();
+    method public int getCompoundKeyHash();
+    method public androidx.compose.runtime.CompositionLocalMap getCurrentCompositionLocalMap();
+    method public int getCurrentMarker();
+    method public boolean getDefaultsInvalid();
+    method public boolean getInserting();
+    method public androidx.compose.runtime.RecomposeScope? getRecomposeScope();
+    method public Object? getRecomposeScopeIdentity();
+    method public boolean getSkipping();
+    method @androidx.compose.runtime.InternalComposeApi public void insertMovableContent(androidx.compose.runtime.MovableContent<?> value, Object? parameter);
+    method @androidx.compose.runtime.InternalComposeApi public void insertMovableContentReferences(java.util.List<kotlin.Pair<androidx.compose.runtime.MovableContentStateReference,androidx.compose.runtime.MovableContentStateReference>> references);
+    method @androidx.compose.runtime.ComposeCompilerApi public Object joinKey(Object? left, Object? right);
+    method @androidx.compose.runtime.InternalComposeApi public void recordSideEffect(kotlin.jvm.functions.Function0<kotlin.Unit> effect);
+    method @androidx.compose.runtime.InternalComposeApi public void recordUsed(androidx.compose.runtime.RecomposeScope scope);
+    method @androidx.compose.runtime.ComposeCompilerApi public Object? rememberedValue();
+    method @androidx.compose.runtime.ComposeCompilerApi public void skipCurrentGroup();
+    method @androidx.compose.runtime.ComposeCompilerApi public void skipToGroupEnd();
+    method public void sourceInformation(String sourceInformation);
+    method public void sourceInformationMarkerEnd();
+    method public void sourceInformationMarkerStart(int key, String sourceInformation);
+    method @androidx.compose.runtime.ComposeCompilerApi public void startDefaults();
+    method @androidx.compose.runtime.ComposeCompilerApi public void startMovableGroup(int key, Object? dataKey);
+    method @androidx.compose.runtime.ComposeCompilerApi public void startNode();
+    method @androidx.compose.runtime.InternalComposeApi public void startProviders(androidx.compose.runtime.ProvidedValue<?>![] values);
+    method @androidx.compose.runtime.ComposeCompilerApi public void startReplaceableGroup(int key);
+    method @androidx.compose.runtime.ComposeCompilerApi public androidx.compose.runtime.Composer startRestartGroup(int key);
+    method @androidx.compose.runtime.ComposeCompilerApi public void startReusableGroup(int key, Object? dataKey);
+    method @androidx.compose.runtime.ComposeCompilerApi public void startReusableNode();
+    method @androidx.compose.runtime.ComposeCompilerApi public void updateRememberedValue(Object? value);
+    method @androidx.compose.runtime.ComposeCompilerApi public void useNode();
+    property public abstract androidx.compose.runtime.Applier<?> applier;
+    property @androidx.compose.runtime.InternalComposeApi @org.jetbrains.annotations.TestOnly public abstract kotlin.coroutines.CoroutineContext applyCoroutineContext;
+    property @org.jetbrains.annotations.TestOnly public abstract androidx.compose.runtime.ControlledComposition composition;
+    property public abstract androidx.compose.runtime.tooling.CompositionData compositionData;
+    property public abstract int compoundKeyHash;
+    property public abstract androidx.compose.runtime.CompositionLocalMap currentCompositionLocalMap;
+    property public abstract int currentMarker;
+    property public abstract boolean defaultsInvalid;
+    property public abstract boolean inserting;
+    property public abstract androidx.compose.runtime.RecomposeScope? recomposeScope;
+    property public abstract Object? recomposeScopeIdentity;
+    property public abstract boolean skipping;
+    field public static final androidx.compose.runtime.Composer.Companion Companion;
+  }
+
+  public static final class Composer.Companion {
+    method public Object getEmpty();
+    method @androidx.compose.runtime.InternalComposeTracingApi public void setTracer(androidx.compose.runtime.CompositionTracer tracer);
+    property public final Object Empty;
+  }
+
+  public final class ComposerKt {
+    method @androidx.compose.runtime.ComposeCompilerApi public static inline <T> T cache(androidx.compose.runtime.Composer, boolean invalid, kotlin.jvm.functions.Function0<? extends T> block);
+    method @androidx.compose.runtime.ComposeCompilerApi public static boolean isTraceInProgress();
+    method @androidx.compose.runtime.ComposeCompilerApi public static void sourceInformation(androidx.compose.runtime.Composer composer, String sourceInformation);
+    method @androidx.compose.runtime.ComposeCompilerApi public static void sourceInformationMarkerEnd(androidx.compose.runtime.Composer composer);
+    method @androidx.compose.runtime.ComposeCompilerApi public static void sourceInformationMarkerStart(androidx.compose.runtime.Composer composer, int key, String sourceInformation);
+    method @androidx.compose.runtime.ComposeCompilerApi public static void traceEventEnd();
+    method @androidx.compose.runtime.ComposeCompilerApi public static void traceEventStart(int key, int dirty1, int dirty2, String info);
+    method @Deprecated @androidx.compose.runtime.ComposeCompilerApi public static void traceEventStart(int key, String info);
+    field @kotlin.PublishedApi internal static final Object compositionLocalMap;
+    field @kotlin.PublishedApi internal static final int compositionLocalMapKey = 202; // 0xca
+    field @kotlin.PublishedApi internal static final Object invocation;
+    field @kotlin.PublishedApi internal static final int invocationKey = 200; // 0xc8
+    field @kotlin.PublishedApi internal static final Object provider;
+    field @kotlin.PublishedApi internal static final int providerKey = 201; // 0xc9
+    field @kotlin.PublishedApi internal static final Object providerMaps;
+    field @kotlin.PublishedApi internal static final int providerMapsKey = 204; // 0xcc
+    field @kotlin.PublishedApi internal static final Object providerValues;
+    field @kotlin.PublishedApi internal static final int providerValuesKey = 203; // 0xcb
+    field @kotlin.PublishedApi internal static final Object reference;
+    field @kotlin.PublishedApi internal static final int referenceKey = 206; // 0xce
+    field @kotlin.PublishedApi internal static final int reuseKey = 207; // 0xcf
+  }
+
+  public interface Composition {
+    method public void dispose();
+    method public boolean getHasInvalidations();
+    method public boolean isDisposed();
+    method public void setContent(kotlin.jvm.functions.Function0<kotlin.Unit> content);
+    property public abstract boolean hasInvalidations;
+    property public abstract boolean isDisposed;
+  }
+
+  public abstract class CompositionContext {
+    method public abstract kotlin.coroutines.CoroutineContext getEffectCoroutineContext();
+    property public abstract kotlin.coroutines.CoroutineContext effectCoroutineContext;
+  }
+
+  public final class CompositionKt {
+    method public static androidx.compose.runtime.Composition Composition(androidx.compose.runtime.Applier<?> applier, androidx.compose.runtime.CompositionContext parent);
+    method @androidx.compose.runtime.ExperimentalComposeApi public static androidx.compose.runtime.Composition Composition(androidx.compose.runtime.Applier<?> applier, androidx.compose.runtime.CompositionContext parent, kotlin.coroutines.CoroutineContext recomposeCoroutineContext);
+    method @org.jetbrains.annotations.TestOnly public static androidx.compose.runtime.ControlledComposition ControlledComposition(androidx.compose.runtime.Applier<?> applier, androidx.compose.runtime.CompositionContext parent);
+    method @androidx.compose.runtime.ExperimentalComposeApi @org.jetbrains.annotations.TestOnly public static androidx.compose.runtime.ControlledComposition ControlledComposition(androidx.compose.runtime.Applier<?> applier, androidx.compose.runtime.CompositionContext parent, kotlin.coroutines.CoroutineContext recomposeCoroutineContext);
+    method @androidx.compose.runtime.ExperimentalComposeApi public static kotlin.coroutines.CoroutineContext getRecomposeCoroutineContext(androidx.compose.runtime.ControlledComposition);
+  }
+
+  @androidx.compose.runtime.Stable public abstract sealed class CompositionLocal<T> {
+    method @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public final inline T getCurrent();
+    property @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public final inline T current;
+  }
+
+  @androidx.compose.runtime.Stable public final class CompositionLocalContext {
+  }
+
+  public final class CompositionLocalKt {
+    method @androidx.compose.runtime.Composable public static void CompositionLocalProvider(androidx.compose.runtime.CompositionLocalContext context, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+    method @androidx.compose.runtime.Composable public static void CompositionLocalProvider(androidx.compose.runtime.ProvidedValue<?>![] values, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+    method public static <T> androidx.compose.runtime.ProvidableCompositionLocal<T> compositionLocalOf(optional androidx.compose.runtime.SnapshotMutationPolicy<T> policy, kotlin.jvm.functions.Function0<? extends T> defaultFactory);
+    method public static <T> androidx.compose.runtime.ProvidableCompositionLocal<T> staticCompositionLocalOf(kotlin.jvm.functions.Function0<? extends T> defaultFactory);
+  }
+
+  public sealed interface CompositionLocalMap {
+    method public operator <T> T get(androidx.compose.runtime.CompositionLocal<T> key);
+    field public static final androidx.compose.runtime.CompositionLocalMap.Companion Companion;
+  }
+
+  public static final class CompositionLocalMap.Companion {
+    method public androidx.compose.runtime.CompositionLocalMap getEmpty();
+    property public final androidx.compose.runtime.CompositionLocalMap Empty;
+  }
+
+  @kotlin.PublishedApi internal final class CompositionScopedCoroutineScopeCanceller implements androidx.compose.runtime.RememberObserver {
+    ctor public CompositionScopedCoroutineScopeCanceller(kotlinx.coroutines.CoroutineScope coroutineScope);
+    method public kotlinx.coroutines.CoroutineScope getCoroutineScope();
+    method public void onAbandoned();
+    method public void onForgotten();
+    method public void onRemembered();
+    property public final kotlinx.coroutines.CoroutineScope coroutineScope;
+  }
+
+  @androidx.compose.runtime.InternalComposeTracingApi public interface CompositionTracer {
+    method public boolean isTraceInProgress();
+    method public void traceEventEnd();
+    method public void traceEventStart(int key, int dirty1, int dirty2, String info);
+  }
+
+  public sealed interface ControlledComposition extends androidx.compose.runtime.Composition {
+    method public void applyChanges();
+    method public void applyLateChanges();
+    method public void changesApplied();
+    method public void composeContent(kotlin.jvm.functions.Function0<kotlin.Unit> content);
+    method public <R> R delegateInvalidations(androidx.compose.runtime.ControlledComposition? to, int groupIndex, kotlin.jvm.functions.Function0<? extends R> block);
+    method @androidx.compose.runtime.InternalComposeApi public void disposeUnusedMovableContent(androidx.compose.runtime.MovableContentState state);
+    method public boolean getHasPendingChanges();
+    method @androidx.compose.runtime.InternalComposeApi public void insertMovableContent(java.util.List<kotlin.Pair<androidx.compose.runtime.MovableContentStateReference,androidx.compose.runtime.MovableContentStateReference>> references);
+    method public void invalidateAll();
+    method public boolean isComposing();
+    method public boolean observesAnyOf(java.util.Set<?> values);
+    method public void prepareCompose(kotlin.jvm.functions.Function0<kotlin.Unit> block);
+    method public boolean recompose();
+    method public void recordModificationsOf(java.util.Set<?> values);
+    method public void recordReadOf(Object value);
+    method public void recordWriteOf(Object value);
+    method @androidx.compose.runtime.InternalComposeApi public void verifyConsistent();
+    property public abstract boolean hasPendingChanges;
+    property public abstract boolean isComposing;
+  }
+
+  @kotlin.annotation.MustBeDocumented @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets=kotlin.annotation.AnnotationTarget.TYPE) public @interface DisallowComposableCalls {
+  }
+
+  public interface DisposableEffectResult {
+    method public void dispose();
+  }
+
+  public final class DisposableEffectScope {
+    ctor public DisposableEffectScope();
+    method public inline androidx.compose.runtime.DisposableEffectResult onDispose(kotlin.jvm.functions.Function0<kotlin.Unit> onDisposeEffect);
+  }
+
+  @androidx.compose.runtime.Stable @kotlin.jvm.JvmDefaultWithCompatibility public interface DoubleState extends androidx.compose.runtime.State<java.lang.Double> {
+    method public double getDoubleValue();
+    method public default Double getValue();
+    property public abstract double doubleValue;
+    property @androidx.compose.runtime.snapshots.AutoboxingStateValueProperty(preferredPropertyName="doubleValue") public default Double value;
+  }
+
+  public final class EffectsKt {
+    method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static void DisposableEffect(Object? key1, Object? key2, Object? key3, kotlin.jvm.functions.Function1<? super androidx.compose.runtime.DisposableEffectScope,? extends androidx.compose.runtime.DisposableEffectResult> effect);
+    method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static void DisposableEffect(Object? key1, Object? key2, kotlin.jvm.functions.Function1<? super androidx.compose.runtime.DisposableEffectScope,? extends androidx.compose.runtime.DisposableEffectResult> effect);
+    method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static void DisposableEffect(Object? key1, kotlin.jvm.functions.Function1<? super androidx.compose.runtime.DisposableEffectScope,? extends androidx.compose.runtime.DisposableEffectResult> effect);
+    method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static void DisposableEffect(Object![]? keys, kotlin.jvm.functions.Function1<? super androidx.compose.runtime.DisposableEffectScope,? extends androidx.compose.runtime.DisposableEffectResult> effect);
+    method @Deprecated @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static void DisposableEffect(kotlin.jvm.functions.Function1<? super androidx.compose.runtime.DisposableEffectScope,? extends androidx.compose.runtime.DisposableEffectResult> effect);
+    method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static void LaunchedEffect(Object? key1, Object? key2, Object? key3, kotlin.jvm.functions.Function2<? super kotlinx.coroutines.CoroutineScope,? super kotlin.coroutines.Continuation<? super kotlin.Unit>,?> block);
+    method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static void LaunchedEffect(Object? key1, Object? key2, kotlin.jvm.functions.Function2<? super kotlinx.coroutines.CoroutineScope,? super kotlin.coroutines.Continuation<? super kotlin.Unit>,?> block);
+    method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static void LaunchedEffect(Object? key1, kotlin.jvm.functions.Function2<? super kotlinx.coroutines.CoroutineScope,? super kotlin.coroutines.Continuation<? super kotlin.Unit>,?> block);
+    method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static void LaunchedEffect(Object![]? keys, kotlin.jvm.functions.Function2<? super kotlinx.coroutines.CoroutineScope,? super kotlin.coroutines.Continuation<? super kotlin.Unit>,?> block);
+    method @Deprecated @androidx.compose.runtime.Composable public static void LaunchedEffect(kotlin.jvm.functions.Function2<? super kotlinx.coroutines.CoroutineScope,? super kotlin.coroutines.Continuation<? super kotlin.Unit>,?> block);
+    method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static void SideEffect(kotlin.jvm.functions.Function0<kotlin.Unit> effect);
+    method @kotlin.PublishedApi internal static kotlinx.coroutines.CoroutineScope createCompositionCoroutineScope(kotlin.coroutines.CoroutineContext coroutineContext, androidx.compose.runtime.Composer composer);
+    method @androidx.compose.runtime.Composable public static inline kotlinx.coroutines.CoroutineScope rememberCoroutineScope(optional kotlin.jvm.functions.Function0<? extends kotlin.coroutines.CoroutineContext> getContext);
+  }
+
+  public final class ExpectKt {
+    method @kotlin.PublishedApi internal static inline <R> R synchronized(Object lock, kotlin.jvm.functions.Function0<? extends R> block);
+  }
+
+  @kotlin.RequiresOptIn(level=kotlin.RequiresOptIn.Level.ERROR, message="This is an experimental API for Compose and is likely to change before becoming " + "stable.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.CLASS, kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.PROPERTY, kotlin.annotation.AnnotationTarget.PROPERTY_GETTER}) public @interface ExperimentalComposeApi {
+  }
+
+  @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.SOURCE) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.PROPERTY_GETTER}) public @interface ExplicitGroupsComposable {
+  }
+
+  @androidx.compose.runtime.Stable @kotlin.jvm.JvmDefaultWithCompatibility public interface FloatState extends androidx.compose.runtime.State<java.lang.Float> {
+    method public float getFloatValue();
+    method public default Float getValue();
+    property public abstract float floatValue;
+    property @androidx.compose.runtime.snapshots.AutoboxingStateValueProperty(preferredPropertyName="floatValue") public default Float value;
+  }
+
+  @androidx.compose.runtime.StableMarker @kotlin.annotation.MustBeDocumented @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets=kotlin.annotation.AnnotationTarget.CLASS) public @interface Immutable {
+  }
+
+  @androidx.compose.runtime.Stable @kotlin.jvm.JvmDefaultWithCompatibility public interface IntState extends androidx.compose.runtime.State<java.lang.Integer> {
+    method public int getIntValue();
+    method public default Integer getValue();
+    property public abstract int intValue;
+    property @androidx.compose.runtime.snapshots.AutoboxingStateValueProperty(preferredPropertyName="intValue") public default Integer value;
+  }
+
+  @kotlin.RequiresOptIn(level=kotlin.RequiresOptIn.Level.ERROR, message="This is internal API for Compose modules that may change frequently " + "and without warning.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.CLASS, kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.PROPERTY}) public @interface InternalComposeApi {
+  }
+
+  @kotlin.RequiresOptIn(level=kotlin.RequiresOptIn.Level.ERROR, message="This is internal API that may change frequently and without warning.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface InternalComposeTracingApi {
+  }
+
+  @androidx.compose.runtime.Stable @kotlin.jvm.JvmDefaultWithCompatibility public interface LongState extends androidx.compose.runtime.State<java.lang.Long> {
+    method public long getLongValue();
+    method public default Long getValue();
+    property public abstract long longValue;
+    property @androidx.compose.runtime.snapshots.AutoboxingStateValueProperty(preferredPropertyName="longValue") public default Long value;
+  }
+
+  @kotlin.jvm.JvmDefaultWithCompatibility public interface MonotonicFrameClock extends kotlin.coroutines.CoroutineContext.Element {
+    method public default kotlin.coroutines.CoroutineContext.Key<?> getKey();
+    method public suspend <R> Object? withFrameNanos(kotlin.jvm.functions.Function1<? super java.lang.Long,? extends R> onFrame, kotlin.coroutines.Continuation<? super R>);
+    property public default kotlin.coroutines.CoroutineContext.Key<?> key;
+    field public static final androidx.compose.runtime.MonotonicFrameClock.Key Key;
+  }
+
+  public static final class MonotonicFrameClock.Key implements kotlin.coroutines.CoroutineContext.Key<androidx.compose.runtime.MonotonicFrameClock> {
+  }
+
+  public final class MonotonicFrameClockKt {
+    method public static androidx.compose.runtime.MonotonicFrameClock getMonotonicFrameClock(kotlin.coroutines.CoroutineContext);
+    method public static suspend inline <R> Object? withFrameMillis(androidx.compose.runtime.MonotonicFrameClock, kotlin.jvm.functions.Function1<? super java.lang.Long,? extends R> onFrame, kotlin.coroutines.Continuation<? super R>);
+    method public static suspend <R> Object? withFrameMillis(kotlin.jvm.functions.Function1<? super java.lang.Long,? extends R> onFrame, kotlin.coroutines.Continuation<? super R>);
+    method public static suspend <R> Object? withFrameNanos(kotlin.jvm.functions.Function1<? super java.lang.Long,? extends R> onFrame, kotlin.coroutines.Continuation<? super R>);
+  }
+
+  @androidx.compose.runtime.InternalComposeApi public final class MovableContent<P> {
+    ctor public MovableContent(kotlin.jvm.functions.Function1<? super P,kotlin.Unit> content);
+    method public kotlin.jvm.functions.Function1<P,kotlin.Unit> getContent();
+    property public final kotlin.jvm.functions.Function1<P,kotlin.Unit> content;
+  }
+
+  public final class MovableContentKt {
+    method public static kotlin.jvm.functions.Function0<kotlin.Unit> movableContentOf(kotlin.jvm.functions.Function0<kotlin.Unit> content);
+    method public static <P> kotlin.jvm.functions.Function1<P,kotlin.Unit> movableContentOf(kotlin.jvm.functions.Function1<? super P,kotlin.Unit> content);
+    method public static <P1, P2> kotlin.jvm.functions.Function2<P1,P2,kotlin.Unit> movableContentOf(kotlin.jvm.functions.Function2<? super P1,? super P2,kotlin.Unit> content);
+    method public static <P1, P2, P3> kotlin.jvm.functions.Function3<P1,P2,P3,kotlin.Unit> movableContentOf(kotlin.jvm.functions.Function3<? super P1,? super P2,? super P3,kotlin.Unit> content);
+    method public static <P1, P2, P3, P4> kotlin.jvm.functions.Function4<P1,P2,P3,P4,kotlin.Unit> movableContentOf(kotlin.jvm.functions.Function4<? super P1,? super P2,? super P3,? super P4,kotlin.Unit> content);
+    method public static <R> kotlin.jvm.functions.Function1<R,kotlin.Unit> movableContentWithReceiverOf(kotlin.jvm.functions.Function1<? super R,kotlin.Unit> content);
+    method public static <R, P> kotlin.jvm.functions.Function2<R,P,kotlin.Unit> movableContentWithReceiverOf(kotlin.jvm.functions.Function2<? super R,? super P,kotlin.Unit> content);
+    method public static <R, P1, P2> kotlin.jvm.functions.Function3<R,P1,P2,kotlin.Unit> movableContentWithReceiverOf(kotlin.jvm.functions.Function3<? super R,? super P1,? super P2,kotlin.Unit> content);
+    method public static <R, P1, P2, P3> kotlin.jvm.functions.Function4<R,P1,P2,P3,kotlin.Unit> movableContentWithReceiverOf(kotlin.jvm.functions.Function4<? super R,? super P1,? super P2,? super P3,kotlin.Unit> content);
+  }
+
+  @androidx.compose.runtime.InternalComposeApi public final class MovableContentState {
+  }
+
+  @androidx.compose.runtime.InternalComposeApi public final class MovableContentStateReference {
+  }
+
+  @androidx.compose.runtime.Stable @kotlin.jvm.JvmDefaultWithCompatibility public interface MutableDoubleState extends androidx.compose.runtime.DoubleState androidx.compose.runtime.MutableState<java.lang.Double> {
+    method public void setDoubleValue(double);
+    method public default void setValue(double);
+    property public abstract double doubleValue;
+    property @androidx.compose.runtime.snapshots.AutoboxingStateValueProperty(preferredPropertyName="doubleValue") public default Double value;
+  }
+
+  @androidx.compose.runtime.Stable @kotlin.jvm.JvmDefaultWithCompatibility public interface MutableFloatState extends androidx.compose.runtime.FloatState androidx.compose.runtime.MutableState<java.lang.Float> {
+    method public void setFloatValue(float);
+    method public default void setValue(float);
+    property public abstract float floatValue;
+    property @androidx.compose.runtime.snapshots.AutoboxingStateValueProperty(preferredPropertyName="floatValue") public default Float value;
+  }
+
+  @androidx.compose.runtime.Stable @kotlin.jvm.JvmDefaultWithCompatibility public interface MutableIntState extends androidx.compose.runtime.IntState androidx.compose.runtime.MutableState<java.lang.Integer> {
+    method public void setIntValue(int);
+    method public default void setValue(int);
+    property public abstract int intValue;
+    property @androidx.compose.runtime.snapshots.AutoboxingStateValueProperty(preferredPropertyName="intValue") public default Integer value;
+  }
+
+  @androidx.compose.runtime.Stable @kotlin.jvm.JvmDefaultWithCompatibility public interface MutableLongState extends androidx.compose.runtime.LongState androidx.compose.runtime.MutableState<java.lang.Long> {
+    method public void setLongValue(long);
+    method public default void setValue(long);
+    property public abstract long longValue;
+    property @androidx.compose.runtime.snapshots.AutoboxingStateValueProperty(preferredPropertyName="longValue") public default Long value;
+  }
+
+  @androidx.compose.runtime.Stable public interface MutableState<T> extends androidx.compose.runtime.State<T> {
+    method public operator T component1();
+    method public operator kotlin.jvm.functions.Function1<T,kotlin.Unit> component2();
+    method public void setValue(T!);
+    property public abstract T value;
+  }
+
+  @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.SOURCE) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.PROPERTY, kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.CLASS, kotlin.annotation.AnnotationTarget.FILE}) public @interface NoLiveLiterals {
+  }
+
+  @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.SOURCE) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.PROPERTY_GETTER}) public @interface NonRestartableComposable {
+  }
+
+  public final class PausableMonotonicFrameClock implements androidx.compose.runtime.MonotonicFrameClock {
+    ctor public PausableMonotonicFrameClock(androidx.compose.runtime.MonotonicFrameClock frameClock);
+    method public boolean isPaused();
+    method public void pause();
+    method public void resume();
+    method public suspend <R> Object? withFrameNanos(kotlin.jvm.functions.Function1<? super java.lang.Long,? extends R> onFrame, kotlin.coroutines.Continuation<? super R>);
+    property public final boolean isPaused;
+  }
+
+  public final class PrimitiveSnapshotStateKt {
+    method public static inline operator float getValue(androidx.compose.runtime.FloatState, Object? thisObj, kotlin.reflect.KProperty<?> property);
+    method @androidx.compose.runtime.snapshots.StateFactoryMarker public static androidx.compose.runtime.MutableFloatState mutableFloatStateOf(float value);
+    method public static inline operator void setValue(androidx.compose.runtime.MutableFloatState, Object? thisObj, kotlin.reflect.KProperty<?> property, float value);
+  }
+
+  public interface ProduceStateScope<T> extends androidx.compose.runtime.MutableState<T> kotlinx.coroutines.CoroutineScope {
+    method public suspend Object? awaitDispose(kotlin.jvm.functions.Function0<kotlin.Unit> onDispose, kotlin.coroutines.Continuation<?>);
+  }
+
+  @androidx.compose.runtime.Stable public abstract class ProvidableCompositionLocal<T> extends androidx.compose.runtime.CompositionLocal<T> {
+    method public final infix androidx.compose.runtime.ProvidedValue<T> provides(T value);
+    method public final infix androidx.compose.runtime.ProvidedValue<T> providesDefault(T value);
+  }
+
+  public final class ProvidedValue<T> {
+    method public boolean getCanOverride();
+    method public androidx.compose.runtime.CompositionLocal<T> getCompositionLocal();
+    method public T getValue();
+    property public final boolean canOverride;
+    property public final androidx.compose.runtime.CompositionLocal<T> compositionLocal;
+    property public final T value;
+  }
+
+  @kotlin.annotation.MustBeDocumented @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.PROPERTY_GETTER}) public @interface ReadOnlyComposable {
+  }
+
+  public interface RecomposeScope {
+    method public void invalidate();
+  }
+
+  public final class RecomposeScopeImplKt {
+    method @kotlin.PublishedApi internal static int updateChangedFlags(int flags);
+  }
+
+  public final class Recomposer extends androidx.compose.runtime.CompositionContext {
+    ctor public Recomposer(kotlin.coroutines.CoroutineContext effectCoroutineContext);
+    method public androidx.compose.runtime.RecomposerInfo asRecomposerInfo();
+    method public suspend Object? awaitIdle(kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    method public void cancel();
+    method public void close();
+    method public long getChangeCount();
+    method public kotlinx.coroutines.flow.StateFlow<androidx.compose.runtime.Recomposer.State> getCurrentState();
+    method public kotlin.coroutines.CoroutineContext getEffectCoroutineContext();
+    method public boolean getHasPendingWork();
+    method @Deprecated public kotlinx.coroutines.flow.Flow<androidx.compose.runtime.Recomposer.State> getState();
+    method public suspend Object? join(kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    method public void pauseCompositionFrameClock();
+    method public void resumeCompositionFrameClock();
+    method public suspend Object? runRecomposeAndApplyChanges(kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    method @androidx.compose.runtime.ExperimentalComposeApi public suspend Object? runRecomposeConcurrentlyAndApplyChanges(kotlin.coroutines.CoroutineContext recomposeCoroutineContext, kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    property public final long changeCount;
+    property public final kotlinx.coroutines.flow.StateFlow<androidx.compose.runtime.Recomposer.State> currentState;
+    property public kotlin.coroutines.CoroutineContext effectCoroutineContext;
+    property public final boolean hasPendingWork;
+    property @Deprecated public final kotlinx.coroutines.flow.Flow<androidx.compose.runtime.Recomposer.State> state;
+    field public static final androidx.compose.runtime.Recomposer.Companion Companion;
+  }
+
+  public static final class Recomposer.Companion {
+    method public kotlinx.coroutines.flow.StateFlow<java.util.Set<androidx.compose.runtime.RecomposerInfo>> getRunningRecomposers();
+    property public final kotlinx.coroutines.flow.StateFlow<java.util.Set<androidx.compose.runtime.RecomposerInfo>> runningRecomposers;
+  }
+
+  public enum Recomposer.State {
+    method public static androidx.compose.runtime.Recomposer.State valueOf(String value) throws java.lang.IllegalArgumentException, java.lang.NullPointerException;
+    method public static androidx.compose.runtime.Recomposer.State[] values();
+    enum_constant public static final androidx.compose.runtime.Recomposer.State Idle;
+    enum_constant public static final androidx.compose.runtime.Recomposer.State Inactive;
+    enum_constant public static final androidx.compose.runtime.Recomposer.State InactivePendingWork;
+    enum_constant public static final androidx.compose.runtime.Recomposer.State PendingWork;
+    enum_constant public static final androidx.compose.runtime.Recomposer.State ShutDown;
+    enum_constant public static final androidx.compose.runtime.Recomposer.State ShuttingDown;
+  }
+
+  public interface RecomposerInfo {
+    method public long getChangeCount();
+    method public boolean getHasPendingWork();
+    method public kotlinx.coroutines.flow.Flow<androidx.compose.runtime.Recomposer.State> getState();
+    property public abstract long changeCount;
+    property public abstract boolean hasPendingWork;
+    property public abstract kotlinx.coroutines.flow.Flow<androidx.compose.runtime.Recomposer.State> state;
+  }
+
+  public final class RecomposerKt {
+    method public static suspend <R> Object? withRunningRecomposer(kotlin.jvm.functions.Function3<? super kotlinx.coroutines.CoroutineScope,? super androidx.compose.runtime.Recomposer,? super kotlin.coroutines.Continuation<? super R>,?> block, kotlin.coroutines.Continuation<? super R>);
+  }
+
+  public interface RememberObserver {
+    method public void onAbandoned();
+    method public void onForgotten();
+    method public void onRemembered();
+  }
+
+  @androidx.compose.runtime.ComposeCompilerApi public interface ScopeUpdateScope {
+    method public void updateScope(kotlin.jvm.functions.Function2<? super androidx.compose.runtime.Composer,? super java.lang.Integer,kotlin.Unit> block);
+  }
+
+  @kotlin.jvm.JvmInline public final value class SkippableUpdater<T> {
+    ctor public SkippableUpdater(@kotlin.PublishedApi androidx.compose.runtime.Composer composer);
+    method public inline void update(kotlin.jvm.functions.Function1<? super androidx.compose.runtime.Updater<T>,kotlin.Unit> block);
+  }
+
+  public final class SnapshotDoubleStateKt {
+    method public static inline operator double getValue(androidx.compose.runtime.DoubleState, Object? thisObj, kotlin.reflect.KProperty<?> property);
+    method @androidx.compose.runtime.snapshots.StateFactoryMarker public static androidx.compose.runtime.MutableDoubleState mutableDoubleStateOf(double value);
+    method public static inline operator void setValue(androidx.compose.runtime.MutableDoubleState, Object? thisObj, kotlin.reflect.KProperty<?> property, double value);
+  }
+
+  public final class SnapshotIntStateKt {
+    method public static inline operator int getValue(androidx.compose.runtime.IntState, Object? thisObj, kotlin.reflect.KProperty<?> property);
+    method @androidx.compose.runtime.snapshots.StateFactoryMarker public static androidx.compose.runtime.MutableIntState mutableIntStateOf(int value);
+    method public static inline operator void setValue(androidx.compose.runtime.MutableIntState, Object? thisObj, kotlin.reflect.KProperty<?> property, int value);
+  }
+
+  public final class SnapshotLongStateKt {
+    method public static inline operator long getValue(androidx.compose.runtime.LongState, Object? thisObj, kotlin.reflect.KProperty<?> property);
+    method @androidx.compose.runtime.snapshots.StateFactoryMarker public static androidx.compose.runtime.MutableLongState mutableLongStateOf(long value);
+    method public static inline operator void setValue(androidx.compose.runtime.MutableLongState, Object? thisObj, kotlin.reflect.KProperty<?> property, long value);
+  }
+
+  @kotlin.jvm.JvmDefaultWithCompatibility public interface SnapshotMutationPolicy<T> {
+    method public boolean equivalent(T a, T b);
+    method public default T? merge(T previous, T current, T applied);
+  }
+
+  public final class SnapshotStateExtensionsKt {
+    method @androidx.compose.runtime.Stable public static androidx.compose.runtime.DoubleState asDoubleState(androidx.compose.runtime.State<java.lang.Double>);
+    method @androidx.compose.runtime.Stable public static androidx.compose.runtime.FloatState asFloatState(androidx.compose.runtime.State<java.lang.Float>);
+    method @androidx.compose.runtime.Stable public static androidx.compose.runtime.IntState asIntState(androidx.compose.runtime.State<java.lang.Integer>);
+    method @androidx.compose.runtime.Stable public static androidx.compose.runtime.LongState asLongState(androidx.compose.runtime.State<java.lang.Long>);
+  }
+
+  public final class SnapshotStateKt {
+    method @androidx.compose.runtime.Composable public static <T extends R, R> androidx.compose.runtime.State<R> collectAsState(kotlinx.coroutines.flow.Flow<? extends T>, R initial, optional kotlin.coroutines.CoroutineContext context);
+    method @androidx.compose.runtime.Composable public static <T> androidx.compose.runtime.State<T> collectAsState(kotlinx.coroutines.flow.StateFlow<? extends T>, optional kotlin.coroutines.CoroutineContext context);
+    method @androidx.compose.runtime.snapshots.StateFactoryMarker public static <T> androidx.compose.runtime.State<T> derivedStateOf(androidx.compose.runtime.SnapshotMutationPolicy<T> policy, kotlin.jvm.functions.Function0<? extends T> calculation);
+    method @androidx.compose.runtime.snapshots.StateFactoryMarker public static <T> androidx.compose.runtime.State<T> derivedStateOf(kotlin.jvm.functions.Function0<? extends T> calculation);
+    method public static inline operator <T> T getValue(androidx.compose.runtime.State<? extends T>, Object? thisObj, kotlin.reflect.KProperty<?> property);
+    method @androidx.compose.runtime.snapshots.StateFactoryMarker public static <T> androidx.compose.runtime.snapshots.SnapshotStateList<T> mutableStateListOf();
+    method @androidx.compose.runtime.snapshots.StateFactoryMarker public static <T> androidx.compose.runtime.snapshots.SnapshotStateList<T> mutableStateListOf(T?... elements);
+    method @androidx.compose.runtime.snapshots.StateFactoryMarker public static <K, V> androidx.compose.runtime.snapshots.SnapshotStateMap<K,V> mutableStateMapOf();
+    method @androidx.compose.runtime.snapshots.StateFactoryMarker public static <K, V> androidx.compose.runtime.snapshots.SnapshotStateMap<K,V> mutableStateMapOf(kotlin.Pair<? extends K,? extends V>... pairs);
+    method @androidx.compose.runtime.snapshots.StateFactoryMarker public static <T> androidx.compose.runtime.MutableState<T> mutableStateOf(T value, optional androidx.compose.runtime.SnapshotMutationPolicy<T> policy);
+    method public static <T> androidx.compose.runtime.SnapshotMutationPolicy<T> neverEqualPolicy();
+    method @androidx.compose.runtime.Composable public static <T> androidx.compose.runtime.State<T> produceState(T initialValue, Object? key1, Object? key2, Object? key3, kotlin.jvm.functions.Function2<? super androidx.compose.runtime.ProduceStateScope<T>,? super kotlin.coroutines.Continuation<? super kotlin.Unit>,?> producer);
+    method @androidx.compose.runtime.Composable public static <T> androidx.compose.runtime.State<T> produceState(T initialValue, Object? key1, Object? key2, kotlin.jvm.functions.Function2<? super androidx.compose.runtime.ProduceStateScope<T>,? super kotlin.coroutines.Continuation<? super kotlin.Unit>,?> producer);
+    method @androidx.compose.runtime.Composable public static <T> androidx.compose.runtime.State<T> produceState(T initialValue, Object? key1, kotlin.jvm.functions.Function2<? super androidx.compose.runtime.ProduceStateScope<T>,? super kotlin.coroutines.Continuation<? super kotlin.Unit>,?> producer);
+    method @androidx.compose.runtime.Composable public static <T> androidx.compose.runtime.State<T> produceState(T initialValue, Object![]? keys, kotlin.jvm.functions.Function2<? super androidx.compose.runtime.ProduceStateScope<T>,? super kotlin.coroutines.Continuation<? super kotlin.Unit>,?> producer);
+    method @androidx.compose.runtime.Composable public static <T> androidx.compose.runtime.State<T> produceState(T initialValue, kotlin.jvm.functions.Function2<? super androidx.compose.runtime.ProduceStateScope<T>,? super kotlin.coroutines.Continuation<? super kotlin.Unit>,?> producer);
+    method public static <T> androidx.compose.runtime.SnapshotMutationPolicy<T> referentialEqualityPolicy();
+    method @androidx.compose.runtime.Composable public static <T> androidx.compose.runtime.State<T> rememberUpdatedState(T newValue);
+    method public static inline operator <T> void setValue(androidx.compose.runtime.MutableState<T>, Object? thisObj, kotlin.reflect.KProperty<?> property, T value);
+    method public static <T> kotlinx.coroutines.flow.Flow<T> snapshotFlow(kotlin.jvm.functions.Function0<? extends T> block);
+    method public static <T> androidx.compose.runtime.SnapshotMutationPolicy<T> structuralEqualityPolicy();
+    method public static <T> androidx.compose.runtime.snapshots.SnapshotStateList<T> toMutableStateList(java.util.Collection<? extends T>);
+    method public static <K, V> androidx.compose.runtime.snapshots.SnapshotStateMap<K,V> toMutableStateMap(Iterable<? extends kotlin.Pair<? extends K,? extends V>>);
+  }
+
+  @androidx.compose.runtime.StableMarker @kotlin.annotation.MustBeDocumented @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.CLASS, kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.PROPERTY_GETTER, kotlin.annotation.AnnotationTarget.PROPERTY}) public @interface Stable {
+  }
+
+  @kotlin.annotation.MustBeDocumented @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.ANNOTATION_CLASS, kotlin.annotation.AnnotationTarget.CLASS}) public @interface StableMarker {
+  }
+
+  @androidx.compose.runtime.Stable public interface State<T> {
+    method public T getValue();
+    property public abstract T value;
+  }
+
+  @kotlin.jvm.JvmInline public final value class Updater<T> {
+    ctor public Updater(@kotlin.PublishedApi androidx.compose.runtime.Composer composer);
+    method public void init(kotlin.jvm.functions.Function1<? super T,kotlin.Unit> block);
+    method public void reconcile(kotlin.jvm.functions.Function1<? super T,kotlin.Unit> block);
+    method public inline void set(int value, kotlin.jvm.functions.Function2<? super T,? super java.lang.Integer,kotlin.Unit> block);
+    method public <V> void set(V value, kotlin.jvm.functions.Function2<? super T,? super V,kotlin.Unit> block);
+    method public inline void update(int value, kotlin.jvm.functions.Function2<? super T,? super java.lang.Integer,kotlin.Unit> block);
+    method public <V> void update(V value, kotlin.jvm.functions.Function2<? super T,? super V,kotlin.Unit> block);
+  }
+
+}
+
+package androidx.compose.runtime.collection {
+
+  public final class MutableVector<T> implements java.util.RandomAccess {
+    ctor @kotlin.PublishedApi internal MutableVector(@kotlin.PublishedApi T![] content, int size);
+    method public void add(int index, T element);
+    method public boolean add(T element);
+    method public inline boolean addAll(androidx.compose.runtime.collection.MutableVector<T> elements);
+    method public boolean addAll(int index, androidx.compose.runtime.collection.MutableVector<T> elements);
+    method public boolean addAll(int index, java.util.Collection<? extends T> elements);
+    method public boolean addAll(int index, java.util.List<? extends T> elements);
+    method public boolean addAll(java.util.Collection<? extends T> elements);
+    method public inline boolean addAll(java.util.List<? extends T> elements);
+    method public boolean addAll(T![] elements);
+    method public inline boolean any(kotlin.jvm.functions.Function1<? super T,java.lang.Boolean> predicate);
+    method public java.util.List<T> asMutableList();
+    method public void clear();
+    method public operator boolean contains(T element);
+    method public boolean containsAll(androidx.compose.runtime.collection.MutableVector<T> elements);
+    method public boolean containsAll(java.util.Collection<? extends T> elements);
+    method public boolean containsAll(java.util.List<? extends T> elements);
+    method public boolean contentEquals(androidx.compose.runtime.collection.MutableVector<T> other);
+    method public void ensureCapacity(int capacity);
+    method public T first();
+    method public inline T first(kotlin.jvm.functions.Function1<? super T,java.lang.Boolean> predicate);
+    method public inline T? firstOrNull();
+    method public inline T? firstOrNull(kotlin.jvm.functions.Function1<? super T,java.lang.Boolean> predicate);
+    method public inline <R> R fold(R initial, kotlin.jvm.functions.Function2<? super R,? super T,? extends R> operation);
+    method public inline <R> R foldIndexed(R initial, kotlin.jvm.functions.Function3<? super java.lang.Integer,? super R,? super T,? extends R> operation);
+    method public inline <R> R foldRight(R initial, kotlin.jvm.functions.Function2<? super T,? super R,? extends R> operation);
+    method public inline <R> R foldRightIndexed(R initial, kotlin.jvm.functions.Function3<? super java.lang.Integer,? super T,? super R,? extends R> operation);
+    method public inline void forEach(kotlin.jvm.functions.Function1<? super T,kotlin.Unit> block);
+    method public inline void forEachIndexed(kotlin.jvm.functions.Function2<? super java.lang.Integer,? super T,kotlin.Unit> block);
+    method public inline void forEachReversed(kotlin.jvm.functions.Function1<? super T,kotlin.Unit> block);
+    method public inline void forEachReversedIndexed(kotlin.jvm.functions.Function2<? super java.lang.Integer,? super T,kotlin.Unit> block);
+    method public inline operator T get(int index);
+    method public inline kotlin.ranges.IntRange getIndices();
+    method public inline int getLastIndex();
+    method public int getSize();
+    method public int indexOf(T element);
+    method public inline int indexOfFirst(kotlin.jvm.functions.Function1<? super T,java.lang.Boolean> predicate);
+    method public inline int indexOfLast(kotlin.jvm.functions.Function1<? super T,java.lang.Boolean> predicate);
+    method public boolean isEmpty();
+    method public boolean isNotEmpty();
+    method public T last();
+    method public inline T last(kotlin.jvm.functions.Function1<? super T,java.lang.Boolean> predicate);
+    method public int lastIndexOf(T element);
+    method public inline T? lastOrNull();
+    method public inline T? lastOrNull(kotlin.jvm.functions.Function1<? super T,java.lang.Boolean> predicate);
+    method public inline <reified R> R![] map(kotlin.jvm.functions.Function1<? super T,? extends R> transform);
+    method public inline <reified R> R![] mapIndexed(kotlin.jvm.functions.Function2<? super java.lang.Integer,? super T,? extends R> transform);
+    method public inline <reified R> androidx.compose.runtime.collection.MutableVector<R> mapIndexedNotNull(kotlin.jvm.functions.Function2<? super java.lang.Integer,? super T,? extends R> transform);
+    method public inline <reified R> androidx.compose.runtime.collection.MutableVector<R> mapNotNull(kotlin.jvm.functions.Function1<? super T,? extends R> transform);
+    method public inline operator void minusAssign(T element);
+    method public inline operator void plusAssign(T element);
+    method public boolean remove(T element);
+    method public boolean removeAll(androidx.compose.runtime.collection.MutableVector<T> elements);
+    method public boolean removeAll(java.util.Collection<? extends T> elements);
+    method public boolean removeAll(java.util.List<? extends T> elements);
+    method public T removeAt(int index);
+    method public void removeRange(int start, int end);
+    method public boolean retainAll(java.util.Collection<? extends T> elements);
+    method public inline boolean reversedAny(kotlin.jvm.functions.Function1<? super T,java.lang.Boolean> predicate);
+    method public operator T set(int index, T element);
+    method public void sortWith(java.util.Comparator<T> comparator);
+    method public inline int sumBy(kotlin.jvm.functions.Function1<? super T,java.lang.Integer> selector);
+    method @kotlin.PublishedApi internal Void throwNoSuchElementException();
+    property public final inline kotlin.ranges.IntRange indices;
+    property public final inline int lastIndex;
+    property public final int size;
+  }
+
+  public final class MutableVectorKt {
+    method public static inline <reified T> androidx.compose.runtime.collection.MutableVector<T> MutableVector(optional int capacity);
+    method public static inline <reified T> androidx.compose.runtime.collection.MutableVector<T> MutableVector(int size, kotlin.jvm.functions.Function1<? super java.lang.Integer,? extends T> init);
+    method public static inline <reified T> androidx.compose.runtime.collection.MutableVector<T> mutableVectorOf();
+    method public static inline <reified T> androidx.compose.runtime.collection.MutableVector<T> mutableVectorOf(T?... elements);
+  }
+
+}
+
+package androidx.compose.runtime.internal {
+
+  @androidx.compose.runtime.ComposeCompilerApi @androidx.compose.runtime.Stable public interface ComposableLambda extends kotlin.jvm.functions.Function2<androidx.compose.runtime.Composer,java.lang.Integer,java.lang.Object> kotlin.jvm.functions.Function10<java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,androidx.compose.runtime.Composer,java.lang.Integer,java.lang.Object> kotlin.jvm.functions.Function11<java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,androidx.compose.runtime.Composer,java.lang.Integer,java.lang.Object> kotlin.jvm.functions.Function13<java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,androidx.compose.runtime.Composer,java.lang.Integer,java.lang.Integer,java.lang.Object> kotlin.jvm.functions.Function14<java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,androidx.compose.runtime.Composer,java.lang.Integer,java.lang.Integer,java.lang.Object> kotlin.jvm.functions.Function15<java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,androidx.compose.runtime.Composer,java.lang.Integer,java.lang.Integer,java.lang.Object> kotlin.jvm.functions.Function16<java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,androidx.compose.runtime.Composer,java.lang.Integer,java.lang.Integer,java.lang.Object> kotlin.jvm.functions.Function17<java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,androidx.compose.runtime.Composer,java.lang.Integer,java.lang.Integer,java.lang.Object> kotlin.jvm.functions.Function18<java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,androidx.compose.runtime.Composer,java.lang.Integer,java.lang.Integer,java.lang.Object> kotlin.jvm.functions.Function19<java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,androidx.compose.runtime.Composer,java.lang.Integer,java.lang.Integer,java.lang.Object> kotlin.jvm.functions.Function20<java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,androidx.compose.runtime.Composer,java.lang.Integer,java.lang.Integer,java.lang.Object> kotlin.jvm.functions.Function21<java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,androidx.compose.runtime.Composer,java.lang.Integer,java.lang.Integer,java.lang.Object> kotlin.jvm.functions.Function3<java.lang.Object,androidx.compose.runtime.Composer,java.lang.Integer,java.lang.Object> kotlin.jvm.functions.Function4<java.lang.Object,java.lang.Object,androidx.compose.runtime.Composer,java.lang.Integer,java.lang.Object> kotlin.jvm.functions.Function5<java.lang.Object,java.lang.Object,java.lang.Object,androidx.compose.runtime.Composer,java.lang.Integer,java.lang.Object> kotlin.jvm.functions.Function6<java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,androidx.compose.runtime.Composer,java.lang.Integer,java.lang.Object> kotlin.jvm.functions.Function7<java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,androidx.compose.runtime.Composer,java.lang.Integer,java.lang.Object> kotlin.jvm.functions.Function8<java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,androidx.compose.runtime.Composer,java.lang.Integer,java.lang.Object> kotlin.jvm.functions.Function9<java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,androidx.compose.runtime.Composer,java.lang.Integer,java.lang.Object> {
+  }
+
+  public final class ComposableLambdaKt {
+    method @androidx.compose.runtime.ComposeCompilerApi public static androidx.compose.runtime.internal.ComposableLambda composableLambda(androidx.compose.runtime.Composer composer, int key, boolean tracked, Object block);
+    method @androidx.compose.runtime.ComposeCompilerApi public static androidx.compose.runtime.internal.ComposableLambda composableLambdaInstance(int key, boolean tracked, Object block);
+  }
+
+  @androidx.compose.runtime.ComposeCompilerApi @androidx.compose.runtime.Stable public interface ComposableLambdaN extends kotlin.jvm.functions.FunctionN<java.lang.Object> {
+  }
+
+  public final class ComposableLambdaN_jvmKt {
+    method @androidx.compose.runtime.ComposeCompilerApi public static androidx.compose.runtime.internal.ComposableLambdaN composableLambdaN(androidx.compose.runtime.Composer composer, int key, boolean tracked, int arity, Object block);
+    method @androidx.compose.runtime.ComposeCompilerApi public static androidx.compose.runtime.internal.ComposableLambdaN composableLambdaNInstance(int key, boolean tracked, int arity, Object block);
+  }
+
+  @androidx.compose.runtime.ExperimentalComposeApi @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.CONSTRUCTOR}) public @interface Decoy {
+    method public abstract String[] signature();
+    method public abstract String targetName();
+    property public abstract String[] signature;
+    property public abstract String targetName;
+  }
+
+  @androidx.compose.runtime.ExperimentalComposeApi @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.CONSTRUCTOR}) public @interface DecoyImplementation {
+    method public abstract long id();
+    method public abstract String name();
+    property public abstract long id;
+    property public abstract String name;
+  }
+
+  public final class DecoyKt {
+    method @androidx.compose.runtime.ComposeCompilerApi public static Void illegalDecoyCallException(String fName);
+  }
+
+  @androidx.compose.runtime.ComposeCompilerApi @kotlin.annotation.Repeatable @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.RUNTIME) @kotlin.annotation.Target(allowedTargets=kotlin.annotation.AnnotationTarget.CLASS) public @interface FunctionKeyMeta {
+    method public abstract int endOffset();
+    method public abstract int key();
+    method public abstract int startOffset();
+    property public abstract int endOffset;
+    property public abstract int key;
+    property public abstract int startOffset;
+  }
+
+  @androidx.compose.runtime.ComposeCompilerApi @kotlin.annotation.Repeatable @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.RUNTIME) @kotlin.annotation.Target(allowedTargets=kotlin.annotation.AnnotationTarget.CLASS) public static @interface FunctionKeyMeta.Container {
+    method public abstract androidx.compose.runtime.internal.FunctionKeyMeta[] value();
+  }
+
+  @androidx.compose.runtime.ComposeCompilerApi @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.RUNTIME) @kotlin.annotation.Target(allowedTargets=kotlin.annotation.AnnotationTarget.CLASS) public @interface FunctionKeyMetaClass {
+    method public abstract String file();
+    property public abstract String file;
+  }
+
+  @androidx.compose.runtime.ComposeCompilerApi @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.RUNTIME) @kotlin.annotation.Target(allowedTargets=kotlin.annotation.AnnotationTarget.CLASS) public @interface LiveLiteralFileInfo {
+    method public abstract String file();
+    property public abstract String file;
+  }
+
+  @androidx.compose.runtime.ComposeCompilerApi @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.RUNTIME) @kotlin.annotation.Target(allowedTargets=kotlin.annotation.AnnotationTarget.FUNCTION) public @interface LiveLiteralInfo {
+    method public abstract String key();
+    method public abstract int offset();
+    property public abstract String key;
+    property public abstract int offset;
+  }
+
+  public final class LiveLiteralKt {
+    method @androidx.compose.runtime.InternalComposeApi public static void enableLiveLiterals();
+    method public static boolean isLiveLiteralsEnabled();
+    method @androidx.compose.runtime.ComposeCompilerApi @androidx.compose.runtime.InternalComposeApi public static <T> androidx.compose.runtime.State<T> liveLiteral(String key, T value);
+    method @androidx.compose.runtime.InternalComposeApi public static void updateLiveLiteralValue(String key, Object? value);
+    property public static final boolean isLiveLiteralsEnabled;
+  }
+
+  @androidx.compose.runtime.ComposeCompilerApi @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets=kotlin.annotation.AnnotationTarget.CLASS) public @interface StabilityInferred {
+    method public abstract int parameters();
+    property public abstract int parameters;
+  }
+
+}
+
+package androidx.compose.runtime.reflect {
+
+  public final class ComposableMethod {
+    method public java.lang.reflect.Method asMethod();
+    method public int getParameterCount();
+    method public Class<?>![] getParameterTypes();
+    method public java.lang.reflect.Parameter![] getParameters();
+    method public operator Object? invoke(androidx.compose.runtime.Composer composer, Object? instance, java.lang.Object?... args);
+    property public final int parameterCount;
+    property public final Class<?>![] parameterTypes;
+    property public final java.lang.reflect.Parameter![] parameters;
+  }
+
+  public final class ComposableMethodKt {
+    method public static androidx.compose.runtime.reflect.ComposableMethod? asComposableMethod(java.lang.reflect.Method);
+    method @kotlin.jvm.Throws(exceptionClasses=NoSuchMethodException::class) public static androidx.compose.runtime.reflect.ComposableMethod getDeclaredComposableMethod(Class<?>, String methodName, Class<?>... args) throws java.lang.NoSuchMethodException;
+  }
+
+}
+
+package androidx.compose.runtime.snapshots {
+
+  @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets=kotlin.annotation.AnnotationTarget.PROPERTY) public @interface AutoboxingStateValueProperty {
+    method public abstract String preferredPropertyName();
+    property public abstract String preferredPropertyName;
+  }
+
+  public class MutableSnapshot extends androidx.compose.runtime.snapshots.Snapshot {
+    method public androidx.compose.runtime.snapshots.SnapshotApplyResult apply();
+    method public kotlin.jvm.functions.Function1<java.lang.Object,kotlin.Unit>? getReadObserver();
+    method public boolean getReadOnly();
+    method public androidx.compose.runtime.snapshots.Snapshot getRoot();
+    method public kotlin.jvm.functions.Function1<java.lang.Object,kotlin.Unit>? getWriteObserver();
+    method public boolean hasPendingChanges();
+    method public androidx.compose.runtime.snapshots.MutableSnapshot takeNestedMutableSnapshot(optional kotlin.jvm.functions.Function1<java.lang.Object,kotlin.Unit>? readObserver, optional kotlin.jvm.functions.Function1<java.lang.Object,kotlin.Unit>? writeObserver);
+    method public androidx.compose.runtime.snapshots.Snapshot takeNestedSnapshot(kotlin.jvm.functions.Function1<java.lang.Object,kotlin.Unit>? readObserver);
+    property public kotlin.jvm.functions.Function1<java.lang.Object,kotlin.Unit>? readObserver;
+    property public boolean readOnly;
+    property public androidx.compose.runtime.snapshots.Snapshot root;
+    property public kotlin.jvm.functions.Function1<java.lang.Object,kotlin.Unit>? writeObserver;
+  }
+
+  public fun interface ObserverHandle {
+    method public void dispose();
+  }
+
+  public abstract sealed class Snapshot {
+    method public void dispose();
+    method public final inline <T> T enter(kotlin.jvm.functions.Function0<? extends T> block);
+    method public int getId();
+    method public abstract boolean getReadOnly();
+    method public abstract androidx.compose.runtime.snapshots.Snapshot getRoot();
+    method public abstract boolean hasPendingChanges();
+    method @kotlin.PublishedApi internal androidx.compose.runtime.snapshots.Snapshot? makeCurrent();
+    method @kotlin.PublishedApi internal void restoreCurrent(androidx.compose.runtime.snapshots.Snapshot? snapshot);
+    method public abstract androidx.compose.runtime.snapshots.Snapshot takeNestedSnapshot(optional kotlin.jvm.functions.Function1<java.lang.Object,kotlin.Unit>? readObserver);
+    method @androidx.compose.runtime.ExperimentalComposeApi public final androidx.compose.runtime.snapshots.Snapshot? unsafeEnter();
+    method @androidx.compose.runtime.ExperimentalComposeApi public final void unsafeLeave(androidx.compose.runtime.snapshots.Snapshot? oldSnapshot);
+    property public int id;
+    property public abstract boolean readOnly;
+    property public abstract androidx.compose.runtime.snapshots.Snapshot root;
+    field public static final androidx.compose.runtime.snapshots.Snapshot.Companion Companion;
+  }
+
+  public static final class Snapshot.Companion {
+    method @kotlin.PublishedApi internal androidx.compose.runtime.snapshots.Snapshot createNonObservableSnapshot();
+    method public androidx.compose.runtime.snapshots.Snapshot getCurrent();
+    method public inline <T> T global(kotlin.jvm.functions.Function0<? extends T> block);
+    method public boolean isApplyObserverNotificationPending();
+    method public void notifyObjectsInitialized();
+    method public <T> T observe(optional kotlin.jvm.functions.Function1<java.lang.Object,kotlin.Unit>? readObserver, optional kotlin.jvm.functions.Function1<java.lang.Object,kotlin.Unit>? writeObserver, kotlin.jvm.functions.Function0<? extends T> block);
+    method @androidx.compose.runtime.InternalComposeApi public int openSnapshotCount();
+    method public androidx.compose.runtime.snapshots.ObserverHandle registerApplyObserver(kotlin.jvm.functions.Function2<? super java.util.Set<?>,? super androidx.compose.runtime.snapshots.Snapshot,kotlin.Unit> observer);
+    method public androidx.compose.runtime.snapshots.ObserverHandle registerGlobalWriteObserver(kotlin.jvm.functions.Function1<java.lang.Object,kotlin.Unit> observer);
+    method @kotlin.PublishedApi internal androidx.compose.runtime.snapshots.Snapshot? removeCurrent();
+    method @kotlin.PublishedApi internal void restoreCurrent(androidx.compose.runtime.snapshots.Snapshot? previous);
+    method public void sendApplyNotifications();
+    method public androidx.compose.runtime.snapshots.MutableSnapshot takeMutableSnapshot(optional kotlin.jvm.functions.Function1<java.lang.Object,kotlin.Unit>? readObserver, optional kotlin.jvm.functions.Function1<java.lang.Object,kotlin.Unit>? writeObserver);
+    method public androidx.compose.runtime.snapshots.Snapshot takeSnapshot(optional kotlin.jvm.functions.Function1<java.lang.Object,kotlin.Unit>? readObserver);
+    method public inline <R> R withMutableSnapshot(kotlin.jvm.functions.Function0<? extends R> block);
+    method public inline <T> T withoutReadObservation(kotlin.jvm.functions.Function0<? extends T> block);
+    property public final androidx.compose.runtime.snapshots.Snapshot current;
+    property public final boolean isApplyObserverNotificationPending;
+  }
+
+  public final class SnapshotApplyConflictException extends java.lang.Exception {
+    ctor public SnapshotApplyConflictException(androidx.compose.runtime.snapshots.Snapshot snapshot);
+    method public androidx.compose.runtime.snapshots.Snapshot getSnapshot();
+    property public final androidx.compose.runtime.snapshots.Snapshot snapshot;
+  }
+
+  public abstract sealed class SnapshotApplyResult {
+    method public abstract void check();
+    method public abstract boolean getSucceeded();
+    property public abstract boolean succeeded;
+  }
+
+  public static final class SnapshotApplyResult.Failure extends androidx.compose.runtime.snapshots.SnapshotApplyResult {
+    ctor public SnapshotApplyResult.Failure(androidx.compose.runtime.snapshots.Snapshot snapshot);
+    method public void check();
+    method public androidx.compose.runtime.snapshots.Snapshot getSnapshot();
+    method public boolean getSucceeded();
+    property public final androidx.compose.runtime.snapshots.Snapshot snapshot;
+    property public boolean succeeded;
+  }
+
+  public static final class SnapshotApplyResult.Success extends androidx.compose.runtime.snapshots.SnapshotApplyResult {
+    method public void check();
+    method public boolean getSucceeded();
+    property public boolean succeeded;
+    field public static final androidx.compose.runtime.snapshots.SnapshotApplyResult.Success INSTANCE;
+  }
+
+  @androidx.compose.runtime.ExperimentalComposeApi public interface SnapshotContextElement extends kotlin.coroutines.CoroutineContext.Element {
+    field public static final androidx.compose.runtime.snapshots.SnapshotContextElement.Key Key;
+  }
+
+  public static final class SnapshotContextElement.Key implements kotlin.coroutines.CoroutineContext.Key<androidx.compose.runtime.snapshots.SnapshotContextElement> {
+  }
+
+  public final class SnapshotContextElementKt {
+    method @androidx.compose.runtime.ExperimentalComposeApi public static androidx.compose.runtime.snapshots.SnapshotContextElement asContextElement(androidx.compose.runtime.snapshots.Snapshot);
+  }
+
+  public final class SnapshotKt {
+    method @kotlin.PublishedApi internal static <T extends androidx.compose.runtime.snapshots.StateRecord> T current(T r);
+    method @kotlin.PublishedApi internal static <T extends androidx.compose.runtime.snapshots.StateRecord> T current(T r, androidx.compose.runtime.snapshots.Snapshot snapshot);
+    method @kotlin.PublishedApi internal static void notifyWrite(androidx.compose.runtime.snapshots.Snapshot snapshot, androidx.compose.runtime.snapshots.StateObject state);
+    method public static <T extends androidx.compose.runtime.snapshots.StateRecord> T readable(T, androidx.compose.runtime.snapshots.StateObject state);
+    method public static <T extends androidx.compose.runtime.snapshots.StateRecord> T readable(T, androidx.compose.runtime.snapshots.StateObject state, androidx.compose.runtime.snapshots.Snapshot snapshot);
+    method @kotlin.PublishedApi internal static inline <T> T sync(kotlin.jvm.functions.Function0<? extends T> block);
+    method public static inline <T extends androidx.compose.runtime.snapshots.StateRecord, R> R withCurrent(T, kotlin.jvm.functions.Function1<? super T,? extends R> block);
+    method public static inline <T extends androidx.compose.runtime.snapshots.StateRecord, R> R writable(T, androidx.compose.runtime.snapshots.StateObject state, androidx.compose.runtime.snapshots.Snapshot snapshot, kotlin.jvm.functions.Function1<? super T,? extends R> block);
+    method public static inline <T extends androidx.compose.runtime.snapshots.StateRecord, R> R writable(T, androidx.compose.runtime.snapshots.StateObject state, kotlin.jvm.functions.Function1<? super T,? extends R> block);
+    method @kotlin.PublishedApi internal static <T extends androidx.compose.runtime.snapshots.StateRecord> T writableRecord(T, androidx.compose.runtime.snapshots.StateObject state, androidx.compose.runtime.snapshots.Snapshot snapshot);
+    field @kotlin.PublishedApi internal static final Object lock;
+    field @kotlin.PublishedApi internal static final androidx.compose.runtime.snapshots.Snapshot snapshotInitializer;
+  }
+
+  public interface SnapshotMutableState<T> extends androidx.compose.runtime.MutableState<T> {
+    method public androidx.compose.runtime.SnapshotMutationPolicy<T> getPolicy();
+    property public abstract androidx.compose.runtime.SnapshotMutationPolicy<T> policy;
+  }
+
+  @androidx.compose.runtime.Stable public final class SnapshotStateList<T> implements kotlin.jvm.internal.markers.KMutableList java.util.List<T> androidx.compose.runtime.snapshots.StateObject {
+    ctor public SnapshotStateList();
+    method public void add(int index, T element);
+    method public boolean add(T element);
+    method public boolean addAll(int index, java.util.Collection<? extends T> elements);
+    method public boolean addAll(java.util.Collection<? extends T> elements);
+    method public void clear();
+    method public boolean contains(T element);
+    method public boolean containsAll(java.util.Collection<E!> elements);
+    method public T get(int index);
+    method public androidx.compose.runtime.snapshots.StateRecord getFirstStateRecord();
+    method public int getSize();
+    method public int indexOf(T element);
+    method public boolean isEmpty();
+    method public java.util.Iterator<T> iterator();
+    method public int lastIndexOf(T element);
+    method public java.util.ListIterator<T> listIterator();
+    method public java.util.ListIterator<T> listIterator(int index);
+    method public void prependStateRecord(androidx.compose.runtime.snapshots.StateRecord value);
+    method public boolean remove(T element);
+    method public boolean removeAll(java.util.Collection<E!> elements);
+    method public T removeAt(int index);
+    method public void removeRange(int fromIndex, int toIndex);
+    method public boolean retainAll(java.util.Collection<E!> elements);
+    method public T set(int index, T element);
+    method public java.util.List<T> subList(int fromIndex, int toIndex);
+    method public java.util.List<T> toList();
+    property public androidx.compose.runtime.snapshots.StateRecord firstStateRecord;
+    property public int size;
+  }
+
+  @androidx.compose.runtime.Stable public final class SnapshotStateMap<K, V> implements kotlin.jvm.internal.markers.KMutableMap java.util.Map<K,V> androidx.compose.runtime.snapshots.StateObject {
+    ctor public SnapshotStateMap();
+    method public void clear();
+    method public boolean containsKey(K key);
+    method public boolean containsValue(V value);
+    method public V? get(Object key);
+    method public java.util.Set<java.util.Map.Entry<K,V>> getEntries();
+    method public androidx.compose.runtime.snapshots.StateRecord getFirstStateRecord();
+    method public java.util.Set<K> getKeys();
+    method public int getSize();
+    method public java.util.Collection<V> getValues();
+    method public boolean isEmpty();
+    method public void prependStateRecord(androidx.compose.runtime.snapshots.StateRecord value);
+    method public V? put(K key, V value);
+    method public void putAll(java.util.Map<? extends K,? extends V> from);
+    method public V? remove(Object key);
+    method public java.util.Map<K,V> toMap();
+    property public java.util.Set<java.util.Map.Entry<K,V>> entries;
+    property public androidx.compose.runtime.snapshots.StateRecord firstStateRecord;
+    property public java.util.Set<K> keys;
+    property public int size;
+    property public java.util.Collection<V> values;
+  }
+
+  public final class SnapshotStateObserver {
+    ctor public SnapshotStateObserver(kotlin.jvm.functions.Function1<? super kotlin.jvm.functions.Function0<kotlin.Unit>,kotlin.Unit> onChangedExecutor);
+    method public void clear();
+    method public void clear(Object scope);
+    method public void clearIf(kotlin.jvm.functions.Function1<java.lang.Object,java.lang.Boolean> predicate);
+    method @org.jetbrains.annotations.TestOnly public void notifyChanges(java.util.Set<?> changes, androidx.compose.runtime.snapshots.Snapshot snapshot);
+    method public <T> void observeReads(T scope, kotlin.jvm.functions.Function1<? super T,kotlin.Unit> onValueChangedForScope, kotlin.jvm.functions.Function0<kotlin.Unit> block);
+    method public void start();
+    method public void stop();
+    method @Deprecated public void withNoObservations(kotlin.jvm.functions.Function0<kotlin.Unit> block);
+  }
+
+  @kotlin.annotation.MustBeDocumented @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets=kotlin.annotation.AnnotationTarget.FUNCTION) public @interface StateFactoryMarker {
+  }
+
+  @kotlin.jvm.JvmDefaultWithCompatibility public interface StateObject {
+    method public androidx.compose.runtime.snapshots.StateRecord getFirstStateRecord();
+    method public default androidx.compose.runtime.snapshots.StateRecord? mergeRecords(androidx.compose.runtime.snapshots.StateRecord previous, androidx.compose.runtime.snapshots.StateRecord current, androidx.compose.runtime.snapshots.StateRecord applied);
+    method public void prependStateRecord(androidx.compose.runtime.snapshots.StateRecord value);
+    property public abstract androidx.compose.runtime.snapshots.StateRecord firstStateRecord;
+  }
+
+  public abstract class StateRecord {
+    ctor public StateRecord();
+    method public abstract void assign(androidx.compose.runtime.snapshots.StateRecord value);
+    method public abstract androidx.compose.runtime.snapshots.StateRecord create();
+  }
+
+}
+
+package androidx.compose.runtime.tooling {
+
+  public interface CompositionData {
+    method public default androidx.compose.runtime.tooling.CompositionGroup? find(Object identityToFind);
+    method public Iterable<androidx.compose.runtime.tooling.CompositionGroup> getCompositionGroups();
+    method public boolean isEmpty();
+    property public abstract Iterable<androidx.compose.runtime.tooling.CompositionGroup> compositionGroups;
+    property public abstract boolean isEmpty;
+  }
+
+  @kotlin.jvm.JvmDefaultWithCompatibility public interface CompositionGroup extends androidx.compose.runtime.tooling.CompositionData {
+    method public Iterable<java.lang.Object> getData();
+    method public default int getGroupSize();
+    method public default Object? getIdentity();
+    method public Object getKey();
+    method public Object? getNode();
+    method public default int getSlotsSize();
+    method public String? getSourceInfo();
+    property public abstract Iterable<java.lang.Object> data;
+    property public default int groupSize;
+    property public default Object? identity;
+    property public abstract Object key;
+    property public abstract Object? node;
+    property public default int slotsSize;
+    property public abstract String? sourceInfo;
+  }
+
+  public final class InspectionTablesKt {
+    method public static androidx.compose.runtime.ProvidableCompositionLocal<java.util.Set<androidx.compose.runtime.tooling.CompositionData>> getLocalInspectionTables();
+    property public static final androidx.compose.runtime.ProvidableCompositionLocal<java.util.Set<androidx.compose.runtime.tooling.CompositionData>> LocalInspectionTables;
+  }
+
+}
+
diff --git a/compose/runtime/runtime/api/restricted_current.txt b/compose/runtime/runtime/api/restricted_current.txt
index fd14be5..6cfdfcb 100644
--- a/compose/runtime/runtime/api/restricted_current.txt
+++ b/compose/runtime/runtime/api/restricted_current.txt
@@ -51,6 +51,11 @@
   @kotlin.annotation.MustBeDocumented @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.TYPE, kotlin.annotation.AnnotationTarget.TYPE_PARAMETER, kotlin.annotation.AnnotationTarget.PROPERTY_GETTER}) public @interface Composable {
   }
 
+  @androidx.compose.runtime.InternalComposeApi @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.PROPERTY_GETTER}) public @interface ComposableInferredTarget {
+    method public abstract String scheme();
+    property public abstract String scheme;
+  }
+
   @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.PROPERTY_GETTER, kotlin.annotation.AnnotationTarget.TYPE, kotlin.annotation.AnnotationTarget.TYPE_PARAMETER}) public @interface ComposableOpenTarget {
     method public abstract int index();
     property public abstract int index;
@@ -104,6 +109,7 @@
 
   public sealed interface Composer {
     method @androidx.compose.runtime.ComposeCompilerApi public <V, T> void apply(V value, kotlin.jvm.functions.Function2<? super T,? super V,kotlin.Unit> block);
+    method @androidx.compose.runtime.InternalComposeApi public androidx.compose.runtime.CompositionContext buildContext();
     method @androidx.compose.runtime.ComposeCompilerApi public default boolean changed(boolean value);
     method @androidx.compose.runtime.ComposeCompilerApi public default boolean changed(byte value);
     method @androidx.compose.runtime.ComposeCompilerApi public default boolean changed(char value);
@@ -115,6 +121,7 @@
     method @androidx.compose.runtime.ComposeCompilerApi public default boolean changed(short value);
     method @androidx.compose.runtime.ComposeCompilerApi public default boolean changedInstance(Object? value);
     method public void collectParameterInformation();
+    method @androidx.compose.runtime.InternalComposeApi public <T> T consume(androidx.compose.runtime.CompositionLocal<T> key);
     method @androidx.compose.runtime.ComposeCompilerApi public <T> void createNode(kotlin.jvm.functions.Function0<? extends T> factory);
     method @androidx.compose.runtime.ComposeCompilerApi public void deactivateToEndGroup(boolean changed);
     method @androidx.compose.runtime.ComposeCompilerApi public void disableReusing();
@@ -123,6 +130,7 @@
     method @androidx.compose.runtime.ComposeCompilerApi public void endDefaults();
     method @androidx.compose.runtime.ComposeCompilerApi public void endMovableGroup();
     method @androidx.compose.runtime.ComposeCompilerApi public void endNode();
+    method @androidx.compose.runtime.InternalComposeApi public void endProviders();
     method @androidx.compose.runtime.ComposeCompilerApi public void endReplaceableGroup();
     method @androidx.compose.runtime.ComposeCompilerApi public androidx.compose.runtime.ScopeUpdateScope? endRestartGroup();
     method @androidx.compose.runtime.ComposeCompilerApi public void endReusableGroup();
@@ -139,7 +147,11 @@
     method public androidx.compose.runtime.RecomposeScope? getRecomposeScope();
     method public Object? getRecomposeScopeIdentity();
     method public boolean getSkipping();
+    method @androidx.compose.runtime.InternalComposeApi public void insertMovableContent(androidx.compose.runtime.MovableContent<?> value, Object? parameter);
+    method @androidx.compose.runtime.InternalComposeApi public void insertMovableContentReferences(java.util.List<kotlin.Pair<androidx.compose.runtime.MovableContentStateReference,androidx.compose.runtime.MovableContentStateReference>> references);
     method @androidx.compose.runtime.ComposeCompilerApi public Object joinKey(Object? left, Object? right);
+    method @androidx.compose.runtime.InternalComposeApi public void recordSideEffect(kotlin.jvm.functions.Function0<kotlin.Unit> effect);
+    method @androidx.compose.runtime.InternalComposeApi public void recordUsed(androidx.compose.runtime.RecomposeScope scope);
     method @androidx.compose.runtime.ComposeCompilerApi public Object? rememberedValue();
     method @androidx.compose.runtime.ComposeCompilerApi public void skipCurrentGroup();
     method @androidx.compose.runtime.ComposeCompilerApi public void skipToGroupEnd();
@@ -149,6 +161,7 @@
     method @androidx.compose.runtime.ComposeCompilerApi public void startDefaults();
     method @androidx.compose.runtime.ComposeCompilerApi public void startMovableGroup(int key, Object? dataKey);
     method @androidx.compose.runtime.ComposeCompilerApi public void startNode();
+    method @androidx.compose.runtime.InternalComposeApi public void startProviders(androidx.compose.runtime.ProvidedValue<?>![] values);
     method @androidx.compose.runtime.ComposeCompilerApi public void startReplaceableGroup(int key);
     method @androidx.compose.runtime.ComposeCompilerApi public androidx.compose.runtime.Composer startRestartGroup(int key);
     method @androidx.compose.runtime.ComposeCompilerApi public void startReusableGroup(int key, Object? dataKey);
@@ -156,6 +169,7 @@
     method @androidx.compose.runtime.ComposeCompilerApi public void updateRememberedValue(Object? value);
     method @androidx.compose.runtime.ComposeCompilerApi public void useNode();
     property public abstract androidx.compose.runtime.Applier<?> applier;
+    property @androidx.compose.runtime.InternalComposeApi @org.jetbrains.annotations.TestOnly public abstract kotlin.coroutines.CoroutineContext applyCoroutineContext;
     property @org.jetbrains.annotations.TestOnly public abstract androidx.compose.runtime.ControlledComposition composition;
     property public abstract androidx.compose.runtime.tooling.CompositionData compositionData;
     property public abstract int compoundKeyHash;
@@ -171,6 +185,7 @@
 
   public static final class Composer.Companion {
     method public Object getEmpty();
+    method @androidx.compose.runtime.InternalComposeTracingApi public void setTracer(androidx.compose.runtime.CompositionTracer tracer);
     property public final Object Empty;
   }
 
@@ -214,7 +229,10 @@
 
   public final class CompositionKt {
     method public static androidx.compose.runtime.Composition Composition(androidx.compose.runtime.Applier<?> applier, androidx.compose.runtime.CompositionContext parent);
+    method @androidx.compose.runtime.ExperimentalComposeApi public static androidx.compose.runtime.Composition Composition(androidx.compose.runtime.Applier<?> applier, androidx.compose.runtime.CompositionContext parent, kotlin.coroutines.CoroutineContext recomposeCoroutineContext);
     method @org.jetbrains.annotations.TestOnly public static androidx.compose.runtime.ControlledComposition ControlledComposition(androidx.compose.runtime.Applier<?> applier, androidx.compose.runtime.CompositionContext parent);
+    method @androidx.compose.runtime.ExperimentalComposeApi @org.jetbrains.annotations.TestOnly public static androidx.compose.runtime.ControlledComposition ControlledComposition(androidx.compose.runtime.Applier<?> applier, androidx.compose.runtime.CompositionContext parent, kotlin.coroutines.CoroutineContext recomposeCoroutineContext);
+    method @androidx.compose.runtime.ExperimentalComposeApi public static kotlin.coroutines.CoroutineContext getRecomposeCoroutineContext(androidx.compose.runtime.ControlledComposition);
   }
 
   @androidx.compose.runtime.Stable public abstract sealed class CompositionLocal<T> {
@@ -251,13 +269,21 @@
     property public final kotlinx.coroutines.CoroutineScope coroutineScope;
   }
 
+  @androidx.compose.runtime.InternalComposeTracingApi public interface CompositionTracer {
+    method public boolean isTraceInProgress();
+    method public void traceEventEnd();
+    method public void traceEventStart(int key, int dirty1, int dirty2, String info);
+  }
+
   public sealed interface ControlledComposition extends androidx.compose.runtime.Composition {
     method public void applyChanges();
     method public void applyLateChanges();
     method public void changesApplied();
     method public void composeContent(kotlin.jvm.functions.Function0<kotlin.Unit> content);
     method public <R> R delegateInvalidations(androidx.compose.runtime.ControlledComposition? to, int groupIndex, kotlin.jvm.functions.Function0<? extends R> block);
+    method @androidx.compose.runtime.InternalComposeApi public void disposeUnusedMovableContent(androidx.compose.runtime.MovableContentState state);
     method public boolean getHasPendingChanges();
+    method @androidx.compose.runtime.InternalComposeApi public void insertMovableContent(java.util.List<kotlin.Pair<androidx.compose.runtime.MovableContentStateReference,androidx.compose.runtime.MovableContentStateReference>> references);
     method public void invalidateAll();
     method public boolean isComposing();
     method public boolean observesAnyOf(java.util.Set<?> values);
@@ -266,6 +292,7 @@
     method public void recordModificationsOf(java.util.Set<?> values);
     method public void recordReadOf(Object value);
     method public void recordWriteOf(Object value);
+    method @androidx.compose.runtime.InternalComposeApi public void verifyConsistent();
     property public abstract boolean hasPendingChanges;
     property public abstract boolean isComposing;
   }
@@ -309,6 +336,9 @@
     method @kotlin.PublishedApi internal static inline <R> R synchronized(Object lock, kotlin.jvm.functions.Function0<? extends R> block);
   }
 
+  @kotlin.RequiresOptIn(level=kotlin.RequiresOptIn.Level.ERROR, message="This is an experimental API for Compose and is likely to change before becoming " + "stable.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.CLASS, kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.PROPERTY, kotlin.annotation.AnnotationTarget.PROPERTY_GETTER}) public @interface ExperimentalComposeApi {
+  }
+
   @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.SOURCE) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.PROPERTY_GETTER}) public @interface ExplicitGroupsComposable {
   }
 
@@ -329,6 +359,12 @@
     property @androidx.compose.runtime.snapshots.AutoboxingStateValueProperty(preferredPropertyName="intValue") public default Integer value;
   }
 
+  @kotlin.RequiresOptIn(level=kotlin.RequiresOptIn.Level.ERROR, message="This is internal API for Compose modules that may change frequently " + "and without warning.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.CLASS, kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.PROPERTY}) public @interface InternalComposeApi {
+  }
+
+  @kotlin.RequiresOptIn(level=kotlin.RequiresOptIn.Level.ERROR, message="This is internal API that may change frequently and without warning.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface InternalComposeTracingApi {
+  }
+
   @androidx.compose.runtime.Stable @kotlin.jvm.JvmDefaultWithCompatibility public interface LongState extends androidx.compose.runtime.State<java.lang.Long> {
     method public long getLongValue();
     method public default Long getValue();
@@ -353,6 +389,12 @@
     method public static suspend <R> Object? withFrameNanos(kotlin.jvm.functions.Function1<? super java.lang.Long,? extends R> onFrame, kotlin.coroutines.Continuation<? super R>);
   }
 
+  @androidx.compose.runtime.InternalComposeApi public final class MovableContent<P> {
+    ctor public MovableContent(kotlin.jvm.functions.Function1<? super P,kotlin.Unit> content);
+    method public kotlin.jvm.functions.Function1<P,kotlin.Unit> getContent();
+    property public final kotlin.jvm.functions.Function1<P,kotlin.Unit> content;
+  }
+
   public final class MovableContentKt {
     method public static kotlin.jvm.functions.Function0<kotlin.Unit> movableContentOf(kotlin.jvm.functions.Function0<kotlin.Unit> content);
     method public static <P> kotlin.jvm.functions.Function1<P,kotlin.Unit> movableContentOf(kotlin.jvm.functions.Function1<? super P,kotlin.Unit> content);
@@ -365,6 +407,12 @@
     method public static <R, P1, P2, P3> kotlin.jvm.functions.Function4<R,P1,P2,P3,kotlin.Unit> movableContentWithReceiverOf(kotlin.jvm.functions.Function4<? super R,? super P1,? super P2,? super P3,kotlin.Unit> content);
   }
 
+  @androidx.compose.runtime.InternalComposeApi public final class MovableContentState {
+  }
+
+  @androidx.compose.runtime.InternalComposeApi public final class MovableContentStateReference {
+  }
+
   @androidx.compose.runtime.Stable @kotlin.jvm.JvmDefaultWithCompatibility public interface MutableDoubleState extends androidx.compose.runtime.DoubleState androidx.compose.runtime.MutableState<java.lang.Double> {
     method public void setDoubleValue(double);
     method public default void setValue(double);
@@ -465,6 +513,7 @@
     method public void pauseCompositionFrameClock();
     method public void resumeCompositionFrameClock();
     method public suspend Object? runRecomposeAndApplyChanges(kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    method @androidx.compose.runtime.ExperimentalComposeApi public suspend Object? runRecomposeConcurrentlyAndApplyChanges(kotlin.coroutines.CoroutineContext recomposeCoroutineContext, kotlin.coroutines.Continuation<? super kotlin.Unit>);
     property public final long changeCount;
     property public final kotlinx.coroutines.flow.StateFlow<androidx.compose.runtime.Recomposer.State> currentState;
     property public kotlin.coroutines.CoroutineContext effectCoroutineContext;
@@ -694,6 +743,20 @@
     method @androidx.compose.runtime.ComposeCompilerApi public static androidx.compose.runtime.internal.ComposableLambdaN composableLambdaNInstance(int key, boolean tracked, int arity, Object block);
   }
 
+  @androidx.compose.runtime.ExperimentalComposeApi @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.CONSTRUCTOR}) public @interface Decoy {
+    method public abstract String[] signature();
+    method public abstract String targetName();
+    property public abstract String[] signature;
+    property public abstract String targetName;
+  }
+
+  @androidx.compose.runtime.ExperimentalComposeApi @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.CONSTRUCTOR}) public @interface DecoyImplementation {
+    method public abstract long id();
+    method public abstract String name();
+    property public abstract long id;
+    property public abstract String name;
+  }
+
   public final class DecoyKt {
     method @androidx.compose.runtime.ComposeCompilerApi public static Void illegalDecoyCallException(String fName);
   }
@@ -729,7 +792,10 @@
   }
 
   public final class LiveLiteralKt {
+    method @androidx.compose.runtime.InternalComposeApi public static void enableLiveLiterals();
     method public static boolean isLiveLiteralsEnabled();
+    method @androidx.compose.runtime.ComposeCompilerApi @androidx.compose.runtime.InternalComposeApi public static <T> androidx.compose.runtime.State<T> liveLiteral(String key, T value);
+    method @androidx.compose.runtime.InternalComposeApi public static void updateLiveLiteralValue(String key, Object? value);
     property public static final boolean isLiveLiteralsEnabled;
   }
 
@@ -796,6 +862,8 @@
     method @kotlin.PublishedApi internal androidx.compose.runtime.snapshots.Snapshot? makeCurrent();
     method @kotlin.PublishedApi internal void restoreCurrent(androidx.compose.runtime.snapshots.Snapshot? snapshot);
     method public abstract androidx.compose.runtime.snapshots.Snapshot takeNestedSnapshot(optional kotlin.jvm.functions.Function1<java.lang.Object,kotlin.Unit>? readObserver);
+    method @androidx.compose.runtime.ExperimentalComposeApi public final androidx.compose.runtime.snapshots.Snapshot? unsafeEnter();
+    method @androidx.compose.runtime.ExperimentalComposeApi public final void unsafeLeave(androidx.compose.runtime.snapshots.Snapshot? oldSnapshot);
     property public int id;
     property public abstract boolean readOnly;
     property public abstract androidx.compose.runtime.snapshots.Snapshot root;
@@ -809,6 +877,7 @@
     method public boolean isApplyObserverNotificationPending();
     method public void notifyObjectsInitialized();
     method public <T> T observe(optional kotlin.jvm.functions.Function1<java.lang.Object,kotlin.Unit>? readObserver, optional kotlin.jvm.functions.Function1<java.lang.Object,kotlin.Unit>? writeObserver, kotlin.jvm.functions.Function0<? extends T> block);
+    method @androidx.compose.runtime.InternalComposeApi public int openSnapshotCount();
     method public androidx.compose.runtime.snapshots.ObserverHandle registerApplyObserver(kotlin.jvm.functions.Function2<? super java.util.Set<?>,? super androidx.compose.runtime.snapshots.Snapshot,kotlin.Unit> observer);
     method public androidx.compose.runtime.snapshots.ObserverHandle registerGlobalWriteObserver(kotlin.jvm.functions.Function1<java.lang.Object,kotlin.Unit> observer);
     method @kotlin.PublishedApi internal androidx.compose.runtime.snapshots.Snapshot? removeCurrent();
@@ -850,6 +919,17 @@
     field public static final androidx.compose.runtime.snapshots.SnapshotApplyResult.Success INSTANCE;
   }
 
+  @androidx.compose.runtime.ExperimentalComposeApi public interface SnapshotContextElement extends kotlin.coroutines.CoroutineContext.Element {
+    field public static final androidx.compose.runtime.snapshots.SnapshotContextElement.Key Key;
+  }
+
+  public static final class SnapshotContextElement.Key implements kotlin.coroutines.CoroutineContext.Key<androidx.compose.runtime.snapshots.SnapshotContextElement> {
+  }
+
+  public final class SnapshotContextElementKt {
+    method @androidx.compose.runtime.ExperimentalComposeApi public static androidx.compose.runtime.snapshots.SnapshotContextElement asContextElement(androidx.compose.runtime.snapshots.Snapshot);
+  }
+
   public final class SnapshotKt {
     method @kotlin.PublishedApi internal static <T extends androidx.compose.runtime.snapshots.StateRecord> T current(T r);
     method @kotlin.PublishedApi internal static <T extends androidx.compose.runtime.snapshots.StateRecord> T current(T r, androidx.compose.runtime.snapshots.Snapshot snapshot);
diff --git a/compose/runtime/runtime/src/androidMain/kotlin/androidx/compose/runtime/internal/FloatingPointEquality.android.kt b/compose/runtime/runtime/src/androidMain/kotlin/androidx/compose/runtime/internal/FloatingPointEquality.android.kt
new file mode 100644
index 0000000..61845d3
--- /dev/null
+++ b/compose/runtime/runtime/src/androidMain/kotlin/androidx/compose/runtime/internal/FloatingPointEquality.android.kt
@@ -0,0 +1,53 @@
+/*
+ * Copyright 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package androidx.compose.runtime.internal
+
+import android.os.Build
+
+/**
+ * Returns `true` if the receiver is an expression of [Float.NaN]. There is not one single encoding
+ * of `NaN`. A float encodes NaN if its exponent bits (the 8 most significant bits which follow the
+ * single most significant bit in the float, which encodes the sign) are all set to `1`, and the
+ * significand bits (the 23 least significant bits) are not all zeros.
+ */
+internal val Float.isNan: Boolean
+    get() = (this.toRawBits() and 0x7FFFFFFF) > 0x7F800000
+
+/**
+ * Returns `true` if the receiver is an expression of [Double.NaN]. There is not one single encoding
+ * of `NaN`. A double encodes NaN if its exponent bits (the 11 most significant bits which follow
+ * the single most significant bit in the double, which encodes the sign) are all set to `1`, and
+ * the significand bits (the 53 least significant bits) are not all zeros.
+ */
+internal val Double.isNan: Boolean
+    get() = (this.toRawBits() and 0x7FFFFFFFFFFFFFFF) > 0x7FF0000000000000
+
+@Suppress("NOTHING_TO_INLINE")
+internal actual inline fun Float.equalsWithNanFix(other: Float): Boolean =
+    if (Build.VERSION.SDK_INT >= 23) {
+        this == other
+    } else {
+        !this.isNan && !other.isNan && this == other
+    }
+
+@Suppress("NOTHING_TO_INLINE")
+internal actual inline fun Double.equalsWithNanFix(other: Double): Boolean =
+    if (Build.VERSION.SDK_INT >= 23) {
+        this == other
+    } else {
+        !this.isNan && !other.isNan && this == other
+    }
\ No newline at end of file
diff --git a/compose/runtime/runtime/src/commonMain/kotlin/androidx/compose/runtime/SnapshotDoubleState.kt b/compose/runtime/runtime/src/commonMain/kotlin/androidx/compose/runtime/SnapshotDoubleState.kt
index 8521c5a..3868163 100644
--- a/compose/runtime/runtime/src/commonMain/kotlin/androidx/compose/runtime/SnapshotDoubleState.kt
+++ b/compose/runtime/runtime/src/commonMain/kotlin/androidx/compose/runtime/SnapshotDoubleState.kt
@@ -19,6 +19,7 @@
 package androidx.compose.runtime
 
 import androidx.compose.runtime.internal.JvmDefaultWithCompatibility
+import androidx.compose.runtime.internal.equalsWithNanFix
 import androidx.compose.runtime.snapshots.AutoboxingStateValueProperty
 import androidx.compose.runtime.snapshots.Snapshot
 import androidx.compose.runtime.snapshots.SnapshotMutableState
@@ -136,7 +137,7 @@
     override var doubleValue: Double
         get() = next.readable(this).value
         set(value) = next.withCurrent {
-            if (it.value != value) {
+            if (!it.value.equalsWithNanFix(value)) {
                 next.overwritable(this, it) { this.value = value }
             }
         }
@@ -161,7 +162,7 @@
     ): StateRecord? {
         val currentRecord = current as DoubleStateStateRecord
         val appliedRecord = applied as DoubleStateStateRecord
-        return if (currentRecord.value == appliedRecord.value) {
+        return if (currentRecord.value.equalsWithNanFix(appliedRecord.value)) {
             current
         } else {
             null
diff --git a/compose/runtime/runtime/src/commonMain/kotlin/androidx/compose/runtime/SnapshotFloatState.kt b/compose/runtime/runtime/src/commonMain/kotlin/androidx/compose/runtime/SnapshotFloatState.kt
index fa6bfe5..e6edf34 100644
--- a/compose/runtime/runtime/src/commonMain/kotlin/androidx/compose/runtime/SnapshotFloatState.kt
+++ b/compose/runtime/runtime/src/commonMain/kotlin/androidx/compose/runtime/SnapshotFloatState.kt
@@ -18,6 +18,7 @@
 @file:JvmMultifileClass
 package androidx.compose.runtime
 
+import androidx.compose.runtime.internal.equalsWithNanFix
 import androidx.compose.runtime.snapshots.AutoboxingStateValueProperty
 import androidx.compose.runtime.snapshots.Snapshot
 import androidx.compose.runtime.snapshots.SnapshotMutableState
@@ -132,7 +133,7 @@
     override var floatValue: Float
         get() = next.readable(this).value
         set(value) = next.withCurrent {
-            if (it.value != value) {
+            if (!it.value.equalsWithNanFix(value)) {
                 next.overwritable(this, it) { this.value = value }
             }
         }
@@ -157,7 +158,7 @@
     ): StateRecord? {
         val currentRecord = current as FloatStateStateRecord
         val appliedRecord = applied as FloatStateStateRecord
-        return if (currentRecord.value == appliedRecord.value) {
+        return if (currentRecord.value.equalsWithNanFix(appliedRecord.value)) {
             current
         } else {
             null
diff --git a/compose/runtime/runtime/src/commonMain/kotlin/androidx/compose/runtime/internal/FloatingPointEquality.kt b/compose/runtime/runtime/src/commonMain/kotlin/androidx/compose/runtime/internal/FloatingPointEquality.kt
new file mode 100644
index 0000000..0404016
--- /dev/null
+++ b/compose/runtime/runtime/src/commonMain/kotlin/androidx/compose/runtime/internal/FloatingPointEquality.kt
@@ -0,0 +1,45 @@
+/*
+ * Copyright 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package androidx.compose.runtime.internal
+
+/**
+ * A backwards-compatible comparison check which returns true if the receiver and the [other]
+ * operands are equal to each other. Equality as specified in the IEEE-754 standard. If at least
+ * one operand is `NaN`, the result will always be `false`. The sign bit is ignored for operands
+ * that are zero (i.e. +0 and -0 will always be equal to one another). All other comparisons check
+ * the logical value of the float.
+ *
+ * This implementation is needed for proper behavior on x86 builds of Android SDK levels 21 and 22,
+ * which contain a bug where [Float.NaN] is equal to every other [Float] value.
+ *
+ * See [issue 281205384](b/281205384).
+ */
+internal expect inline fun Float.equalsWithNanFix(other: Float): Boolean
+
+/**
+ * A backwards-compatible comparison check which returns true if the receiver and the [other]
+ * operands are equal to each other. Equality as specified in the IEEE-754 standard. If at least
+ * one operand is `NaN`, the result will always be `false`. The sign bit is ignored for operands
+ * that are zero (i.e. +0 and -0 will always be equal to one another). All other comparisons check
+ * the logical value of the double.
+ *
+ * This implementation is needed for proper behavior on x86 builds of Android SDK levels 21 and 22,
+ * which contain a bug where [Double.NaN] is equal to every other [Double] value.
+ *
+ * See [issue 281205384](b/281205384).
+ */
+internal expect inline fun Double.equalsWithNanFix(other: Double): Boolean
\ No newline at end of file
diff --git a/compose/runtime/runtime/src/commonMain/kotlin/androidx/compose/runtime/snapshots/Snapshot.kt b/compose/runtime/runtime/src/commonMain/kotlin/androidx/compose/runtime/snapshots/Snapshot.kt
index 1df196c..f05ec76 100644
--- a/compose/runtime/runtime/src/commonMain/kotlin/androidx/compose/runtime/snapshots/Snapshot.kt
+++ b/compose/runtime/runtime/src/commonMain/kotlin/androidx/compose/runtime/snapshots/Snapshot.kt
@@ -1833,7 +1833,20 @@
     }
 
 private fun validateOpen(snapshot: Snapshot) {
-    if (!openSnapshots.get(snapshot.id)) error("Snapshot is not open")
+    val openSnapshots = openSnapshots
+    if (!openSnapshots.get(snapshot.id)) {
+        error(
+            "Snapshot is not open: id=${
+                snapshot.id
+            }, disposed=${
+                snapshot.disposed
+            }, applied=${
+                (snapshot as? MutableSnapshot)?.applied ?: "read-only"
+            }, lowestPin=${
+                sync { pinningTable.lowestOrDefault(-1) }
+            }"
+        )
+    }
 }
 
 /**
diff --git a/compose/runtime/runtime/src/commonTest/kotlin/androidx/compose/runtime/internal/FloatingPointEqualityTest.kt b/compose/runtime/runtime/src/commonTest/kotlin/androidx/compose/runtime/internal/FloatingPointEqualityTest.kt
new file mode 100644
index 0000000..978dd87
--- /dev/null
+++ b/compose/runtime/runtime/src/commonTest/kotlin/androidx/compose/runtime/internal/FloatingPointEqualityTest.kt
@@ -0,0 +1,178 @@
+/*
+ * Copyright 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package androidx.compose.runtime.internal
+
+import kotlin.test.Test
+import kotlin.test.assertFalse
+import kotlin.test.assertTrue
+
+class FloatingPointEqualityTest {
+
+    @Test
+    fun testFloat_arbitraryValueEquality() {
+        assertEqualsWithNanFix(12345f, 12345f)
+        assertEqualsWithNanFix(-98.076f, -98.076f)
+        assertNotEqualsWithNanFix(12.34f, 12.30f)
+    }
+
+    @Test
+    fun testFloat_inequalityFromLossOfPrecision() {
+        assertNotEqualsWithNanFix(0.5f, 0.01f * 5)
+    }
+
+    @Test
+    fun testFloat_nanConstant_doesNotEqualItself() {
+        assertNotEqualsWithNanFix(Float.NaN, Float.NaN)
+    }
+
+    @Test
+    fun testFloat_nonCanonicalNans_areNotEqual() {
+        val unconventionalNan = Float.fromBits(0x7FC0ABCD)
+        assertNotEqualsWithNanFix(unconventionalNan, unconventionalNan)
+    }
+
+    @Test
+    fun testFloat_negativeZero_doesEqualsPositiveZero() {
+        assertEqualsWithNanFix(Float.NegativeZero, 0f)
+    }
+
+    @Test
+    fun testFloat_negativeZero_equalsNegativeZero() {
+        assertEqualsWithNanFix(Float.NegativeZero, Float.NegativeZero)
+    }
+
+    @Test
+    fun testFloat_positiveZero_equalsPositiveZero() {
+        assertEqualsWithNanFix(0f, 0f)
+    }
+
+    @Test
+    fun testFloat_positiveInfinity_EqualsPositiveInfinity() {
+        assertEqualsWithNanFix(Float.POSITIVE_INFINITY, Float.POSITIVE_INFINITY)
+    }
+
+    @Test
+    fun testFloat_negativeInfinity_doesNotEqualPositiveInfinity() {
+        assertNotEqualsWithNanFix(Float.NEGATIVE_INFINITY, Float.POSITIVE_INFINITY)
+    }
+
+    @Test
+    fun testFloat_negativeInfinity_equalsNegativeInfinity() {
+        assertEqualsWithNanFix(Float.NEGATIVE_INFINITY, Float.NEGATIVE_INFINITY)
+    }
+
+    @Test
+    fun testDouble_arbitraryValueEquality() {
+        assertEqualsWithNanFix(12345.0, 12345.0)
+        assertEqualsWithNanFix(-98.076, -98.076)
+        assertNotEqualsWithNanFix(12.34, 12.30)
+    }
+
+    @Test
+    fun testDouble_inequalityFromLossOfPrecision() {
+        assertNotEqualsWithNanFix(0.5, 0.01 * 5)
+    }
+
+    @Test
+    fun testDouble_nanConstant_doesNotEqualItself() {
+        assertNotEqualsWithNanFix(Double.NaN, Double.NaN)
+    }
+
+    @Test
+    fun testDouble_nonCanonicalNans_areNotEqual() {
+        val unconventionalNan = Double.fromBits(0x7FF0ABCDEF123456)
+        assertNotEqualsWithNanFix(unconventionalNan, unconventionalNan)
+    }
+
+    @Test
+    fun testDouble_negativeZero_doesEqualsPositiveZero() {
+        assertEqualsWithNanFix(Double.NegativeZero, 0f)
+    }
+
+    @Test
+    fun testDouble_negativeZero_equalsNegativeZero() {
+        assertEqualsWithNanFix(Double.NegativeZero, Double.NegativeZero)
+    }
+
+    @Test
+    fun testDouble_positiveZero_equalsPositiveZero() {
+        assertEqualsWithNanFix(0f, 0f)
+    }
+
+    @Test
+    fun testDouble_positiveInfinity_EqualsPositiveInfinity() {
+        assertEqualsWithNanFix(Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)
+    }
+
+    @Test
+    fun testDouble_negativeInfinity_doesNotEqualPositiveInfinity() {
+        assertNotEqualsWithNanFix(Double.NEGATIVE_INFINITY, Double.POSITIVE_INFINITY)
+    }
+
+    @Test
+    fun testDouble_negativeInfinity_equalsNegativeInfinity() {
+        assertEqualsWithNanFix(Double.NEGATIVE_INFINITY, Double.NEGATIVE_INFINITY)
+    }
+
+    private fun assertNotEqualsWithNanFix(
+        first: Float,
+        second: Float
+    ) = assertFalse(
+        message = "$first (${first.bitString}) == $second (${second.bitString}) " +
+            "returned true, expected false",
+        actual = first.equalsWithNanFix(second)
+    )
+
+    private fun assertEqualsWithNanFix(
+        first: Float,
+        second: Float
+    ) = assertTrue(
+        message = "$first (${first.bitString}) == $second (${second.bitString}) " +
+            "returned false, expected true",
+        actual = first.equalsWithNanFix(second)
+    )
+
+    private fun assertNotEqualsWithNanFix(
+        first: Double,
+        second: Double
+    ) = assertFalse(
+        message = "$first (${first.bitString}) == $second (${second.bitString}) " +
+            "returned true, expected false",
+        actual = first.equalsWithNanFix(second)
+    )
+
+    private fun assertEqualsWithNanFix(
+        first: Double,
+        second: Double
+    ) = assertTrue(
+        message = "$first (${first.bitString}) == $second (${second.bitString}) " +
+            "returned false, expected true",
+        actual = first.equalsWithNanFix(second)
+    )
+
+    private val Float.bitString
+        get() = "0x" + toBits().toUInt().toString(16).padStart(length = 8, '0')
+
+    private val Double.bitString
+        get() = "0x" + toBits().toULong().toString(16).padStart(length = 16, '0')
+
+    private val Float.Companion.NegativeZero: Float
+        get() = Float.fromBits(0b1 shl 31)
+
+    private val Double.Companion.NegativeZero: Float
+        get() = Float.fromBits(0b1 shl 63)
+}
\ No newline at end of file
diff --git a/wear/compose/compose-material3/integration-tests/src/main/java/androidx/wear/compose/material3/demos/ButtonDemo.kt b/compose/runtime/runtime/src/desktopMain/kotlin/androidx/compose/runtime/internal/FloatingPointEquality.desktop.kt
similarity index 67%
rename from wear/compose/compose-material3/integration-tests/src/main/java/androidx/wear/compose/material3/demos/ButtonDemo.kt
rename to compose/runtime/runtime/src/desktopMain/kotlin/androidx/compose/runtime/internal/FloatingPointEquality.desktop.kt
index 9817801..be9c52f 100644
--- a/wear/compose/compose-material3/integration-tests/src/main/java/androidx/wear/compose/material3/demos/ButtonDemo.kt
+++ b/compose/runtime/runtime/src/desktopMain/kotlin/androidx/compose/runtime/internal/FloatingPointEquality.desktop.kt
@@ -14,6 +14,10 @@
  * limitations under the License.
  */
 
-package androidx.wear.compose.material3.demos
+package androidx.compose.runtime.internal
 
-// Add Button demos here
\ No newline at end of file
+@Suppress("NOTHING_TO_INLINE")
+internal actual inline fun Float.equalsWithNanFix(other: Float): Boolean = (this == other)
+
+@Suppress("NOTHING_TO_INLINE")
+internal actual inline fun Double.equalsWithNanFix(other: Double): Boolean = (this == other)
\ No newline at end of file
diff --git a/compose/runtime/runtime/src/nonEmulatorCommonTest/kotlin/androidx/compose/runtime/snapshots/SnapshotTests.kt b/compose/runtime/runtime/src/nonEmulatorCommonTest/kotlin/androidx/compose/runtime/snapshots/SnapshotTests.kt
index 3ec3fb7..00676b9 100644
--- a/compose/runtime/runtime/src/nonEmulatorCommonTest/kotlin/androidx/compose/runtime/snapshots/SnapshotTests.kt
+++ b/compose/runtime/runtime/src/nonEmulatorCommonTest/kotlin/androidx/compose/runtime/snapshots/SnapshotTests.kt
@@ -913,6 +913,52 @@
     }
 
     @Test
+    fun cannotApplyASnapshotTwice() {
+        var state by mutableStateOf("initial")
+        val snapshot = takeMutableSnapshot()
+        try {
+            snapshot.enter { state = "mutated" }
+            snapshot.apply().check()
+            snapshot.apply().check()
+            fail("An exception should have been thrown by second apply()")
+        } catch (ise: IllegalStateException) {
+            // Expected exception
+            assertTrue(
+                ise.message?.let {
+                    it.contains("Snapshot is not open") &&
+                        it.contains("applied=")
+                } == true,
+                "Incorrect message: ${ise.message}"
+            )
+        } finally {
+            snapshot.dispose()
+        }
+    }
+
+    @Test
+    fun cannotApplyAfterADispose() {
+        var state by mutableStateOf("initial")
+        val snapshot = takeMutableSnapshot()
+        try {
+            snapshot.enter { state = "mutated" }
+            snapshot.dispose()
+            snapshot.apply().check()
+            fail("An exception should have been thrown by the apply()")
+        } catch (ise: IllegalStateException) {
+            // Expected exception
+            assertTrue(
+                ise.message?.let {
+                    it.contains("Snapshot is not open") &&
+                        it.contains("applied=")
+                } == true,
+                "Incorrect message: ${ise.message}"
+            )
+        } finally {
+            snapshot.dispose()
+        }
+    }
+
+    @Test
     fun testRecordsAreReusedCorrectly() {
         val value = mutableStateOf<Int>(0)
         Snapshot.withMutableSnapshot { value.value++ }
diff --git a/compose/ui/ui-android-stubs/api/public_plus_experimental_current.txt b/compose/ui/ui-android-stubs/api/1.5.0-beta01.txt
similarity index 100%
rename from compose/ui/ui-android-stubs/api/public_plus_experimental_current.txt
rename to compose/ui/ui-android-stubs/api/1.5.0-beta01.txt
diff --git a/compose/ui/ui-android-stubs/api/res-1.5.0-beta01.txt b/compose/ui/ui-android-stubs/api/res-1.5.0-beta01.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/compose/ui/ui-android-stubs/api/res-1.5.0-beta01.txt
diff --git a/compose/ui/ui-android-stubs/api/public_plus_experimental_current.txt b/compose/ui/ui-android-stubs/api/restricted_1.5.0-beta01.txt
similarity index 100%
copy from compose/ui/ui-android-stubs/api/public_plus_experimental_current.txt
copy to compose/ui/ui-android-stubs/api/restricted_1.5.0-beta01.txt
diff --git a/compose/ui/ui-geometry/api/public_plus_experimental_current.txt b/compose/ui/ui-geometry/api/1.5.0-beta01.txt
similarity index 100%
rename from compose/ui/ui-geometry/api/public_plus_experimental_current.txt
rename to compose/ui/ui-geometry/api/1.5.0-beta01.txt
diff --git a/compose/ui/ui-geometry/api/res-1.5.0-beta01.txt b/compose/ui/ui-geometry/api/res-1.5.0-beta01.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/compose/ui/ui-geometry/api/res-1.5.0-beta01.txt
diff --git a/compose/ui/ui-geometry/api/public_plus_experimental_current.txt b/compose/ui/ui-geometry/api/restricted_1.5.0-beta01.txt
similarity index 100%
copy from compose/ui/ui-geometry/api/public_plus_experimental_current.txt
copy to compose/ui/ui-geometry/api/restricted_1.5.0-beta01.txt
diff --git a/compose/ui/ui-graphics/api/public_plus_experimental_current.txt b/compose/ui/ui-graphics/api/1.5.0-beta01.txt
similarity index 100%
rename from compose/ui/ui-graphics/api/public_plus_experimental_current.txt
rename to compose/ui/ui-graphics/api/1.5.0-beta01.txt
diff --git a/compose/ui/ui-graphics/api/current.txt b/compose/ui/ui-graphics/api/current.txt
index ed2ed75..eb84156 100644
--- a/compose/ui/ui-graphics/api/current.txt
+++ b/compose/ui/ui-graphics/api/current.txt
@@ -404,6 +404,9 @@
     method public operator long invoke();
   }
 
+  @kotlin.RequiresOptIn(message="This API is experimental and is likely to change in the future.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface ExperimentalGraphicsApi {
+  }
+
   @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class FilterQuality {
     method public int getValue();
     property public final int value;
diff --git a/compose/ui/ui-graphics/api/res-1.5.0-beta01.txt b/compose/ui/ui-graphics/api/res-1.5.0-beta01.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/compose/ui/ui-graphics/api/res-1.5.0-beta01.txt
diff --git a/compose/ui/ui-graphics/api/restricted_1.5.0-beta01.txt b/compose/ui/ui-graphics/api/restricted_1.5.0-beta01.txt
new file mode 100644
index 0000000..4aa03ab
--- /dev/null
+++ b/compose/ui/ui-graphics/api/restricted_1.5.0-beta01.txt
@@ -0,0 +1,1691 @@
+// Signature format: 4.0
+package androidx.compose.ui.graphics {
+
+  public final class AndroidBlendMode_androidKt {
+    method public static boolean isSupported(int);
+  }
+
+  @kotlin.PublishedApi internal final class AndroidCanvas implements androidx.compose.ui.graphics.Canvas {
+    ctor public AndroidCanvas();
+    method public void clipPath(androidx.compose.ui.graphics.Path path, int clipOp);
+    method public void clipRect(float left, float top, float right, float bottom, int clipOp);
+    method public void concat(float[] matrix);
+    method public void disableZ();
+    method public void drawArc(float left, float top, float right, float bottom, float startAngle, float sweepAngle, boolean useCenter, androidx.compose.ui.graphics.Paint paint);
+    method public void drawCircle(long center, float radius, androidx.compose.ui.graphics.Paint paint);
+    method public void drawImage(androidx.compose.ui.graphics.ImageBitmap image, long topLeftOffset, androidx.compose.ui.graphics.Paint paint);
+    method public void drawImageRect(androidx.compose.ui.graphics.ImageBitmap image, long srcOffset, long srcSize, long dstOffset, long dstSize, androidx.compose.ui.graphics.Paint paint);
+    method public void drawLine(long p1, long p2, androidx.compose.ui.graphics.Paint paint);
+    method public void drawOval(float left, float top, float right, float bottom, androidx.compose.ui.graphics.Paint paint);
+    method public void drawPath(androidx.compose.ui.graphics.Path path, androidx.compose.ui.graphics.Paint paint);
+    method public void drawPoints(int pointMode, java.util.List<androidx.compose.ui.geometry.Offset> points, androidx.compose.ui.graphics.Paint paint);
+    method public void drawRawPoints(int pointMode, float[] points, androidx.compose.ui.graphics.Paint paint);
+    method public void drawRect(float left, float top, float right, float bottom, androidx.compose.ui.graphics.Paint paint);
+    method public void drawRoundRect(float left, float top, float right, float bottom, float radiusX, float radiusY, androidx.compose.ui.graphics.Paint paint);
+    method public void drawVertices(androidx.compose.ui.graphics.Vertices vertices, int blendMode, androidx.compose.ui.graphics.Paint paint);
+    method public void enableZ();
+    method public void restore();
+    method public void rotate(float degrees);
+    method public void save();
+    method public void saveLayer(androidx.compose.ui.geometry.Rect bounds, androidx.compose.ui.graphics.Paint paint);
+    method public void scale(float sx, float sy);
+    method public void skew(float sx, float sy);
+    method public android.graphics.Region.Op toRegionOp(int);
+    method public void translate(float dx, float dy);
+    field @kotlin.PublishedApi internal android.graphics.Canvas internalCanvas;
+  }
+
+  public final class AndroidCanvas_androidKt {
+    method public static androidx.compose.ui.graphics.Canvas Canvas(android.graphics.Canvas c);
+    method public static android.graphics.Canvas getNativeCanvas(androidx.compose.ui.graphics.Canvas);
+  }
+
+  public final class AndroidColorFilter_androidKt {
+    method public static android.graphics.ColorFilter asAndroidColorFilter(androidx.compose.ui.graphics.ColorFilter);
+    method public static androidx.compose.ui.graphics.ColorFilter asComposeColorFilter(android.graphics.ColorFilter);
+  }
+
+  public final class AndroidColorSpace_androidKt {
+    method @RequiresApi(android.os.Build.VERSION_CODES.O) public static android.graphics.ColorSpace toAndroidColorSpace(androidx.compose.ui.graphics.colorspace.ColorSpace);
+    method @RequiresApi(android.os.Build.VERSION_CODES.O) public static androidx.compose.ui.graphics.colorspace.ColorSpace toComposeColorSpace(android.graphics.ColorSpace);
+  }
+
+  public final class AndroidImageBitmap_androidKt {
+    method public static android.graphics.Bitmap asAndroidBitmap(androidx.compose.ui.graphics.ImageBitmap);
+    method public static androidx.compose.ui.graphics.ImageBitmap asImageBitmap(android.graphics.Bitmap);
+  }
+
+  public final class AndroidMatrixConversions_androidKt {
+    method public static void setFrom(android.graphics.Matrix, float[] matrix);
+    method public static void setFrom(float[], android.graphics.Matrix matrix);
+  }
+
+  public final class AndroidPaint implements androidx.compose.ui.graphics.Paint {
+    ctor public AndroidPaint();
+    ctor public AndroidPaint(android.graphics.Paint internalPaint);
+    method public android.graphics.Paint asFrameworkPaint();
+    method public float getAlpha();
+    method public int getBlendMode();
+    method public long getColor();
+    method public androidx.compose.ui.graphics.ColorFilter? getColorFilter();
+    method public int getFilterQuality();
+    method public androidx.compose.ui.graphics.PathEffect? getPathEffect();
+    method public android.graphics.Shader? getShader();
+    method public int getStrokeCap();
+    method public int getStrokeJoin();
+    method public float getStrokeMiterLimit();
+    method public float getStrokeWidth();
+    method public int getStyle();
+    method public boolean isAntiAlias();
+    method public void setAlpha(float);
+    method public void setAntiAlias(boolean);
+    method public void setBlendMode(int);
+    method public void setColor(long);
+    method public void setColorFilter(androidx.compose.ui.graphics.ColorFilter?);
+    method public void setFilterQuality(int);
+    method public void setPathEffect(androidx.compose.ui.graphics.PathEffect?);
+    method public void setShader(android.graphics.Shader?);
+    method public void setStrokeCap(int);
+    method public void setStrokeJoin(int);
+    method public void setStrokeMiterLimit(float);
+    method public void setStrokeWidth(float);
+    method public void setStyle(int);
+    property public float alpha;
+    property public int blendMode;
+    property public long color;
+    property public androidx.compose.ui.graphics.ColorFilter? colorFilter;
+    property public int filterQuality;
+    property public boolean isAntiAlias;
+    property public androidx.compose.ui.graphics.PathEffect? pathEffect;
+    property public android.graphics.Shader? shader;
+    property public int strokeCap;
+    property public int strokeJoin;
+    property public float strokeMiterLimit;
+    property public float strokeWidth;
+    property public int style;
+  }
+
+  public final class AndroidPaint_androidKt {
+    method public static androidx.compose.ui.graphics.Paint Paint();
+    method public static androidx.compose.ui.graphics.Paint toComposePaint(android.graphics.Paint);
+  }
+
+  public final class AndroidPath implements androidx.compose.ui.graphics.Path {
+    ctor public AndroidPath(optional android.graphics.Path internalPath);
+    method public void addArc(androidx.compose.ui.geometry.Rect oval, float startAngleDegrees, float sweepAngleDegrees);
+    method public void addArcRad(androidx.compose.ui.geometry.Rect oval, float startAngleRadians, float sweepAngleRadians);
+    method public void addOval(androidx.compose.ui.geometry.Rect oval);
+    method public void addPath(androidx.compose.ui.graphics.Path path, long offset);
+    method public void addRect(androidx.compose.ui.geometry.Rect rect);
+    method public void addRoundRect(androidx.compose.ui.geometry.RoundRect roundRect);
+    method public void arcTo(androidx.compose.ui.geometry.Rect rect, float startAngleDegrees, float sweepAngleDegrees, boolean forceMoveTo);
+    method public void close();
+    method public void cubicTo(float x1, float y1, float x2, float y2, float x3, float y3);
+    method public androidx.compose.ui.geometry.Rect getBounds();
+    method public int getFillType();
+    method public android.graphics.Path getInternalPath();
+    method public boolean isConvex();
+    method public boolean isEmpty();
+    method public void lineTo(float x, float y);
+    method public void moveTo(float x, float y);
+    method public boolean op(androidx.compose.ui.graphics.Path path1, androidx.compose.ui.graphics.Path path2, int operation);
+    method public void quadraticBezierTo(float x1, float y1, float x2, float y2);
+    method public void relativeCubicTo(float dx1, float dy1, float dx2, float dy2, float dx3, float dy3);
+    method public void relativeLineTo(float dx, float dy);
+    method public void relativeMoveTo(float dx, float dy);
+    method public void relativeQuadraticBezierTo(float dx1, float dy1, float dx2, float dy2);
+    method public void reset();
+    method public void setFillType(int);
+    method public void translate(long offset);
+    property public int fillType;
+    property public final android.graphics.Path internalPath;
+    property public boolean isConvex;
+    property public boolean isEmpty;
+  }
+
+  public final class AndroidPathEffect_androidKt {
+    method public static android.graphics.PathEffect asAndroidPathEffect(androidx.compose.ui.graphics.PathEffect);
+    method public static androidx.compose.ui.graphics.PathEffect toComposePathEffect(android.graphics.PathEffect);
+  }
+
+  public final class AndroidPathMeasure implements androidx.compose.ui.graphics.PathMeasure {
+    method public float getLength();
+    method public long getPosition(float distance);
+    method public boolean getSegment(float startDistance, float stopDistance, androidx.compose.ui.graphics.Path destination, boolean startWithMoveTo);
+    method public long getTangent(float distance);
+    method public void setPath(androidx.compose.ui.graphics.Path? path, boolean forceClosed);
+    property public float length;
+  }
+
+  public final class AndroidPathMeasure_androidKt {
+    method public static androidx.compose.ui.graphics.PathMeasure PathMeasure();
+  }
+
+  public final class AndroidPath_androidKt {
+    method public static androidx.compose.ui.graphics.Path Path();
+    method public static inline android.graphics.Path asAndroidPath(androidx.compose.ui.graphics.Path);
+    method public static androidx.compose.ui.graphics.Path asComposePath(android.graphics.Path);
+  }
+
+  public final class AndroidRenderEffect_androidKt {
+    method public static androidx.compose.ui.graphics.RenderEffect asComposeRenderEffect(android.graphics.RenderEffect);
+  }
+
+  public final class AndroidTileMode_androidKt {
+    method public static boolean isSupported(int);
+    method public static android.graphics.Shader.TileMode toAndroidTileMode(int);
+    method public static int toComposeTileMode(android.graphics.Shader.TileMode);
+  }
+
+  public final class AndroidVertexMode_androidKt {
+    method public static android.graphics.Canvas.VertexMode toAndroidVertexMode(int);
+  }
+
+  @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class BlendMode {
+    field public static final androidx.compose.ui.graphics.BlendMode.Companion Companion;
+  }
+
+  public static final class BlendMode.Companion {
+    method public int getClear();
+    method public int getColor();
+    method public int getColorBurn();
+    method public int getColorDodge();
+    method public int getDarken();
+    method public int getDifference();
+    method public int getDst();
+    method public int getDstAtop();
+    method public int getDstIn();
+    method public int getDstOut();
+    method public int getDstOver();
+    method public int getExclusion();
+    method public int getHardlight();
+    method public int getHue();
+    method public int getLighten();
+    method public int getLuminosity();
+    method public int getModulate();
+    method public int getMultiply();
+    method public int getOverlay();
+    method public int getPlus();
+    method public int getSaturation();
+    method public int getScreen();
+    method public int getSoftlight();
+    method public int getSrc();
+    method public int getSrcAtop();
+    method public int getSrcIn();
+    method public int getSrcOut();
+    method public int getSrcOver();
+    method public int getXor();
+    property public final int Clear;
+    property public final int Color;
+    property public final int ColorBurn;
+    property public final int ColorDodge;
+    property public final int Darken;
+    property public final int Difference;
+    property public final int Dst;
+    property public final int DstAtop;
+    property public final int DstIn;
+    property public final int DstOut;
+    property public final int DstOver;
+    property public final int Exclusion;
+    property public final int Hardlight;
+    property public final int Hue;
+    property public final int Lighten;
+    property public final int Luminosity;
+    property public final int Modulate;
+    property public final int Multiply;
+    property public final int Overlay;
+    property public final int Plus;
+    property public final int Saturation;
+    property public final int Screen;
+    property public final int Softlight;
+    property public final int Src;
+    property public final int SrcAtop;
+    property public final int SrcIn;
+    property public final int SrcOut;
+    property public final int SrcOver;
+    property public final int Xor;
+  }
+
+  @androidx.compose.runtime.Immutable public final class BlurEffect extends androidx.compose.ui.graphics.RenderEffect {
+    ctor public BlurEffect(androidx.compose.ui.graphics.RenderEffect? renderEffect, float radiusX, float radiusY, int edgeTreatment);
+    method @RequiresApi(android.os.Build.VERSION_CODES.S) protected android.graphics.RenderEffect createRenderEffect();
+  }
+
+  @androidx.compose.runtime.Immutable public abstract sealed class Brush {
+    method public abstract void applyTo(long size, androidx.compose.ui.graphics.Paint p, float alpha);
+    method public long getIntrinsicSize();
+    property public long intrinsicSize;
+    field public static final androidx.compose.ui.graphics.Brush.Companion Companion;
+  }
+
+  public static final class Brush.Companion {
+    method @androidx.compose.runtime.Stable public androidx.compose.ui.graphics.Brush horizontalGradient(java.util.List<androidx.compose.ui.graphics.Color> colors, optional float startX, optional float endX, optional int tileMode);
+    method @androidx.compose.runtime.Stable public androidx.compose.ui.graphics.Brush horizontalGradient(kotlin.Pair<java.lang.Float,androidx.compose.ui.graphics.Color>![] colorStops, optional float startX, optional float endX, optional int tileMode);
+    method @androidx.compose.runtime.Stable public androidx.compose.ui.graphics.Brush linearGradient(java.util.List<androidx.compose.ui.graphics.Color> colors, optional long start, optional long end, optional int tileMode);
+    method @androidx.compose.runtime.Stable public androidx.compose.ui.graphics.Brush linearGradient(kotlin.Pair<java.lang.Float,androidx.compose.ui.graphics.Color>![] colorStops, optional long start, optional long end, optional int tileMode);
+    method @androidx.compose.runtime.Stable public androidx.compose.ui.graphics.Brush radialGradient(java.util.List<androidx.compose.ui.graphics.Color> colors, optional long center, optional float radius, optional int tileMode);
+    method @androidx.compose.runtime.Stable public androidx.compose.ui.graphics.Brush radialGradient(kotlin.Pair<java.lang.Float,androidx.compose.ui.graphics.Color>![] colorStops, optional long center, optional float radius, optional int tileMode);
+    method @androidx.compose.runtime.Stable public androidx.compose.ui.graphics.Brush sweepGradient(java.util.List<androidx.compose.ui.graphics.Color> colors, optional long center);
+    method @androidx.compose.runtime.Stable public androidx.compose.ui.graphics.Brush sweepGradient(kotlin.Pair<java.lang.Float,androidx.compose.ui.graphics.Color>![] colorStops, optional long center);
+    method @androidx.compose.runtime.Stable public androidx.compose.ui.graphics.Brush verticalGradient(java.util.List<androidx.compose.ui.graphics.Color> colors, optional float startY, optional float endY, optional int tileMode);
+    method @androidx.compose.runtime.Stable public androidx.compose.ui.graphics.Brush verticalGradient(kotlin.Pair<java.lang.Float,androidx.compose.ui.graphics.Color>![] colorStops, optional float startY, optional float endY, optional int tileMode);
+  }
+
+  public final class BrushKt {
+    method public static androidx.compose.ui.graphics.ShaderBrush ShaderBrush(android.graphics.Shader shader);
+  }
+
+  @kotlin.jvm.JvmDefaultWithCompatibility public interface Canvas {
+    method public void clipPath(androidx.compose.ui.graphics.Path path, optional int clipOp);
+    method public default void clipRect(androidx.compose.ui.geometry.Rect rect, optional int clipOp);
+    method public void clipRect(float left, float top, float right, float bottom, optional int clipOp);
+    method public void concat(float[] matrix);
+    method public void disableZ();
+    method public default void drawArc(androidx.compose.ui.geometry.Rect rect, float startAngle, float sweepAngle, boolean useCenter, androidx.compose.ui.graphics.Paint paint);
+    method public void drawArc(float left, float top, float right, float bottom, float startAngle, float sweepAngle, boolean useCenter, androidx.compose.ui.graphics.Paint paint);
+    method public default void drawArcRad(androidx.compose.ui.geometry.Rect rect, float startAngleRad, float sweepAngleRad, boolean useCenter, androidx.compose.ui.graphics.Paint paint);
+    method public void drawCircle(long center, float radius, androidx.compose.ui.graphics.Paint paint);
+    method public void drawImage(androidx.compose.ui.graphics.ImageBitmap image, long topLeftOffset, androidx.compose.ui.graphics.Paint paint);
+    method public void drawImageRect(androidx.compose.ui.graphics.ImageBitmap image, optional long srcOffset, optional long srcSize, optional long dstOffset, optional long dstSize, androidx.compose.ui.graphics.Paint paint);
+    method public void drawLine(long p1, long p2, androidx.compose.ui.graphics.Paint paint);
+    method public default void drawOval(androidx.compose.ui.geometry.Rect rect, androidx.compose.ui.graphics.Paint paint);
+    method public void drawOval(float left, float top, float right, float bottom, androidx.compose.ui.graphics.Paint paint);
+    method public void drawPath(androidx.compose.ui.graphics.Path path, androidx.compose.ui.graphics.Paint paint);
+    method public void drawPoints(int pointMode, java.util.List<androidx.compose.ui.geometry.Offset> points, androidx.compose.ui.graphics.Paint paint);
+    method public void drawRawPoints(int pointMode, float[] points, androidx.compose.ui.graphics.Paint paint);
+    method public default void drawRect(androidx.compose.ui.geometry.Rect rect, androidx.compose.ui.graphics.Paint paint);
+    method public void drawRect(float left, float top, float right, float bottom, androidx.compose.ui.graphics.Paint paint);
+    method public void drawRoundRect(float left, float top, float right, float bottom, float radiusX, float radiusY, androidx.compose.ui.graphics.Paint paint);
+    method public void drawVertices(androidx.compose.ui.graphics.Vertices vertices, int blendMode, androidx.compose.ui.graphics.Paint paint);
+    method public void enableZ();
+    method public void restore();
+    method public void rotate(float degrees);
+    method public void save();
+    method public void saveLayer(androidx.compose.ui.geometry.Rect bounds, androidx.compose.ui.graphics.Paint paint);
+    method public void scale(float sx, optional float sy);
+    method public void skew(float sx, float sy);
+    method public default void skewRad(float sxRad, float syRad);
+    method public void translate(float dx, float dy);
+  }
+
+  public final class CanvasHolder {
+    ctor public CanvasHolder();
+    method public inline void drawInto(android.graphics.Canvas targetCanvas, kotlin.jvm.functions.Function1<? super androidx.compose.ui.graphics.Canvas,kotlin.Unit> block);
+    field @kotlin.PublishedApi internal final androidx.compose.ui.graphics.AndroidCanvas androidCanvas;
+  }
+
+  public final class CanvasKt {
+    method public static androidx.compose.ui.graphics.Canvas Canvas(androidx.compose.ui.graphics.ImageBitmap image);
+    method public static void rotate(androidx.compose.ui.graphics.Canvas, float degrees, float pivotX, float pivotY);
+    method public static void rotateRad(androidx.compose.ui.graphics.Canvas, float radians, optional float pivotX, optional float pivotY);
+    method public static void scale(androidx.compose.ui.graphics.Canvas, float sx, optional float sy, float pivotX, float pivotY);
+    method public static inline void withSave(androidx.compose.ui.graphics.Canvas, kotlin.jvm.functions.Function0<kotlin.Unit> block);
+    method public static inline void withSaveLayer(androidx.compose.ui.graphics.Canvas, androidx.compose.ui.geometry.Rect bounds, androidx.compose.ui.graphics.Paint paint, kotlin.jvm.functions.Function0<kotlin.Unit> block);
+  }
+
+  @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class ClipOp {
+    field public static final androidx.compose.ui.graphics.ClipOp.Companion Companion;
+  }
+
+  public static final class ClipOp.Companion {
+    method public int getDifference();
+    method public int getIntersect();
+    property public final int Difference;
+    property public final int Intersect;
+  }
+
+  @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class Color {
+    ctor public Color(long value);
+    method @androidx.compose.runtime.Stable public operator float component1();
+    method @androidx.compose.runtime.Stable public operator float component2();
+    method @androidx.compose.runtime.Stable public operator float component3();
+    method @androidx.compose.runtime.Stable public operator float component4();
+    method @androidx.compose.runtime.Stable public operator androidx.compose.ui.graphics.colorspace.ColorSpace component5();
+    method public long convert(androidx.compose.ui.graphics.colorspace.ColorSpace colorSpace);
+    method @androidx.compose.runtime.Stable public long copy(optional float alpha, optional float red, optional float green, optional float blue);
+    method public float getAlpha();
+    method public float getBlue();
+    method public androidx.compose.ui.graphics.colorspace.ColorSpace getColorSpace();
+    method public float getGreen();
+    method public float getRed();
+    method public long getValue();
+    property @androidx.compose.runtime.Stable public final float alpha;
+    property @androidx.compose.runtime.Stable public final float blue;
+    property @androidx.compose.runtime.Stable public final androidx.compose.ui.graphics.colorspace.ColorSpace colorSpace;
+    property @androidx.compose.runtime.Stable public final float green;
+    property @androidx.compose.runtime.Stable public final float red;
+    property public final long value;
+    field public static final androidx.compose.ui.graphics.Color.Companion Companion;
+  }
+
+  public static final class Color.Companion {
+    method public long getBlack();
+    method public long getBlue();
+    method public long getCyan();
+    method public long getDarkGray();
+    method public long getGray();
+    method public long getGreen();
+    method public long getLightGray();
+    method public long getMagenta();
+    method public long getRed();
+    method public long getTransparent();
+    method public long getUnspecified();
+    method public long getWhite();
+    method public long getYellow();
+    method public long hsl(float hue, float saturation, float lightness, optional float alpha, optional androidx.compose.ui.graphics.colorspace.Rgb colorSpace);
+    method public long hsv(float hue, float saturation, float value, optional float alpha, optional androidx.compose.ui.graphics.colorspace.Rgb colorSpace);
+    property public final long Black;
+    property public final long Blue;
+    property public final long Cyan;
+    property public final long DarkGray;
+    property public final long Gray;
+    property public final long Green;
+    property public final long LightGray;
+    property public final long Magenta;
+    property public final long Red;
+    property public final long Transparent;
+    property public final long Unspecified;
+    property public final long White;
+    property public final long Yellow;
+  }
+
+  @androidx.compose.runtime.Immutable public final class ColorFilter {
+    field public static final androidx.compose.ui.graphics.ColorFilter.Companion Companion;
+  }
+
+  public static final class ColorFilter.Companion {
+    method @androidx.compose.runtime.Stable public androidx.compose.ui.graphics.ColorFilter colorMatrix(float[] colorMatrix);
+    method @androidx.compose.runtime.Stable public androidx.compose.ui.graphics.ColorFilter lighting(long multiply, long add);
+    method @androidx.compose.runtime.Stable public androidx.compose.ui.graphics.ColorFilter tint(long color, optional int blendMode);
+  }
+
+  public final class ColorKt {
+    method @androidx.compose.runtime.Stable public static long Color(float red, float green, float blue, optional float alpha, optional androidx.compose.ui.graphics.colorspace.ColorSpace colorSpace);
+    method @androidx.compose.runtime.Stable public static long Color(int color);
+    method @androidx.compose.runtime.Stable public static long Color(int red, int green, int blue, optional int alpha);
+    method @androidx.compose.runtime.Stable public static long Color(long color);
+    method @androidx.compose.runtime.Stable public static long compositeOver(long, long background);
+    method public static inline boolean isSpecified(long);
+    method public static inline boolean isUnspecified(long);
+    method @androidx.compose.runtime.Stable public static long lerp(long start, long stop, float fraction);
+    method @androidx.compose.runtime.Stable public static float luminance(long);
+    method public static inline long takeOrElse(long, kotlin.jvm.functions.Function0<androidx.compose.ui.graphics.Color> block);
+    method @androidx.compose.runtime.Stable public static int toArgb(long);
+  }
+
+  @kotlin.jvm.JvmInline public final value class ColorMatrix {
+    ctor public ColorMatrix(optional float[] values);
+    method public void convertRgbToYuv();
+    method public void convertYuvToRgb();
+    method public inline operator float get(int row, int column);
+    method public float[] getValues();
+    method public void reset();
+    method public void set(float[] src);
+    method public inline operator void set(int row, int column, float v);
+    method public void setToRotateBlue(float degrees);
+    method public void setToRotateGreen(float degrees);
+    method public void setToRotateRed(float degrees);
+    method public void setToSaturation(float sat);
+    method public void setToScale(float redScale, float greenScale, float blueScale, float alphaScale);
+    method public operator void timesAssign(float[] colorMatrix);
+    property public final float[] values;
+  }
+
+  public fun interface ColorProducer {
+    method public operator long invoke();
+  }
+
+  public final class DegreesKt {
+    method @kotlin.PublishedApi internal static float degrees(float radians);
+  }
+
+  @kotlin.RequiresOptIn(message="This API is experimental and is likely to change in the future.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface ExperimentalGraphicsApi {
+  }
+
+  @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class FilterQuality {
+    method public int getValue();
+    property public final int value;
+    field public static final androidx.compose.ui.graphics.FilterQuality.Companion Companion;
+  }
+
+  public static final class FilterQuality.Companion {
+    method public int getHigh();
+    method public int getLow();
+    method public int getMedium();
+    method public int getNone();
+    property public final int High;
+    property public final int Low;
+    property public final int Medium;
+    property public final int None;
+  }
+
+  @kotlin.jvm.JvmDefaultWithCompatibility public interface ImageBitmap {
+    method public androidx.compose.ui.graphics.colorspace.ColorSpace getColorSpace();
+    method public int getConfig();
+    method public boolean getHasAlpha();
+    method public int getHeight();
+    method public int getWidth();
+    method public void prepareToDraw();
+    method public void readPixels(int[] buffer, optional int startX, optional int startY, optional int width, optional int height, optional int bufferOffset, optional int stride);
+    property public abstract androidx.compose.ui.graphics.colorspace.ColorSpace colorSpace;
+    property public abstract int config;
+    property public abstract boolean hasAlpha;
+    property public abstract int height;
+    property public abstract int width;
+    field public static final androidx.compose.ui.graphics.ImageBitmap.Companion Companion;
+  }
+
+  public static final class ImageBitmap.Companion {
+  }
+
+  @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class ImageBitmapConfig {
+    method public int getValue();
+    property public final int value;
+    field public static final androidx.compose.ui.graphics.ImageBitmapConfig.Companion Companion;
+  }
+
+  public static final class ImageBitmapConfig.Companion {
+    method public int getAlpha8();
+    method public int getArgb8888();
+    method public int getF16();
+    method public int getGpu();
+    method public int getRgb565();
+    property public final int Alpha8;
+    property public final int Argb8888;
+    property public final int F16;
+    property public final int Gpu;
+    property public final int Rgb565;
+  }
+
+  public final class ImageBitmapKt {
+    method public static androidx.compose.ui.graphics.ImageBitmap ImageBitmap(int width, int height, optional int config, optional boolean hasAlpha, optional androidx.compose.ui.graphics.colorspace.ColorSpace colorSpace);
+    method public static androidx.compose.ui.graphics.PixelMap toPixelMap(androidx.compose.ui.graphics.ImageBitmap, optional int startX, optional int startY, optional int width, optional int height, optional int[] buffer, optional int bufferOffset, optional int stride);
+  }
+
+  @androidx.compose.runtime.Immutable public final class LinearGradient extends androidx.compose.ui.graphics.ShaderBrush {
+    method public android.graphics.Shader createShader(long size);
+    property public long intrinsicSize;
+  }
+
+  @kotlin.jvm.JvmInline public final value class Matrix {
+    ctor public Matrix(optional float[] values);
+    method public inline operator float get(int row, int column);
+    method public float[] getValues();
+    method public void invert();
+    method public void map(androidx.compose.ui.geometry.MutableRect rect);
+    method public androidx.compose.ui.geometry.Rect map(androidx.compose.ui.geometry.Rect rect);
+    method public long map(long point);
+    method public void reset();
+    method public void rotateX(float degrees);
+    method public void rotateY(float degrees);
+    method public void rotateZ(float degrees);
+    method public void scale(optional float x, optional float y, optional float z);
+    method public inline operator void set(int row, int column, float v);
+    method public void setFrom(float[] matrix);
+    method public operator void timesAssign(float[] m);
+    method public void translate(optional float x, optional float y, optional float z);
+    property public final float[] values;
+    field public static final androidx.compose.ui.graphics.Matrix.Companion Companion;
+    field public static final int Perspective0 = 3; // 0x3
+    field public static final int Perspective1 = 7; // 0x7
+    field public static final int Perspective2 = 15; // 0xf
+    field public static final int ScaleX = 0; // 0x0
+    field public static final int ScaleY = 5; // 0x5
+    field public static final int ScaleZ = 10; // 0xa
+    field public static final int SkewX = 4; // 0x4
+    field public static final int SkewY = 1; // 0x1
+    field public static final int TranslateX = 12; // 0xc
+    field public static final int TranslateY = 13; // 0xd
+    field public static final int TranslateZ = 14; // 0xe
+  }
+
+  public static final class Matrix.Companion {
+  }
+
+  public final class MatrixKt {
+    method public static boolean isIdentity(float[]);
+  }
+
+  @androidx.compose.runtime.Immutable public final class OffsetEffect extends androidx.compose.ui.graphics.RenderEffect {
+    ctor public OffsetEffect(androidx.compose.ui.graphics.RenderEffect? renderEffect, long offset);
+    method @RequiresApi(android.os.Build.VERSION_CODES.S) protected android.graphics.RenderEffect createRenderEffect();
+  }
+
+  public abstract sealed class Outline {
+    method public abstract androidx.compose.ui.geometry.Rect getBounds();
+    property public abstract androidx.compose.ui.geometry.Rect bounds;
+  }
+
+  public static final class Outline.Generic extends androidx.compose.ui.graphics.Outline {
+    ctor public Outline.Generic(androidx.compose.ui.graphics.Path path);
+    method public androidx.compose.ui.geometry.Rect getBounds();
+    method public androidx.compose.ui.graphics.Path getPath();
+    property public androidx.compose.ui.geometry.Rect bounds;
+    property public final androidx.compose.ui.graphics.Path path;
+  }
+
+  @androidx.compose.runtime.Immutable public static final class Outline.Rectangle extends androidx.compose.ui.graphics.Outline {
+    ctor public Outline.Rectangle(androidx.compose.ui.geometry.Rect rect);
+    method public androidx.compose.ui.geometry.Rect getBounds();
+    method public androidx.compose.ui.geometry.Rect getRect();
+    property public androidx.compose.ui.geometry.Rect bounds;
+    property public final androidx.compose.ui.geometry.Rect rect;
+  }
+
+  @androidx.compose.runtime.Immutable public static final class Outline.Rounded extends androidx.compose.ui.graphics.Outline {
+    ctor public Outline.Rounded(androidx.compose.ui.geometry.RoundRect roundRect);
+    method public androidx.compose.ui.geometry.Rect getBounds();
+    method public androidx.compose.ui.geometry.RoundRect getRoundRect();
+    property public androidx.compose.ui.geometry.Rect bounds;
+    property public final androidx.compose.ui.geometry.RoundRect roundRect;
+  }
+
+  public final class OutlineKt {
+    method public static void addOutline(androidx.compose.ui.graphics.Path, androidx.compose.ui.graphics.Outline outline);
+    method public static void drawOutline(androidx.compose.ui.graphics.Canvas, androidx.compose.ui.graphics.Outline outline, androidx.compose.ui.graphics.Paint paint);
+    method public static void drawOutline(androidx.compose.ui.graphics.drawscope.DrawScope, androidx.compose.ui.graphics.Outline outline, androidx.compose.ui.graphics.Brush brush, optional float alpha, optional androidx.compose.ui.graphics.drawscope.DrawStyle style, optional androidx.compose.ui.graphics.ColorFilter? colorFilter, optional int blendMode);
+    method public static void drawOutline(androidx.compose.ui.graphics.drawscope.DrawScope, androidx.compose.ui.graphics.Outline outline, long color, optional float alpha, optional androidx.compose.ui.graphics.drawscope.DrawStyle style, optional androidx.compose.ui.graphics.ColorFilter? colorFilter, optional int blendMode);
+  }
+
+  public interface Paint {
+    method public android.graphics.Paint asFrameworkPaint();
+    method public float getAlpha();
+    method public int getBlendMode();
+    method public long getColor();
+    method public androidx.compose.ui.graphics.ColorFilter? getColorFilter();
+    method public int getFilterQuality();
+    method public androidx.compose.ui.graphics.PathEffect? getPathEffect();
+    method public android.graphics.Shader? getShader();
+    method public int getStrokeCap();
+    method public int getStrokeJoin();
+    method public float getStrokeMiterLimit();
+    method public float getStrokeWidth();
+    method public int getStyle();
+    method public boolean isAntiAlias();
+    method public void setAlpha(float);
+    method public void setAntiAlias(boolean);
+    method public void setBlendMode(int);
+    method public void setColor(long);
+    method public void setColorFilter(androidx.compose.ui.graphics.ColorFilter?);
+    method public void setFilterQuality(int);
+    method public void setPathEffect(androidx.compose.ui.graphics.PathEffect?);
+    method public void setShader(android.graphics.Shader?);
+    method public void setStrokeCap(int);
+    method public void setStrokeJoin(int);
+    method public void setStrokeMiterLimit(float);
+    method public void setStrokeWidth(float);
+    method public void setStyle(int);
+    property public abstract float alpha;
+    property public abstract int blendMode;
+    property public abstract long color;
+    property public abstract androidx.compose.ui.graphics.ColorFilter? colorFilter;
+    property public abstract int filterQuality;
+    property public abstract boolean isAntiAlias;
+    property public abstract androidx.compose.ui.graphics.PathEffect? pathEffect;
+    property public abstract android.graphics.Shader? shader;
+    property public abstract int strokeCap;
+    property public abstract int strokeJoin;
+    property public abstract float strokeMiterLimit;
+    property public abstract float strokeWidth;
+    property public abstract int style;
+  }
+
+  public final class PaintKt {
+    method public static androidx.compose.ui.graphics.Paint Paint();
+    field public static final float DefaultAlpha = 1.0f;
+  }
+
+  @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class PaintingStyle {
+    field public static final androidx.compose.ui.graphics.PaintingStyle.Companion Companion;
+  }
+
+  public static final class PaintingStyle.Companion {
+    method public int getFill();
+    method public int getStroke();
+    property public final int Fill;
+    property public final int Stroke;
+  }
+
+  @kotlin.jvm.JvmDefaultWithCompatibility public interface Path {
+    method public void addArc(androidx.compose.ui.geometry.Rect oval, float startAngleDegrees, float sweepAngleDegrees);
+    method public void addArcRad(androidx.compose.ui.geometry.Rect oval, float startAngleRadians, float sweepAngleRadians);
+    method public void addOval(androidx.compose.ui.geometry.Rect oval);
+    method public void addPath(androidx.compose.ui.graphics.Path path, optional long offset);
+    method public void addRect(androidx.compose.ui.geometry.Rect rect);
+    method public void addRoundRect(androidx.compose.ui.geometry.RoundRect roundRect);
+    method public void arcTo(androidx.compose.ui.geometry.Rect rect, float startAngleDegrees, float sweepAngleDegrees, boolean forceMoveTo);
+    method public default void arcToRad(androidx.compose.ui.geometry.Rect rect, float startAngleRadians, float sweepAngleRadians, boolean forceMoveTo);
+    method public void close();
+    method public void cubicTo(float x1, float y1, float x2, float y2, float x3, float y3);
+    method public androidx.compose.ui.geometry.Rect getBounds();
+    method public int getFillType();
+    method public boolean isConvex();
+    method public boolean isEmpty();
+    method public void lineTo(float x, float y);
+    method public void moveTo(float x, float y);
+    method public boolean op(androidx.compose.ui.graphics.Path path1, androidx.compose.ui.graphics.Path path2, int operation);
+    method public void quadraticBezierTo(float x1, float y1, float x2, float y2);
+    method public void relativeCubicTo(float dx1, float dy1, float dx2, float dy2, float dx3, float dy3);
+    method public void relativeLineTo(float dx, float dy);
+    method public void relativeMoveTo(float dx, float dy);
+    method public void relativeQuadraticBezierTo(float dx1, float dy1, float dx2, float dy2);
+    method public void reset();
+    method public default void rewind();
+    method public void setFillType(int);
+    method public default void transform(float[] matrix);
+    method public void translate(long offset);
+    property public abstract int fillType;
+    property public abstract boolean isConvex;
+    property public abstract boolean isEmpty;
+    field public static final androidx.compose.ui.graphics.Path.Companion Companion;
+  }
+
+  public static final class Path.Companion {
+    method public androidx.compose.ui.graphics.Path combine(int operation, androidx.compose.ui.graphics.Path path1, androidx.compose.ui.graphics.Path path2);
+  }
+
+  public interface PathEffect {
+    field public static final androidx.compose.ui.graphics.PathEffect.Companion Companion;
+  }
+
+  public static final class PathEffect.Companion {
+    method public androidx.compose.ui.graphics.PathEffect chainPathEffect(androidx.compose.ui.graphics.PathEffect outer, androidx.compose.ui.graphics.PathEffect inner);
+    method public androidx.compose.ui.graphics.PathEffect cornerPathEffect(float radius);
+    method public androidx.compose.ui.graphics.PathEffect dashPathEffect(float[] intervals, optional float phase);
+    method public androidx.compose.ui.graphics.PathEffect stampedPathEffect(androidx.compose.ui.graphics.Path shape, float advance, float phase, int style);
+  }
+
+  @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class PathFillType {
+    field public static final androidx.compose.ui.graphics.PathFillType.Companion Companion;
+  }
+
+  public static final class PathFillType.Companion {
+    method public int getEvenOdd();
+    method public int getNonZero();
+    property public final int EvenOdd;
+    property public final int NonZero;
+  }
+
+  @kotlin.jvm.JvmDefaultWithCompatibility public interface PathMeasure {
+    method public float getLength();
+    method public long getPosition(float distance);
+    method public boolean getSegment(float startDistance, float stopDistance, androidx.compose.ui.graphics.Path destination, optional boolean startWithMoveTo);
+    method public long getTangent(float distance);
+    method public void setPath(androidx.compose.ui.graphics.Path? path, boolean forceClosed);
+    property public abstract float length;
+  }
+
+  @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class PathOperation {
+    field public static final androidx.compose.ui.graphics.PathOperation.Companion Companion;
+  }
+
+  public static final class PathOperation.Companion {
+    method public int getDifference();
+    method public int getIntersect();
+    method public int getReverseDifference();
+    method public int getUnion();
+    method public int getXor();
+    property public final int Difference;
+    property public final int Intersect;
+    property public final int ReverseDifference;
+    property public final int Union;
+    property public final int Xor;
+  }
+
+  public final class PathOperationKt {
+    method @Deprecated public static int getDifference(androidx.compose.ui.graphics.PathOperation.Companion);
+    method @Deprecated public static int getIntersect(androidx.compose.ui.graphics.PathOperation.Companion);
+    method @Deprecated public static int getReverseDifference(androidx.compose.ui.graphics.PathOperation.Companion);
+    method @Deprecated public static int getUnion(androidx.compose.ui.graphics.PathOperation.Companion);
+    method @Deprecated public static int getXor(androidx.compose.ui.graphics.PathOperation.Companion);
+  }
+
+  public final class PixelMap {
+    ctor public PixelMap(int[] buffer, int width, int height, int bufferOffset, int stride);
+    method public operator long get(int x, int y);
+    method public int[] getBuffer();
+    method public int getBufferOffset();
+    method public int getHeight();
+    method public int getStride();
+    method public int getWidth();
+    property public final int[] buffer;
+    property public final int bufferOffset;
+    property public final int height;
+    property public final int stride;
+    property public final int width;
+  }
+
+  @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class PointMode {
+    field public static final androidx.compose.ui.graphics.PointMode.Companion Companion;
+  }
+
+  public static final class PointMode.Companion {
+    method public int getLines();
+    method public int getPoints();
+    method public int getPolygon();
+    property public final int Lines;
+    property public final int Points;
+    property public final int Polygon;
+  }
+
+  @androidx.compose.runtime.Immutable public final class RadialGradient extends androidx.compose.ui.graphics.ShaderBrush {
+    method public android.graphics.Shader createShader(long size);
+    property public long intrinsicSize;
+  }
+
+  public final class RectHelper_androidKt {
+    method @Deprecated public static android.graphics.Rect toAndroidRect(androidx.compose.ui.geometry.Rect);
+    method public static android.graphics.Rect toAndroidRect(androidx.compose.ui.unit.IntRect);
+    method public static android.graphics.RectF toAndroidRectF(androidx.compose.ui.geometry.Rect);
+    method public static androidx.compose.ui.unit.IntRect toComposeIntRect(android.graphics.Rect);
+    method public static androidx.compose.ui.geometry.Rect toComposeRect(android.graphics.Rect);
+  }
+
+  public final class RectangleShapeKt {
+    method public static androidx.compose.ui.graphics.Shape getRectangleShape();
+    property public static final androidx.compose.ui.graphics.Shape RectangleShape;
+  }
+
+  @androidx.compose.runtime.Immutable public abstract sealed class RenderEffect {
+    method @RequiresApi(android.os.Build.VERSION_CODES.S) public final android.graphics.RenderEffect asAndroidRenderEffect();
+    method @RequiresApi(android.os.Build.VERSION_CODES.S) protected abstract android.graphics.RenderEffect createRenderEffect();
+    method public boolean isSupported();
+  }
+
+  public final class RenderEffectKt {
+    method @androidx.compose.runtime.Stable public static androidx.compose.ui.graphics.BlurEffect BlurEffect(float radiusX, float radiusY, optional int edgeTreatment);
+    method @androidx.compose.runtime.Stable public static androidx.compose.ui.graphics.OffsetEffect OffsetEffect(float offsetX, float offsetY);
+  }
+
+  @androidx.compose.runtime.Immutable public abstract class ShaderBrush extends androidx.compose.ui.graphics.Brush {
+    ctor public ShaderBrush();
+    method public final void applyTo(long size, androidx.compose.ui.graphics.Paint p, float alpha);
+    method public abstract android.graphics.Shader createShader(long size);
+  }
+
+  public final class ShaderKt {
+    method public static android.graphics.Shader ImageShader(androidx.compose.ui.graphics.ImageBitmap image, optional int tileModeX, optional int tileModeY);
+    method public static android.graphics.Shader LinearGradientShader(long from, long to, java.util.List<androidx.compose.ui.graphics.Color> colors, optional java.util.List<java.lang.Float>? colorStops, optional int tileMode);
+    method public static android.graphics.Shader RadialGradientShader(long center, float radius, java.util.List<androidx.compose.ui.graphics.Color> colors, optional java.util.List<java.lang.Float>? colorStops, optional int tileMode);
+    method public static android.graphics.Shader SweepGradientShader(long center, java.util.List<androidx.compose.ui.graphics.Color> colors, optional java.util.List<java.lang.Float>? colorStops);
+  }
+
+  @androidx.compose.runtime.Immutable public final class Shadow {
+    ctor public Shadow(optional @androidx.compose.runtime.Stable long color, optional @androidx.compose.runtime.Stable long offset, optional @androidx.compose.runtime.Stable float blurRadius);
+    method public androidx.compose.ui.graphics.Shadow copy(optional long color, optional long offset, optional float blurRadius);
+    method public float getBlurRadius();
+    method public long getColor();
+    method public long getOffset();
+    property public final float blurRadius;
+    property public final long color;
+    property public final long offset;
+    field public static final androidx.compose.ui.graphics.Shadow.Companion Companion;
+  }
+
+  public static final class Shadow.Companion {
+    method public androidx.compose.ui.graphics.Shadow getNone();
+    property public final androidx.compose.ui.graphics.Shadow None;
+  }
+
+  public final class ShadowKt {
+    method @androidx.compose.runtime.Stable public static androidx.compose.ui.graphics.Shadow lerp(androidx.compose.ui.graphics.Shadow start, androidx.compose.ui.graphics.Shadow stop, float fraction);
+  }
+
+  @androidx.compose.runtime.Immutable public interface Shape {
+    method public androidx.compose.ui.graphics.Outline createOutline(long size, androidx.compose.ui.unit.LayoutDirection layoutDirection, androidx.compose.ui.unit.Density density);
+  }
+
+  @androidx.compose.runtime.Immutable public final class SolidColor extends androidx.compose.ui.graphics.Brush {
+    ctor public SolidColor(long value);
+    method public void applyTo(long size, androidx.compose.ui.graphics.Paint p, float alpha);
+    method public long getValue();
+    property public final long value;
+  }
+
+  @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class StampedPathEffectStyle {
+    field public static final androidx.compose.ui.graphics.StampedPathEffectStyle.Companion Companion;
+  }
+
+  public static final class StampedPathEffectStyle.Companion {
+    method public int getMorph();
+    method public int getRotate();
+    method public int getTranslate();
+    property public final int Morph;
+    property public final int Rotate;
+    property public final int Translate;
+  }
+
+  @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class StrokeCap {
+    field public static final androidx.compose.ui.graphics.StrokeCap.Companion Companion;
+  }
+
+  public static final class StrokeCap.Companion {
+    method public int getButt();
+    method public int getRound();
+    method public int getSquare();
+    property public final int Butt;
+    property public final int Round;
+    property public final int Square;
+  }
+
+  @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class StrokeJoin {
+    field public static final androidx.compose.ui.graphics.StrokeJoin.Companion Companion;
+  }
+
+  public static final class StrokeJoin.Companion {
+    method public int getBevel();
+    method public int getMiter();
+    method public int getRound();
+    property public final int Bevel;
+    property public final int Miter;
+    property public final int Round;
+  }
+
+  @androidx.compose.runtime.Immutable public final class SweepGradient extends androidx.compose.ui.graphics.ShaderBrush {
+    method public android.graphics.Shader createShader(long size);
+  }
+
+  @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class TileMode {
+    field public static final androidx.compose.ui.graphics.TileMode.Companion Companion;
+  }
+
+  public static final class TileMode.Companion {
+    method public int getClamp();
+    method public int getDecal();
+    method public int getMirror();
+    method public int getRepeated();
+    property public final int Clamp;
+    property public final int Decal;
+    property public final int Mirror;
+    property public final int Repeated;
+  }
+
+  @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class VertexMode {
+    field public static final androidx.compose.ui.graphics.VertexMode.Companion Companion;
+  }
+
+  public static final class VertexMode.Companion {
+    method public int getTriangleFan();
+    method public int getTriangleStrip();
+    method public int getTriangles();
+    property public final int TriangleFan;
+    property public final int TriangleStrip;
+    property public final int Triangles;
+  }
+
+  public final class Vertices {
+    ctor public Vertices(int vertexMode, java.util.List<androidx.compose.ui.geometry.Offset> positions, java.util.List<androidx.compose.ui.geometry.Offset> textureCoordinates, java.util.List<androidx.compose.ui.graphics.Color> colors, java.util.List<java.lang.Integer> indices);
+    method public int[] getColors();
+    method public short[] getIndices();
+    method public float[] getPositions();
+    method public float[] getTextureCoordinates();
+    method public int getVertexMode();
+    property public final int[] colors;
+    property public final short[] indices;
+    property public final float[] positions;
+    property public final float[] textureCoordinates;
+    property public final int vertexMode;
+  }
+
+}
+
+package androidx.compose.ui.graphics.colorspace {
+
+  public abstract class Adaptation {
+    field public static final androidx.compose.ui.graphics.colorspace.Adaptation.Companion Companion;
+  }
+
+  public static final class Adaptation.Companion {
+    method public androidx.compose.ui.graphics.colorspace.Adaptation getBradford();
+    method public androidx.compose.ui.graphics.colorspace.Adaptation getCiecat02();
+    method public androidx.compose.ui.graphics.colorspace.Adaptation getVonKries();
+    property public final androidx.compose.ui.graphics.colorspace.Adaptation Bradford;
+    property public final androidx.compose.ui.graphics.colorspace.Adaptation Ciecat02;
+    property public final androidx.compose.ui.graphics.colorspace.Adaptation VonKries;
+  }
+
+  @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class ColorModel {
+    method public int getComponentCount();
+    property @androidx.compose.runtime.Stable public final int componentCount;
+    field public static final androidx.compose.ui.graphics.colorspace.ColorModel.Companion Companion;
+  }
+
+  public static final class ColorModel.Companion {
+    method public long getCmyk();
+    method public long getLab();
+    method public long getRgb();
+    method public long getXyz();
+    property public final long Cmyk;
+    property public final long Lab;
+    property public final long Rgb;
+    property public final long Xyz;
+  }
+
+  public abstract class ColorSpace {
+    ctor public ColorSpace(String name, long model);
+    method public final float[] fromXyz(float x, float y, float z);
+    method public abstract float[] fromXyz(float[] v);
+    method public final int getComponentCount();
+    method public abstract float getMaxValue(int component);
+    method public abstract float getMinValue(int component);
+    method public final long getModel();
+    method public final String getName();
+    method public boolean isSrgb();
+    method public abstract boolean isWideGamut();
+    method public final float[] toXyz(float r, float g, float b);
+    method public abstract float[] toXyz(float[] v);
+    property public final int componentCount;
+    property public boolean isSrgb;
+    property public abstract boolean isWideGamut;
+    property public final long model;
+    property public final String name;
+  }
+
+  public final class ColorSpaceKt {
+    method public static androidx.compose.ui.graphics.colorspace.ColorSpace adapt(androidx.compose.ui.graphics.colorspace.ColorSpace, androidx.compose.ui.graphics.colorspace.WhitePoint whitePoint);
+    method public static androidx.compose.ui.graphics.colorspace.ColorSpace adapt(androidx.compose.ui.graphics.colorspace.ColorSpace, androidx.compose.ui.graphics.colorspace.WhitePoint whitePoint, optional androidx.compose.ui.graphics.colorspace.Adaptation adaptation);
+    method public static androidx.compose.ui.graphics.colorspace.Connector connect(androidx.compose.ui.graphics.colorspace.ColorSpace, optional androidx.compose.ui.graphics.colorspace.ColorSpace destination, optional int intent);
+  }
+
+  public final class ColorSpaces {
+    method public androidx.compose.ui.graphics.colorspace.Rgb getAces();
+    method public androidx.compose.ui.graphics.colorspace.Rgb getAcescg();
+    method public androidx.compose.ui.graphics.colorspace.Rgb getAdobeRgb();
+    method public androidx.compose.ui.graphics.colorspace.Rgb getBt2020();
+    method public androidx.compose.ui.graphics.colorspace.Rgb getBt709();
+    method public androidx.compose.ui.graphics.colorspace.ColorSpace getCieLab();
+    method public androidx.compose.ui.graphics.colorspace.ColorSpace getCieXyz();
+    method public androidx.compose.ui.graphics.colorspace.Rgb getDciP3();
+    method public androidx.compose.ui.graphics.colorspace.Rgb getDisplayP3();
+    method public androidx.compose.ui.graphics.colorspace.Rgb getExtendedSrgb();
+    method public androidx.compose.ui.graphics.colorspace.Rgb getLinearExtendedSrgb();
+    method public androidx.compose.ui.graphics.colorspace.Rgb getLinearSrgb();
+    method public androidx.compose.ui.graphics.colorspace.Rgb getNtsc1953();
+    method public androidx.compose.ui.graphics.colorspace.ColorSpace getOklab();
+    method public androidx.compose.ui.graphics.colorspace.Rgb getProPhotoRgb();
+    method public androidx.compose.ui.graphics.colorspace.Rgb getSmpteC();
+    method public androidx.compose.ui.graphics.colorspace.Rgb getSrgb();
+    method public androidx.compose.ui.graphics.colorspace.ColorSpace? match(float[] toXYZD50, androidx.compose.ui.graphics.colorspace.TransferParameters function);
+    property public final androidx.compose.ui.graphics.colorspace.Rgb Aces;
+    property public final androidx.compose.ui.graphics.colorspace.Rgb Acescg;
+    property public final androidx.compose.ui.graphics.colorspace.Rgb AdobeRgb;
+    property public final androidx.compose.ui.graphics.colorspace.Rgb Bt2020;
+    property public final androidx.compose.ui.graphics.colorspace.Rgb Bt709;
+    property public final androidx.compose.ui.graphics.colorspace.ColorSpace CieLab;
+    property public final androidx.compose.ui.graphics.colorspace.ColorSpace CieXyz;
+    property public final androidx.compose.ui.graphics.colorspace.Rgb DciP3;
+    property public final androidx.compose.ui.graphics.colorspace.Rgb DisplayP3;
+    property public final androidx.compose.ui.graphics.colorspace.Rgb ExtendedSrgb;
+    property public final androidx.compose.ui.graphics.colorspace.Rgb LinearExtendedSrgb;
+    property public final androidx.compose.ui.graphics.colorspace.Rgb LinearSrgb;
+    property public final androidx.compose.ui.graphics.colorspace.Rgb Ntsc1953;
+    property public final androidx.compose.ui.graphics.colorspace.ColorSpace Oklab;
+    property public final androidx.compose.ui.graphics.colorspace.Rgb ProPhotoRgb;
+    property public final androidx.compose.ui.graphics.colorspace.Rgb SmpteC;
+    property public final androidx.compose.ui.graphics.colorspace.Rgb Srgb;
+    field public static final androidx.compose.ui.graphics.colorspace.ColorSpaces INSTANCE;
+  }
+
+  public class Connector {
+    method public final androidx.compose.ui.graphics.colorspace.ColorSpace getDestination();
+    method public final int getRenderIntent();
+    method public final androidx.compose.ui.graphics.colorspace.ColorSpace getSource();
+    method public final float[] transform(float r, float g, float b);
+    method public float[] transform(float[] v);
+    property public final androidx.compose.ui.graphics.colorspace.ColorSpace destination;
+    property public final int renderIntent;
+    property public final androidx.compose.ui.graphics.colorspace.ColorSpace source;
+  }
+
+  public final class Illuminant {
+    method public androidx.compose.ui.graphics.colorspace.WhitePoint getA();
+    method public androidx.compose.ui.graphics.colorspace.WhitePoint getB();
+    method public androidx.compose.ui.graphics.colorspace.WhitePoint getC();
+    method public androidx.compose.ui.graphics.colorspace.WhitePoint getD50();
+    method public androidx.compose.ui.graphics.colorspace.WhitePoint getD55();
+    method public androidx.compose.ui.graphics.colorspace.WhitePoint getD60();
+    method public androidx.compose.ui.graphics.colorspace.WhitePoint getD65();
+    method public androidx.compose.ui.graphics.colorspace.WhitePoint getD75();
+    method public androidx.compose.ui.graphics.colorspace.WhitePoint getE();
+    property public final androidx.compose.ui.graphics.colorspace.WhitePoint A;
+    property public final androidx.compose.ui.graphics.colorspace.WhitePoint B;
+    property public final androidx.compose.ui.graphics.colorspace.WhitePoint C;
+    property public final androidx.compose.ui.graphics.colorspace.WhitePoint D50;
+    property public final androidx.compose.ui.graphics.colorspace.WhitePoint D55;
+    property public final androidx.compose.ui.graphics.colorspace.WhitePoint D60;
+    property public final androidx.compose.ui.graphics.colorspace.WhitePoint D65;
+    property public final androidx.compose.ui.graphics.colorspace.WhitePoint D75;
+    property public final androidx.compose.ui.graphics.colorspace.WhitePoint E;
+    field public static final androidx.compose.ui.graphics.colorspace.Illuminant INSTANCE;
+  }
+
+  @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class RenderIntent {
+    field public static final androidx.compose.ui.graphics.colorspace.RenderIntent.Companion Companion;
+  }
+
+  public static final class RenderIntent.Companion {
+    method public int getAbsolute();
+    method public int getPerceptual();
+    method public int getRelative();
+    method public int getSaturation();
+    property public final int Absolute;
+    property public final int Perceptual;
+    property public final int Relative;
+    property public final int Saturation;
+  }
+
+  public final class Rgb extends androidx.compose.ui.graphics.colorspace.ColorSpace {
+    ctor public Rgb(String name, float[] toXYZ, androidx.compose.ui.graphics.colorspace.TransferParameters function);
+    ctor public Rgb(String name, float[] primaries, androidx.compose.ui.graphics.colorspace.WhitePoint whitePoint, androidx.compose.ui.graphics.colorspace.TransferParameters function);
+    ctor public Rgb(String name, float[] primaries, androidx.compose.ui.graphics.colorspace.WhitePoint whitePoint, double gamma);
+    ctor public Rgb(String name, float[] primaries, androidx.compose.ui.graphics.colorspace.WhitePoint whitePoint, kotlin.jvm.functions.Function1<? super java.lang.Double,java.lang.Double> oetf, kotlin.jvm.functions.Function1<? super java.lang.Double,java.lang.Double> eotf, float min, float max);
+    ctor public Rgb(String name, float[] toXYZ, double gamma);
+    ctor public Rgb(String name, float[] toXYZ, kotlin.jvm.functions.Function1<? super java.lang.Double,java.lang.Double> oetf, kotlin.jvm.functions.Function1<? super java.lang.Double,java.lang.Double> eotf);
+    method public float[] fromLinear(float r, float g, float b);
+    method public float[] fromLinear(float[] v);
+    method public float[] fromXyz(float[] v);
+    method public kotlin.jvm.functions.Function1<java.lang.Double,java.lang.Double> getEotf();
+    method public float[] getInverseTransform();
+    method public float[] getInverseTransform(float[] inverseTransform);
+    method public float getMaxValue(int component);
+    method public float getMinValue(int component);
+    method public kotlin.jvm.functions.Function1<java.lang.Double,java.lang.Double> getOetf();
+    method public float[] getPrimaries();
+    method public float[] getPrimaries(float[] primaries);
+    method public androidx.compose.ui.graphics.colorspace.TransferParameters? getTransferParameters();
+    method public float[] getTransform();
+    method public float[] getTransform(float[] transform);
+    method public androidx.compose.ui.graphics.colorspace.WhitePoint getWhitePoint();
+    method public boolean isWideGamut();
+    method public float[] toLinear(float r, float g, float b);
+    method public float[] toLinear(float[] v);
+    method public float[] toXyz(float[] v);
+    property public final kotlin.jvm.functions.Function1<java.lang.Double,java.lang.Double> eotf;
+    property public boolean isSrgb;
+    property public boolean isWideGamut;
+    property public final kotlin.jvm.functions.Function1<java.lang.Double,java.lang.Double> oetf;
+    property public final androidx.compose.ui.graphics.colorspace.TransferParameters? transferParameters;
+    property public final androidx.compose.ui.graphics.colorspace.WhitePoint whitePoint;
+  }
+
+  public final class TransferParameters {
+    ctor public TransferParameters(double gamma, double a, double b, double c, double d, optional double e, optional double f);
+    method public double component1();
+    method public double component2();
+    method public double component3();
+    method public double component4();
+    method public double component5();
+    method public double component6();
+    method public double component7();
+    method public androidx.compose.ui.graphics.colorspace.TransferParameters copy(double gamma, double a, double b, double c, double d, double e, double f);
+    method public double getA();
+    method public double getB();
+    method public double getC();
+    method public double getD();
+    method public double getE();
+    method public double getF();
+    method public double getGamma();
+    property public final double a;
+    property public final double b;
+    property public final double c;
+    property public final double d;
+    property public final double e;
+    property public final double f;
+    property public final double gamma;
+  }
+
+  public final class WhitePoint {
+    ctor public WhitePoint(float x, float y);
+    ctor public WhitePoint(float x, float y, float z);
+    method public float component1();
+    method public float component2();
+    method public androidx.compose.ui.graphics.colorspace.WhitePoint copy(float x, float y);
+    method public float getX();
+    method public float getY();
+    property public final float x;
+    property public final float y;
+  }
+
+}
+
+package androidx.compose.ui.graphics.drawscope {
+
+  public final class CanvasDrawScope implements androidx.compose.ui.graphics.drawscope.DrawScope {
+    ctor public CanvasDrawScope();
+    method public inline void draw(androidx.compose.ui.unit.Density density, androidx.compose.ui.unit.LayoutDirection layoutDirection, androidx.compose.ui.graphics.Canvas canvas, long size, kotlin.jvm.functions.Function1<? super androidx.compose.ui.graphics.drawscope.DrawScope,kotlin.Unit> block);
+    method public void drawArc(androidx.compose.ui.graphics.Brush brush, float startAngle, float sweepAngle, boolean useCenter, long topLeft, long size, float alpha, androidx.compose.ui.graphics.drawscope.DrawStyle style, androidx.compose.ui.graphics.ColorFilter? colorFilter, int blendMode);
+    method public void drawArc(long color, float startAngle, float sweepAngle, boolean useCenter, long topLeft, long size, float alpha, androidx.compose.ui.graphics.drawscope.DrawStyle style, androidx.compose.ui.graphics.ColorFilter? colorFilter, int blendMode);
+    method public void drawCircle(androidx.compose.ui.graphics.Brush brush, float radius, long center, float alpha, androidx.compose.ui.graphics.drawscope.DrawStyle style, androidx.compose.ui.graphics.ColorFilter? colorFilter, int blendMode);
+    method public void drawCircle(long color, float radius, long center, float alpha, androidx.compose.ui.graphics.drawscope.DrawStyle style, androidx.compose.ui.graphics.ColorFilter? colorFilter, int blendMode);
+    method public void drawImage(androidx.compose.ui.graphics.ImageBitmap image, long topLeft, float alpha, androidx.compose.ui.graphics.drawscope.DrawStyle style, androidx.compose.ui.graphics.ColorFilter? colorFilter, int blendMode);
+    method @Deprecated public void drawImage(androidx.compose.ui.graphics.ImageBitmap image, long srcOffset, long srcSize, long dstOffset, long dstSize, float alpha, androidx.compose.ui.graphics.drawscope.DrawStyle style, androidx.compose.ui.graphics.ColorFilter? colorFilter, int blendMode);
+    method public void drawLine(androidx.compose.ui.graphics.Brush brush, long start, long end, float strokeWidth, int cap, androidx.compose.ui.graphics.PathEffect? pathEffect, float alpha, androidx.compose.ui.graphics.ColorFilter? colorFilter, int blendMode);
+    method public void drawLine(long color, long start, long end, float strokeWidth, int cap, androidx.compose.ui.graphics.PathEffect? pathEffect, float alpha, androidx.compose.ui.graphics.ColorFilter? colorFilter, int blendMode);
+    method public void drawOval(androidx.compose.ui.graphics.Brush brush, long topLeft, long size, float alpha, androidx.compose.ui.graphics.drawscope.DrawStyle style, androidx.compose.ui.graphics.ColorFilter? colorFilter, int blendMode);
+    method public void drawOval(long color, long topLeft, long size, float alpha, androidx.compose.ui.graphics.drawscope.DrawStyle style, androidx.compose.ui.graphics.ColorFilter? colorFilter, int blendMode);
+    method public void drawPath(androidx.compose.ui.graphics.Path path, androidx.compose.ui.graphics.Brush brush, float alpha, androidx.compose.ui.graphics.drawscope.DrawStyle style, androidx.compose.ui.graphics.ColorFilter? colorFilter, int blendMode);
+    method public void drawPath(androidx.compose.ui.graphics.Path path, long color, float alpha, androidx.compose.ui.graphics.drawscope.DrawStyle style, androidx.compose.ui.graphics.ColorFilter? colorFilter, int blendMode);
+    method public void drawPoints(java.util.List<androidx.compose.ui.geometry.Offset> points, int pointMode, androidx.compose.ui.graphics.Brush brush, float strokeWidth, int cap, androidx.compose.ui.graphics.PathEffect? pathEffect, float alpha, androidx.compose.ui.graphics.ColorFilter? colorFilter, int blendMode);
+    method public void drawPoints(java.util.List<androidx.compose.ui.geometry.Offset> points, int pointMode, long color, float strokeWidth, int cap, androidx.compose.ui.graphics.PathEffect? pathEffect, float alpha, androidx.compose.ui.graphics.ColorFilter? colorFilter, int blendMode);
+    method public void drawRect(androidx.compose.ui.graphics.Brush brush, long topLeft, long size, float alpha, androidx.compose.ui.graphics.drawscope.DrawStyle style, androidx.compose.ui.graphics.ColorFilter? colorFilter, int blendMode);
+    method public void drawRect(long color, long topLeft, long size, float alpha, androidx.compose.ui.graphics.drawscope.DrawStyle style, androidx.compose.ui.graphics.ColorFilter? colorFilter, int blendMode);
+    method public void drawRoundRect(androidx.compose.ui.graphics.Brush brush, long topLeft, long size, long cornerRadius, float alpha, androidx.compose.ui.graphics.drawscope.DrawStyle style, androidx.compose.ui.graphics.ColorFilter? colorFilter, int blendMode);
+    method public void drawRoundRect(long color, long topLeft, long size, long cornerRadius, androidx.compose.ui.graphics.drawscope.DrawStyle style, float alpha, androidx.compose.ui.graphics.ColorFilter? colorFilter, int blendMode);
+    method public float getDensity();
+    method public androidx.compose.ui.graphics.drawscope.DrawContext getDrawContext();
+    method public float getFontScale();
+    method public androidx.compose.ui.unit.LayoutDirection getLayoutDirection();
+    property public float density;
+    property public androidx.compose.ui.graphics.drawscope.DrawContext drawContext;
+    property public float fontScale;
+    property public androidx.compose.ui.unit.LayoutDirection layoutDirection;
+    field @kotlin.PublishedApi internal final androidx.compose.ui.graphics.drawscope.CanvasDrawScope.DrawParams drawParams;
+  }
+
+  @kotlin.PublishedApi internal static final class CanvasDrawScope.DrawParams {
+    ctor public CanvasDrawScope.DrawParams(optional androidx.compose.ui.unit.Density density, optional androidx.compose.ui.unit.LayoutDirection layoutDirection, optional androidx.compose.ui.graphics.Canvas canvas, optional long size);
+    method public androidx.compose.ui.unit.Density component1();
+    method public androidx.compose.ui.unit.LayoutDirection component2();
+    method public androidx.compose.ui.graphics.Canvas component3();
+    method public long component4-NH-jbRc();
+    method internal boolean equals(Object? other);
+    method public androidx.compose.ui.graphics.Canvas getCanvas();
+    method public androidx.compose.ui.unit.Density getDensity();
+    method public androidx.compose.ui.unit.LayoutDirection getLayoutDirection();
+    method public long getSize();
+    method internal int hashCode();
+    method public void setCanvas(androidx.compose.ui.graphics.Canvas);
+    method public void setDensity(androidx.compose.ui.unit.Density);
+    method public void setLayoutDirection(androidx.compose.ui.unit.LayoutDirection);
+    method public void setSize(long);
+    method internal String toString();
+    property public final androidx.compose.ui.graphics.Canvas canvas;
+    property public final androidx.compose.ui.unit.Density density;
+    property public final androidx.compose.ui.unit.LayoutDirection layoutDirection;
+    property public final long size;
+  }
+
+  @kotlin.jvm.JvmDefaultWithCompatibility public interface ContentDrawScope extends androidx.compose.ui.graphics.drawscope.DrawScope {
+    method public void drawContent();
+  }
+
+  public interface DrawContext {
+    method public androidx.compose.ui.graphics.Canvas getCanvas();
+    method public long getSize();
+    method public androidx.compose.ui.graphics.drawscope.DrawTransform getTransform();
+    method public void setSize(long);
+    property public abstract androidx.compose.ui.graphics.Canvas canvas;
+    property public abstract long size;
+    property public abstract androidx.compose.ui.graphics.drawscope.DrawTransform transform;
+  }
+
+  @androidx.compose.ui.graphics.drawscope.DrawScopeMarker @kotlin.jvm.JvmDefaultWithCompatibility public interface DrawScope extends androidx.compose.ui.unit.Density {
+    method public void drawArc(androidx.compose.ui.graphics.Brush brush, float startAngle, float sweepAngle, boolean useCenter, optional long topLeft, optional long size, optional float alpha, optional androidx.compose.ui.graphics.drawscope.DrawStyle style, optional androidx.compose.ui.graphics.ColorFilter? colorFilter, optional int blendMode);
+    method public void drawArc(long color, float startAngle, float sweepAngle, boolean useCenter, optional long topLeft, optional long size, optional float alpha, optional androidx.compose.ui.graphics.drawscope.DrawStyle style, optional androidx.compose.ui.graphics.ColorFilter? colorFilter, optional int blendMode);
+    method public void drawCircle(androidx.compose.ui.graphics.Brush brush, optional float radius, optional long center, optional float alpha, optional androidx.compose.ui.graphics.drawscope.DrawStyle style, optional androidx.compose.ui.graphics.ColorFilter? colorFilter, optional int blendMode);
+    method public void drawCircle(long color, optional float radius, optional long center, optional float alpha, optional androidx.compose.ui.graphics.drawscope.DrawStyle style, optional androidx.compose.ui.graphics.ColorFilter? colorFilter, optional int blendMode);
+    method public void drawImage(androidx.compose.ui.graphics.ImageBitmap image, optional long topLeft, optional float alpha, optional androidx.compose.ui.graphics.drawscope.DrawStyle style, optional androidx.compose.ui.graphics.ColorFilter? colorFilter, optional int blendMode);
+    method @Deprecated public void drawImage(androidx.compose.ui.graphics.ImageBitmap image, optional long srcOffset, optional long srcSize, optional long dstOffset, optional long dstSize, optional float alpha, optional androidx.compose.ui.graphics.drawscope.DrawStyle style, optional androidx.compose.ui.graphics.ColorFilter? colorFilter, optional int blendMode);
+    method public default void drawImage(androidx.compose.ui.graphics.ImageBitmap image, optional long srcOffset, optional long srcSize, optional long dstOffset, optional long dstSize, optional float alpha, optional androidx.compose.ui.graphics.drawscope.DrawStyle style, optional androidx.compose.ui.graphics.ColorFilter? colorFilter, optional int blendMode, optional int filterQuality);
+    method public void drawLine(androidx.compose.ui.graphics.Brush brush, long start, long end, optional float strokeWidth, optional int cap, optional androidx.compose.ui.graphics.PathEffect? pathEffect, optional float alpha, optional androidx.compose.ui.graphics.ColorFilter? colorFilter, optional int blendMode);
+    method public void drawLine(long color, long start, long end, optional float strokeWidth, optional int cap, optional androidx.compose.ui.graphics.PathEffect? pathEffect, optional float alpha, optional androidx.compose.ui.graphics.ColorFilter? colorFilter, optional int blendMode);
+    method public void drawOval(androidx.compose.ui.graphics.Brush brush, optional long topLeft, optional long size, optional float alpha, optional androidx.compose.ui.graphics.drawscope.DrawStyle style, optional androidx.compose.ui.graphics.ColorFilter? colorFilter, optional int blendMode);
+    method public void drawOval(long color, optional long topLeft, optional long size, optional float alpha, optional androidx.compose.ui.graphics.drawscope.DrawStyle style, optional androidx.compose.ui.graphics.ColorFilter? colorFilter, optional int blendMode);
+    method public void drawPath(androidx.compose.ui.graphics.Path path, androidx.compose.ui.graphics.Brush brush, optional float alpha, optional androidx.compose.ui.graphics.drawscope.DrawStyle style, optional androidx.compose.ui.graphics.ColorFilter? colorFilter, optional int blendMode);
+    method public void drawPath(androidx.compose.ui.graphics.Path path, long color, optional float alpha, optional androidx.compose.ui.graphics.drawscope.DrawStyle style, optional androidx.compose.ui.graphics.ColorFilter? colorFilter, optional int blendMode);
+    method public void drawPoints(java.util.List<androidx.compose.ui.geometry.Offset> points, int pointMode, androidx.compose.ui.graphics.Brush brush, optional float strokeWidth, optional int cap, optional androidx.compose.ui.graphics.PathEffect? pathEffect, optional float alpha, optional androidx.compose.ui.graphics.ColorFilter? colorFilter, optional int blendMode);
+    method public void drawPoints(java.util.List<androidx.compose.ui.geometry.Offset> points, int pointMode, long color, optional float strokeWidth, optional int cap, optional androidx.compose.ui.graphics.PathEffect? pathEffect, optional float alpha, optional androidx.compose.ui.graphics.ColorFilter? colorFilter, optional int blendMode);
+    method public void drawRect(androidx.compose.ui.graphics.Brush brush, optional long topLeft, optional long size, optional float alpha, optional androidx.compose.ui.graphics.drawscope.DrawStyle style, optional androidx.compose.ui.graphics.ColorFilter? colorFilter, optional int blendMode);
+    method public void drawRect(long color, optional long topLeft, optional long size, optional float alpha, optional androidx.compose.ui.graphics.drawscope.DrawStyle style, optional androidx.compose.ui.graphics.ColorFilter? colorFilter, optional int blendMode);
+    method public void drawRoundRect(androidx.compose.ui.graphics.Brush brush, optional long topLeft, optional long size, optional long cornerRadius, optional float alpha, optional androidx.compose.ui.graphics.drawscope.DrawStyle style, optional androidx.compose.ui.graphics.ColorFilter? colorFilter, optional int blendMode);
+    method public void drawRoundRect(long color, optional long topLeft, optional long size, optional long cornerRadius, optional androidx.compose.ui.graphics.drawscope.DrawStyle style, optional float alpha, optional androidx.compose.ui.graphics.ColorFilter? colorFilter, optional int blendMode);
+    method public default long getCenter();
+    method public androidx.compose.ui.graphics.drawscope.DrawContext getDrawContext();
+    method public androidx.compose.ui.unit.LayoutDirection getLayoutDirection();
+    method public default long getSize();
+    property public default long center;
+    property public abstract androidx.compose.ui.graphics.drawscope.DrawContext drawContext;
+    property public abstract androidx.compose.ui.unit.LayoutDirection layoutDirection;
+    property public default long size;
+    field public static final androidx.compose.ui.graphics.drawscope.DrawScope.Companion Companion;
+  }
+
+  public static final class DrawScope.Companion {
+    method public int getDefaultBlendMode();
+    method public int getDefaultFilterQuality();
+    property public final int DefaultBlendMode;
+    property public final int DefaultFilterQuality;
+  }
+
+  public final class DrawScopeKt {
+    method public static inline void clipPath(androidx.compose.ui.graphics.drawscope.DrawScope, androidx.compose.ui.graphics.Path path, optional int clipOp, kotlin.jvm.functions.Function1<? super androidx.compose.ui.graphics.drawscope.DrawScope,kotlin.Unit> block);
+    method public static inline void clipRect(androidx.compose.ui.graphics.drawscope.DrawScope, optional float left, optional float top, optional float right, optional float bottom, optional int clipOp, kotlin.jvm.functions.Function1<? super androidx.compose.ui.graphics.drawscope.DrawScope,kotlin.Unit> block);
+    method public static inline void drawIntoCanvas(androidx.compose.ui.graphics.drawscope.DrawScope, kotlin.jvm.functions.Function1<? super androidx.compose.ui.graphics.Canvas,kotlin.Unit> block);
+    method public static inline void inset(androidx.compose.ui.graphics.drawscope.DrawScope, float left, float top, float right, float bottom, kotlin.jvm.functions.Function1<? super androidx.compose.ui.graphics.drawscope.DrawScope,kotlin.Unit> block);
+    method public static inline void inset(androidx.compose.ui.graphics.drawscope.DrawScope, optional float horizontal, optional float vertical, kotlin.jvm.functions.Function1<? super androidx.compose.ui.graphics.drawscope.DrawScope,kotlin.Unit> block);
+    method public static inline void inset(androidx.compose.ui.graphics.drawscope.DrawScope, float inset, kotlin.jvm.functions.Function1<? super androidx.compose.ui.graphics.drawscope.DrawScope,kotlin.Unit> block);
+    method public static inline void rotate(androidx.compose.ui.graphics.drawscope.DrawScope, float degrees, optional long pivot, kotlin.jvm.functions.Function1<? super androidx.compose.ui.graphics.drawscope.DrawScope,kotlin.Unit> block);
+    method public static inline void rotateRad(androidx.compose.ui.graphics.drawscope.DrawScope, float radians, optional long pivot, kotlin.jvm.functions.Function1<? super androidx.compose.ui.graphics.drawscope.DrawScope,kotlin.Unit> block);
+    method public static inline void scale(androidx.compose.ui.graphics.drawscope.DrawScope, float scaleX, float scaleY, optional long pivot, kotlin.jvm.functions.Function1<? super androidx.compose.ui.graphics.drawscope.DrawScope,kotlin.Unit> block);
+    method public static inline void scale(androidx.compose.ui.graphics.drawscope.DrawScope, float scale, optional long pivot, kotlin.jvm.functions.Function1<? super androidx.compose.ui.graphics.drawscope.DrawScope,kotlin.Unit> block);
+    method public static inline void translate(androidx.compose.ui.graphics.drawscope.DrawScope, optional float left, optional float top, kotlin.jvm.functions.Function1<? super androidx.compose.ui.graphics.drawscope.DrawScope,kotlin.Unit> block);
+    method public static inline void withTransform(androidx.compose.ui.graphics.drawscope.DrawScope, kotlin.jvm.functions.Function1<? super androidx.compose.ui.graphics.drawscope.DrawTransform,kotlin.Unit> transformBlock, kotlin.jvm.functions.Function1<? super androidx.compose.ui.graphics.drawscope.DrawScope,kotlin.Unit> drawBlock);
+  }
+
+  @kotlin.DslMarker public @interface DrawScopeMarker {
+  }
+
+  public abstract sealed class DrawStyle {
+  }
+
+  @androidx.compose.ui.graphics.drawscope.DrawScopeMarker @kotlin.jvm.JvmDefaultWithCompatibility public interface DrawTransform {
+    method public void clipPath(androidx.compose.ui.graphics.Path path, optional int clipOp);
+    method public void clipRect(optional float left, optional float top, optional float right, optional float bottom, optional int clipOp);
+    method public default long getCenter();
+    method public long getSize();
+    method public void inset(float left, float top, float right, float bottom);
+    method public void rotate(float degrees, optional long pivot);
+    method public void scale(float scaleX, float scaleY, optional long pivot);
+    method public void transform(float[] matrix);
+    method public void translate(optional float left, optional float top);
+    property public default long center;
+    property public abstract long size;
+  }
+
+  public final class DrawTransformKt {
+    method public static inline void inset(androidx.compose.ui.graphics.drawscope.DrawTransform, float inset);
+    method public static inline void inset(androidx.compose.ui.graphics.drawscope.DrawTransform, optional float horizontal, optional float vertical);
+    method public static inline void rotateRad(androidx.compose.ui.graphics.drawscope.DrawTransform, float radians, optional long pivot);
+    method public static inline void scale(androidx.compose.ui.graphics.drawscope.DrawTransform, float scale, optional long pivot);
+  }
+
+  public final class Fill extends androidx.compose.ui.graphics.drawscope.DrawStyle {
+    field public static final androidx.compose.ui.graphics.drawscope.Fill INSTANCE;
+  }
+
+  public final class Stroke extends androidx.compose.ui.graphics.drawscope.DrawStyle {
+    ctor public Stroke(optional float width, optional float miter, optional int cap, optional int join, optional androidx.compose.ui.graphics.PathEffect? pathEffect);
+    method public int getCap();
+    method public int getJoin();
+    method public float getMiter();
+    method public androidx.compose.ui.graphics.PathEffect? getPathEffect();
+    method public float getWidth();
+    property public final int cap;
+    property public final int join;
+    property public final float miter;
+    property public final androidx.compose.ui.graphics.PathEffect? pathEffect;
+    property public final float width;
+    field public static final androidx.compose.ui.graphics.drawscope.Stroke.Companion Companion;
+    field public static final float DefaultMiter = 4.0f;
+    field public static final float HairlineWidth = 0.0f;
+  }
+
+  public static final class Stroke.Companion {
+    method public int getDefaultCap();
+    method public int getDefaultJoin();
+    property public final int DefaultCap;
+    property public final int DefaultJoin;
+  }
+
+}
+
+package androidx.compose.ui.graphics.painter {
+
+  public final class BitmapPainter extends androidx.compose.ui.graphics.painter.Painter {
+    ctor public BitmapPainter(androidx.compose.ui.graphics.ImageBitmap image, optional long srcOffset, optional long srcSize);
+    method public long getIntrinsicSize();
+    method protected void onDraw(androidx.compose.ui.graphics.drawscope.DrawScope);
+    property public long intrinsicSize;
+  }
+
+  public final class BitmapPainterKt {
+    method public static androidx.compose.ui.graphics.painter.BitmapPainter BitmapPainter(androidx.compose.ui.graphics.ImageBitmap image, optional long srcOffset, optional long srcSize, optional int filterQuality);
+  }
+
+  public final class BrushPainter extends androidx.compose.ui.graphics.painter.Painter {
+    ctor public BrushPainter(androidx.compose.ui.graphics.Brush brush);
+    method public androidx.compose.ui.graphics.Brush getBrush();
+    method public long getIntrinsicSize();
+    method protected void onDraw(androidx.compose.ui.graphics.drawscope.DrawScope);
+    property public final androidx.compose.ui.graphics.Brush brush;
+    property public long intrinsicSize;
+  }
+
+  public final class ColorPainter extends androidx.compose.ui.graphics.painter.Painter {
+    ctor public ColorPainter(long color);
+    method public long getColor();
+    method public long getIntrinsicSize();
+    method protected void onDraw(androidx.compose.ui.graphics.drawscope.DrawScope);
+    property public final long color;
+    property public long intrinsicSize;
+  }
+
+  public abstract class Painter {
+    ctor public Painter();
+    method protected boolean applyAlpha(float alpha);
+    method protected boolean applyColorFilter(androidx.compose.ui.graphics.ColorFilter? colorFilter);
+    method protected boolean applyLayoutDirection(androidx.compose.ui.unit.LayoutDirection layoutDirection);
+    method public final void draw(androidx.compose.ui.graphics.drawscope.DrawScope, long size, optional float alpha, optional androidx.compose.ui.graphics.ColorFilter? colorFilter);
+    method public abstract long getIntrinsicSize();
+    method protected abstract void onDraw(androidx.compose.ui.graphics.drawscope.DrawScope);
+    property public abstract long intrinsicSize;
+  }
+
+}
+
+package androidx.compose.ui.graphics.vector {
+
+  public final class PathBuilder {
+    ctor public PathBuilder();
+    method public androidx.compose.ui.graphics.vector.PathBuilder arcTo(float horizontalEllipseRadius, float verticalEllipseRadius, float theta, boolean isMoreThanHalf, boolean isPositiveArc, float x1, float y1);
+    method public androidx.compose.ui.graphics.vector.PathBuilder arcToRelative(float a, float b, float theta, boolean isMoreThanHalf, boolean isPositiveArc, float dx1, float dy1);
+    method public androidx.compose.ui.graphics.vector.PathBuilder close();
+    method public androidx.compose.ui.graphics.vector.PathBuilder curveTo(float x1, float y1, float x2, float y2, float x3, float y3);
+    method public androidx.compose.ui.graphics.vector.PathBuilder curveToRelative(float dx1, float dy1, float dx2, float dy2, float dx3, float dy3);
+    method public java.util.List<androidx.compose.ui.graphics.vector.PathNode> getNodes();
+    method public androidx.compose.ui.graphics.vector.PathBuilder horizontalLineTo(float x);
+    method public androidx.compose.ui.graphics.vector.PathBuilder horizontalLineToRelative(float dx);
+    method public androidx.compose.ui.graphics.vector.PathBuilder lineTo(float x, float y);
+    method public androidx.compose.ui.graphics.vector.PathBuilder lineToRelative(float dx, float dy);
+    method public androidx.compose.ui.graphics.vector.PathBuilder moveTo(float x, float y);
+    method public androidx.compose.ui.graphics.vector.PathBuilder moveToRelative(float dx, float dy);
+    method public androidx.compose.ui.graphics.vector.PathBuilder quadTo(float x1, float y1, float x2, float y2);
+    method public androidx.compose.ui.graphics.vector.PathBuilder quadToRelative(float dx1, float dy1, float dx2, float dy2);
+    method public androidx.compose.ui.graphics.vector.PathBuilder reflectiveCurveTo(float x1, float y1, float x2, float y2);
+    method public androidx.compose.ui.graphics.vector.PathBuilder reflectiveCurveToRelative(float dx1, float dy1, float dx2, float dy2);
+    method public androidx.compose.ui.graphics.vector.PathBuilder reflectiveQuadTo(float x1, float y1);
+    method public androidx.compose.ui.graphics.vector.PathBuilder reflectiveQuadToRelative(float dx1, float dy1);
+    method public androidx.compose.ui.graphics.vector.PathBuilder verticalLineTo(float y);
+    method public androidx.compose.ui.graphics.vector.PathBuilder verticalLineToRelative(float dy);
+  }
+
+  @androidx.compose.runtime.Immutable public abstract sealed class PathNode {
+    method public final boolean isCurve();
+    method public final boolean isQuad();
+    property public final boolean isCurve;
+    property public final boolean isQuad;
+  }
+
+  @androidx.compose.runtime.Immutable public static final class PathNode.ArcTo extends androidx.compose.ui.graphics.vector.PathNode {
+    ctor public PathNode.ArcTo(float horizontalEllipseRadius, float verticalEllipseRadius, float theta, boolean isMoreThanHalf, boolean isPositiveArc, float arcStartX, float arcStartY);
+    method public float component1();
+    method public float component2();
+    method public float component3();
+    method public boolean component4();
+    method public boolean component5();
+    method public float component6();
+    method public float component7();
+    method public androidx.compose.ui.graphics.vector.PathNode.ArcTo copy(float horizontalEllipseRadius, float verticalEllipseRadius, float theta, boolean isMoreThanHalf, boolean isPositiveArc, float arcStartX, float arcStartY);
+    method public float getArcStartX();
+    method public float getArcStartY();
+    method public float getHorizontalEllipseRadius();
+    method public float getTheta();
+    method public float getVerticalEllipseRadius();
+    method public boolean isMoreThanHalf();
+    method public boolean isPositiveArc();
+    property public final float arcStartX;
+    property public final float arcStartY;
+    property public final float horizontalEllipseRadius;
+    property public final boolean isMoreThanHalf;
+    property public final boolean isPositiveArc;
+    property public final float theta;
+    property public final float verticalEllipseRadius;
+  }
+
+  @androidx.compose.runtime.Immutable public static final class PathNode.Close extends androidx.compose.ui.graphics.vector.PathNode {
+    field public static final androidx.compose.ui.graphics.vector.PathNode.Close INSTANCE;
+  }
+
+  @androidx.compose.runtime.Immutable public static final class PathNode.CurveTo extends androidx.compose.ui.graphics.vector.PathNode {
+    ctor public PathNode.CurveTo(float x1, float y1, float x2, float y2, float x3, float y3);
+    method public float component1();
+    method public float component2();
+    method public float component3();
+    method public float component4();
+    method public float component5();
+    method public float component6();
+    method public androidx.compose.ui.graphics.vector.PathNode.CurveTo copy(float x1, float y1, float x2, float y2, float x3, float y3);
+    method public float getX1();
+    method public float getX2();
+    method public float getX3();
+    method public float getY1();
+    method public float getY2();
+    method public float getY3();
+    property public final float x1;
+    property public final float x2;
+    property public final float x3;
+    property public final float y1;
+    property public final float y2;
+    property public final float y3;
+  }
+
+  @androidx.compose.runtime.Immutable public static final class PathNode.HorizontalTo extends androidx.compose.ui.graphics.vector.PathNode {
+    ctor public PathNode.HorizontalTo(float x);
+    method public float component1();
+    method public androidx.compose.ui.graphics.vector.PathNode.HorizontalTo copy(float x);
+    method public float getX();
+    property public final float x;
+  }
+
+  @androidx.compose.runtime.Immutable public static final class PathNode.LineTo extends androidx.compose.ui.graphics.vector.PathNode {
+    ctor public PathNode.LineTo(float x, float y);
+    method public float component1();
+    method public float component2();
+    method public androidx.compose.ui.graphics.vector.PathNode.LineTo copy(float x, float y);
+    method public float getX();
+    method public float getY();
+    property public final float x;
+    property public final float y;
+  }
+
+  @androidx.compose.runtime.Immutable public static final class PathNode.MoveTo extends androidx.compose.ui.graphics.vector.PathNode {
+    ctor public PathNode.MoveTo(float x, float y);
+    method public float component1();
+    method public float component2();
+    method public androidx.compose.ui.graphics.vector.PathNode.MoveTo copy(float x, float y);
+    method public float getX();
+    method public float getY();
+    property public final float x;
+    property public final float y;
+  }
+
+  @androidx.compose.runtime.Immutable public static final class PathNode.QuadTo extends androidx.compose.ui.graphics.vector.PathNode {
+    ctor public PathNode.QuadTo(float x1, float y1, float x2, float y2);
+    method public float component1();
+    method public float component2();
+    method public float component3();
+    method public float component4();
+    method public androidx.compose.ui.graphics.vector.PathNode.QuadTo copy(float x1, float y1, float x2, float y2);
+    method public float getX1();
+    method public float getX2();
+    method public float getY1();
+    method public float getY2();
+    property public final float x1;
+    property public final float x2;
+    property public final float y1;
+    property public final float y2;
+  }
+
+  @androidx.compose.runtime.Immutable public static final class PathNode.ReflectiveCurveTo extends androidx.compose.ui.graphics.vector.PathNode {
+    ctor public PathNode.ReflectiveCurveTo(float x1, float y1, float x2, float y2);
+    method public float component1();
+    method public float component2();
+    method public float component3();
+    method public float component4();
+    method public androidx.compose.ui.graphics.vector.PathNode.ReflectiveCurveTo copy(float x1, float y1, float x2, float y2);
+    method public float getX1();
+    method public float getX2();
+    method public float getY1();
+    method public float getY2();
+    property public final float x1;
+    property public final float x2;
+    property public final float y1;
+    property public final float y2;
+  }
+
+  @androidx.compose.runtime.Immutable public static final class PathNode.ReflectiveQuadTo extends androidx.compose.ui.graphics.vector.PathNode {
+    ctor public PathNode.ReflectiveQuadTo(float x, float y);
+    method public float component1();
+    method public float component2();
+    method public androidx.compose.ui.graphics.vector.PathNode.ReflectiveQuadTo copy(float x, float y);
+    method public float getX();
+    method public float getY();
+    property public final float x;
+    property public final float y;
+  }
+
+  @androidx.compose.runtime.Immutable public static final class PathNode.RelativeArcTo extends androidx.compose.ui.graphics.vector.PathNode {
+    ctor public PathNode.RelativeArcTo(float horizontalEllipseRadius, float verticalEllipseRadius, float theta, boolean isMoreThanHalf, boolean isPositiveArc, float arcStartDx, float arcStartDy);
+    method public float component1();
+    method public float component2();
+    method public float component3();
+    method public boolean component4();
+    method public boolean component5();
+    method public float component6();
+    method public float component7();
+    method public androidx.compose.ui.graphics.vector.PathNode.RelativeArcTo copy(float horizontalEllipseRadius, float verticalEllipseRadius, float theta, boolean isMoreThanHalf, boolean isPositiveArc, float arcStartDx, float arcStartDy);
+    method public float getArcStartDx();
+    method public float getArcStartDy();
+    method public float getHorizontalEllipseRadius();
+    method public float getTheta();
+    method public float getVerticalEllipseRadius();
+    method public boolean isMoreThanHalf();
+    method public boolean isPositiveArc();
+    property public final float arcStartDx;
+    property public final float arcStartDy;
+    property public final float horizontalEllipseRadius;
+    property public final boolean isMoreThanHalf;
+    property public final boolean isPositiveArc;
+    property public final float theta;
+    property public final float verticalEllipseRadius;
+  }
+
+  @androidx.compose.runtime.Immutable public static final class PathNode.RelativeCurveTo extends androidx.compose.ui.graphics.vector.PathNode {
+    ctor public PathNode.RelativeCurveTo(float dx1, float dy1, float dx2, float dy2, float dx3, float dy3);
+    method public float component1();
+    method public float component2();
+    method public float component3();
+    method public float component4();
+    method public float component5();
+    method public float component6();
+    method public androidx.compose.ui.graphics.vector.PathNode.RelativeCurveTo copy(float dx1, float dy1, float dx2, float dy2, float dx3, float dy3);
+    method public float getDx1();
+    method public float getDx2();
+    method public float getDx3();
+    method public float getDy1();
+    method public float getDy2();
+    method public float getDy3();
+    property public final float dx1;
+    property public final float dx2;
+    property public final float dx3;
+    property public final float dy1;
+    property public final float dy2;
+    property public final float dy3;
+  }
+
+  @androidx.compose.runtime.Immutable public static final class PathNode.RelativeHorizontalTo extends androidx.compose.ui.graphics.vector.PathNode {
+    ctor public PathNode.RelativeHorizontalTo(float dx);
+    method public float component1();
+    method public androidx.compose.ui.graphics.vector.PathNode.RelativeHorizontalTo copy(float dx);
+    method public float getDx();
+    property public final float dx;
+  }
+
+  @androidx.compose.runtime.Immutable public static final class PathNode.RelativeLineTo extends androidx.compose.ui.graphics.vector.PathNode {
+    ctor public PathNode.RelativeLineTo(float dx, float dy);
+    method public float component1();
+    method public float component2();
+    method public androidx.compose.ui.graphics.vector.PathNode.RelativeLineTo copy(float dx, float dy);
+    method public float getDx();
+    method public float getDy();
+    property public final float dx;
+    property public final float dy;
+  }
+
+  @androidx.compose.runtime.Immutable public static final class PathNode.RelativeMoveTo extends androidx.compose.ui.graphics.vector.PathNode {
+    ctor public PathNode.RelativeMoveTo(float dx, float dy);
+    method public float component1();
+    method public float component2();
+    method public androidx.compose.ui.graphics.vector.PathNode.RelativeMoveTo copy(float dx, float dy);
+    method public float getDx();
+    method public float getDy();
+    property public final float dx;
+    property public final float dy;
+  }
+
+  @androidx.compose.runtime.Immutable public static final class PathNode.RelativeQuadTo extends androidx.compose.ui.graphics.vector.PathNode {
+    ctor public PathNode.RelativeQuadTo(float dx1, float dy1, float dx2, float dy2);
+    method public float component1();
+    method public float component2();
+    method public float component3();
+    method public float component4();
+    method public androidx.compose.ui.graphics.vector.PathNode.RelativeQuadTo copy(float dx1, float dy1, float dx2, float dy2);
+    method public float getDx1();
+    method public float getDx2();
+    method public float getDy1();
+    method public float getDy2();
+    property public final float dx1;
+    property public final float dx2;
+    property public final float dy1;
+    property public final float dy2;
+  }
+
+  @androidx.compose.runtime.Immutable public static final class PathNode.RelativeReflectiveCurveTo extends androidx.compose.ui.graphics.vector.PathNode {
+    ctor public PathNode.RelativeReflectiveCurveTo(float dx1, float dy1, float dx2, float dy2);
+    method public float component1();
+    method public float component2();
+    method public float component3();
+    method public float component4();
+    method public androidx.compose.ui.graphics.vector.PathNode.RelativeReflectiveCurveTo copy(float dx1, float dy1, float dx2, float dy2);
+    method public float getDx1();
+    method public float getDx2();
+    method public float getDy1();
+    method public float getDy2();
+    property public final float dx1;
+    property public final float dx2;
+    property public final float dy1;
+    property public final float dy2;
+  }
+
+  @androidx.compose.runtime.Immutable public static final class PathNode.RelativeReflectiveQuadTo extends androidx.compose.ui.graphics.vector.PathNode {
+    ctor public PathNode.RelativeReflectiveQuadTo(float dx, float dy);
+    method public float component1();
+    method public float component2();
+    method public androidx.compose.ui.graphics.vector.PathNode.RelativeReflectiveQuadTo copy(float dx, float dy);
+    method public float getDx();
+    method public float getDy();
+    property public final float dx;
+    property public final float dy;
+  }
+
+  @androidx.compose.runtime.Immutable public static final class PathNode.RelativeVerticalTo extends androidx.compose.ui.graphics.vector.PathNode {
+    ctor public PathNode.RelativeVerticalTo(float dy);
+    method public float component1();
+    method public androidx.compose.ui.graphics.vector.PathNode.RelativeVerticalTo copy(float dy);
+    method public float getDy();
+    property public final float dy;
+  }
+
+  @androidx.compose.runtime.Immutable public static final class PathNode.VerticalTo extends androidx.compose.ui.graphics.vector.PathNode {
+    ctor public PathNode.VerticalTo(float y);
+    method public float component1();
+    method public androidx.compose.ui.graphics.vector.PathNode.VerticalTo copy(float y);
+    method public float getY();
+    property public final float y;
+  }
+
+  public final class PathParser {
+    ctor public PathParser();
+    method public androidx.compose.ui.graphics.vector.PathParser addPathNodes(java.util.List<? extends androidx.compose.ui.graphics.vector.PathNode> nodes);
+    method public void clear();
+    method public androidx.compose.ui.graphics.vector.PathParser parsePathString(String pathData);
+    method public java.util.List<androidx.compose.ui.graphics.vector.PathNode> toNodes();
+    method public androidx.compose.ui.graphics.Path toPath(optional androidx.compose.ui.graphics.Path target);
+  }
+
+  public final class PathParserKt {
+    method public static androidx.compose.ui.graphics.Path toPath(java.util.List<? extends androidx.compose.ui.graphics.vector.PathNode>, optional androidx.compose.ui.graphics.Path target);
+  }
+
+}
+
diff --git a/compose/ui/ui-graphics/api/restricted_current.txt b/compose/ui/ui-graphics/api/restricted_current.txt
index 33e27b1..4aa03ab 100644
--- a/compose/ui/ui-graphics/api/restricted_current.txt
+++ b/compose/ui/ui-graphics/api/restricted_current.txt
@@ -439,6 +439,9 @@
     method @kotlin.PublishedApi internal static float degrees(float radians);
   }
 
+  @kotlin.RequiresOptIn(message="This API is experimental and is likely to change in the future.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface ExperimentalGraphicsApi {
+  }
+
   @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class FilterQuality {
     method public int getValue();
     property public final int value;
diff --git a/compose/ui/ui-test-junit4/api/public_plus_experimental_current.txt b/compose/ui/ui-test-junit4/api/1.5.0-beta01.txt
similarity index 100%
rename from compose/ui/ui-test-junit4/api/public_plus_experimental_current.txt
rename to compose/ui/ui-test-junit4/api/1.5.0-beta01.txt
diff --git a/compose/ui/ui-test-junit4/api/current.ignore b/compose/ui/ui-test-junit4/api/current.ignore
new file mode 100644
index 0000000..2f4719a
--- /dev/null
+++ b/compose/ui/ui-test-junit4/api/current.ignore
@@ -0,0 +1,9 @@
+// Baseline format: 1.0
+AddedAbstractMethod: androidx.compose.ui.test.junit4.ComposeTestRule#waitUntilAtLeastOneExists(androidx.compose.ui.test.SemanticsMatcher, long):
+    Added method androidx.compose.ui.test.junit4.ComposeTestRule.waitUntilAtLeastOneExists(androidx.compose.ui.test.SemanticsMatcher,long)
+AddedAbstractMethod: androidx.compose.ui.test.junit4.ComposeTestRule#waitUntilDoesNotExist(androidx.compose.ui.test.SemanticsMatcher, long):
+    Added method androidx.compose.ui.test.junit4.ComposeTestRule.waitUntilDoesNotExist(androidx.compose.ui.test.SemanticsMatcher,long)
+AddedAbstractMethod: androidx.compose.ui.test.junit4.ComposeTestRule#waitUntilExactlyOneExists(androidx.compose.ui.test.SemanticsMatcher, long):
+    Added method androidx.compose.ui.test.junit4.ComposeTestRule.waitUntilExactlyOneExists(androidx.compose.ui.test.SemanticsMatcher,long)
+AddedAbstractMethod: androidx.compose.ui.test.junit4.ComposeTestRule#waitUntilNodeCount(androidx.compose.ui.test.SemanticsMatcher, int, long):
+    Added method androidx.compose.ui.test.junit4.ComposeTestRule.waitUntilNodeCount(androidx.compose.ui.test.SemanticsMatcher,int,long)
diff --git a/compose/ui/ui-test-junit4/api/current.txt b/compose/ui/ui-test-junit4/api/current.txt
index 2d6528b..8f10178 100644
--- a/compose/ui/ui-test-junit4/api/current.txt
+++ b/compose/ui/ui-test-junit4/api/current.txt
@@ -1,7 +1,63 @@
 // Signature format: 4.0
+package androidx.compose.ui.test {
+
+  @androidx.compose.ui.test.ExperimentalTestApi public sealed interface AndroidComposeUiTest<A extends androidx.activity.ComponentActivity> extends androidx.compose.ui.test.ComposeUiTest {
+    method public A? getActivity();
+    property public abstract A? activity;
+  }
+
+  @androidx.compose.ui.test.ExperimentalTestApi public abstract class AndroidComposeUiTestEnvironment<A extends androidx.activity.ComponentActivity> {
+    ctor public AndroidComposeUiTestEnvironment(optional kotlin.coroutines.CoroutineContext effectContext);
+    method protected abstract A? getActivity();
+    method public final androidx.compose.ui.test.AndroidComposeUiTest<A> getTest();
+    method public final <R> R runTest(kotlin.jvm.functions.Function1<? super androidx.compose.ui.test.AndroidComposeUiTest<A>,? extends R> block);
+    property protected abstract A? activity;
+    property public final androidx.compose.ui.test.AndroidComposeUiTest<A> test;
+  }
+
+  @androidx.compose.ui.test.ExperimentalTestApi public sealed interface ComposeUiTest extends androidx.compose.ui.test.SemanticsNodeInteractionsProvider {
+    method public suspend Object? awaitIdle(kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    method public androidx.compose.ui.unit.Density getDensity();
+    method public androidx.compose.ui.test.MainTestClock getMainClock();
+    method public void registerIdlingResource(androidx.compose.ui.test.IdlingResource idlingResource);
+    method public <T> T runOnIdle(kotlin.jvm.functions.Function0<? extends T> action);
+    method public <T> T runOnUiThread(kotlin.jvm.functions.Function0<? extends T> action);
+    method public void setContent(kotlin.jvm.functions.Function0<kotlin.Unit> composable);
+    method public void unregisterIdlingResource(androidx.compose.ui.test.IdlingResource idlingResource);
+    method public void waitForIdle();
+    method public void waitUntil(long timeoutMillis, kotlin.jvm.functions.Function0<java.lang.Boolean> condition);
+    property public abstract androidx.compose.ui.unit.Density density;
+    property public abstract androidx.compose.ui.test.MainTestClock mainClock;
+  }
+
+  public final class ComposeUiTestKt {
+    method @androidx.compose.ui.test.ExperimentalTestApi public static void runComposeUiTest(optional kotlin.coroutines.CoroutineContext effectContext, kotlin.jvm.functions.Function1<? super androidx.compose.ui.test.ComposeUiTest,kotlin.Unit> block);
+    method @androidx.compose.ui.test.ExperimentalTestApi public static void waitUntilAtLeastOneExists(androidx.compose.ui.test.ComposeUiTest, androidx.compose.ui.test.SemanticsMatcher matcher, optional long timeoutMillis);
+    method @androidx.compose.ui.test.ExperimentalTestApi public static void waitUntilDoesNotExist(androidx.compose.ui.test.ComposeUiTest, androidx.compose.ui.test.SemanticsMatcher matcher, optional long timeoutMillis);
+    method @androidx.compose.ui.test.ExperimentalTestApi public static void waitUntilExactlyOneExists(androidx.compose.ui.test.ComposeUiTest, androidx.compose.ui.test.SemanticsMatcher matcher, optional long timeoutMillis);
+    method @androidx.compose.ui.test.ExperimentalTestApi public static void waitUntilNodeCount(androidx.compose.ui.test.ComposeUiTest, androidx.compose.ui.test.SemanticsMatcher matcher, int count, optional long timeoutMillis);
+  }
+
+  public final class ComposeUiTest_androidKt {
+    method @androidx.compose.ui.test.ExperimentalTestApi public static inline <A extends androidx.activity.ComponentActivity> androidx.compose.ui.test.AndroidComposeUiTestEnvironment<A> AndroidComposeUiTestEnvironment(optional kotlin.coroutines.CoroutineContext effectContext, kotlin.jvm.functions.Function0<? extends A> activityProvider);
+    method @androidx.compose.ui.test.ExperimentalTestApi public static <A extends androidx.activity.ComponentActivity> void runAndroidComposeUiTest(Class<A> activityClass, optional kotlin.coroutines.CoroutineContext effectContext, kotlin.jvm.functions.Function1<? super androidx.compose.ui.test.AndroidComposeUiTest<A>,kotlin.Unit> block);
+    method @androidx.compose.ui.test.ExperimentalTestApi public static inline <reified A extends androidx.activity.ComponentActivity> void runAndroidComposeUiTest(optional kotlin.coroutines.CoroutineContext effectContext, kotlin.jvm.functions.Function1<? super androidx.compose.ui.test.AndroidComposeUiTest<A>,kotlin.Unit> block);
+    method @androidx.compose.ui.test.ExperimentalTestApi public static void runComposeUiTest(kotlin.coroutines.CoroutineContext effectContext, kotlin.jvm.functions.Function1<? super androidx.compose.ui.test.ComposeUiTest,kotlin.Unit> block);
+    method @androidx.compose.ui.test.ExperimentalTestApi public static void runEmptyComposeUiTest(kotlin.jvm.functions.Function1<? super androidx.compose.ui.test.ComposeUiTest,kotlin.Unit> block);
+  }
+
+  @androidx.compose.ui.test.ExperimentalTestApi public final class StateRestorationTester {
+    ctor public StateRestorationTester(androidx.compose.ui.test.ComposeUiTest composeTest);
+    method public void emulateSaveAndRestore();
+    method public void setContent(kotlin.jvm.functions.Function0<kotlin.Unit> composable);
+  }
+
+}
+
 package androidx.compose.ui.test.junit4 {
 
   public final class AndroidComposeTestRule<R extends org.junit.rules.TestRule, A extends androidx.activity.ComponentActivity> implements androidx.compose.ui.test.junit4.ComposeContentTestRule {
+    ctor @androidx.compose.ui.test.ExperimentalTestApi public AndroidComposeTestRule(R activityRule, optional kotlin.coroutines.CoroutineContext effectContext, kotlin.jvm.functions.Function1<? super R,? extends A> activityProvider);
     ctor public AndroidComposeTestRule(R activityRule, kotlin.jvm.functions.Function1<? super R,? extends A> activityProvider);
     method public org.junit.runners.model.Statement apply(org.junit.runners.model.Statement base, org.junit.runner.Description description);
     method public suspend Object? awaitIdle(kotlin.coroutines.Continuation<? super kotlin.Unit>);
@@ -18,6 +74,10 @@
     method public void unregisterIdlingResource(androidx.compose.ui.test.IdlingResource idlingResource);
     method public void waitForIdle();
     method public void waitUntil(long timeoutMillis, kotlin.jvm.functions.Function0<java.lang.Boolean> condition);
+    method @androidx.compose.ui.test.ExperimentalTestApi public void waitUntilAtLeastOneExists(androidx.compose.ui.test.SemanticsMatcher matcher, long timeoutMillis);
+    method @androidx.compose.ui.test.ExperimentalTestApi public void waitUntilDoesNotExist(androidx.compose.ui.test.SemanticsMatcher matcher, long timeoutMillis);
+    method @androidx.compose.ui.test.ExperimentalTestApi public void waitUntilExactlyOneExists(androidx.compose.ui.test.SemanticsMatcher matcher, long timeoutMillis);
+    method @androidx.compose.ui.test.ExperimentalTestApi public void waitUntilNodeCount(androidx.compose.ui.test.SemanticsMatcher matcher, int count, long timeoutMillis);
     property public final A activity;
     property public final R activityRule;
     property public androidx.compose.ui.unit.Density density;
@@ -32,8 +92,12 @@
   public final class AndroidComposeTestRule_androidKt {
     method public static inline <reified A extends androidx.activity.ComponentActivity> androidx.compose.ui.test.junit4.AndroidComposeTestRule<androidx.test.ext.junit.rules.ActivityScenarioRule<A>,A> createAndroidComposeRule();
     method public static <A extends androidx.activity.ComponentActivity> androidx.compose.ui.test.junit4.AndroidComposeTestRule<androidx.test.ext.junit.rules.ActivityScenarioRule<A>,A> createAndroidComposeRule(Class<A> activityClass);
+    method @androidx.compose.ui.test.ExperimentalTestApi public static <A extends androidx.activity.ComponentActivity> androidx.compose.ui.test.junit4.AndroidComposeTestRule<androidx.test.ext.junit.rules.ActivityScenarioRule<A>,A> createAndroidComposeRule(Class<A> activityClass, optional kotlin.coroutines.CoroutineContext effectContext);
+    method @androidx.compose.ui.test.ExperimentalTestApi public static inline <reified A extends androidx.activity.ComponentActivity> androidx.compose.ui.test.junit4.AndroidComposeTestRule<androidx.test.ext.junit.rules.ActivityScenarioRule<A>,A> createAndroidComposeRule(optional kotlin.coroutines.CoroutineContext effectContext);
     method public static androidx.compose.ui.test.junit4.ComposeContentTestRule createComposeRule();
+    method @androidx.compose.ui.test.ExperimentalTestApi public static androidx.compose.ui.test.junit4.ComposeContentTestRule createComposeRule(kotlin.coroutines.CoroutineContext effectContext);
     method public static androidx.compose.ui.test.junit4.ComposeTestRule createEmptyComposeRule();
+    method @androidx.compose.ui.test.ExperimentalTestApi public static androidx.compose.ui.test.junit4.ComposeTestRule createEmptyComposeRule(optional kotlin.coroutines.CoroutineContext effectContext);
   }
 
   @kotlin.jvm.JvmDefaultWithCompatibility public interface ComposeContentTestRule extends androidx.compose.ui.test.junit4.ComposeTestRule {
@@ -50,6 +114,10 @@
     method public void unregisterIdlingResource(androidx.compose.ui.test.IdlingResource idlingResource);
     method public void waitForIdle();
     method public void waitUntil(optional long timeoutMillis, kotlin.jvm.functions.Function0<java.lang.Boolean> condition);
+    method @androidx.compose.ui.test.ExperimentalTestApi public void waitUntilAtLeastOneExists(androidx.compose.ui.test.SemanticsMatcher matcher, optional long timeoutMillis);
+    method @androidx.compose.ui.test.ExperimentalTestApi public void waitUntilDoesNotExist(androidx.compose.ui.test.SemanticsMatcher matcher, optional long timeoutMillis);
+    method @androidx.compose.ui.test.ExperimentalTestApi public void waitUntilExactlyOneExists(androidx.compose.ui.test.SemanticsMatcher matcher, optional long timeoutMillis);
+    method @androidx.compose.ui.test.ExperimentalTestApi public void waitUntilNodeCount(androidx.compose.ui.test.SemanticsMatcher matcher, int count, optional long timeoutMillis);
     property public abstract androidx.compose.ui.unit.Density density;
     property public abstract androidx.compose.ui.test.MainTestClock mainClock;
   }
diff --git a/compose/ui/ui-test-junit4/api/res-1.5.0-beta01.txt b/compose/ui/ui-test-junit4/api/res-1.5.0-beta01.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/compose/ui/ui-test-junit4/api/res-1.5.0-beta01.txt
diff --git a/compose/ui/ui-test-junit4/api/public_plus_experimental_current.txt b/compose/ui/ui-test-junit4/api/restricted_1.5.0-beta01.txt
similarity index 100%
copy from compose/ui/ui-test-junit4/api/public_plus_experimental_current.txt
copy to compose/ui/ui-test-junit4/api/restricted_1.5.0-beta01.txt
diff --git a/compose/ui/ui-test-junit4/api/restricted_current.ignore b/compose/ui/ui-test-junit4/api/restricted_current.ignore
new file mode 100644
index 0000000..2f4719a
--- /dev/null
+++ b/compose/ui/ui-test-junit4/api/restricted_current.ignore
@@ -0,0 +1,9 @@
+// Baseline format: 1.0
+AddedAbstractMethod: androidx.compose.ui.test.junit4.ComposeTestRule#waitUntilAtLeastOneExists(androidx.compose.ui.test.SemanticsMatcher, long):
+    Added method androidx.compose.ui.test.junit4.ComposeTestRule.waitUntilAtLeastOneExists(androidx.compose.ui.test.SemanticsMatcher,long)
+AddedAbstractMethod: androidx.compose.ui.test.junit4.ComposeTestRule#waitUntilDoesNotExist(androidx.compose.ui.test.SemanticsMatcher, long):
+    Added method androidx.compose.ui.test.junit4.ComposeTestRule.waitUntilDoesNotExist(androidx.compose.ui.test.SemanticsMatcher,long)
+AddedAbstractMethod: androidx.compose.ui.test.junit4.ComposeTestRule#waitUntilExactlyOneExists(androidx.compose.ui.test.SemanticsMatcher, long):
+    Added method androidx.compose.ui.test.junit4.ComposeTestRule.waitUntilExactlyOneExists(androidx.compose.ui.test.SemanticsMatcher,long)
+AddedAbstractMethod: androidx.compose.ui.test.junit4.ComposeTestRule#waitUntilNodeCount(androidx.compose.ui.test.SemanticsMatcher, int, long):
+    Added method androidx.compose.ui.test.junit4.ComposeTestRule.waitUntilNodeCount(androidx.compose.ui.test.SemanticsMatcher,int,long)
diff --git a/compose/ui/ui-test-junit4/api/restricted_current.txt b/compose/ui/ui-test-junit4/api/restricted_current.txt
index 2d6528b..8f10178 100644
--- a/compose/ui/ui-test-junit4/api/restricted_current.txt
+++ b/compose/ui/ui-test-junit4/api/restricted_current.txt
@@ -1,7 +1,63 @@
 // Signature format: 4.0
+package androidx.compose.ui.test {
+
+  @androidx.compose.ui.test.ExperimentalTestApi public sealed interface AndroidComposeUiTest<A extends androidx.activity.ComponentActivity> extends androidx.compose.ui.test.ComposeUiTest {
+    method public A? getActivity();
+    property public abstract A? activity;
+  }
+
+  @androidx.compose.ui.test.ExperimentalTestApi public abstract class AndroidComposeUiTestEnvironment<A extends androidx.activity.ComponentActivity> {
+    ctor public AndroidComposeUiTestEnvironment(optional kotlin.coroutines.CoroutineContext effectContext);
+    method protected abstract A? getActivity();
+    method public final androidx.compose.ui.test.AndroidComposeUiTest<A> getTest();
+    method public final <R> R runTest(kotlin.jvm.functions.Function1<? super androidx.compose.ui.test.AndroidComposeUiTest<A>,? extends R> block);
+    property protected abstract A? activity;
+    property public final androidx.compose.ui.test.AndroidComposeUiTest<A> test;
+  }
+
+  @androidx.compose.ui.test.ExperimentalTestApi public sealed interface ComposeUiTest extends androidx.compose.ui.test.SemanticsNodeInteractionsProvider {
+    method public suspend Object? awaitIdle(kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    method public androidx.compose.ui.unit.Density getDensity();
+    method public androidx.compose.ui.test.MainTestClock getMainClock();
+    method public void registerIdlingResource(androidx.compose.ui.test.IdlingResource idlingResource);
+    method public <T> T runOnIdle(kotlin.jvm.functions.Function0<? extends T> action);
+    method public <T> T runOnUiThread(kotlin.jvm.functions.Function0<? extends T> action);
+    method public void setContent(kotlin.jvm.functions.Function0<kotlin.Unit> composable);
+    method public void unregisterIdlingResource(androidx.compose.ui.test.IdlingResource idlingResource);
+    method public void waitForIdle();
+    method public void waitUntil(long timeoutMillis, kotlin.jvm.functions.Function0<java.lang.Boolean> condition);
+    property public abstract androidx.compose.ui.unit.Density density;
+    property public abstract androidx.compose.ui.test.MainTestClock mainClock;
+  }
+
+  public final class ComposeUiTestKt {
+    method @androidx.compose.ui.test.ExperimentalTestApi public static void runComposeUiTest(optional kotlin.coroutines.CoroutineContext effectContext, kotlin.jvm.functions.Function1<? super androidx.compose.ui.test.ComposeUiTest,kotlin.Unit> block);
+    method @androidx.compose.ui.test.ExperimentalTestApi public static void waitUntilAtLeastOneExists(androidx.compose.ui.test.ComposeUiTest, androidx.compose.ui.test.SemanticsMatcher matcher, optional long timeoutMillis);
+    method @androidx.compose.ui.test.ExperimentalTestApi public static void waitUntilDoesNotExist(androidx.compose.ui.test.ComposeUiTest, androidx.compose.ui.test.SemanticsMatcher matcher, optional long timeoutMillis);
+    method @androidx.compose.ui.test.ExperimentalTestApi public static void waitUntilExactlyOneExists(androidx.compose.ui.test.ComposeUiTest, androidx.compose.ui.test.SemanticsMatcher matcher, optional long timeoutMillis);
+    method @androidx.compose.ui.test.ExperimentalTestApi public static void waitUntilNodeCount(androidx.compose.ui.test.ComposeUiTest, androidx.compose.ui.test.SemanticsMatcher matcher, int count, optional long timeoutMillis);
+  }
+
+  public final class ComposeUiTest_androidKt {
+    method @androidx.compose.ui.test.ExperimentalTestApi public static inline <A extends androidx.activity.ComponentActivity> androidx.compose.ui.test.AndroidComposeUiTestEnvironment<A> AndroidComposeUiTestEnvironment(optional kotlin.coroutines.CoroutineContext effectContext, kotlin.jvm.functions.Function0<? extends A> activityProvider);
+    method @androidx.compose.ui.test.ExperimentalTestApi public static <A extends androidx.activity.ComponentActivity> void runAndroidComposeUiTest(Class<A> activityClass, optional kotlin.coroutines.CoroutineContext effectContext, kotlin.jvm.functions.Function1<? super androidx.compose.ui.test.AndroidComposeUiTest<A>,kotlin.Unit> block);
+    method @androidx.compose.ui.test.ExperimentalTestApi public static inline <reified A extends androidx.activity.ComponentActivity> void runAndroidComposeUiTest(optional kotlin.coroutines.CoroutineContext effectContext, kotlin.jvm.functions.Function1<? super androidx.compose.ui.test.AndroidComposeUiTest<A>,kotlin.Unit> block);
+    method @androidx.compose.ui.test.ExperimentalTestApi public static void runComposeUiTest(kotlin.coroutines.CoroutineContext effectContext, kotlin.jvm.functions.Function1<? super androidx.compose.ui.test.ComposeUiTest,kotlin.Unit> block);
+    method @androidx.compose.ui.test.ExperimentalTestApi public static void runEmptyComposeUiTest(kotlin.jvm.functions.Function1<? super androidx.compose.ui.test.ComposeUiTest,kotlin.Unit> block);
+  }
+
+  @androidx.compose.ui.test.ExperimentalTestApi public final class StateRestorationTester {
+    ctor public StateRestorationTester(androidx.compose.ui.test.ComposeUiTest composeTest);
+    method public void emulateSaveAndRestore();
+    method public void setContent(kotlin.jvm.functions.Function0<kotlin.Unit> composable);
+  }
+
+}
+
 package androidx.compose.ui.test.junit4 {
 
   public final class AndroidComposeTestRule<R extends org.junit.rules.TestRule, A extends androidx.activity.ComponentActivity> implements androidx.compose.ui.test.junit4.ComposeContentTestRule {
+    ctor @androidx.compose.ui.test.ExperimentalTestApi public AndroidComposeTestRule(R activityRule, optional kotlin.coroutines.CoroutineContext effectContext, kotlin.jvm.functions.Function1<? super R,? extends A> activityProvider);
     ctor public AndroidComposeTestRule(R activityRule, kotlin.jvm.functions.Function1<? super R,? extends A> activityProvider);
     method public org.junit.runners.model.Statement apply(org.junit.runners.model.Statement base, org.junit.runner.Description description);
     method public suspend Object? awaitIdle(kotlin.coroutines.Continuation<? super kotlin.Unit>);
@@ -18,6 +74,10 @@
     method public void unregisterIdlingResource(androidx.compose.ui.test.IdlingResource idlingResource);
     method public void waitForIdle();
     method public void waitUntil(long timeoutMillis, kotlin.jvm.functions.Function0<java.lang.Boolean> condition);
+    method @androidx.compose.ui.test.ExperimentalTestApi public void waitUntilAtLeastOneExists(androidx.compose.ui.test.SemanticsMatcher matcher, long timeoutMillis);
+    method @androidx.compose.ui.test.ExperimentalTestApi public void waitUntilDoesNotExist(androidx.compose.ui.test.SemanticsMatcher matcher, long timeoutMillis);
+    method @androidx.compose.ui.test.ExperimentalTestApi public void waitUntilExactlyOneExists(androidx.compose.ui.test.SemanticsMatcher matcher, long timeoutMillis);
+    method @androidx.compose.ui.test.ExperimentalTestApi public void waitUntilNodeCount(androidx.compose.ui.test.SemanticsMatcher matcher, int count, long timeoutMillis);
     property public final A activity;
     property public final R activityRule;
     property public androidx.compose.ui.unit.Density density;
@@ -32,8 +92,12 @@
   public final class AndroidComposeTestRule_androidKt {
     method public static inline <reified A extends androidx.activity.ComponentActivity> androidx.compose.ui.test.junit4.AndroidComposeTestRule<androidx.test.ext.junit.rules.ActivityScenarioRule<A>,A> createAndroidComposeRule();
     method public static <A extends androidx.activity.ComponentActivity> androidx.compose.ui.test.junit4.AndroidComposeTestRule<androidx.test.ext.junit.rules.ActivityScenarioRule<A>,A> createAndroidComposeRule(Class<A> activityClass);
+    method @androidx.compose.ui.test.ExperimentalTestApi public static <A extends androidx.activity.ComponentActivity> androidx.compose.ui.test.junit4.AndroidComposeTestRule<androidx.test.ext.junit.rules.ActivityScenarioRule<A>,A> createAndroidComposeRule(Class<A> activityClass, optional kotlin.coroutines.CoroutineContext effectContext);
+    method @androidx.compose.ui.test.ExperimentalTestApi public static inline <reified A extends androidx.activity.ComponentActivity> androidx.compose.ui.test.junit4.AndroidComposeTestRule<androidx.test.ext.junit.rules.ActivityScenarioRule<A>,A> createAndroidComposeRule(optional kotlin.coroutines.CoroutineContext effectContext);
     method public static androidx.compose.ui.test.junit4.ComposeContentTestRule createComposeRule();
+    method @androidx.compose.ui.test.ExperimentalTestApi public static androidx.compose.ui.test.junit4.ComposeContentTestRule createComposeRule(kotlin.coroutines.CoroutineContext effectContext);
     method public static androidx.compose.ui.test.junit4.ComposeTestRule createEmptyComposeRule();
+    method @androidx.compose.ui.test.ExperimentalTestApi public static androidx.compose.ui.test.junit4.ComposeTestRule createEmptyComposeRule(optional kotlin.coroutines.CoroutineContext effectContext);
   }
 
   @kotlin.jvm.JvmDefaultWithCompatibility public interface ComposeContentTestRule extends androidx.compose.ui.test.junit4.ComposeTestRule {
@@ -50,6 +114,10 @@
     method public void unregisterIdlingResource(androidx.compose.ui.test.IdlingResource idlingResource);
     method public void waitForIdle();
     method public void waitUntil(optional long timeoutMillis, kotlin.jvm.functions.Function0<java.lang.Boolean> condition);
+    method @androidx.compose.ui.test.ExperimentalTestApi public void waitUntilAtLeastOneExists(androidx.compose.ui.test.SemanticsMatcher matcher, optional long timeoutMillis);
+    method @androidx.compose.ui.test.ExperimentalTestApi public void waitUntilDoesNotExist(androidx.compose.ui.test.SemanticsMatcher matcher, optional long timeoutMillis);
+    method @androidx.compose.ui.test.ExperimentalTestApi public void waitUntilExactlyOneExists(androidx.compose.ui.test.SemanticsMatcher matcher, optional long timeoutMillis);
+    method @androidx.compose.ui.test.ExperimentalTestApi public void waitUntilNodeCount(androidx.compose.ui.test.SemanticsMatcher matcher, int count, optional long timeoutMillis);
     property public abstract androidx.compose.ui.unit.Density density;
     property public abstract androidx.compose.ui.test.MainTestClock mainClock;
   }
diff --git a/compose/ui/ui-test-junit4/build.gradle b/compose/ui/ui-test-junit4/build.gradle
index 5db2d70..d673d80 100644
--- a/compose/ui/ui-test-junit4/build.gradle
+++ b/compose/ui/ui-test-junit4/build.gradle
@@ -61,15 +61,15 @@
             dependencies {
                 api("androidx.activity:activity:1.2.1")
                 implementation "androidx.activity:activity-compose:1.3.0"
-                api(libs.testExtJunit)
-                implementation("androidx.annotation:annotation:1.1.0")
+                api("androidx.test.ext:junit:1.1.5")
+		implementation("androidx.annotation:annotation:1.1.0")
 
                 implementation(project(":compose:runtime:runtime-saveable"))
                 implementation("androidx.lifecycle:lifecycle-common:2.5.1")
                 implementation("androidx.lifecycle:lifecycle-runtime:2.5.1")
                 implementation("androidx.test:core:1.5.0")
-                implementation(libs.testMonitor)
-                implementation("androidx.test.espresso:espresso-core:3.3.0")
+                implementation("androidx.test:monitor:1.6.1")
+		implementation("androidx.test.espresso:espresso-core:3.3.0")
                 implementation("androidx.test.espresso:espresso-idling-resource:3.5.0")
             }
         }
diff --git a/compose/ui/ui-test-manifest/api/public_plus_experimental_current.txt b/compose/ui/ui-test-manifest/api/1.5.0-beta01.txt
similarity index 100%
rename from compose/ui/ui-test-manifest/api/public_plus_experimental_current.txt
rename to compose/ui/ui-test-manifest/api/1.5.0-beta01.txt
diff --git a/compose/ui/ui-test-manifest/api/res-1.5.0-beta01.txt b/compose/ui/ui-test-manifest/api/res-1.5.0-beta01.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/compose/ui/ui-test-manifest/api/res-1.5.0-beta01.txt
diff --git a/compose/ui/ui-test-manifest/api/public_plus_experimental_current.txt b/compose/ui/ui-test-manifest/api/restricted_1.5.0-beta01.txt
similarity index 100%
copy from compose/ui/ui-test-manifest/api/public_plus_experimental_current.txt
copy to compose/ui/ui-test-manifest/api/restricted_1.5.0-beta01.txt
diff --git a/compose/ui/ui-test/api/public_plus_experimental_current.txt b/compose/ui/ui-test/api/1.5.0-beta01.txt
similarity index 100%
rename from compose/ui/ui-test/api/public_plus_experimental_current.txt
rename to compose/ui/ui-test/api/1.5.0-beta01.txt
diff --git a/compose/ui/ui-test/api/current.txt b/compose/ui/ui-test/api/current.txt
index 05d9e4e..1060ce5 100644
--- a/compose/ui/ui-test/api/current.txt
+++ b/compose/ui/ui-test/api/current.txt
@@ -4,7 +4,10 @@
   public final class ActionsKt {
     method public static androidx.compose.ui.test.SemanticsNodeInteraction performClick(androidx.compose.ui.test.SemanticsNodeInteraction);
     method @Deprecated public static androidx.compose.ui.test.SemanticsNodeInteraction performGesture(androidx.compose.ui.test.SemanticsNodeInteraction, kotlin.jvm.functions.Function1<? super androidx.compose.ui.test.GestureScope,kotlin.Unit> block);
+    method @androidx.compose.ui.test.ExperimentalTestApi public static androidx.compose.ui.test.SemanticsNodeInteraction performKeyInput(androidx.compose.ui.test.SemanticsNodeInteraction, kotlin.jvm.functions.Function1<? super androidx.compose.ui.test.KeyInjectionScope,kotlin.Unit> block);
+    method @androidx.compose.ui.test.ExperimentalTestApi public static androidx.compose.ui.test.SemanticsNodeInteraction performMouseInput(androidx.compose.ui.test.SemanticsNodeInteraction, kotlin.jvm.functions.Function1<? super androidx.compose.ui.test.MouseInjectionScope,kotlin.Unit> block);
     method public static androidx.compose.ui.test.SemanticsNodeInteraction performMultiModalInput(androidx.compose.ui.test.SemanticsNodeInteraction, kotlin.jvm.functions.Function1<? super androidx.compose.ui.test.MultiModalInjectionScope,kotlin.Unit> block);
+    method @androidx.compose.ui.test.ExperimentalTestApi public static androidx.compose.ui.test.SemanticsNodeInteraction performRotaryScrollInput(androidx.compose.ui.test.SemanticsNodeInteraction, kotlin.jvm.functions.Function1<? super androidx.compose.ui.test.RotaryInjectionScope,kotlin.Unit> block);
     method public static androidx.compose.ui.test.SemanticsNodeInteraction performScrollTo(androidx.compose.ui.test.SemanticsNodeInteraction);
     method public static androidx.compose.ui.test.SemanticsNodeInteraction performScrollToIndex(androidx.compose.ui.test.SemanticsNodeInteraction, int index);
     method public static androidx.compose.ui.test.SemanticsNodeInteraction performScrollToKey(androidx.compose.ui.test.SemanticsNodeInteraction, Object key);
@@ -67,6 +70,9 @@
     ctor public ComposeTimeoutException(String? message);
   }
 
+  @kotlin.RequiresOptIn(message="This testing API is experimental and is likely to be changed or removed entirely") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface ExperimentalTestApi {
+  }
+
   public final class FiltersKt {
     method public static androidx.compose.ui.test.SemanticsMatcher hasAnyAncestor(androidx.compose.ui.test.SemanticsMatcher matcher);
     method public static androidx.compose.ui.test.SemanticsMatcher hasAnyChild(androidx.compose.ui.test.SemanticsMatcher matcher);
@@ -127,6 +133,7 @@
   }
 
   public final class GestureScopeKt {
+    method @Deprecated @androidx.compose.ui.test.ExperimentalTestApi public static void advanceEventTime(androidx.compose.ui.test.GestureScope, long durationMillis);
     method @Deprecated public static void cancel(androidx.compose.ui.test.GestureScope);
     method @Deprecated public static void click(androidx.compose.ui.test.GestureScope, optional long position);
     method @Deprecated public static void doubleClick(androidx.compose.ui.test.GestureScope, optional long position, optional long delayMillis);
@@ -161,9 +168,13 @@
     method @Deprecated public static void pinch(androidx.compose.ui.test.GestureScope, long start0, long end0, long start1, long end1, optional long durationMillis);
     method @Deprecated public static void swipe(androidx.compose.ui.test.GestureScope, long start, long end, optional long durationMillis);
     method @Deprecated public static void swipeDown(androidx.compose.ui.test.GestureScope);
+    method @Deprecated @androidx.compose.ui.test.ExperimentalTestApi public static void swipeDown(androidx.compose.ui.test.GestureScope, optional float startY, optional float endY, optional long durationMillis);
     method @Deprecated public static void swipeLeft(androidx.compose.ui.test.GestureScope);
+    method @Deprecated @androidx.compose.ui.test.ExperimentalTestApi public static void swipeLeft(androidx.compose.ui.test.GestureScope, optional float startX, optional float endX, optional long durationMillis);
     method @Deprecated public static void swipeRight(androidx.compose.ui.test.GestureScope);
+    method @Deprecated @androidx.compose.ui.test.ExperimentalTestApi public static void swipeRight(androidx.compose.ui.test.GestureScope, optional float startX, optional float endX, optional long durationMillis);
     method @Deprecated public static void swipeUp(androidx.compose.ui.test.GestureScope);
+    method @Deprecated @androidx.compose.ui.test.ExperimentalTestApi public static void swipeUp(androidx.compose.ui.test.GestureScope, optional float startY, optional float endY, optional long durationMillis);
     method @Deprecated public static void swipeWithVelocity(androidx.compose.ui.test.GestureScope, long start, long end, float endVelocity, optional long durationMillis);
     method @Deprecated public static void up(androidx.compose.ui.test.GestureScope, optional int pointerId);
   }
@@ -219,6 +230,9 @@
     property public default int width;
   }
 
+  @kotlin.RequiresOptIn(message="This is internal API for Compose modules that may change frequently and without warning.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface InternalTestApi {
+  }
+
   @kotlin.jvm.JvmDefaultWithCompatibility public interface KeyInjectionScope extends androidx.compose.ui.test.InjectionScope {
     method public boolean isCapsLockOn();
     method public boolean isKeyDown(long key);
@@ -259,7 +273,54 @@
     property public abstract long currentTime;
   }
 
+  @androidx.compose.ui.test.ExperimentalTestApi @kotlin.jvm.JvmInline public final value class MouseButton {
+    ctor public MouseButton(int buttonId);
+    method public int getButtonId();
+    property public final int buttonId;
+    field public static final androidx.compose.ui.test.MouseButton.Companion Companion;
+  }
+
+  @androidx.compose.ui.test.ExperimentalTestApi public static final class MouseButton.Companion {
+    method public int getPrimary();
+    method public int getSecondary();
+    method public int getTertiary();
+    property public final int Primary;
+    property public final int Secondary;
+    property public final int Tertiary;
+  }
+
+  @androidx.compose.ui.test.ExperimentalTestApi public interface MouseInjectionScope extends androidx.compose.ui.test.InjectionScope {
+    method public void cancel(optional long delayMillis);
+    method public void enter(optional long position, optional long delayMillis);
+    method public void exit(optional long position, optional long delayMillis);
+    method public long getCurrentPosition();
+    method public default void moveBy(long delta, optional long delayMillis);
+    method public void moveTo(long position, optional long delayMillis);
+    method public void press(optional int button);
+    method public void release(optional int button);
+    method public void scroll(float delta, optional int scrollWheel);
+    method public default void updatePointerBy(long delta);
+    method public void updatePointerTo(long position);
+    property public abstract long currentPosition;
+  }
+
+  public final class MouseInjectionScopeKt {
+    method @androidx.compose.ui.test.ExperimentalTestApi public static void animateAlong(androidx.compose.ui.test.MouseInjectionScope, kotlin.jvm.functions.Function1<? super java.lang.Long,androidx.compose.ui.geometry.Offset> curve, optional long durationMillis);
+    method @androidx.compose.ui.test.ExperimentalTestApi public static void animateBy(androidx.compose.ui.test.MouseInjectionScope, long delta, optional long durationMillis);
+    method @androidx.compose.ui.test.ExperimentalTestApi public static void animateTo(androidx.compose.ui.test.MouseInjectionScope, long position, optional long durationMillis);
+    method @androidx.compose.ui.test.ExperimentalTestApi public static void click(androidx.compose.ui.test.MouseInjectionScope, optional long position);
+    method @androidx.compose.ui.test.ExperimentalTestApi public static void doubleClick(androidx.compose.ui.test.MouseInjectionScope, optional long position);
+    method @androidx.compose.ui.test.ExperimentalTestApi public static void dragAndDrop(androidx.compose.ui.test.MouseInjectionScope, long start, long end, optional long durationMillis);
+    method @androidx.compose.ui.test.ExperimentalTestApi public static void longClick(androidx.compose.ui.test.MouseInjectionScope, optional long position);
+    method @androidx.compose.ui.test.ExperimentalTestApi public static void rightClick(androidx.compose.ui.test.MouseInjectionScope, optional long position);
+    method @androidx.compose.ui.test.ExperimentalTestApi public static void smoothScroll(androidx.compose.ui.test.MouseInjectionScope, float scrollAmount, optional long durationMillis, optional int scrollWheel);
+    method @androidx.compose.ui.test.ExperimentalTestApi public static void tripleClick(androidx.compose.ui.test.MouseInjectionScope, optional long position);
+  }
+
   public sealed interface MultiModalInjectionScope extends androidx.compose.ui.test.InjectionScope {
+    method @androidx.compose.ui.test.ExperimentalTestApi public void key(kotlin.jvm.functions.Function1<? super androidx.compose.ui.test.KeyInjectionScope,kotlin.Unit> block);
+    method @androidx.compose.ui.test.ExperimentalTestApi public void mouse(kotlin.jvm.functions.Function1<? super androidx.compose.ui.test.MouseInjectionScope,kotlin.Unit> block);
+    method @androidx.compose.ui.test.ExperimentalTestApi public void rotary(kotlin.jvm.functions.Function1<? super androidx.compose.ui.test.RotaryInjectionScope,kotlin.Unit> block);
     method public void touch(kotlin.jvm.functions.Function1<? super androidx.compose.ui.test.TouchInjectionScope,kotlin.Unit> block);
   }
 
@@ -270,6 +331,24 @@
     method public static String printToString(androidx.compose.ui.test.SemanticsNodeInteractionCollection, optional int maxDepth);
   }
 
+  @androidx.compose.ui.test.ExperimentalTestApi public interface RotaryInjectionScope extends androidx.compose.ui.test.InjectionScope {
+    method public void rotateToScrollHorizontally(float horizontalScrollPixels);
+    method public void rotateToScrollVertically(float verticalScrollPixels);
+  }
+
+  @androidx.compose.ui.test.ExperimentalTestApi @kotlin.jvm.JvmInline public final value class ScrollWheel {
+    method public int getValue();
+    property public final int value;
+    field public static final androidx.compose.ui.test.ScrollWheel.Companion Companion;
+  }
+
+  @androidx.compose.ui.test.ExperimentalTestApi public static final class ScrollWheel.Companion {
+    method public int getHorizontal();
+    method public int getVertical();
+    property public final int Horizontal;
+    property public final int Vertical;
+  }
+
   public final class SelectionResult {
     ctor public SelectionResult(java.util.List<androidx.compose.ui.semantics.SemanticsNode> selectedNodes, optional String? customErrorOnNoMatch);
     method public String? getCustomErrorOnNoMatch();
@@ -340,10 +419,37 @@
   public final class TestContext {
   }
 
+  @androidx.compose.ui.test.ExperimentalTestApi @kotlinx.coroutines.ExperimentalCoroutinesApi public final class TestMonotonicFrameClock implements androidx.compose.runtime.MonotonicFrameClock {
+    ctor public TestMonotonicFrameClock(kotlinx.coroutines.CoroutineScope coroutineScope, optional long frameDelayNanos, optional kotlin.jvm.functions.Function1<? super java.lang.Long,kotlin.Unit> onPerformTraversals);
+    method @androidx.compose.ui.test.ExperimentalTestApi public kotlin.coroutines.ContinuationInterceptor getContinuationInterceptor();
+    method public long getFrameDelayNanos();
+    method public boolean getHasAwaiters();
+    method public suspend <R> Object? withFrameNanos(kotlin.jvm.functions.Function1<? super java.lang.Long,? extends R> onFrame, kotlin.coroutines.Continuation<? super R>);
+    property @androidx.compose.ui.test.ExperimentalTestApi public final kotlin.coroutines.ContinuationInterceptor continuationInterceptor;
+    property public final long frameDelayNanos;
+    property public final boolean hasAwaiters;
+  }
+
+  public final class TestMonotonicFrameClock_jvmKt {
+    method @androidx.compose.ui.test.ExperimentalTestApi public static long getFrameDelayMillis(androidx.compose.ui.test.TestMonotonicFrameClock);
+  }
+
+  @androidx.compose.ui.test.InternalTestApi public interface TestOwner {
+    method public androidx.compose.ui.test.MainTestClock getMainClock();
+    method public java.util.Set<androidx.compose.ui.node.RootForTest> getRoots(boolean atLeastOneRootExpected);
+    method public <T> T runOnUiThread(kotlin.jvm.functions.Function0<? extends T> action);
+    property public abstract androidx.compose.ui.test.MainTestClock mainClock;
+  }
+
+  public final class TestOwnerKt {
+    method @androidx.compose.ui.test.InternalTestApi public static androidx.compose.ui.test.TestContext createTestContext(androidx.compose.ui.test.TestOwner owner);
+  }
+
   public final class TextActionsKt {
     method public static void performImeAction(androidx.compose.ui.test.SemanticsNodeInteraction);
     method public static void performTextClearance(androidx.compose.ui.test.SemanticsNodeInteraction);
     method public static void performTextInput(androidx.compose.ui.test.SemanticsNodeInteraction, String text);
+    method @androidx.compose.ui.test.ExperimentalTestApi public static void performTextInputSelection(androidx.compose.ui.test.SemanticsNodeInteraction, long selection);
     method public static void performTextReplacement(androidx.compose.ui.test.SemanticsNodeInteraction, String text);
   }
 
@@ -357,6 +463,8 @@
     method public default void moveBy(long delta, optional long delayMillis);
     method public default void moveTo(int pointerId, long position, optional long delayMillis);
     method public default void moveTo(long position, optional long delayMillis);
+    method @androidx.compose.ui.test.ExperimentalTestApi public default void moveWithHistory(java.util.List<java.lang.Long> relativeHistoricalTimes, java.util.List<androidx.compose.ui.geometry.Offset> historicalCoordinates, optional long delayMillis);
+    method @androidx.compose.ui.test.ExperimentalTestApi public void moveWithHistoryMultiPointer(java.util.List<java.lang.Long> relativeHistoricalTimes, java.util.List<? extends java.util.List<androidx.compose.ui.geometry.Offset>> historicalCoordinates, optional long delayMillis);
     method public void up(optional int pointerId);
     method public default void updatePointerBy(int pointerId, long delta);
     method public void updatePointerTo(int pointerId, long position);
@@ -366,6 +474,7 @@
     method public static void click(androidx.compose.ui.test.TouchInjectionScope, optional long position);
     method public static void doubleClick(androidx.compose.ui.test.TouchInjectionScope, optional long position, optional long delayMillis);
     method public static void longClick(androidx.compose.ui.test.TouchInjectionScope, optional long position, optional long durationMillis);
+    method @androidx.compose.ui.test.ExperimentalTestApi public static void multiTouchSwipe(androidx.compose.ui.test.TouchInjectionScope, java.util.List<? extends kotlin.jvm.functions.Function1<? super java.lang.Long,androidx.compose.ui.geometry.Offset>> curves, long durationMillis, optional java.util.List<java.lang.Long> keyTimes);
     method public static void pinch(androidx.compose.ui.test.TouchInjectionScope, long start0, long end0, long start1, long end1, optional long durationMillis);
     method public static void swipe(androidx.compose.ui.test.TouchInjectionScope, kotlin.jvm.functions.Function1<? super java.lang.Long,androidx.compose.ui.geometry.Offset> curve, long durationMillis, optional java.util.List<java.lang.Long> keyTimes);
     method public static void swipe(androidx.compose.ui.test.TouchInjectionScope, long start, long end, optional long durationMillis);
@@ -378,3 +487,11 @@
 
 }
 
+package androidx.compose.ui.test.internal {
+
+  @androidx.compose.ui.test.InternalTestApi public abstract class DelayPropagatingContinuationInterceptorWrapper extends kotlin.coroutines.AbstractCoroutineContextElement implements kotlin.coroutines.ContinuationInterceptor kotlinx.coroutines.Delay {
+    ctor public DelayPropagatingContinuationInterceptorWrapper(kotlin.coroutines.ContinuationInterceptor? wrappedInterceptor);
+  }
+
+}
+
diff --git a/compose/ui/ui-test/api/res-1.5.0-beta01.txt b/compose/ui/ui-test/api/res-1.5.0-beta01.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/compose/ui/ui-test/api/res-1.5.0-beta01.txt
diff --git a/compose/ui/ui-test/api/restricted_1.5.0-beta01.txt b/compose/ui/ui-test/api/restricted_1.5.0-beta01.txt
new file mode 100644
index 0000000..73b5bac
--- /dev/null
+++ b/compose/ui/ui-test/api/restricted_1.5.0-beta01.txt
@@ -0,0 +1,498 @@
+// Signature format: 4.0
+package androidx.compose.ui.test {
+
+  public final class ActionsKt {
+    method public static androidx.compose.ui.test.SemanticsNodeInteraction performClick(androidx.compose.ui.test.SemanticsNodeInteraction);
+    method @Deprecated public static androidx.compose.ui.test.SemanticsNodeInteraction performGesture(androidx.compose.ui.test.SemanticsNodeInteraction, kotlin.jvm.functions.Function1<? super androidx.compose.ui.test.GestureScope,kotlin.Unit> block);
+    method @androidx.compose.ui.test.ExperimentalTestApi public static androidx.compose.ui.test.SemanticsNodeInteraction performKeyInput(androidx.compose.ui.test.SemanticsNodeInteraction, kotlin.jvm.functions.Function1<? super androidx.compose.ui.test.KeyInjectionScope,kotlin.Unit> block);
+    method @androidx.compose.ui.test.ExperimentalTestApi public static androidx.compose.ui.test.SemanticsNodeInteraction performMouseInput(androidx.compose.ui.test.SemanticsNodeInteraction, kotlin.jvm.functions.Function1<? super androidx.compose.ui.test.MouseInjectionScope,kotlin.Unit> block);
+    method public static androidx.compose.ui.test.SemanticsNodeInteraction performMultiModalInput(androidx.compose.ui.test.SemanticsNodeInteraction, kotlin.jvm.functions.Function1<? super androidx.compose.ui.test.MultiModalInjectionScope,kotlin.Unit> block);
+    method @androidx.compose.ui.test.ExperimentalTestApi public static androidx.compose.ui.test.SemanticsNodeInteraction performRotaryScrollInput(androidx.compose.ui.test.SemanticsNodeInteraction, kotlin.jvm.functions.Function1<? super androidx.compose.ui.test.RotaryInjectionScope,kotlin.Unit> block);
+    method public static androidx.compose.ui.test.SemanticsNodeInteraction performScrollTo(androidx.compose.ui.test.SemanticsNodeInteraction);
+    method public static androidx.compose.ui.test.SemanticsNodeInteraction performScrollToIndex(androidx.compose.ui.test.SemanticsNodeInteraction, int index);
+    method public static androidx.compose.ui.test.SemanticsNodeInteraction performScrollToKey(androidx.compose.ui.test.SemanticsNodeInteraction, Object key);
+    method public static androidx.compose.ui.test.SemanticsNodeInteraction performScrollToNode(androidx.compose.ui.test.SemanticsNodeInteraction, androidx.compose.ui.test.SemanticsMatcher matcher);
+    method public static androidx.compose.ui.test.SemanticsNodeInteraction performSemanticsAction(androidx.compose.ui.test.SemanticsNodeInteraction, androidx.compose.ui.semantics.SemanticsPropertyKey<androidx.compose.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function0<java.lang.Boolean>>> key);
+    method @Deprecated public static void performSemanticsAction(androidx.compose.ui.test.SemanticsNodeInteraction, androidx.compose.ui.semantics.SemanticsPropertyKey<androidx.compose.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function0<java.lang.Boolean>>> key);
+    method public static <T extends kotlin.Function<? extends java.lang.Boolean>> androidx.compose.ui.test.SemanticsNodeInteraction performSemanticsAction(androidx.compose.ui.test.SemanticsNodeInteraction, androidx.compose.ui.semantics.SemanticsPropertyKey<androidx.compose.ui.semantics.AccessibilityAction<T>> key, kotlin.jvm.functions.Function1<? super T,kotlin.Unit> invocation);
+    method @Deprecated public static <T extends kotlin.Function<? extends java.lang.Boolean>> void performSemanticsAction(androidx.compose.ui.test.SemanticsNodeInteraction, androidx.compose.ui.semantics.SemanticsPropertyKey<androidx.compose.ui.semantics.AccessibilityAction<T>> key, kotlin.jvm.functions.Function1<? super T,kotlin.Unit> invocation);
+    method public static androidx.compose.ui.test.SemanticsNodeInteraction performTouchInput(androidx.compose.ui.test.SemanticsNodeInteraction, kotlin.jvm.functions.Function1<? super androidx.compose.ui.test.TouchInjectionScope,kotlin.Unit> block);
+  }
+
+  public final class AndroidImageHelpers_androidKt {
+    method @RequiresApi(android.os.Build.VERSION_CODES.O) public static androidx.compose.ui.graphics.ImageBitmap captureToImage(androidx.compose.ui.test.SemanticsNodeInteraction);
+  }
+
+  public final class AssertionsKt {
+    method public static androidx.compose.ui.test.SemanticsNodeInteraction assert(androidx.compose.ui.test.SemanticsNodeInteraction, androidx.compose.ui.test.SemanticsMatcher matcher, optional kotlin.jvm.functions.Function0<java.lang.String>? messagePrefixOnError);
+    method public static androidx.compose.ui.test.SemanticsNodeInteractionCollection assertAll(androidx.compose.ui.test.SemanticsNodeInteractionCollection, androidx.compose.ui.test.SemanticsMatcher matcher);
+    method public static androidx.compose.ui.test.SemanticsNodeInteractionCollection assertAny(androidx.compose.ui.test.SemanticsNodeInteractionCollection, androidx.compose.ui.test.SemanticsMatcher matcher);
+    method public static androidx.compose.ui.test.SemanticsNodeInteraction assertContentDescriptionContains(androidx.compose.ui.test.SemanticsNodeInteraction, String value, optional boolean substring, optional boolean ignoreCase);
+    method public static androidx.compose.ui.test.SemanticsNodeInteraction assertContentDescriptionEquals(androidx.compose.ui.test.SemanticsNodeInteraction, java.lang.String... values);
+    method public static androidx.compose.ui.test.SemanticsNodeInteractionCollection assertCountEquals(androidx.compose.ui.test.SemanticsNodeInteractionCollection, int expectedSize);
+    method public static androidx.compose.ui.test.SemanticsNodeInteraction assertHasClickAction(androidx.compose.ui.test.SemanticsNodeInteraction);
+    method public static androidx.compose.ui.test.SemanticsNodeInteraction assertHasNoClickAction(androidx.compose.ui.test.SemanticsNodeInteraction);
+    method public static androidx.compose.ui.test.SemanticsNodeInteraction assertIsDisplayed(androidx.compose.ui.test.SemanticsNodeInteraction);
+    method public static androidx.compose.ui.test.SemanticsNodeInteraction assertIsEnabled(androidx.compose.ui.test.SemanticsNodeInteraction);
+    method public static androidx.compose.ui.test.SemanticsNodeInteraction assertIsFocused(androidx.compose.ui.test.SemanticsNodeInteraction);
+    method public static androidx.compose.ui.test.SemanticsNodeInteraction assertIsNotDisplayed(androidx.compose.ui.test.SemanticsNodeInteraction);
+    method public static androidx.compose.ui.test.SemanticsNodeInteraction assertIsNotEnabled(androidx.compose.ui.test.SemanticsNodeInteraction);
+    method public static androidx.compose.ui.test.SemanticsNodeInteraction assertIsNotFocused(androidx.compose.ui.test.SemanticsNodeInteraction);
+    method public static androidx.compose.ui.test.SemanticsNodeInteraction assertIsNotSelected(androidx.compose.ui.test.SemanticsNodeInteraction);
+    method public static androidx.compose.ui.test.SemanticsNodeInteraction assertIsOff(androidx.compose.ui.test.SemanticsNodeInteraction);
+    method public static androidx.compose.ui.test.SemanticsNodeInteraction assertIsOn(androidx.compose.ui.test.SemanticsNodeInteraction);
+    method public static androidx.compose.ui.test.SemanticsNodeInteraction assertIsSelectable(androidx.compose.ui.test.SemanticsNodeInteraction);
+    method public static androidx.compose.ui.test.SemanticsNodeInteraction assertIsSelected(androidx.compose.ui.test.SemanticsNodeInteraction);
+    method public static androidx.compose.ui.test.SemanticsNodeInteraction assertIsToggleable(androidx.compose.ui.test.SemanticsNodeInteraction);
+    method public static androidx.compose.ui.test.SemanticsNodeInteraction assertRangeInfoEquals(androidx.compose.ui.test.SemanticsNodeInteraction, androidx.compose.ui.semantics.ProgressBarRangeInfo value);
+    method public static androidx.compose.ui.test.SemanticsNodeInteraction assertTextContains(androidx.compose.ui.test.SemanticsNodeInteraction, String value, optional boolean substring, optional boolean ignoreCase);
+    method public static androidx.compose.ui.test.SemanticsNodeInteraction assertTextEquals(androidx.compose.ui.test.SemanticsNodeInteraction, String![] values, optional boolean includeEditableText);
+    method public static androidx.compose.ui.test.SemanticsNodeInteraction assertValueEquals(androidx.compose.ui.test.SemanticsNodeInteraction, String value);
+  }
+
+  public final class BoundsAssertionsKt {
+    method public static androidx.compose.ui.test.SemanticsNodeInteraction assertHeightIsAtLeast(androidx.compose.ui.test.SemanticsNodeInteraction, float expectedMinHeight);
+    method public static androidx.compose.ui.test.SemanticsNodeInteraction assertHeightIsEqualTo(androidx.compose.ui.test.SemanticsNodeInteraction, float expectedHeight);
+    method public static void assertIsEqualTo(float, float expected, String subject, optional float tolerance);
+    method public static androidx.compose.ui.test.SemanticsNodeInteraction assertLeftPositionInRootIsEqualTo(androidx.compose.ui.test.SemanticsNodeInteraction, float expectedLeft);
+    method public static androidx.compose.ui.test.SemanticsNodeInteraction assertPositionInRootIsEqualTo(androidx.compose.ui.test.SemanticsNodeInteraction, float expectedLeft, float expectedTop);
+    method public static androidx.compose.ui.test.SemanticsNodeInteraction assertTopPositionInRootIsEqualTo(androidx.compose.ui.test.SemanticsNodeInteraction, float expectedTop);
+    method public static androidx.compose.ui.test.SemanticsNodeInteraction assertTouchHeightIsEqualTo(androidx.compose.ui.test.SemanticsNodeInteraction, float expectedHeight);
+    method public static androidx.compose.ui.test.SemanticsNodeInteraction assertTouchWidthIsEqualTo(androidx.compose.ui.test.SemanticsNodeInteraction, float expectedWidth);
+    method public static androidx.compose.ui.test.SemanticsNodeInteraction assertWidthIsAtLeast(androidx.compose.ui.test.SemanticsNodeInteraction, float expectedMinWidth);
+    method public static androidx.compose.ui.test.SemanticsNodeInteraction assertWidthIsEqualTo(androidx.compose.ui.test.SemanticsNodeInteraction, float expectedWidth);
+    method public static float getAlignmentLinePosition(androidx.compose.ui.test.SemanticsNodeInteraction, androidx.compose.ui.layout.AlignmentLine alignmentLine);
+    method public static androidx.compose.ui.unit.DpRect getBoundsInRoot(androidx.compose.ui.test.SemanticsNodeInteraction);
+    method public static androidx.compose.ui.unit.DpRect getUnclippedBoundsInRoot(androidx.compose.ui.test.SemanticsNodeInteraction);
+  }
+
+  public final class ComposeTimeoutException extends java.lang.Throwable {
+    ctor public ComposeTimeoutException(String? message);
+  }
+
+  @kotlin.RequiresOptIn(message="This testing API is experimental and is likely to be changed or removed entirely") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface ExperimentalTestApi {
+  }
+
+  public final class FiltersKt {
+    method public static androidx.compose.ui.test.SemanticsMatcher hasAnyAncestor(androidx.compose.ui.test.SemanticsMatcher matcher);
+    method public static androidx.compose.ui.test.SemanticsMatcher hasAnyChild(androidx.compose.ui.test.SemanticsMatcher matcher);
+    method public static androidx.compose.ui.test.SemanticsMatcher hasAnyDescendant(androidx.compose.ui.test.SemanticsMatcher matcher);
+    method public static androidx.compose.ui.test.SemanticsMatcher hasAnySibling(androidx.compose.ui.test.SemanticsMatcher matcher);
+    method public static androidx.compose.ui.test.SemanticsMatcher hasClickAction();
+    method public static androidx.compose.ui.test.SemanticsMatcher hasContentDescription(String value, optional boolean substring, optional boolean ignoreCase);
+    method public static androidx.compose.ui.test.SemanticsMatcher hasContentDescriptionExactly(java.lang.String... values);
+    method public static androidx.compose.ui.test.SemanticsMatcher hasImeAction(int actionType);
+    method public static androidx.compose.ui.test.SemanticsMatcher hasInsertTextAtCursorAction();
+    method public static androidx.compose.ui.test.SemanticsMatcher hasNoClickAction();
+    method public static androidx.compose.ui.test.SemanticsMatcher hasNoScrollAction();
+    method public static androidx.compose.ui.test.SemanticsMatcher hasParent(androidx.compose.ui.test.SemanticsMatcher matcher);
+    method public static androidx.compose.ui.test.SemanticsMatcher hasPerformImeAction();
+    method public static androidx.compose.ui.test.SemanticsMatcher hasProgressBarRangeInfo(androidx.compose.ui.semantics.ProgressBarRangeInfo rangeInfo);
+    method public static androidx.compose.ui.test.SemanticsMatcher hasRequestFocusAction();
+    method public static androidx.compose.ui.test.SemanticsMatcher hasScrollAction();
+    method public static androidx.compose.ui.test.SemanticsMatcher hasScrollToIndexAction();
+    method public static androidx.compose.ui.test.SemanticsMatcher hasScrollToKeyAction();
+    method public static androidx.compose.ui.test.SemanticsMatcher hasScrollToNodeAction();
+    method public static androidx.compose.ui.test.SemanticsMatcher hasSetTextAction();
+    method public static androidx.compose.ui.test.SemanticsMatcher hasStateDescription(String value);
+    method public static androidx.compose.ui.test.SemanticsMatcher hasTestTag(String testTag);
+    method public static androidx.compose.ui.test.SemanticsMatcher hasText(String text, optional boolean substring, optional boolean ignoreCase);
+    method public static androidx.compose.ui.test.SemanticsMatcher hasTextExactly(String![] textValues, optional boolean includeEditableText);
+    method public static androidx.compose.ui.test.SemanticsMatcher isDialog();
+    method public static androidx.compose.ui.test.SemanticsMatcher isEnabled();
+    method public static androidx.compose.ui.test.SemanticsMatcher isFocusable();
+    method public static androidx.compose.ui.test.SemanticsMatcher isFocused();
+    method public static androidx.compose.ui.test.SemanticsMatcher isHeading();
+    method public static androidx.compose.ui.test.SemanticsMatcher isNotEnabled();
+    method public static androidx.compose.ui.test.SemanticsMatcher isNotFocusable();
+    method public static androidx.compose.ui.test.SemanticsMatcher isNotFocused();
+    method public static androidx.compose.ui.test.SemanticsMatcher isNotSelected();
+    method public static androidx.compose.ui.test.SemanticsMatcher isOff();
+    method public static androidx.compose.ui.test.SemanticsMatcher isOn();
+    method public static androidx.compose.ui.test.SemanticsMatcher isPopup();
+    method public static androidx.compose.ui.test.SemanticsMatcher isRoot();
+    method public static androidx.compose.ui.test.SemanticsMatcher isSelectable();
+    method public static androidx.compose.ui.test.SemanticsMatcher isSelected();
+    method public static androidx.compose.ui.test.SemanticsMatcher isToggleable();
+  }
+
+  public final class FindersKt {
+    method public static androidx.compose.ui.test.SemanticsNodeInteractionCollection onAllNodesWithContentDescription(androidx.compose.ui.test.SemanticsNodeInteractionsProvider, String label, optional boolean substring, optional boolean ignoreCase, optional boolean useUnmergedTree);
+    method public static androidx.compose.ui.test.SemanticsNodeInteractionCollection onAllNodesWithTag(androidx.compose.ui.test.SemanticsNodeInteractionsProvider, String testTag, optional boolean useUnmergedTree);
+    method public static androidx.compose.ui.test.SemanticsNodeInteractionCollection onAllNodesWithText(androidx.compose.ui.test.SemanticsNodeInteractionsProvider, String text, optional boolean substring, optional boolean ignoreCase, optional boolean useUnmergedTree);
+    method public static androidx.compose.ui.test.SemanticsNodeInteraction onNodeWithContentDescription(androidx.compose.ui.test.SemanticsNodeInteractionsProvider, String label, optional boolean substring, optional boolean ignoreCase, optional boolean useUnmergedTree);
+    method public static androidx.compose.ui.test.SemanticsNodeInteraction onNodeWithTag(androidx.compose.ui.test.SemanticsNodeInteractionsProvider, String testTag, optional boolean useUnmergedTree);
+    method public static androidx.compose.ui.test.SemanticsNodeInteraction onNodeWithText(androidx.compose.ui.test.SemanticsNodeInteractionsProvider, String text, optional boolean substring, optional boolean ignoreCase, optional boolean useUnmergedTree);
+    method public static androidx.compose.ui.test.SemanticsNodeInteraction onRoot(androidx.compose.ui.test.SemanticsNodeInteractionsProvider, optional boolean useUnmergedTree);
+  }
+
+  @Deprecated public final class GestureScope {
+    ctor @Deprecated public GestureScope(androidx.compose.ui.semantics.SemanticsNode node, androidx.compose.ui.test.TestContext testContext);
+    method @Deprecated public long getVisibleSize();
+    property @Deprecated public final long visibleSize;
+    field @Deprecated @kotlin.PublishedApi internal final androidx.compose.ui.test.MultiModalInjectionScope delegateScope;
+  }
+
+  public final class GestureScopeKt {
+    method @Deprecated @androidx.compose.ui.test.ExperimentalTestApi public static void advanceEventTime(androidx.compose.ui.test.GestureScope, long durationMillis);
+    method @Deprecated public static void cancel(androidx.compose.ui.test.GestureScope);
+    method @Deprecated public static void click(androidx.compose.ui.test.GestureScope, optional long position);
+    method @Deprecated public static void doubleClick(androidx.compose.ui.test.GestureScope, optional long position, optional long delayMillis);
+    method @Deprecated public static void down(androidx.compose.ui.test.GestureScope, int pointerId, long position);
+    method @Deprecated public static void down(androidx.compose.ui.test.GestureScope, long position);
+    method @Deprecated public static inline float getBottom(androidx.compose.ui.test.GestureScope);
+    method @Deprecated public static long getBottomCenter(androidx.compose.ui.test.GestureScope);
+    method @Deprecated public static long getBottomLeft(androidx.compose.ui.test.GestureScope);
+    method @Deprecated public static long getBottomRight(androidx.compose.ui.test.GestureScope);
+    method @Deprecated public static long getCenter(androidx.compose.ui.test.GestureScope);
+    method @Deprecated public static long getCenterLeft(androidx.compose.ui.test.GestureScope);
+    method @Deprecated public static long getCenterRight(androidx.compose.ui.test.GestureScope);
+    method @Deprecated public static inline float getCenterX(androidx.compose.ui.test.GestureScope);
+    method @Deprecated public static inline float getCenterY(androidx.compose.ui.test.GestureScope);
+    method @Deprecated public static inline int getHeight(androidx.compose.ui.test.GestureScope);
+    method @Deprecated public static inline float getLeft(androidx.compose.ui.test.GestureScope);
+    method @Deprecated public static inline float getRight(androidx.compose.ui.test.GestureScope);
+    method @Deprecated public static inline float getTop(androidx.compose.ui.test.GestureScope);
+    method @Deprecated public static long getTopCenter(androidx.compose.ui.test.GestureScope);
+    method @Deprecated public static long getTopLeft(androidx.compose.ui.test.GestureScope);
+    method @Deprecated public static long getTopRight(androidx.compose.ui.test.GestureScope);
+    method @Deprecated public static inline int getWidth(androidx.compose.ui.test.GestureScope);
+    method @Deprecated public static void longClick(androidx.compose.ui.test.GestureScope, optional long position, optional long durationMillis);
+    method @Deprecated public static void move(androidx.compose.ui.test.GestureScope);
+    method @Deprecated public static void moveBy(androidx.compose.ui.test.GestureScope, int pointerId, long delta);
+    method @Deprecated public static void moveBy(androidx.compose.ui.test.GestureScope, long delta);
+    method @Deprecated public static void movePointerBy(androidx.compose.ui.test.GestureScope, int pointerId, long delta);
+    method @Deprecated public static void movePointerTo(androidx.compose.ui.test.GestureScope, int pointerId, long position);
+    method @Deprecated public static void moveTo(androidx.compose.ui.test.GestureScope, int pointerId, long position);
+    method @Deprecated public static void moveTo(androidx.compose.ui.test.GestureScope, long position);
+    method @Deprecated public static long percentOffset(androidx.compose.ui.test.GestureScope, optional float x, optional float y);
+    method @Deprecated public static void pinch(androidx.compose.ui.test.GestureScope, long start0, long end0, long start1, long end1, optional long durationMillis);
+    method @Deprecated public static void swipe(androidx.compose.ui.test.GestureScope, long start, long end, optional long durationMillis);
+    method @Deprecated public static void swipeDown(androidx.compose.ui.test.GestureScope);
+    method @Deprecated @androidx.compose.ui.test.ExperimentalTestApi public static void swipeDown(androidx.compose.ui.test.GestureScope, optional float startY, optional float endY, optional long durationMillis);
+    method @Deprecated public static void swipeLeft(androidx.compose.ui.test.GestureScope);
+    method @Deprecated @androidx.compose.ui.test.ExperimentalTestApi public static void swipeLeft(androidx.compose.ui.test.GestureScope, optional float startX, optional float endX, optional long durationMillis);
+    method @Deprecated public static void swipeRight(androidx.compose.ui.test.GestureScope);
+    method @Deprecated @androidx.compose.ui.test.ExperimentalTestApi public static void swipeRight(androidx.compose.ui.test.GestureScope, optional float startX, optional float endX, optional long durationMillis);
+    method @Deprecated public static void swipeUp(androidx.compose.ui.test.GestureScope);
+    method @Deprecated @androidx.compose.ui.test.ExperimentalTestApi public static void swipeUp(androidx.compose.ui.test.GestureScope, optional float startY, optional float endY, optional long durationMillis);
+    method @Deprecated public static void swipeWithVelocity(androidx.compose.ui.test.GestureScope, long start, long end, float endVelocity, optional long durationMillis);
+    method @Deprecated public static void up(androidx.compose.ui.test.GestureScope, optional int pointerId);
+  }
+
+  @kotlin.jvm.JvmDefaultWithCompatibility public interface IdlingResource {
+    method public default String? getDiagnosticMessageIfBusy();
+    method public boolean isIdleNow();
+    property public abstract boolean isIdleNow;
+  }
+
+  @kotlin.jvm.JvmDefaultWithCompatibility public interface InjectionScope extends androidx.compose.ui.unit.Density {
+    method public void advanceEventTime(optional long durationMillis);
+    method public default float getBottom();
+    method public default long getBottomCenter();
+    method public default long getBottomLeft();
+    method public default long getBottomRight();
+    method public default long getCenter();
+    method public default long getCenterLeft();
+    method public default long getCenterRight();
+    method public default float getCenterX();
+    method public default float getCenterY();
+    method public default long getEventPeriodMillis();
+    method public default int getHeight();
+    method public default float getLeft();
+    method public default float getRight();
+    method public default float getTop();
+    method public default long getTopCenter();
+    method public default long getTopLeft();
+    method public default long getTopRight();
+    method public androidx.compose.ui.platform.ViewConfiguration getViewConfiguration();
+    method public long getVisibleSize();
+    method public default int getWidth();
+    method public default long percentOffset(optional float x, optional float y);
+    property public default float bottom;
+    property public default long bottomCenter;
+    property public default long bottomLeft;
+    property public default long bottomRight;
+    property public default long center;
+    property public default long centerLeft;
+    property public default long centerRight;
+    property public default float centerX;
+    property public default float centerY;
+    property public default long eventPeriodMillis;
+    property public default int height;
+    property public default float left;
+    property public default float right;
+    property public default float top;
+    property public default long topCenter;
+    property public default long topLeft;
+    property public default long topRight;
+    property public abstract androidx.compose.ui.platform.ViewConfiguration viewConfiguration;
+    property public abstract long visibleSize;
+    property public default int width;
+  }
+
+  @kotlin.RequiresOptIn(message="This is internal API for Compose modules that may change frequently and without warning.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface InternalTestApi {
+  }
+
+  @kotlin.jvm.JvmDefaultWithCompatibility public interface KeyInjectionScope extends androidx.compose.ui.test.InjectionScope {
+    method public boolean isCapsLockOn();
+    method public boolean isKeyDown(long key);
+    method public boolean isNumLockOn();
+    method public boolean isScrollLockOn();
+    method public void keyDown(long key);
+    method public void keyUp(long key);
+    property public abstract boolean isCapsLockOn;
+    property public abstract boolean isNumLockOn;
+    property public abstract boolean isScrollLockOn;
+  }
+
+  public final class KeyInjectionScopeKt {
+    method public static boolean isAltDown(androidx.compose.ui.test.KeyInjectionScope);
+    method public static boolean isCtrlDown(androidx.compose.ui.test.KeyInjectionScope);
+    method public static boolean isFnDown(androidx.compose.ui.test.KeyInjectionScope);
+    method public static boolean isMetaDown(androidx.compose.ui.test.KeyInjectionScope);
+    method public static boolean isShiftDown(androidx.compose.ui.test.KeyInjectionScope);
+    method public static void pressKey(androidx.compose.ui.test.KeyInjectionScope, long key, optional long pressDurationMillis);
+    method public static void withKeyDown(androidx.compose.ui.test.KeyInjectionScope, long key, kotlin.jvm.functions.Function1<? super androidx.compose.ui.test.KeyInjectionScope,kotlin.Unit> block);
+    method public static void withKeyToggled(androidx.compose.ui.test.KeyInjectionScope, long key, kotlin.jvm.functions.Function1<? super androidx.compose.ui.test.KeyInjectionScope,kotlin.Unit> block);
+    method public static void withKeysDown(androidx.compose.ui.test.KeyInjectionScope, java.util.List<androidx.compose.ui.input.key.Key> keys, kotlin.jvm.functions.Function1<? super androidx.compose.ui.test.KeyInjectionScope,kotlin.Unit> block);
+    method public static void withKeysToggled(androidx.compose.ui.test.KeyInjectionScope, java.util.List<androidx.compose.ui.input.key.Key> keys, kotlin.jvm.functions.Function1<? super androidx.compose.ui.test.KeyInjectionScope,kotlin.Unit> block);
+  }
+
+  public final class KeyInputHelpersKt {
+    method public static boolean performKeyPress(androidx.compose.ui.test.SemanticsNodeInteraction, android.view.KeyEvent keyEvent);
+  }
+
+  @kotlin.jvm.JvmDefaultWithCompatibility public interface MainTestClock {
+    method public void advanceTimeBy(long milliseconds, optional boolean ignoreFrameDuration);
+    method public void advanceTimeByFrame();
+    method public void advanceTimeUntil(optional long timeoutMillis, kotlin.jvm.functions.Function0<java.lang.Boolean> condition);
+    method public boolean getAutoAdvance();
+    method public long getCurrentTime();
+    method public void setAutoAdvance(boolean);
+    property public abstract boolean autoAdvance;
+    property public abstract long currentTime;
+  }
+
+  @androidx.compose.ui.test.ExperimentalTestApi @kotlin.jvm.JvmInline public final value class MouseButton {
+    ctor public MouseButton(int buttonId);
+    method public int getButtonId();
+    property public final int buttonId;
+    field public static final androidx.compose.ui.test.MouseButton.Companion Companion;
+  }
+
+  @androidx.compose.ui.test.ExperimentalTestApi public static final class MouseButton.Companion {
+    method public int getPrimary();
+    method public int getSecondary();
+    method public int getTertiary();
+    property public final int Primary;
+    property public final int Secondary;
+    property public final int Tertiary;
+  }
+
+  @androidx.compose.ui.test.ExperimentalTestApi public interface MouseInjectionScope extends androidx.compose.ui.test.InjectionScope {
+    method public void cancel(optional long delayMillis);
+    method public void enter(optional long position, optional long delayMillis);
+    method public void exit(optional long position, optional long delayMillis);
+    method public long getCurrentPosition();
+    method public default void moveBy(long delta, optional long delayMillis);
+    method public void moveTo(long position, optional long delayMillis);
+    method public void press(optional int button);
+    method public void release(optional int button);
+    method public void scroll(float delta, optional int scrollWheel);
+    method public default void updatePointerBy(long delta);
+    method public void updatePointerTo(long position);
+    property public abstract long currentPosition;
+  }
+
+  public final class MouseInjectionScopeKt {
+    method @androidx.compose.ui.test.ExperimentalTestApi public static void animateAlong(androidx.compose.ui.test.MouseInjectionScope, kotlin.jvm.functions.Function1<? super java.lang.Long,androidx.compose.ui.geometry.Offset> curve, optional long durationMillis);
+    method @androidx.compose.ui.test.ExperimentalTestApi public static void animateBy(androidx.compose.ui.test.MouseInjectionScope, long delta, optional long durationMillis);
+    method @androidx.compose.ui.test.ExperimentalTestApi public static void animateTo(androidx.compose.ui.test.MouseInjectionScope, long position, optional long durationMillis);
+    method @androidx.compose.ui.test.ExperimentalTestApi public static void click(androidx.compose.ui.test.MouseInjectionScope, optional long position);
+    method @androidx.compose.ui.test.ExperimentalTestApi public static void doubleClick(androidx.compose.ui.test.MouseInjectionScope, optional long position);
+    method @androidx.compose.ui.test.ExperimentalTestApi public static void dragAndDrop(androidx.compose.ui.test.MouseInjectionScope, long start, long end, optional long durationMillis);
+    method @androidx.compose.ui.test.ExperimentalTestApi public static void longClick(androidx.compose.ui.test.MouseInjectionScope, optional long position);
+    method @androidx.compose.ui.test.ExperimentalTestApi public static void rightClick(androidx.compose.ui.test.MouseInjectionScope, optional long position);
+    method @androidx.compose.ui.test.ExperimentalTestApi public static void smoothScroll(androidx.compose.ui.test.MouseInjectionScope, float scrollAmount, optional long durationMillis, optional int scrollWheel);
+    method @androidx.compose.ui.test.ExperimentalTestApi public static void tripleClick(androidx.compose.ui.test.MouseInjectionScope, optional long position);
+  }
+
+  public sealed interface MultiModalInjectionScope extends androidx.compose.ui.test.InjectionScope {
+    method @androidx.compose.ui.test.ExperimentalTestApi public void key(kotlin.jvm.functions.Function1<? super androidx.compose.ui.test.KeyInjectionScope,kotlin.Unit> block);
+    method @androidx.compose.ui.test.ExperimentalTestApi public void mouse(kotlin.jvm.functions.Function1<? super androidx.compose.ui.test.MouseInjectionScope,kotlin.Unit> block);
+    method @androidx.compose.ui.test.ExperimentalTestApi public void rotary(kotlin.jvm.functions.Function1<? super androidx.compose.ui.test.RotaryInjectionScope,kotlin.Unit> block);
+    method public void touch(kotlin.jvm.functions.Function1<? super androidx.compose.ui.test.TouchInjectionScope,kotlin.Unit> block);
+  }
+
+  public final class OutputKt {
+    method public static void printToLog(androidx.compose.ui.test.SemanticsNodeInteraction, String tag, optional int maxDepth);
+    method public static void printToLog(androidx.compose.ui.test.SemanticsNodeInteractionCollection, String tag, optional int maxDepth);
+    method public static String printToString(androidx.compose.ui.test.SemanticsNodeInteraction, optional int maxDepth);
+    method public static String printToString(androidx.compose.ui.test.SemanticsNodeInteractionCollection, optional int maxDepth);
+  }
+
+  @androidx.compose.ui.test.ExperimentalTestApi public interface RotaryInjectionScope extends androidx.compose.ui.test.InjectionScope {
+    method public void rotateToScrollHorizontally(float horizontalScrollPixels);
+    method public void rotateToScrollVertically(float verticalScrollPixels);
+  }
+
+  @androidx.compose.ui.test.ExperimentalTestApi @kotlin.jvm.JvmInline public final value class ScrollWheel {
+    method public int getValue();
+    property public final int value;
+    field public static final androidx.compose.ui.test.ScrollWheel.Companion Companion;
+  }
+
+  @androidx.compose.ui.test.ExperimentalTestApi public static final class ScrollWheel.Companion {
+    method public int getHorizontal();
+    method public int getVertical();
+    property public final int Horizontal;
+    property public final int Vertical;
+  }
+
+  public final class SelectionResult {
+    ctor public SelectionResult(java.util.List<androidx.compose.ui.semantics.SemanticsNode> selectedNodes, optional String? customErrorOnNoMatch);
+    method public String? getCustomErrorOnNoMatch();
+    method public java.util.List<androidx.compose.ui.semantics.SemanticsNode> getSelectedNodes();
+    property public final String? customErrorOnNoMatch;
+    property public final java.util.List<androidx.compose.ui.semantics.SemanticsNode> selectedNodes;
+  }
+
+  public final class SelectorsKt {
+    method public static androidx.compose.ui.test.SemanticsNodeInteractionCollection filter(androidx.compose.ui.test.SemanticsNodeInteractionCollection, androidx.compose.ui.test.SemanticsMatcher matcher);
+    method public static androidx.compose.ui.test.SemanticsNodeInteraction filterToOne(androidx.compose.ui.test.SemanticsNodeInteractionCollection, androidx.compose.ui.test.SemanticsMatcher matcher);
+    method public static androidx.compose.ui.test.SemanticsNodeInteractionCollection onAncestors(androidx.compose.ui.test.SemanticsNodeInteraction);
+    method public static androidx.compose.ui.test.SemanticsNodeInteraction onChild(androidx.compose.ui.test.SemanticsNodeInteraction);
+    method public static androidx.compose.ui.test.SemanticsNodeInteraction onChildAt(androidx.compose.ui.test.SemanticsNodeInteraction, int index);
+    method public static androidx.compose.ui.test.SemanticsNodeInteractionCollection onChildren(androidx.compose.ui.test.SemanticsNodeInteraction);
+    method public static androidx.compose.ui.test.SemanticsNodeInteraction onFirst(androidx.compose.ui.test.SemanticsNodeInteractionCollection);
+    method public static androidx.compose.ui.test.SemanticsNodeInteraction onLast(androidx.compose.ui.test.SemanticsNodeInteractionCollection);
+    method public static androidx.compose.ui.test.SemanticsNodeInteraction onParent(androidx.compose.ui.test.SemanticsNodeInteraction);
+    method public static androidx.compose.ui.test.SemanticsNodeInteraction onSibling(androidx.compose.ui.test.SemanticsNodeInteraction);
+    method public static androidx.compose.ui.test.SemanticsNodeInteractionCollection onSiblings(androidx.compose.ui.test.SemanticsNodeInteraction);
+  }
+
+  public final class SemanticsMatcher {
+    ctor public SemanticsMatcher(String description, kotlin.jvm.functions.Function1<? super androidx.compose.ui.semantics.SemanticsNode,java.lang.Boolean> matcher);
+    method public infix androidx.compose.ui.test.SemanticsMatcher and(androidx.compose.ui.test.SemanticsMatcher other);
+    method public String getDescription();
+    method public boolean matches(androidx.compose.ui.semantics.SemanticsNode node);
+    method public boolean matchesAny(Iterable<androidx.compose.ui.semantics.SemanticsNode> nodes);
+    method public operator androidx.compose.ui.test.SemanticsMatcher not();
+    method public infix androidx.compose.ui.test.SemanticsMatcher or(androidx.compose.ui.test.SemanticsMatcher other);
+    property public final String description;
+    field public static final androidx.compose.ui.test.SemanticsMatcher.Companion Companion;
+  }
+
+  public static final class SemanticsMatcher.Companion {
+    method public <T> androidx.compose.ui.test.SemanticsMatcher expectValue(androidx.compose.ui.semantics.SemanticsPropertyKey<T> key, T expectedValue);
+    method public <T> androidx.compose.ui.test.SemanticsMatcher keyIsDefined(androidx.compose.ui.semantics.SemanticsPropertyKey<T> key);
+    method public <T> androidx.compose.ui.test.SemanticsMatcher keyNotDefined(androidx.compose.ui.semantics.SemanticsPropertyKey<T> key);
+  }
+
+  public final class SemanticsNodeInteraction {
+    ctor public SemanticsNodeInteraction(androidx.compose.ui.test.TestContext testContext, boolean useUnmergedTree, androidx.compose.ui.test.SemanticsMatcher matcher);
+    ctor public SemanticsNodeInteraction(androidx.compose.ui.test.TestContext testContext, boolean useUnmergedTree, androidx.compose.ui.test.SemanticsSelector selector);
+    method public void assertDoesNotExist();
+    method public androidx.compose.ui.test.SemanticsNodeInteraction assertExists(optional String? errorMessageOnFail);
+    method public androidx.compose.ui.semantics.SemanticsNode fetchSemanticsNode(optional String? errorMessageOnFail);
+  }
+
+  public final class SemanticsNodeInteractionCollection {
+    ctor public SemanticsNodeInteractionCollection(androidx.compose.ui.test.TestContext testContext, boolean useUnmergedTree, androidx.compose.ui.test.SemanticsMatcher matcher);
+    ctor public SemanticsNodeInteractionCollection(androidx.compose.ui.test.TestContext testContext, boolean useUnmergedTree, androidx.compose.ui.test.SemanticsSelector selector);
+    method public java.util.List<androidx.compose.ui.semantics.SemanticsNode> fetchSemanticsNodes(optional boolean atLeastOneRootRequired, optional String? errorMessageOnFail);
+    method public operator androidx.compose.ui.test.SemanticsNodeInteraction get(int index);
+  }
+
+  @kotlin.jvm.JvmDefaultWithCompatibility public interface SemanticsNodeInteractionsProvider {
+    method public androidx.compose.ui.test.SemanticsNodeInteractionCollection onAllNodes(androidx.compose.ui.test.SemanticsMatcher matcher, optional boolean useUnmergedTree);
+    method public androidx.compose.ui.test.SemanticsNodeInteraction onNode(androidx.compose.ui.test.SemanticsMatcher matcher, optional boolean useUnmergedTree);
+  }
+
+  public final class SemanticsSelector {
+    ctor public SemanticsSelector(String description, boolean requiresExactlyOneNode, optional androidx.compose.ui.test.SemanticsSelector? chainedInputSelector, kotlin.jvm.functions.Function1<? super java.lang.Iterable<androidx.compose.ui.semantics.SemanticsNode>,androidx.compose.ui.test.SelectionResult> selector);
+    method public String getDescription();
+    method public androidx.compose.ui.test.SelectionResult map(Iterable<androidx.compose.ui.semantics.SemanticsNode> nodes, String errorOnFail);
+    property public final String description;
+  }
+
+  public final class TestContext {
+  }
+
+  @androidx.compose.ui.test.ExperimentalTestApi @kotlinx.coroutines.ExperimentalCoroutinesApi public final class TestMonotonicFrameClock implements androidx.compose.runtime.MonotonicFrameClock {
+    ctor public TestMonotonicFrameClock(kotlinx.coroutines.CoroutineScope coroutineScope, optional long frameDelayNanos, optional kotlin.jvm.functions.Function1<? super java.lang.Long,kotlin.Unit> onPerformTraversals);
+    method @androidx.compose.ui.test.ExperimentalTestApi public kotlin.coroutines.ContinuationInterceptor getContinuationInterceptor();
+    method public long getFrameDelayNanos();
+    method public boolean getHasAwaiters();
+    method public suspend <R> Object? withFrameNanos(kotlin.jvm.functions.Function1<? super java.lang.Long,? extends R> onFrame, kotlin.coroutines.Continuation<? super R>);
+    property @androidx.compose.ui.test.ExperimentalTestApi public final kotlin.coroutines.ContinuationInterceptor continuationInterceptor;
+    property public final long frameDelayNanos;
+    property public final boolean hasAwaiters;
+  }
+
+  public final class TestMonotonicFrameClock_jvmKt {
+    method @androidx.compose.ui.test.ExperimentalTestApi public static long getFrameDelayMillis(androidx.compose.ui.test.TestMonotonicFrameClock);
+  }
+
+  @androidx.compose.ui.test.InternalTestApi public interface TestOwner {
+    method public androidx.compose.ui.test.MainTestClock getMainClock();
+    method public java.util.Set<androidx.compose.ui.node.RootForTest> getRoots(boolean atLeastOneRootExpected);
+    method public <T> T runOnUiThread(kotlin.jvm.functions.Function0<? extends T> action);
+    property public abstract androidx.compose.ui.test.MainTestClock mainClock;
+  }
+
+  public final class TestOwnerKt {
+    method @androidx.compose.ui.test.InternalTestApi public static androidx.compose.ui.test.TestContext createTestContext(androidx.compose.ui.test.TestOwner owner);
+  }
+
+  public final class TextActionsKt {
+    method public static void performImeAction(androidx.compose.ui.test.SemanticsNodeInteraction);
+    method public static void performTextClearance(androidx.compose.ui.test.SemanticsNodeInteraction);
+    method public static void performTextInput(androidx.compose.ui.test.SemanticsNodeInteraction, String text);
+    method @androidx.compose.ui.test.ExperimentalTestApi public static void performTextInputSelection(androidx.compose.ui.test.SemanticsNodeInteraction, long selection);
+    method public static void performTextReplacement(androidx.compose.ui.test.SemanticsNodeInteraction, String text);
+  }
+
+  @kotlin.jvm.JvmDefaultWithCompatibility public interface TouchInjectionScope extends androidx.compose.ui.test.InjectionScope {
+    method public void cancel(optional long delayMillis);
+    method public androidx.compose.ui.geometry.Offset? currentPosition(optional int pointerId);
+    method public void down(int pointerId, long position);
+    method public default void down(long position);
+    method public void move(optional long delayMillis);
+    method public default void moveBy(int pointerId, long delta, optional long delayMillis);
+    method public default void moveBy(long delta, optional long delayMillis);
+    method public default void moveTo(int pointerId, long position, optional long delayMillis);
+    method public default void moveTo(long position, optional long delayMillis);
+    method @androidx.compose.ui.test.ExperimentalTestApi public default void moveWithHistory(java.util.List<java.lang.Long> relativeHistoricalTimes, java.util.List<androidx.compose.ui.geometry.Offset> historicalCoordinates, optional long delayMillis);
+    method @androidx.compose.ui.test.ExperimentalTestApi public void moveWithHistoryMultiPointer(java.util.List<java.lang.Long> relativeHistoricalTimes, java.util.List<? extends java.util.List<androidx.compose.ui.geometry.Offset>> historicalCoordinates, optional long delayMillis);
+    method public void up(optional int pointerId);
+    method public default void updatePointerBy(int pointerId, long delta);
+    method public void updatePointerTo(int pointerId, long position);
+  }
+
+  public final class TouchInjectionScopeKt {
+    method public static void click(androidx.compose.ui.test.TouchInjectionScope, optional long position);
+    method public static void doubleClick(androidx.compose.ui.test.TouchInjectionScope, optional long position, optional long delayMillis);
+    method public static void longClick(androidx.compose.ui.test.TouchInjectionScope, optional long position, optional long durationMillis);
+    method @androidx.compose.ui.test.ExperimentalTestApi public static void multiTouchSwipe(androidx.compose.ui.test.TouchInjectionScope, java.util.List<? extends kotlin.jvm.functions.Function1<? super java.lang.Long,androidx.compose.ui.geometry.Offset>> curves, long durationMillis, optional java.util.List<java.lang.Long> keyTimes);
+    method public static void pinch(androidx.compose.ui.test.TouchInjectionScope, long start0, long end0, long start1, long end1, optional long durationMillis);
+    method public static void swipe(androidx.compose.ui.test.TouchInjectionScope, kotlin.jvm.functions.Function1<? super java.lang.Long,androidx.compose.ui.geometry.Offset> curve, long durationMillis, optional java.util.List<java.lang.Long> keyTimes);
+    method public static void swipe(androidx.compose.ui.test.TouchInjectionScope, long start, long end, optional long durationMillis);
+    method public static void swipeDown(androidx.compose.ui.test.TouchInjectionScope, optional float startY, optional float endY, optional long durationMillis);
+    method public static void swipeLeft(androidx.compose.ui.test.TouchInjectionScope, optional float startX, optional float endX, optional long durationMillis);
+    method public static void swipeRight(androidx.compose.ui.test.TouchInjectionScope, optional float startX, optional float endX, optional long durationMillis);
+    method public static void swipeUp(androidx.compose.ui.test.TouchInjectionScope, optional float startY, optional float endY, optional long durationMillis);
+    method public static void swipeWithVelocity(androidx.compose.ui.test.TouchInjectionScope, long start, long end, float endVelocity, optional long durationMillis);
+  }
+
+}
+
+package androidx.compose.ui.test.internal {
+
+  @androidx.compose.ui.test.InternalTestApi public abstract class DelayPropagatingContinuationInterceptorWrapper extends kotlin.coroutines.AbstractCoroutineContextElement implements kotlin.coroutines.ContinuationInterceptor kotlinx.coroutines.Delay {
+    ctor public DelayPropagatingContinuationInterceptorWrapper(kotlin.coroutines.ContinuationInterceptor? wrappedInterceptor);
+  }
+
+}
+
diff --git a/compose/ui/ui-test/api/restricted_current.txt b/compose/ui/ui-test/api/restricted_current.txt
index f338e1a..73b5bac 100644
--- a/compose/ui/ui-test/api/restricted_current.txt
+++ b/compose/ui/ui-test/api/restricted_current.txt
@@ -4,7 +4,10 @@
   public final class ActionsKt {
     method public static androidx.compose.ui.test.SemanticsNodeInteraction performClick(androidx.compose.ui.test.SemanticsNodeInteraction);
     method @Deprecated public static androidx.compose.ui.test.SemanticsNodeInteraction performGesture(androidx.compose.ui.test.SemanticsNodeInteraction, kotlin.jvm.functions.Function1<? super androidx.compose.ui.test.GestureScope,kotlin.Unit> block);
+    method @androidx.compose.ui.test.ExperimentalTestApi public static androidx.compose.ui.test.SemanticsNodeInteraction performKeyInput(androidx.compose.ui.test.SemanticsNodeInteraction, kotlin.jvm.functions.Function1<? super androidx.compose.ui.test.KeyInjectionScope,kotlin.Unit> block);
+    method @androidx.compose.ui.test.ExperimentalTestApi public static androidx.compose.ui.test.SemanticsNodeInteraction performMouseInput(androidx.compose.ui.test.SemanticsNodeInteraction, kotlin.jvm.functions.Function1<? super androidx.compose.ui.test.MouseInjectionScope,kotlin.Unit> block);
     method public static androidx.compose.ui.test.SemanticsNodeInteraction performMultiModalInput(androidx.compose.ui.test.SemanticsNodeInteraction, kotlin.jvm.functions.Function1<? super androidx.compose.ui.test.MultiModalInjectionScope,kotlin.Unit> block);
+    method @androidx.compose.ui.test.ExperimentalTestApi public static androidx.compose.ui.test.SemanticsNodeInteraction performRotaryScrollInput(androidx.compose.ui.test.SemanticsNodeInteraction, kotlin.jvm.functions.Function1<? super androidx.compose.ui.test.RotaryInjectionScope,kotlin.Unit> block);
     method public static androidx.compose.ui.test.SemanticsNodeInteraction performScrollTo(androidx.compose.ui.test.SemanticsNodeInteraction);
     method public static androidx.compose.ui.test.SemanticsNodeInteraction performScrollToIndex(androidx.compose.ui.test.SemanticsNodeInteraction, int index);
     method public static androidx.compose.ui.test.SemanticsNodeInteraction performScrollToKey(androidx.compose.ui.test.SemanticsNodeInteraction, Object key);
@@ -67,6 +70,9 @@
     ctor public ComposeTimeoutException(String? message);
   }
 
+  @kotlin.RequiresOptIn(message="This testing API is experimental and is likely to be changed or removed entirely") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface ExperimentalTestApi {
+  }
+
   public final class FiltersKt {
     method public static androidx.compose.ui.test.SemanticsMatcher hasAnyAncestor(androidx.compose.ui.test.SemanticsMatcher matcher);
     method public static androidx.compose.ui.test.SemanticsMatcher hasAnyChild(androidx.compose.ui.test.SemanticsMatcher matcher);
@@ -128,6 +134,7 @@
   }
 
   public final class GestureScopeKt {
+    method @Deprecated @androidx.compose.ui.test.ExperimentalTestApi public static void advanceEventTime(androidx.compose.ui.test.GestureScope, long durationMillis);
     method @Deprecated public static void cancel(androidx.compose.ui.test.GestureScope);
     method @Deprecated public static void click(androidx.compose.ui.test.GestureScope, optional long position);
     method @Deprecated public static void doubleClick(androidx.compose.ui.test.GestureScope, optional long position, optional long delayMillis);
@@ -162,9 +169,13 @@
     method @Deprecated public static void pinch(androidx.compose.ui.test.GestureScope, long start0, long end0, long start1, long end1, optional long durationMillis);
     method @Deprecated public static void swipe(androidx.compose.ui.test.GestureScope, long start, long end, optional long durationMillis);
     method @Deprecated public static void swipeDown(androidx.compose.ui.test.GestureScope);
+    method @Deprecated @androidx.compose.ui.test.ExperimentalTestApi public static void swipeDown(androidx.compose.ui.test.GestureScope, optional float startY, optional float endY, optional long durationMillis);
     method @Deprecated public static void swipeLeft(androidx.compose.ui.test.GestureScope);
+    method @Deprecated @androidx.compose.ui.test.ExperimentalTestApi public static void swipeLeft(androidx.compose.ui.test.GestureScope, optional float startX, optional float endX, optional long durationMillis);
     method @Deprecated public static void swipeRight(androidx.compose.ui.test.GestureScope);
+    method @Deprecated @androidx.compose.ui.test.ExperimentalTestApi public static void swipeRight(androidx.compose.ui.test.GestureScope, optional float startX, optional float endX, optional long durationMillis);
     method @Deprecated public static void swipeUp(androidx.compose.ui.test.GestureScope);
+    method @Deprecated @androidx.compose.ui.test.ExperimentalTestApi public static void swipeUp(androidx.compose.ui.test.GestureScope, optional float startY, optional float endY, optional long durationMillis);
     method @Deprecated public static void swipeWithVelocity(androidx.compose.ui.test.GestureScope, long start, long end, float endVelocity, optional long durationMillis);
     method @Deprecated public static void up(androidx.compose.ui.test.GestureScope, optional int pointerId);
   }
@@ -220,6 +231,9 @@
     property public default int width;
   }
 
+  @kotlin.RequiresOptIn(message="This is internal API for Compose modules that may change frequently and without warning.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface InternalTestApi {
+  }
+
   @kotlin.jvm.JvmDefaultWithCompatibility public interface KeyInjectionScope extends androidx.compose.ui.test.InjectionScope {
     method public boolean isCapsLockOn();
     method public boolean isKeyDown(long key);
@@ -260,7 +274,54 @@
     property public abstract long currentTime;
   }
 
+  @androidx.compose.ui.test.ExperimentalTestApi @kotlin.jvm.JvmInline public final value class MouseButton {
+    ctor public MouseButton(int buttonId);
+    method public int getButtonId();
+    property public final int buttonId;
+    field public static final androidx.compose.ui.test.MouseButton.Companion Companion;
+  }
+
+  @androidx.compose.ui.test.ExperimentalTestApi public static final class MouseButton.Companion {
+    method public int getPrimary();
+    method public int getSecondary();
+    method public int getTertiary();
+    property public final int Primary;
+    property public final int Secondary;
+    property public final int Tertiary;
+  }
+
+  @androidx.compose.ui.test.ExperimentalTestApi public interface MouseInjectionScope extends androidx.compose.ui.test.InjectionScope {
+    method public void cancel(optional long delayMillis);
+    method public void enter(optional long position, optional long delayMillis);
+    method public void exit(optional long position, optional long delayMillis);
+    method public long getCurrentPosition();
+    method public default void moveBy(long delta, optional long delayMillis);
+    method public void moveTo(long position, optional long delayMillis);
+    method public void press(optional int button);
+    method public void release(optional int button);
+    method public void scroll(float delta, optional int scrollWheel);
+    method public default void updatePointerBy(long delta);
+    method public void updatePointerTo(long position);
+    property public abstract long currentPosition;
+  }
+
+  public final class MouseInjectionScopeKt {
+    method @androidx.compose.ui.test.ExperimentalTestApi public static void animateAlong(androidx.compose.ui.test.MouseInjectionScope, kotlin.jvm.functions.Function1<? super java.lang.Long,androidx.compose.ui.geometry.Offset> curve, optional long durationMillis);
+    method @androidx.compose.ui.test.ExperimentalTestApi public static void animateBy(androidx.compose.ui.test.MouseInjectionScope, long delta, optional long durationMillis);
+    method @androidx.compose.ui.test.ExperimentalTestApi public static void animateTo(androidx.compose.ui.test.MouseInjectionScope, long position, optional long durationMillis);
+    method @androidx.compose.ui.test.ExperimentalTestApi public static void click(androidx.compose.ui.test.MouseInjectionScope, optional long position);
+    method @androidx.compose.ui.test.ExperimentalTestApi public static void doubleClick(androidx.compose.ui.test.MouseInjectionScope, optional long position);
+    method @androidx.compose.ui.test.ExperimentalTestApi public static void dragAndDrop(androidx.compose.ui.test.MouseInjectionScope, long start, long end, optional long durationMillis);
+    method @androidx.compose.ui.test.ExperimentalTestApi public static void longClick(androidx.compose.ui.test.MouseInjectionScope, optional long position);
+    method @androidx.compose.ui.test.ExperimentalTestApi public static void rightClick(androidx.compose.ui.test.MouseInjectionScope, optional long position);
+    method @androidx.compose.ui.test.ExperimentalTestApi public static void smoothScroll(androidx.compose.ui.test.MouseInjectionScope, float scrollAmount, optional long durationMillis, optional int scrollWheel);
+    method @androidx.compose.ui.test.ExperimentalTestApi public static void tripleClick(androidx.compose.ui.test.MouseInjectionScope, optional long position);
+  }
+
   public sealed interface MultiModalInjectionScope extends androidx.compose.ui.test.InjectionScope {
+    method @androidx.compose.ui.test.ExperimentalTestApi public void key(kotlin.jvm.functions.Function1<? super androidx.compose.ui.test.KeyInjectionScope,kotlin.Unit> block);
+    method @androidx.compose.ui.test.ExperimentalTestApi public void mouse(kotlin.jvm.functions.Function1<? super androidx.compose.ui.test.MouseInjectionScope,kotlin.Unit> block);
+    method @androidx.compose.ui.test.ExperimentalTestApi public void rotary(kotlin.jvm.functions.Function1<? super androidx.compose.ui.test.RotaryInjectionScope,kotlin.Unit> block);
     method public void touch(kotlin.jvm.functions.Function1<? super androidx.compose.ui.test.TouchInjectionScope,kotlin.Unit> block);
   }
 
@@ -271,6 +332,24 @@
     method public static String printToString(androidx.compose.ui.test.SemanticsNodeInteractionCollection, optional int maxDepth);
   }
 
+  @androidx.compose.ui.test.ExperimentalTestApi public interface RotaryInjectionScope extends androidx.compose.ui.test.InjectionScope {
+    method public void rotateToScrollHorizontally(float horizontalScrollPixels);
+    method public void rotateToScrollVertically(float verticalScrollPixels);
+  }
+
+  @androidx.compose.ui.test.ExperimentalTestApi @kotlin.jvm.JvmInline public final value class ScrollWheel {
+    method public int getValue();
+    property public final int value;
+    field public static final androidx.compose.ui.test.ScrollWheel.Companion Companion;
+  }
+
+  @androidx.compose.ui.test.ExperimentalTestApi public static final class ScrollWheel.Companion {
+    method public int getHorizontal();
+    method public int getVertical();
+    property public final int Horizontal;
+    property public final int Vertical;
+  }
+
   public final class SelectionResult {
     ctor public SelectionResult(java.util.List<androidx.compose.ui.semantics.SemanticsNode> selectedNodes, optional String? customErrorOnNoMatch);
     method public String? getCustomErrorOnNoMatch();
@@ -341,10 +420,37 @@
   public final class TestContext {
   }
 
+  @androidx.compose.ui.test.ExperimentalTestApi @kotlinx.coroutines.ExperimentalCoroutinesApi public final class TestMonotonicFrameClock implements androidx.compose.runtime.MonotonicFrameClock {
+    ctor public TestMonotonicFrameClock(kotlinx.coroutines.CoroutineScope coroutineScope, optional long frameDelayNanos, optional kotlin.jvm.functions.Function1<? super java.lang.Long,kotlin.Unit> onPerformTraversals);
+    method @androidx.compose.ui.test.ExperimentalTestApi public kotlin.coroutines.ContinuationInterceptor getContinuationInterceptor();
+    method public long getFrameDelayNanos();
+    method public boolean getHasAwaiters();
+    method public suspend <R> Object? withFrameNanos(kotlin.jvm.functions.Function1<? super java.lang.Long,? extends R> onFrame, kotlin.coroutines.Continuation<? super R>);
+    property @androidx.compose.ui.test.ExperimentalTestApi public final kotlin.coroutines.ContinuationInterceptor continuationInterceptor;
+    property public final long frameDelayNanos;
+    property public final boolean hasAwaiters;
+  }
+
+  public final class TestMonotonicFrameClock_jvmKt {
+    method @androidx.compose.ui.test.ExperimentalTestApi public static long getFrameDelayMillis(androidx.compose.ui.test.TestMonotonicFrameClock);
+  }
+
+  @androidx.compose.ui.test.InternalTestApi public interface TestOwner {
+    method public androidx.compose.ui.test.MainTestClock getMainClock();
+    method public java.util.Set<androidx.compose.ui.node.RootForTest> getRoots(boolean atLeastOneRootExpected);
+    method public <T> T runOnUiThread(kotlin.jvm.functions.Function0<? extends T> action);
+    property public abstract androidx.compose.ui.test.MainTestClock mainClock;
+  }
+
+  public final class TestOwnerKt {
+    method @androidx.compose.ui.test.InternalTestApi public static androidx.compose.ui.test.TestContext createTestContext(androidx.compose.ui.test.TestOwner owner);
+  }
+
   public final class TextActionsKt {
     method public static void performImeAction(androidx.compose.ui.test.SemanticsNodeInteraction);
     method public static void performTextClearance(androidx.compose.ui.test.SemanticsNodeInteraction);
     method public static void performTextInput(androidx.compose.ui.test.SemanticsNodeInteraction, String text);
+    method @androidx.compose.ui.test.ExperimentalTestApi public static void performTextInputSelection(androidx.compose.ui.test.SemanticsNodeInteraction, long selection);
     method public static void performTextReplacement(androidx.compose.ui.test.SemanticsNodeInteraction, String text);
   }
 
@@ -358,6 +464,8 @@
     method public default void moveBy(long delta, optional long delayMillis);
     method public default void moveTo(int pointerId, long position, optional long delayMillis);
     method public default void moveTo(long position, optional long delayMillis);
+    method @androidx.compose.ui.test.ExperimentalTestApi public default void moveWithHistory(java.util.List<java.lang.Long> relativeHistoricalTimes, java.util.List<androidx.compose.ui.geometry.Offset> historicalCoordinates, optional long delayMillis);
+    method @androidx.compose.ui.test.ExperimentalTestApi public void moveWithHistoryMultiPointer(java.util.List<java.lang.Long> relativeHistoricalTimes, java.util.List<? extends java.util.List<androidx.compose.ui.geometry.Offset>> historicalCoordinates, optional long delayMillis);
     method public void up(optional int pointerId);
     method public default void updatePointerBy(int pointerId, long delta);
     method public void updatePointerTo(int pointerId, long position);
@@ -367,6 +475,7 @@
     method public static void click(androidx.compose.ui.test.TouchInjectionScope, optional long position);
     method public static void doubleClick(androidx.compose.ui.test.TouchInjectionScope, optional long position, optional long delayMillis);
     method public static void longClick(androidx.compose.ui.test.TouchInjectionScope, optional long position, optional long durationMillis);
+    method @androidx.compose.ui.test.ExperimentalTestApi public static void multiTouchSwipe(androidx.compose.ui.test.TouchInjectionScope, java.util.List<? extends kotlin.jvm.functions.Function1<? super java.lang.Long,androidx.compose.ui.geometry.Offset>> curves, long durationMillis, optional java.util.List<java.lang.Long> keyTimes);
     method public static void pinch(androidx.compose.ui.test.TouchInjectionScope, long start0, long end0, long start1, long end1, optional long durationMillis);
     method public static void swipe(androidx.compose.ui.test.TouchInjectionScope, kotlin.jvm.functions.Function1<? super java.lang.Long,androidx.compose.ui.geometry.Offset> curve, long durationMillis, optional java.util.List<java.lang.Long> keyTimes);
     method public static void swipe(androidx.compose.ui.test.TouchInjectionScope, long start, long end, optional long durationMillis);
@@ -379,3 +488,11 @@
 
 }
 
+package androidx.compose.ui.test.internal {
+
+  @androidx.compose.ui.test.InternalTestApi public abstract class DelayPropagatingContinuationInterceptorWrapper extends kotlin.coroutines.AbstractCoroutineContextElement implements kotlin.coroutines.ContinuationInterceptor kotlinx.coroutines.Delay {
+    ctor public DelayPropagatingContinuationInterceptorWrapper(kotlin.coroutines.ContinuationInterceptor? wrappedInterceptor);
+  }
+
+}
+
diff --git a/compose/ui/ui-test/build.gradle b/compose/ui/ui-test/build.gradle
index ead9fac..49ee771 100644
--- a/compose/ui/ui-test/build.gradle
+++ b/compose/ui/ui-test/build.gradle
@@ -65,8 +65,8 @@
                 implementation("androidx.annotation:annotation:1.1.0")
                 implementation("androidx.core:core-ktx:1.2.0")
                 implementation("androidx.test.espresso:espresso-core:3.5.0")
-                implementation(libs.testMonitor)
-            }
+            	implementation("androidx.test:monitor:1.6.1")
+	    }
         }
 
         if (desktopEnabled) {
diff --git a/compose/ui/ui-text-google-fonts/api/public_plus_experimental_current.txt b/compose/ui/ui-text-google-fonts/api/1.5.0-beta01.txt
similarity index 100%
rename from compose/ui/ui-text-google-fonts/api/public_plus_experimental_current.txt
rename to compose/ui/ui-text-google-fonts/api/1.5.0-beta01.txt
diff --git a/compose/ui/ui-text-google-fonts/api/res-1.5.0-beta01.txt b/compose/ui/ui-text-google-fonts/api/res-1.5.0-beta01.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/compose/ui/ui-text-google-fonts/api/res-1.5.0-beta01.txt
diff --git a/compose/ui/ui-text-google-fonts/api/public_plus_experimental_current.txt b/compose/ui/ui-text-google-fonts/api/restricted_1.5.0-beta01.txt
similarity index 100%
copy from compose/ui/ui-text-google-fonts/api/public_plus_experimental_current.txt
copy to compose/ui/ui-text-google-fonts/api/restricted_1.5.0-beta01.txt
diff --git a/compose/ui/ui-text/api/public_plus_experimental_current.txt b/compose/ui/ui-text/api/1.5.0-beta01.txt
similarity index 100%
rename from compose/ui/ui-text/api/public_plus_experimental_current.txt
rename to compose/ui/ui-text/api/1.5.0-beta01.txt
diff --git a/compose/ui/ui-text/api/current.txt b/compose/ui/ui-text/api/current.txt
index 4a40acd..b203bb5 100644
--- a/compose/ui/ui-text/api/current.txt
+++ b/compose/ui/ui-text/api/current.txt
@@ -16,6 +16,7 @@
     method public java.util.List<androidx.compose.ui.text.AnnotatedString.Range<java.lang.String>> getStringAnnotations(String tag, int start, int end);
     method public String getText();
     method public java.util.List<androidx.compose.ui.text.AnnotatedString.Range<androidx.compose.ui.text.TtsAnnotation>> getTtsAnnotations(int start, int end);
+    method @androidx.compose.ui.text.ExperimentalTextApi public java.util.List<androidx.compose.ui.text.AnnotatedString.Range<androidx.compose.ui.text.UrlAnnotation>> getUrlAnnotations(int start, int end);
     method public boolean hasStringAnnotations(String tag, int start, int end);
     method @androidx.compose.runtime.Stable public operator androidx.compose.ui.text.AnnotatedString plus(androidx.compose.ui.text.AnnotatedString other);
     method public androidx.compose.ui.text.AnnotatedString subSequence(int startIndex, int endIndex);
@@ -33,6 +34,8 @@
     method public void addStringAnnotation(String tag, String annotation, int start, int end);
     method public void addStyle(androidx.compose.ui.text.ParagraphStyle style, int start, int end);
     method public void addStyle(androidx.compose.ui.text.SpanStyle style, int start, int end);
+    method @androidx.compose.ui.text.ExperimentalTextApi public void addTtsAnnotation(androidx.compose.ui.text.TtsAnnotation ttsAnnotation, int start, int end);
+    method @androidx.compose.ui.text.ExperimentalTextApi public void addUrlAnnotation(androidx.compose.ui.text.UrlAnnotation urlAnnotation, int start, int end);
     method public void append(androidx.compose.ui.text.AnnotatedString text);
     method public void append(androidx.compose.ui.text.AnnotatedString text, int start, int end);
     method public androidx.compose.ui.text.AnnotatedString.Builder append(char char);
@@ -47,6 +50,7 @@
     method public int pushStyle(androidx.compose.ui.text.ParagraphStyle style);
     method public int pushStyle(androidx.compose.ui.text.SpanStyle style);
     method public int pushTtsAnnotation(androidx.compose.ui.text.TtsAnnotation ttsAnnotation);
+    method @androidx.compose.ui.text.ExperimentalTextApi public int pushUrlAnnotation(androidx.compose.ui.text.UrlAnnotation urlAnnotation);
     method public androidx.compose.ui.text.AnnotatedString toAnnotatedString();
     property public final int length;
   }
@@ -77,6 +81,9 @@
     method public static androidx.compose.ui.text.AnnotatedString decapitalize(androidx.compose.ui.text.AnnotatedString, optional androidx.compose.ui.text.intl.LocaleList localeList);
     method public static androidx.compose.ui.text.AnnotatedString toLowerCase(androidx.compose.ui.text.AnnotatedString, optional androidx.compose.ui.text.intl.LocaleList localeList);
     method public static androidx.compose.ui.text.AnnotatedString toUpperCase(androidx.compose.ui.text.AnnotatedString, optional androidx.compose.ui.text.intl.LocaleList localeList);
+    method @androidx.compose.ui.text.ExperimentalTextApi public static inline <R> R withAnnotation(androidx.compose.ui.text.AnnotatedString.Builder, androidx.compose.ui.text.TtsAnnotation ttsAnnotation, kotlin.jvm.functions.Function1<? super androidx.compose.ui.text.AnnotatedString.Builder,? extends R> block);
+    method @androidx.compose.ui.text.ExperimentalTextApi public static inline <R> R withAnnotation(androidx.compose.ui.text.AnnotatedString.Builder, androidx.compose.ui.text.UrlAnnotation urlAnnotation, kotlin.jvm.functions.Function1<? super androidx.compose.ui.text.AnnotatedString.Builder,? extends R> block);
+    method @androidx.compose.ui.text.ExperimentalTextApi public static inline <R> R withAnnotation(androidx.compose.ui.text.AnnotatedString.Builder, String tag, String annotation, kotlin.jvm.functions.Function1<? super androidx.compose.ui.text.AnnotatedString.Builder,? extends R> block);
     method public static inline <R> R withStyle(androidx.compose.ui.text.AnnotatedString.Builder, androidx.compose.ui.text.ParagraphStyle style, kotlin.jvm.functions.Function1<? super androidx.compose.ui.text.AnnotatedString.Builder,? extends R> block);
     method public static inline <R> R withStyle(androidx.compose.ui.text.AnnotatedString.Builder, androidx.compose.ui.text.SpanStyle style, kotlin.jvm.functions.Function1<? super androidx.compose.ui.text.AnnotatedString.Builder,? extends R> block);
   }
@@ -92,6 +99,12 @@
     property public final int None;
   }
 
+  @kotlin.RequiresOptIn(message="This API is experimental and is likely to change in the future.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface ExperimentalTextApi {
+  }
+
+  @kotlin.RequiresOptIn(level=kotlin.RequiresOptIn.Level.ERROR, message="This is internal API that may change frequently and without warning.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.CLASS, kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.PROPERTY}) public @interface InternalTextApi {
+  }
+
   public final class MultiParagraph {
     ctor @Deprecated public MultiParagraph(androidx.compose.ui.text.AnnotatedString annotatedString, androidx.compose.ui.text.TextStyle style, float width, androidx.compose.ui.unit.Density density, androidx.compose.ui.text.font.FontFamily.Resolver fontFamilyResolver, optional java.util.List<androidx.compose.ui.text.AnnotatedString.Range<androidx.compose.ui.text.Placeholder>> placeholders, optional int maxLines, optional boolean ellipsis);
     ctor @Deprecated public MultiParagraph(androidx.compose.ui.text.AnnotatedString annotatedString, androidx.compose.ui.text.TextStyle style, optional java.util.List<androidx.compose.ui.text.AnnotatedString.Range<androidx.compose.ui.text.Placeholder>> placeholders, optional int maxLines, optional boolean ellipsis, float width, androidx.compose.ui.unit.Density density, androidx.compose.ui.text.font.Font.ResourceLoader resourceLoader);
@@ -603,6 +616,12 @@
   public abstract sealed class TtsAnnotation {
   }
 
+  @androidx.compose.ui.text.ExperimentalTextApi public final class UrlAnnotation {
+    ctor public UrlAnnotation(String url);
+    method public String getUrl();
+    property public final String url;
+  }
+
   public final class VerbatimTtsAnnotation extends androidx.compose.ui.text.TtsAnnotation {
     ctor public VerbatimTtsAnnotation(String verbatim);
     method public String getVerbatim();
@@ -611,6 +630,13 @@
 
 }
 
+package androidx.compose.ui.text.android {
+
+  @kotlin.RequiresOptIn(level=kotlin.RequiresOptIn.Level.ERROR, message="This is internal API that may change frequently and without warning.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.CLASS, kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.PROPERTY}) public @interface InternalPlatformTextApi {
+  }
+
+}
+
 package androidx.compose.ui.text.font {
 
   public abstract class AndroidFont implements androidx.compose.ui.text.font.Font {
@@ -716,6 +742,7 @@
   public final class FontKt {
     method @Deprecated @androidx.compose.runtime.Stable public static androidx.compose.ui.text.font.Font Font(int resId, optional androidx.compose.ui.text.font.FontWeight weight, optional int style);
     method @androidx.compose.runtime.Stable public static androidx.compose.ui.text.font.Font Font(int resId, optional androidx.compose.ui.text.font.FontWeight weight, optional int style, optional int loadingStrategy);
+    method @androidx.compose.ui.text.ExperimentalTextApi public static androidx.compose.ui.text.font.Font Font(int resId, optional androidx.compose.ui.text.font.FontWeight weight, optional int style, optional int loadingStrategy, optional androidx.compose.ui.text.font.FontVariation.Settings variationSettings);
     method @androidx.compose.runtime.Stable public static androidx.compose.ui.text.font.FontFamily toFontFamily(androidx.compose.ui.text.font.Font);
   }
 
@@ -858,11 +885,15 @@
 
   public final class ResourceFont implements androidx.compose.ui.text.font.Font {
     method public androidx.compose.ui.text.font.ResourceFont copy(optional int resId, optional androidx.compose.ui.text.font.FontWeight weight, optional int style);
+    method @androidx.compose.ui.text.ExperimentalTextApi public androidx.compose.ui.text.font.ResourceFont copy(optional int resId, optional androidx.compose.ui.text.font.FontWeight weight, optional int style, optional int loadingStrategy, optional androidx.compose.ui.text.font.FontVariation.Settings variationSettings);
     method public int getResId();
     method public int getStyle();
+    method @androidx.compose.ui.text.ExperimentalTextApi public androidx.compose.ui.text.font.FontVariation.Settings getVariationSettings();
     method public androidx.compose.ui.text.font.FontWeight getWeight();
+    property @androidx.compose.ui.text.ExperimentalTextApi public int loadingStrategy;
     property public final int resId;
     property public int style;
+    property @androidx.compose.ui.text.ExperimentalTextApi public final androidx.compose.ui.text.font.FontVariation.Settings variationSettings;
     property public androidx.compose.ui.text.font.FontWeight weight;
   }
 
@@ -1052,6 +1083,39 @@
     property public final char mask;
   }
 
+  @androidx.compose.ui.text.ExperimentalTextApi public sealed interface PlatformTextInput {
+    method public void releaseInputFocus();
+    method public void requestInputFocus();
+  }
+
+  @androidx.compose.ui.text.ExperimentalTextApi public interface PlatformTextInputAdapter {
+    method public android.view.inputmethod.InputConnection? createInputConnection(android.view.inputmethod.EditorInfo outAttrs);
+    method public default void onDisposed();
+  }
+
+  @androidx.compose.runtime.Immutable @androidx.compose.ui.text.ExperimentalTextApi public fun interface PlatformTextInputPlugin<T extends androidx.compose.ui.text.input.PlatformTextInputAdapter> {
+    method public T createAdapter(androidx.compose.ui.text.input.PlatformTextInput platformTextInput, android.view.View view);
+  }
+
+  @androidx.compose.runtime.Stable @androidx.compose.ui.text.ExperimentalTextApi public sealed interface PlatformTextInputPluginRegistry {
+    method @androidx.compose.runtime.Composable public <T extends androidx.compose.ui.text.input.PlatformTextInputAdapter> T rememberAdapter(androidx.compose.ui.text.input.PlatformTextInputPlugin<T> plugin);
+  }
+
+  @androidx.compose.ui.text.InternalTextApi public final class PlatformTextInputPluginRegistryImpl implements androidx.compose.ui.text.input.PlatformTextInputPluginRegistry {
+    ctor public PlatformTextInputPluginRegistryImpl(kotlin.jvm.functions.Function2<? super androidx.compose.ui.text.input.PlatformTextInputPlugin<?>,? super androidx.compose.ui.text.input.PlatformTextInput,? extends androidx.compose.ui.text.input.PlatformTextInputAdapter> factory);
+    method public androidx.compose.ui.text.input.PlatformTextInputAdapter? getFocusedAdapter();
+    method @androidx.compose.ui.text.InternalTextApi public <T extends androidx.compose.ui.text.input.PlatformTextInputAdapter> androidx.compose.ui.text.input.PlatformTextInputPluginRegistryImpl.AdapterHandle<T> getOrCreateAdapter(androidx.compose.ui.text.input.PlatformTextInputPlugin<T> plugin);
+    method @androidx.compose.runtime.Composable public <T extends androidx.compose.ui.text.input.PlatformTextInputAdapter> T rememberAdapter(androidx.compose.ui.text.input.PlatformTextInputPlugin<T> plugin);
+    property public final androidx.compose.ui.text.input.PlatformTextInputAdapter? focusedAdapter;
+  }
+
+  @androidx.compose.ui.text.InternalTextApi public static final class PlatformTextInputPluginRegistryImpl.AdapterHandle<T extends androidx.compose.ui.text.input.PlatformTextInputAdapter> {
+    ctor public PlatformTextInputPluginRegistryImpl.AdapterHandle(T adapter, kotlin.jvm.functions.Function0<java.lang.Boolean> onDispose);
+    method public boolean dispose();
+    method public T getAdapter();
+    property public final T adapter;
+  }
+
   public interface PlatformTextInputService {
     method public void hideSoftwareKeyboard();
     method public default void notifyFocusedRect(androidx.compose.ui.geometry.Rect rect);
@@ -1199,6 +1263,15 @@
 
 }
 
+package androidx.compose.ui.text.platform {
+
+  @androidx.compose.ui.text.InternalTextApi public final class URLSpanCache {
+    ctor public URLSpanCache();
+    method public android.text.style.URLSpan toURLSpan(androidx.compose.ui.text.UrlAnnotation urlAnnotation);
+  }
+
+}
+
 package androidx.compose.ui.text.platform.extensions {
 
   public final class TtsAnnotationExtensions_androidKt {
diff --git a/compose/ui/ui-text/api/res-1.5.0-beta01.txt b/compose/ui/ui-text/api/res-1.5.0-beta01.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/compose/ui/ui-text/api/res-1.5.0-beta01.txt
diff --git a/compose/ui/ui-text/api/public_plus_experimental_current.txt b/compose/ui/ui-text/api/restricted_1.5.0-beta01.txt
similarity index 100%
copy from compose/ui/ui-text/api/public_plus_experimental_current.txt
copy to compose/ui/ui-text/api/restricted_1.5.0-beta01.txt
diff --git a/compose/ui/ui-text/api/restricted_current.txt b/compose/ui/ui-text/api/restricted_current.txt
index 4a40acd..b203bb5 100644
--- a/compose/ui/ui-text/api/restricted_current.txt
+++ b/compose/ui/ui-text/api/restricted_current.txt
@@ -16,6 +16,7 @@
     method public java.util.List<androidx.compose.ui.text.AnnotatedString.Range<java.lang.String>> getStringAnnotations(String tag, int start, int end);
     method public String getText();
     method public java.util.List<androidx.compose.ui.text.AnnotatedString.Range<androidx.compose.ui.text.TtsAnnotation>> getTtsAnnotations(int start, int end);
+    method @androidx.compose.ui.text.ExperimentalTextApi public java.util.List<androidx.compose.ui.text.AnnotatedString.Range<androidx.compose.ui.text.UrlAnnotation>> getUrlAnnotations(int start, int end);
     method public boolean hasStringAnnotations(String tag, int start, int end);
     method @androidx.compose.runtime.Stable public operator androidx.compose.ui.text.AnnotatedString plus(androidx.compose.ui.text.AnnotatedString other);
     method public androidx.compose.ui.text.AnnotatedString subSequence(int startIndex, int endIndex);
@@ -33,6 +34,8 @@
     method public void addStringAnnotation(String tag, String annotation, int start, int end);
     method public void addStyle(androidx.compose.ui.text.ParagraphStyle style, int start, int end);
     method public void addStyle(androidx.compose.ui.text.SpanStyle style, int start, int end);
+    method @androidx.compose.ui.text.ExperimentalTextApi public void addTtsAnnotation(androidx.compose.ui.text.TtsAnnotation ttsAnnotation, int start, int end);
+    method @androidx.compose.ui.text.ExperimentalTextApi public void addUrlAnnotation(androidx.compose.ui.text.UrlAnnotation urlAnnotation, int start, int end);
     method public void append(androidx.compose.ui.text.AnnotatedString text);
     method public void append(androidx.compose.ui.text.AnnotatedString text, int start, int end);
     method public androidx.compose.ui.text.AnnotatedString.Builder append(char char);
@@ -47,6 +50,7 @@
     method public int pushStyle(androidx.compose.ui.text.ParagraphStyle style);
     method public int pushStyle(androidx.compose.ui.text.SpanStyle style);
     method public int pushTtsAnnotation(androidx.compose.ui.text.TtsAnnotation ttsAnnotation);
+    method @androidx.compose.ui.text.ExperimentalTextApi public int pushUrlAnnotation(androidx.compose.ui.text.UrlAnnotation urlAnnotation);
     method public androidx.compose.ui.text.AnnotatedString toAnnotatedString();
     property public final int length;
   }
@@ -77,6 +81,9 @@
     method public static androidx.compose.ui.text.AnnotatedString decapitalize(androidx.compose.ui.text.AnnotatedString, optional androidx.compose.ui.text.intl.LocaleList localeList);
     method public static androidx.compose.ui.text.AnnotatedString toLowerCase(androidx.compose.ui.text.AnnotatedString, optional androidx.compose.ui.text.intl.LocaleList localeList);
     method public static androidx.compose.ui.text.AnnotatedString toUpperCase(androidx.compose.ui.text.AnnotatedString, optional androidx.compose.ui.text.intl.LocaleList localeList);
+    method @androidx.compose.ui.text.ExperimentalTextApi public static inline <R> R withAnnotation(androidx.compose.ui.text.AnnotatedString.Builder, androidx.compose.ui.text.TtsAnnotation ttsAnnotation, kotlin.jvm.functions.Function1<? super androidx.compose.ui.text.AnnotatedString.Builder,? extends R> block);
+    method @androidx.compose.ui.text.ExperimentalTextApi public static inline <R> R withAnnotation(androidx.compose.ui.text.AnnotatedString.Builder, androidx.compose.ui.text.UrlAnnotation urlAnnotation, kotlin.jvm.functions.Function1<? super androidx.compose.ui.text.AnnotatedString.Builder,? extends R> block);
+    method @androidx.compose.ui.text.ExperimentalTextApi public static inline <R> R withAnnotation(androidx.compose.ui.text.AnnotatedString.Builder, String tag, String annotation, kotlin.jvm.functions.Function1<? super androidx.compose.ui.text.AnnotatedString.Builder,? extends R> block);
     method public static inline <R> R withStyle(androidx.compose.ui.text.AnnotatedString.Builder, androidx.compose.ui.text.ParagraphStyle style, kotlin.jvm.functions.Function1<? super androidx.compose.ui.text.AnnotatedString.Builder,? extends R> block);
     method public static inline <R> R withStyle(androidx.compose.ui.text.AnnotatedString.Builder, androidx.compose.ui.text.SpanStyle style, kotlin.jvm.functions.Function1<? super androidx.compose.ui.text.AnnotatedString.Builder,? extends R> block);
   }
@@ -92,6 +99,12 @@
     property public final int None;
   }
 
+  @kotlin.RequiresOptIn(message="This API is experimental and is likely to change in the future.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface ExperimentalTextApi {
+  }
+
+  @kotlin.RequiresOptIn(level=kotlin.RequiresOptIn.Level.ERROR, message="This is internal API that may change frequently and without warning.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.CLASS, kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.PROPERTY}) public @interface InternalTextApi {
+  }
+
   public final class MultiParagraph {
     ctor @Deprecated public MultiParagraph(androidx.compose.ui.text.AnnotatedString annotatedString, androidx.compose.ui.text.TextStyle style, float width, androidx.compose.ui.unit.Density density, androidx.compose.ui.text.font.FontFamily.Resolver fontFamilyResolver, optional java.util.List<androidx.compose.ui.text.AnnotatedString.Range<androidx.compose.ui.text.Placeholder>> placeholders, optional int maxLines, optional boolean ellipsis);
     ctor @Deprecated public MultiParagraph(androidx.compose.ui.text.AnnotatedString annotatedString, androidx.compose.ui.text.TextStyle style, optional java.util.List<androidx.compose.ui.text.AnnotatedString.Range<androidx.compose.ui.text.Placeholder>> placeholders, optional int maxLines, optional boolean ellipsis, float width, androidx.compose.ui.unit.Density density, androidx.compose.ui.text.font.Font.ResourceLoader resourceLoader);
@@ -603,6 +616,12 @@
   public abstract sealed class TtsAnnotation {
   }
 
+  @androidx.compose.ui.text.ExperimentalTextApi public final class UrlAnnotation {
+    ctor public UrlAnnotation(String url);
+    method public String getUrl();
+    property public final String url;
+  }
+
   public final class VerbatimTtsAnnotation extends androidx.compose.ui.text.TtsAnnotation {
     ctor public VerbatimTtsAnnotation(String verbatim);
     method public String getVerbatim();
@@ -611,6 +630,13 @@
 
 }
 
+package androidx.compose.ui.text.android {
+
+  @kotlin.RequiresOptIn(level=kotlin.RequiresOptIn.Level.ERROR, message="This is internal API that may change frequently and without warning.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.CLASS, kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.PROPERTY}) public @interface InternalPlatformTextApi {
+  }
+
+}
+
 package androidx.compose.ui.text.font {
 
   public abstract class AndroidFont implements androidx.compose.ui.text.font.Font {
@@ -716,6 +742,7 @@
   public final class FontKt {
     method @Deprecated @androidx.compose.runtime.Stable public static androidx.compose.ui.text.font.Font Font(int resId, optional androidx.compose.ui.text.font.FontWeight weight, optional int style);
     method @androidx.compose.runtime.Stable public static androidx.compose.ui.text.font.Font Font(int resId, optional androidx.compose.ui.text.font.FontWeight weight, optional int style, optional int loadingStrategy);
+    method @androidx.compose.ui.text.ExperimentalTextApi public static androidx.compose.ui.text.font.Font Font(int resId, optional androidx.compose.ui.text.font.FontWeight weight, optional int style, optional int loadingStrategy, optional androidx.compose.ui.text.font.FontVariation.Settings variationSettings);
     method @androidx.compose.runtime.Stable public static androidx.compose.ui.text.font.FontFamily toFontFamily(androidx.compose.ui.text.font.Font);
   }
 
@@ -858,11 +885,15 @@
 
   public final class ResourceFont implements androidx.compose.ui.text.font.Font {
     method public androidx.compose.ui.text.font.ResourceFont copy(optional int resId, optional androidx.compose.ui.text.font.FontWeight weight, optional int style);
+    method @androidx.compose.ui.text.ExperimentalTextApi public androidx.compose.ui.text.font.ResourceFont copy(optional int resId, optional androidx.compose.ui.text.font.FontWeight weight, optional int style, optional int loadingStrategy, optional androidx.compose.ui.text.font.FontVariation.Settings variationSettings);
     method public int getResId();
     method public int getStyle();
+    method @androidx.compose.ui.text.ExperimentalTextApi public androidx.compose.ui.text.font.FontVariation.Settings getVariationSettings();
     method public androidx.compose.ui.text.font.FontWeight getWeight();
+    property @androidx.compose.ui.text.ExperimentalTextApi public int loadingStrategy;
     property public final int resId;
     property public int style;
+    property @androidx.compose.ui.text.ExperimentalTextApi public final androidx.compose.ui.text.font.FontVariation.Settings variationSettings;
     property public androidx.compose.ui.text.font.FontWeight weight;
   }
 
@@ -1052,6 +1083,39 @@
     property public final char mask;
   }
 
+  @androidx.compose.ui.text.ExperimentalTextApi public sealed interface PlatformTextInput {
+    method public void releaseInputFocus();
+    method public void requestInputFocus();
+  }
+
+  @androidx.compose.ui.text.ExperimentalTextApi public interface PlatformTextInputAdapter {
+    method public android.view.inputmethod.InputConnection? createInputConnection(android.view.inputmethod.EditorInfo outAttrs);
+    method public default void onDisposed();
+  }
+
+  @androidx.compose.runtime.Immutable @androidx.compose.ui.text.ExperimentalTextApi public fun interface PlatformTextInputPlugin<T extends androidx.compose.ui.text.input.PlatformTextInputAdapter> {
+    method public T createAdapter(androidx.compose.ui.text.input.PlatformTextInput platformTextInput, android.view.View view);
+  }
+
+  @androidx.compose.runtime.Stable @androidx.compose.ui.text.ExperimentalTextApi public sealed interface PlatformTextInputPluginRegistry {
+    method @androidx.compose.runtime.Composable public <T extends androidx.compose.ui.text.input.PlatformTextInputAdapter> T rememberAdapter(androidx.compose.ui.text.input.PlatformTextInputPlugin<T> plugin);
+  }
+
+  @androidx.compose.ui.text.InternalTextApi public final class PlatformTextInputPluginRegistryImpl implements androidx.compose.ui.text.input.PlatformTextInputPluginRegistry {
+    ctor public PlatformTextInputPluginRegistryImpl(kotlin.jvm.functions.Function2<? super androidx.compose.ui.text.input.PlatformTextInputPlugin<?>,? super androidx.compose.ui.text.input.PlatformTextInput,? extends androidx.compose.ui.text.input.PlatformTextInputAdapter> factory);
+    method public androidx.compose.ui.text.input.PlatformTextInputAdapter? getFocusedAdapter();
+    method @androidx.compose.ui.text.InternalTextApi public <T extends androidx.compose.ui.text.input.PlatformTextInputAdapter> androidx.compose.ui.text.input.PlatformTextInputPluginRegistryImpl.AdapterHandle<T> getOrCreateAdapter(androidx.compose.ui.text.input.PlatformTextInputPlugin<T> plugin);
+    method @androidx.compose.runtime.Composable public <T extends androidx.compose.ui.text.input.PlatformTextInputAdapter> T rememberAdapter(androidx.compose.ui.text.input.PlatformTextInputPlugin<T> plugin);
+    property public final androidx.compose.ui.text.input.PlatformTextInputAdapter? focusedAdapter;
+  }
+
+  @androidx.compose.ui.text.InternalTextApi public static final class PlatformTextInputPluginRegistryImpl.AdapterHandle<T extends androidx.compose.ui.text.input.PlatformTextInputAdapter> {
+    ctor public PlatformTextInputPluginRegistryImpl.AdapterHandle(T adapter, kotlin.jvm.functions.Function0<java.lang.Boolean> onDispose);
+    method public boolean dispose();
+    method public T getAdapter();
+    property public final T adapter;
+  }
+
   public interface PlatformTextInputService {
     method public void hideSoftwareKeyboard();
     method public default void notifyFocusedRect(androidx.compose.ui.geometry.Rect rect);
@@ -1199,6 +1263,15 @@
 
 }
 
+package androidx.compose.ui.text.platform {
+
+  @androidx.compose.ui.text.InternalTextApi public final class URLSpanCache {
+    ctor public URLSpanCache();
+    method public android.text.style.URLSpan toURLSpan(androidx.compose.ui.text.UrlAnnotation urlAnnotation);
+  }
+
+}
+
 package androidx.compose.ui.text.platform.extensions {
 
   public final class TtsAnnotationExtensions_androidKt {
diff --git a/compose/ui/ui-tooling-data/api/public_plus_experimental_current.txt b/compose/ui/ui-tooling-data/api/1.5.0-beta01.txt
similarity index 100%
rename from compose/ui/ui-tooling-data/api/public_plus_experimental_current.txt
rename to compose/ui/ui-tooling-data/api/1.5.0-beta01.txt
diff --git a/compose/ui/ui-tooling-data/api/current.txt b/compose/ui/ui-tooling-data/api/current.txt
index e6f50d0..899fa9f 100644
--- a/compose/ui/ui-tooling-data/api/current.txt
+++ b/compose/ui/ui-tooling-data/api/current.txt
@@ -1 +1,127 @@
 // Signature format: 4.0
+package androidx.compose.ui.tooling.data {
+
+  @androidx.compose.ui.tooling.data.UiToolingDataApi public final class CallGroup extends androidx.compose.ui.tooling.data.Group {
+    ctor public CallGroup(Object? key, String? name, androidx.compose.ui.unit.IntRect box, androidx.compose.ui.tooling.data.SourceLocation? location, Object? identity, java.util.List<androidx.compose.ui.tooling.data.ParameterInformation> parameters, java.util.Collection<?> data, java.util.Collection<? extends androidx.compose.ui.tooling.data.Group> children, boolean isInline);
+    property public java.util.List<androidx.compose.ui.tooling.data.ParameterInformation> parameters;
+  }
+
+  @androidx.compose.ui.tooling.data.UiToolingDataApi public final class ContextCache {
+    ctor public ContextCache();
+    method public void clear();
+  }
+
+  @androidx.compose.ui.tooling.data.UiToolingDataApi public abstract sealed class Group {
+    method public final androidx.compose.ui.unit.IntRect getBox();
+    method public final java.util.Collection<androidx.compose.ui.tooling.data.Group> getChildren();
+    method public final java.util.Collection<java.lang.Object> getData();
+    method public final Object? getIdentity();
+    method public final Object? getKey();
+    method public final androidx.compose.ui.tooling.data.SourceLocation? getLocation();
+    method public java.util.List<androidx.compose.ui.layout.ModifierInfo> getModifierInfo();
+    method public final String? getName();
+    method public java.util.List<androidx.compose.ui.tooling.data.ParameterInformation> getParameters();
+    method public final boolean isInline();
+    property public final androidx.compose.ui.unit.IntRect box;
+    property public final java.util.Collection<androidx.compose.ui.tooling.data.Group> children;
+    property public final java.util.Collection<java.lang.Object> data;
+    property public final Object? identity;
+    property public final boolean isInline;
+    property public final Object? key;
+    property public final androidx.compose.ui.tooling.data.SourceLocation? location;
+    property public java.util.List<androidx.compose.ui.layout.ModifierInfo> modifierInfo;
+    property public final String? name;
+    property public java.util.List<androidx.compose.ui.tooling.data.ParameterInformation> parameters;
+  }
+
+  @androidx.compose.ui.tooling.data.UiToolingDataApi public final class JoinedKey {
+    ctor public JoinedKey(Object? left, Object? right);
+    method public Object? component1();
+    method public Object? component2();
+    method public androidx.compose.ui.tooling.data.JoinedKey copy(Object? left, Object? right);
+    method public Object? getLeft();
+    method public Object? getRight();
+    property public final Object? left;
+    property public final Object? right;
+  }
+
+  @androidx.compose.ui.tooling.data.UiToolingDataApi public final class NodeGroup extends androidx.compose.ui.tooling.data.Group {
+    ctor public NodeGroup(Object? key, Object node, androidx.compose.ui.unit.IntRect box, java.util.Collection<?> data, java.util.List<androidx.compose.ui.layout.ModifierInfo> modifierInfo, java.util.Collection<? extends androidx.compose.ui.tooling.data.Group> children);
+    method public Object getNode();
+    property public java.util.List<androidx.compose.ui.layout.ModifierInfo> modifierInfo;
+    property public final Object node;
+  }
+
+  @androidx.compose.ui.tooling.data.UiToolingDataApi public final class ParameterInformation {
+    ctor public ParameterInformation(String name, Object? value, boolean fromDefault, boolean static, boolean compared, String? inlineClass, boolean stable);
+    method public String component1();
+    method public Object? component2();
+    method public boolean component3();
+    method public boolean component4();
+    method public boolean component5();
+    method public String? component6();
+    method public boolean component7();
+    method public androidx.compose.ui.tooling.data.ParameterInformation copy(String name, Object? value, boolean fromDefault, boolean static, boolean compared, String? inlineClass, boolean stable);
+    method public boolean getCompared();
+    method public boolean getFromDefault();
+    method public String? getInlineClass();
+    method public String getName();
+    method public boolean getStable();
+    method public boolean getStatic();
+    method public Object? getValue();
+    property public final boolean compared;
+    property public final boolean fromDefault;
+    property public final String? inlineClass;
+    property public final String name;
+    property public final boolean stable;
+    property public final boolean static;
+    property public final Object? value;
+  }
+
+  public final class SlotTreeKt {
+    method @androidx.compose.ui.tooling.data.UiToolingDataApi public static androidx.compose.ui.tooling.data.Group asTree(androidx.compose.runtime.tooling.CompositionData);
+    method @androidx.compose.ui.tooling.data.UiToolingDataApi public static java.util.List<androidx.compose.ui.tooling.data.ParameterInformation> findParameters(androidx.compose.runtime.tooling.CompositionGroup, optional androidx.compose.ui.tooling.data.ContextCache? cache);
+    method @androidx.compose.ui.tooling.data.UiToolingDataApi public static String? getPosition(androidx.compose.ui.tooling.data.Group);
+    method @androidx.compose.ui.tooling.data.UiToolingDataApi public static <T> T? mapTree(androidx.compose.runtime.tooling.CompositionData, kotlin.jvm.functions.Function3<? super androidx.compose.runtime.tooling.CompositionGroup,? super androidx.compose.ui.tooling.data.SourceContext,? super java.util.List<? extends T>,? extends T> factory, optional androidx.compose.ui.tooling.data.ContextCache cache);
+  }
+
+  @androidx.compose.ui.tooling.data.UiToolingDataApi public interface SourceContext {
+    method public androidx.compose.ui.unit.IntRect getBounds();
+    method public int getDepth();
+    method public androidx.compose.ui.tooling.data.SourceLocation? getLocation();
+    method public String? getName();
+    method public java.util.List<androidx.compose.ui.tooling.data.ParameterInformation> getParameters();
+    method public default boolean isInline();
+    property public abstract androidx.compose.ui.unit.IntRect bounds;
+    property public abstract int depth;
+    property public default boolean isInline;
+    property public abstract androidx.compose.ui.tooling.data.SourceLocation? location;
+    property public abstract String? name;
+    property public abstract java.util.List<androidx.compose.ui.tooling.data.ParameterInformation> parameters;
+  }
+
+  @androidx.compose.ui.tooling.data.UiToolingDataApi public final class SourceLocation {
+    ctor public SourceLocation(int lineNumber, int offset, int length, String? sourceFile, int packageHash);
+    method public int component1();
+    method public int component2();
+    method public int component3();
+    method public String? component4();
+    method public int component5();
+    method public androidx.compose.ui.tooling.data.SourceLocation copy(int lineNumber, int offset, int length, String? sourceFile, int packageHash);
+    method public int getLength();
+    method public int getLineNumber();
+    method public int getOffset();
+    method public int getPackageHash();
+    method public String? getSourceFile();
+    property public final int length;
+    property public final int lineNumber;
+    property public final int offset;
+    property public final int packageHash;
+    property public final String? sourceFile;
+  }
+
+  @kotlin.RequiresOptIn(message="This API is for tooling only and is likely to change in the future.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface UiToolingDataApi {
+  }
+
+}
+
diff --git a/compose/ui/ui-tooling-data/api/res-1.5.0-beta01.txt b/compose/ui/ui-tooling-data/api/res-1.5.0-beta01.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/compose/ui/ui-tooling-data/api/res-1.5.0-beta01.txt
diff --git a/compose/ui/ui-tooling-data/api/public_plus_experimental_current.txt b/compose/ui/ui-tooling-data/api/restricted_1.5.0-beta01.txt
similarity index 100%
copy from compose/ui/ui-tooling-data/api/public_plus_experimental_current.txt
copy to compose/ui/ui-tooling-data/api/restricted_1.5.0-beta01.txt
diff --git a/compose/ui/ui-tooling-data/api/restricted_current.txt b/compose/ui/ui-tooling-data/api/restricted_current.txt
index e6f50d0..899fa9f 100644
--- a/compose/ui/ui-tooling-data/api/restricted_current.txt
+++ b/compose/ui/ui-tooling-data/api/restricted_current.txt
@@ -1 +1,127 @@
 // Signature format: 4.0
+package androidx.compose.ui.tooling.data {
+
+  @androidx.compose.ui.tooling.data.UiToolingDataApi public final class CallGroup extends androidx.compose.ui.tooling.data.Group {
+    ctor public CallGroup(Object? key, String? name, androidx.compose.ui.unit.IntRect box, androidx.compose.ui.tooling.data.SourceLocation? location, Object? identity, java.util.List<androidx.compose.ui.tooling.data.ParameterInformation> parameters, java.util.Collection<?> data, java.util.Collection<? extends androidx.compose.ui.tooling.data.Group> children, boolean isInline);
+    property public java.util.List<androidx.compose.ui.tooling.data.ParameterInformation> parameters;
+  }
+
+  @androidx.compose.ui.tooling.data.UiToolingDataApi public final class ContextCache {
+    ctor public ContextCache();
+    method public void clear();
+  }
+
+  @androidx.compose.ui.tooling.data.UiToolingDataApi public abstract sealed class Group {
+    method public final androidx.compose.ui.unit.IntRect getBox();
+    method public final java.util.Collection<androidx.compose.ui.tooling.data.Group> getChildren();
+    method public final java.util.Collection<java.lang.Object> getData();
+    method public final Object? getIdentity();
+    method public final Object? getKey();
+    method public final androidx.compose.ui.tooling.data.SourceLocation? getLocation();
+    method public java.util.List<androidx.compose.ui.layout.ModifierInfo> getModifierInfo();
+    method public final String? getName();
+    method public java.util.List<androidx.compose.ui.tooling.data.ParameterInformation> getParameters();
+    method public final boolean isInline();
+    property public final androidx.compose.ui.unit.IntRect box;
+    property public final java.util.Collection<androidx.compose.ui.tooling.data.Group> children;
+    property public final java.util.Collection<java.lang.Object> data;
+    property public final Object? identity;
+    property public final boolean isInline;
+    property public final Object? key;
+    property public final androidx.compose.ui.tooling.data.SourceLocation? location;
+    property public java.util.List<androidx.compose.ui.layout.ModifierInfo> modifierInfo;
+    property public final String? name;
+    property public java.util.List<androidx.compose.ui.tooling.data.ParameterInformation> parameters;
+  }
+
+  @androidx.compose.ui.tooling.data.UiToolingDataApi public final class JoinedKey {
+    ctor public JoinedKey(Object? left, Object? right);
+    method public Object? component1();
+    method public Object? component2();
+    method public androidx.compose.ui.tooling.data.JoinedKey copy(Object? left, Object? right);
+    method public Object? getLeft();
+    method public Object? getRight();
+    property public final Object? left;
+    property public final Object? right;
+  }
+
+  @androidx.compose.ui.tooling.data.UiToolingDataApi public final class NodeGroup extends androidx.compose.ui.tooling.data.Group {
+    ctor public NodeGroup(Object? key, Object node, androidx.compose.ui.unit.IntRect box, java.util.Collection<?> data, java.util.List<androidx.compose.ui.layout.ModifierInfo> modifierInfo, java.util.Collection<? extends androidx.compose.ui.tooling.data.Group> children);
+    method public Object getNode();
+    property public java.util.List<androidx.compose.ui.layout.ModifierInfo> modifierInfo;
+    property public final Object node;
+  }
+
+  @androidx.compose.ui.tooling.data.UiToolingDataApi public final class ParameterInformation {
+    ctor public ParameterInformation(String name, Object? value, boolean fromDefault, boolean static, boolean compared, String? inlineClass, boolean stable);
+    method public String component1();
+    method public Object? component2();
+    method public boolean component3();
+    method public boolean component4();
+    method public boolean component5();
+    method public String? component6();
+    method public boolean component7();
+    method public androidx.compose.ui.tooling.data.ParameterInformation copy(String name, Object? value, boolean fromDefault, boolean static, boolean compared, String? inlineClass, boolean stable);
+    method public boolean getCompared();
+    method public boolean getFromDefault();
+    method public String? getInlineClass();
+    method public String getName();
+    method public boolean getStable();
+    method public boolean getStatic();
+    method public Object? getValue();
+    property public final boolean compared;
+    property public final boolean fromDefault;
+    property public final String? inlineClass;
+    property public final String name;
+    property public final boolean stable;
+    property public final boolean static;
+    property public final Object? value;
+  }
+
+  public final class SlotTreeKt {
+    method @androidx.compose.ui.tooling.data.UiToolingDataApi public static androidx.compose.ui.tooling.data.Group asTree(androidx.compose.runtime.tooling.CompositionData);
+    method @androidx.compose.ui.tooling.data.UiToolingDataApi public static java.util.List<androidx.compose.ui.tooling.data.ParameterInformation> findParameters(androidx.compose.runtime.tooling.CompositionGroup, optional androidx.compose.ui.tooling.data.ContextCache? cache);
+    method @androidx.compose.ui.tooling.data.UiToolingDataApi public static String? getPosition(androidx.compose.ui.tooling.data.Group);
+    method @androidx.compose.ui.tooling.data.UiToolingDataApi public static <T> T? mapTree(androidx.compose.runtime.tooling.CompositionData, kotlin.jvm.functions.Function3<? super androidx.compose.runtime.tooling.CompositionGroup,? super androidx.compose.ui.tooling.data.SourceContext,? super java.util.List<? extends T>,? extends T> factory, optional androidx.compose.ui.tooling.data.ContextCache cache);
+  }
+
+  @androidx.compose.ui.tooling.data.UiToolingDataApi public interface SourceContext {
+    method public androidx.compose.ui.unit.IntRect getBounds();
+    method public int getDepth();
+    method public androidx.compose.ui.tooling.data.SourceLocation? getLocation();
+    method public String? getName();
+    method public java.util.List<androidx.compose.ui.tooling.data.ParameterInformation> getParameters();
+    method public default boolean isInline();
+    property public abstract androidx.compose.ui.unit.IntRect bounds;
+    property public abstract int depth;
+    property public default boolean isInline;
+    property public abstract androidx.compose.ui.tooling.data.SourceLocation? location;
+    property public abstract String? name;
+    property public abstract java.util.List<androidx.compose.ui.tooling.data.ParameterInformation> parameters;
+  }
+
+  @androidx.compose.ui.tooling.data.UiToolingDataApi public final class SourceLocation {
+    ctor public SourceLocation(int lineNumber, int offset, int length, String? sourceFile, int packageHash);
+    method public int component1();
+    method public int component2();
+    method public int component3();
+    method public String? component4();
+    method public int component5();
+    method public androidx.compose.ui.tooling.data.SourceLocation copy(int lineNumber, int offset, int length, String? sourceFile, int packageHash);
+    method public int getLength();
+    method public int getLineNumber();
+    method public int getOffset();
+    method public int getPackageHash();
+    method public String? getSourceFile();
+    property public final int length;
+    property public final int lineNumber;
+    property public final int offset;
+    property public final int packageHash;
+    property public final String? sourceFile;
+  }
+
+  @kotlin.RequiresOptIn(message="This API is for tooling only and is likely to change in the future.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface UiToolingDataApi {
+  }
+
+}
+
diff --git a/compose/ui/ui-tooling-preview/api/public_plus_experimental_current.txt b/compose/ui/ui-tooling-preview/api/1.5.0-beta01.txt
similarity index 100%
rename from compose/ui/ui-tooling-preview/api/public_plus_experimental_current.txt
rename to compose/ui/ui-tooling-preview/api/1.5.0-beta01.txt
diff --git a/compose/ui/ui-tooling-preview/api/res-1.5.0-beta01.txt b/compose/ui/ui-tooling-preview/api/res-1.5.0-beta01.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/compose/ui/ui-tooling-preview/api/res-1.5.0-beta01.txt
diff --git a/compose/ui/ui-tooling-preview/api/public_plus_experimental_current.txt b/compose/ui/ui-tooling-preview/api/restricted_1.5.0-beta01.txt
similarity index 100%
copy from compose/ui/ui-tooling-preview/api/public_plus_experimental_current.txt
copy to compose/ui/ui-tooling-preview/api/restricted_1.5.0-beta01.txt
diff --git a/compose/ui/ui-tooling-preview/lint-baseline.xml b/compose/ui/ui-tooling-preview/lint-baseline.xml
deleted file mode 100644
index 5a8706a..0000000
--- a/compose/ui/ui-tooling-preview/lint-baseline.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 8.1.0-alpha07" type="baseline" client="gradle" dependencies="false" name="AGP (8.0.0-beta03)" variant="all" version="8.1.0-alpha07">
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="annotation class UiMode"
-        errorLine2="                 ~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/tooling/preview/UiMode.kt"/>
-    </issue>
-
-</issues>
diff --git a/compose/ui/ui-tooling-preview/src/androidMain/kotlin/androidx/compose/ui/tooling/preview/UiMode.kt b/compose/ui/ui-tooling-preview/src/androidMain/kotlin/androidx/compose/ui/tooling/preview/UiMode.kt
index 13e53cb..5ea037f 100644
--- a/compose/ui/ui-tooling-preview/src/androidMain/kotlin/androidx/compose/ui/tooling/preview/UiMode.kt
+++ b/compose/ui/ui-tooling-preview/src/androidMain/kotlin/androidx/compose/ui/tooling/preview/UiMode.kt
@@ -31,11 +31,12 @@
 import android.content.res.Configuration.UI_MODE_TYPE_VR_HEADSET
 import android.content.res.Configuration.UI_MODE_TYPE_WATCH
 import androidx.annotation.IntDef
+import androidx.annotation.RestrictTo
 
 /**
  * Annotation of setting uiMode in [Preview].
- * @hide
  */
+@RestrictTo(RestrictTo.Scope.LIBRARY)
 @SuppressLint("UniqueConstants") // UI_MODE_NIGHT_UNDEFINED == UI_MODE_TYPE_UNDEFINED
 @Retention(AnnotationRetention.SOURCE)
 @IntDef(
diff --git a/compose/ui/ui-tooling/api/public_plus_experimental_current.txt b/compose/ui/ui-tooling/api/1.5.0-beta01.txt
similarity index 100%
rename from compose/ui/ui-tooling/api/public_plus_experimental_current.txt
rename to compose/ui/ui-tooling/api/1.5.0-beta01.txt
diff --git a/compose/ui/ui-tooling/api/current.txt b/compose/ui/ui-tooling/api/current.txt
index 486b41e..df56c2d 100644
--- a/compose/ui/ui-tooling/api/current.txt
+++ b/compose/ui/ui-tooling/api/current.txt
@@ -1,6 +1,11 @@
 // Signature format: 4.0
 package androidx.compose.ui.tooling {
 
+  @Deprecated @androidx.compose.ui.ExperimentalComposeUiApi public final class ComposableInvoker {
+    method @Deprecated @androidx.compose.ui.ExperimentalComposeUiApi public void invokeComposable(String className, String methodName, androidx.compose.runtime.Composer composer, java.lang.Object?... args);
+    field @Deprecated public static final androidx.compose.ui.tooling.ComposableInvoker INSTANCE;
+  }
+
   public final class InspectableKt {
     method @Deprecated @androidx.compose.runtime.Composable public static void InInspectionModeOnly(kotlin.jvm.functions.Function0<kotlin.Unit> content);
   }
diff --git a/compose/ui/ui-tooling/api/res-1.5.0-beta01.txt b/compose/ui/ui-tooling/api/res-1.5.0-beta01.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/compose/ui/ui-tooling/api/res-1.5.0-beta01.txt
diff --git a/compose/ui/ui-tooling/api/public_plus_experimental_current.txt b/compose/ui/ui-tooling/api/restricted_1.5.0-beta01.txt
similarity index 100%
copy from compose/ui/ui-tooling/api/public_plus_experimental_current.txt
copy to compose/ui/ui-tooling/api/restricted_1.5.0-beta01.txt
diff --git a/compose/ui/ui-tooling/api/restricted_current.txt b/compose/ui/ui-tooling/api/restricted_current.txt
index 486b41e..df56c2d 100644
--- a/compose/ui/ui-tooling/api/restricted_current.txt
+++ b/compose/ui/ui-tooling/api/restricted_current.txt
@@ -1,6 +1,11 @@
 // Signature format: 4.0
 package androidx.compose.ui.tooling {
 
+  @Deprecated @androidx.compose.ui.ExperimentalComposeUiApi public final class ComposableInvoker {
+    method @Deprecated @androidx.compose.ui.ExperimentalComposeUiApi public void invokeComposable(String className, String methodName, androidx.compose.runtime.Composer composer, java.lang.Object?... args);
+    field @Deprecated public static final androidx.compose.ui.tooling.ComposableInvoker INSTANCE;
+  }
+
   public final class InspectableKt {
     method @Deprecated @androidx.compose.runtime.Composable public static void InInspectionModeOnly(kotlin.jvm.functions.Function0<kotlin.Unit> content);
   }
diff --git a/compose/ui/ui-unit/api/public_plus_experimental_current.txt b/compose/ui/ui-unit/api/1.5.0-beta01.txt
similarity index 100%
rename from compose/ui/ui-unit/api/public_plus_experimental_current.txt
rename to compose/ui/ui-unit/api/1.5.0-beta01.txt
diff --git a/compose/ui/ui-unit/api/current.txt b/compose/ui/ui-unit/api/current.txt
index b58f3eb..bc439ae 100644
--- a/compose/ui/ui-unit/api/current.txt
+++ b/compose/ui/ui-unit/api/current.txt
@@ -194,6 +194,9 @@
     property public final long Zero;
   }
 
+  @kotlin.RequiresOptIn(message="This API is experimental and is likely to change in the future.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface ExperimentalUnitApi {
+  }
+
   @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class IntOffset {
     method @androidx.compose.runtime.Stable public operator int component1();
     method @androidx.compose.runtime.Stable public operator int component2();
diff --git a/compose/ui/ui-unit/api/res-1.5.0-beta01.txt b/compose/ui/ui-unit/api/res-1.5.0-beta01.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/compose/ui/ui-unit/api/res-1.5.0-beta01.txt
diff --git a/compose/ui/ui-unit/api/restricted_1.5.0-beta01.txt b/compose/ui/ui-unit/api/restricted_1.5.0-beta01.txt
new file mode 100644
index 0000000..fa535e7
--- /dev/null
+++ b/compose/ui/ui-unit/api/restricted_1.5.0-beta01.txt
@@ -0,0 +1,422 @@
+// Signature format: 4.0
+package androidx.compose.ui.unit {
+
+  public final class AndroidDensity_androidKt {
+    method public static androidx.compose.ui.unit.Density Density(android.content.Context context);
+  }
+
+  @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class Constraints {
+    ctor public Constraints(@kotlin.PublishedApi long value);
+    method public long copy(optional int minWidth, optional int maxWidth, optional int minHeight, optional int maxHeight);
+    method public boolean getHasBoundedHeight();
+    method public boolean getHasBoundedWidth();
+    method public boolean getHasFixedHeight();
+    method public boolean getHasFixedWidth();
+    method public int getMaxHeight();
+    method public int getMaxWidth();
+    method public int getMinHeight();
+    method public int getMinWidth();
+    method public boolean isZero();
+    property public final boolean hasBoundedHeight;
+    property public final boolean hasBoundedWidth;
+    property @androidx.compose.runtime.Stable public final boolean hasFixedHeight;
+    property @androidx.compose.runtime.Stable public final boolean hasFixedWidth;
+    property @androidx.compose.runtime.Stable public final boolean isZero;
+    property public final int maxHeight;
+    property public final int maxWidth;
+    property public final int minHeight;
+    property public final int minWidth;
+    field public static final androidx.compose.ui.unit.Constraints.Companion Companion;
+    field public static final int Infinity = 2147483647; // 0x7fffffff
+  }
+
+  public static final class Constraints.Companion {
+    method @androidx.compose.runtime.Stable public long fixed(int width, int height);
+    method @androidx.compose.runtime.Stable public long fixedHeight(int height);
+    method @androidx.compose.runtime.Stable public long fixedWidth(int width);
+  }
+
+  public final class ConstraintsKt {
+    method @androidx.compose.runtime.Stable public static long Constraints(optional int minWidth, optional int maxWidth, optional int minHeight, optional int maxHeight);
+    method public static long constrain(long, long otherConstraints);
+    method @androidx.compose.runtime.Stable public static long constrain(long, long size);
+    method @androidx.compose.runtime.Stable public static int constrainHeight(long, int height);
+    method @androidx.compose.runtime.Stable public static int constrainWidth(long, int width);
+    method @androidx.compose.runtime.Stable public static boolean isSatisfiedBy(long, long size);
+    method @androidx.compose.runtime.Stable public static long offset(long, optional int horizontal, optional int vertical);
+  }
+
+  @androidx.compose.runtime.Immutable @kotlin.jvm.JvmDefaultWithCompatibility public interface Density {
+    method public float getDensity();
+    method public float getFontScale();
+    method @androidx.compose.runtime.Stable public default int roundToPx(float);
+    method @androidx.compose.runtime.Stable public default int roundToPx(long);
+    method @androidx.compose.runtime.Stable public default float toDp(float);
+    method @androidx.compose.runtime.Stable public default float toDp(int);
+    method @androidx.compose.runtime.Stable public default float toDp(long);
+    method @androidx.compose.runtime.Stable public default long toDpSize(long);
+    method @androidx.compose.runtime.Stable public default float toPx(float);
+    method @androidx.compose.runtime.Stable public default float toPx(long);
+    method @androidx.compose.runtime.Stable public default androidx.compose.ui.geometry.Rect toRect(androidx.compose.ui.unit.DpRect);
+    method @androidx.compose.runtime.Stable public default long toSize(long);
+    method @androidx.compose.runtime.Stable public default long toSp(float);
+    method @androidx.compose.runtime.Stable public default long toSp(float);
+    method @androidx.compose.runtime.Stable public default long toSp(int);
+    property public abstract float density;
+    property public abstract float fontScale;
+  }
+
+  public final class DensityKt {
+    method @androidx.compose.runtime.Stable public static androidx.compose.ui.unit.Density Density(float density, optional float fontScale);
+  }
+
+  @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class Dp implements java.lang.Comparable<androidx.compose.ui.unit.Dp> {
+    ctor public Dp(float value);
+    method @androidx.compose.runtime.Stable public operator int compareTo(float other);
+    method @androidx.compose.runtime.Stable public inline operator float div(float other);
+    method @androidx.compose.runtime.Stable public inline operator float div(float other);
+    method @androidx.compose.runtime.Stable public inline operator float div(int other);
+    method public float getValue();
+    method @androidx.compose.runtime.Stable public inline operator float minus(float other);
+    method @androidx.compose.runtime.Stable public inline operator float plus(float other);
+    method @androidx.compose.runtime.Stable public inline operator float times(float other);
+    method @androidx.compose.runtime.Stable public inline operator float times(int other);
+    method @androidx.compose.runtime.Stable public inline operator float unaryMinus();
+    property public final float value;
+    field public static final androidx.compose.ui.unit.Dp.Companion Companion;
+  }
+
+  public static final class Dp.Companion {
+    method public float getHairline();
+    method public float getInfinity();
+    method public float getUnspecified();
+    property public final float Hairline;
+    property public final float Infinity;
+    property public final float Unspecified;
+  }
+
+  public final class DpKt {
+    method @androidx.compose.runtime.Stable public static long DpOffset(float x, float y);
+    method @androidx.compose.runtime.Stable public static long DpSize(float width, float height);
+    method @androidx.compose.runtime.Stable public static inline float coerceAtLeast(float, float minimumValue);
+    method @androidx.compose.runtime.Stable public static inline float coerceAtMost(float, float maximumValue);
+    method @androidx.compose.runtime.Stable public static inline float coerceIn(float, float minimumValue, float maximumValue);
+    method public static long getCenter(long);
+    method public static inline float getDp(double);
+    method public static inline float getDp(float);
+    method public static inline float getDp(int);
+    method public static inline float getHeight(androidx.compose.ui.unit.DpRect);
+    method public static inline long getSize(androidx.compose.ui.unit.DpRect);
+    method public static inline float getWidth(androidx.compose.ui.unit.DpRect);
+    method public static inline boolean isFinite(float);
+    method public static inline boolean isSpecified(float);
+    method public static inline boolean isSpecified(long);
+    method public static inline boolean isSpecified(long);
+    method public static inline boolean isUnspecified(float);
+    method public static inline boolean isUnspecified(long);
+    method public static inline boolean isUnspecified(long);
+    method @androidx.compose.runtime.Stable public static float lerp(float start, float stop, float fraction);
+    method @androidx.compose.runtime.Stable public static long lerp(long start, long stop, float fraction);
+    method @androidx.compose.runtime.Stable public static long lerp(long start, long stop, float fraction);
+    method @androidx.compose.runtime.Stable public static inline float max(float a, float b);
+    method @androidx.compose.runtime.Stable public static inline float min(float a, float b);
+    method public static inline float takeOrElse(float, kotlin.jvm.functions.Function0<androidx.compose.ui.unit.Dp> block);
+    method public static inline long takeOrElse(long, kotlin.jvm.functions.Function0<androidx.compose.ui.unit.DpOffset> block);
+    method public static inline long takeOrElse(long, kotlin.jvm.functions.Function0<androidx.compose.ui.unit.DpSize> block);
+    method @androidx.compose.runtime.Stable public static inline operator float times(double, float other);
+    method @androidx.compose.runtime.Stable public static inline operator float times(float, float other);
+    method @androidx.compose.runtime.Stable public static inline operator long times(float, long size);
+    method @androidx.compose.runtime.Stable public static inline operator float times(int, float other);
+    method @androidx.compose.runtime.Stable public static inline operator long times(int, long size);
+  }
+
+  @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class DpOffset {
+    method public long copy(optional float x, optional float y);
+    method public float getX();
+    method public float getY();
+    method @androidx.compose.runtime.Stable public inline operator long minus(long other);
+    method @androidx.compose.runtime.Stable public inline operator long plus(long other);
+    property @androidx.compose.runtime.Stable public final float x;
+    property @androidx.compose.runtime.Stable public final float y;
+    field public static final androidx.compose.ui.unit.DpOffset.Companion Companion;
+  }
+
+  public static final class DpOffset.Companion {
+    method public long getUnspecified();
+    method public long getZero();
+    property public final long Unspecified;
+    property public final long Zero;
+  }
+
+  @androidx.compose.runtime.Immutable public final class DpRect {
+    ctor public DpRect(@androidx.compose.runtime.Stable float left, @androidx.compose.runtime.Stable float top, @androidx.compose.runtime.Stable float right, @androidx.compose.runtime.Stable float bottom);
+    ctor public DpRect(long origin, long size);
+    method public float component1-D9Ej5fM();
+    method public float component2-D9Ej5fM();
+    method public float component3-D9Ej5fM();
+    method public float component4-D9Ej5fM();
+    method public androidx.compose.ui.unit.DpRect copy-a9UjIt4(float left, float top, float right, float bottom);
+    method public float getBottom();
+    method public float getLeft();
+    method public float getRight();
+    method public float getTop();
+    property public final float bottom;
+    property public final float left;
+    property public final float right;
+    property public final float top;
+    field public static final androidx.compose.ui.unit.DpRect.Companion Companion;
+  }
+
+  public static final class DpRect.Companion {
+  }
+
+  @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class DpSize {
+    method @androidx.compose.runtime.Stable public inline operator float component1();
+    method @androidx.compose.runtime.Stable public inline operator float component2();
+    method public long copy(optional float width, optional float height);
+    method @androidx.compose.runtime.Stable public operator long div(float other);
+    method @androidx.compose.runtime.Stable public operator long div(int other);
+    method public float getHeight();
+    method public float getWidth();
+    method @androidx.compose.runtime.Stable public inline operator long minus(long other);
+    method @androidx.compose.runtime.Stable public inline operator long plus(long other);
+    method @androidx.compose.runtime.Stable public operator long times(float other);
+    method @androidx.compose.runtime.Stable public operator long times(int other);
+    property @androidx.compose.runtime.Stable public final float height;
+    property @androidx.compose.runtime.Stable public final float width;
+    field public static final androidx.compose.ui.unit.DpSize.Companion Companion;
+  }
+
+  public static final class DpSize.Companion {
+    method public long getUnspecified();
+    method public long getZero();
+    property public final long Unspecified;
+    property public final long Zero;
+  }
+
+  @kotlin.RequiresOptIn(message="This API is experimental and is likely to change in the future.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface ExperimentalUnitApi {
+  }
+
+  @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class IntOffset {
+    method @androidx.compose.runtime.Stable public operator int component1();
+    method @androidx.compose.runtime.Stable public operator int component2();
+    method public long copy(optional int x, optional int y);
+    method @androidx.compose.runtime.Stable public operator long div(float operand);
+    method public int getX();
+    method public int getY();
+    method @androidx.compose.runtime.Stable public inline operator long minus(long other);
+    method @androidx.compose.runtime.Stable public inline operator long plus(long other);
+    method @androidx.compose.runtime.Stable public operator long rem(int operand);
+    method @androidx.compose.runtime.Stable public operator long times(float operand);
+    method @androidx.compose.runtime.Stable public inline operator long unaryMinus();
+    property @androidx.compose.runtime.Stable public final int x;
+    property @androidx.compose.runtime.Stable public final int y;
+    field public static final androidx.compose.ui.unit.IntOffset.Companion Companion;
+  }
+
+  public static final class IntOffset.Companion {
+    method public long getZero();
+    property public final long Zero;
+  }
+
+  public final class IntOffsetKt {
+    method @androidx.compose.runtime.Stable public static long IntOffset(int x, int y);
+    method @androidx.compose.runtime.Stable public static long lerp(long start, long stop, float fraction);
+    method @androidx.compose.runtime.Stable public static operator long minus(long, long offset);
+    method @androidx.compose.runtime.Stable public static operator long minus(long, long offset);
+    method @androidx.compose.runtime.Stable public static operator long plus(long, long offset);
+    method @androidx.compose.runtime.Stable public static operator long plus(long, long offset);
+    method @androidx.compose.runtime.Stable public static inline long round(long);
+    method @androidx.compose.runtime.Stable public static inline long toOffset(long);
+  }
+
+  @androidx.compose.runtime.Immutable public final class IntRect {
+    ctor public IntRect(@androidx.compose.runtime.Stable int left, @androidx.compose.runtime.Stable int top, @androidx.compose.runtime.Stable int right, @androidx.compose.runtime.Stable int bottom);
+    method public int component1();
+    method public int component2();
+    method public int component3();
+    method public int component4();
+    method public boolean contains(long offset);
+    method public androidx.compose.ui.unit.IntRect copy(int left, int top, int right, int bottom);
+    method @androidx.compose.runtime.Stable public androidx.compose.ui.unit.IntRect deflate(int delta);
+    method public int getBottom();
+    method public long getBottomCenter();
+    method public long getBottomLeft();
+    method public long getBottomRight();
+    method public long getCenter();
+    method public long getCenterLeft();
+    method public long getCenterRight();
+    method public int getHeight();
+    method public int getLeft();
+    method public int getMaxDimension();
+    method public int getMinDimension();
+    method public int getRight();
+    method public long getSize();
+    method public int getTop();
+    method public long getTopCenter();
+    method public long getTopLeft();
+    method public long getTopRight();
+    method public int getWidth();
+    method @androidx.compose.runtime.Stable public androidx.compose.ui.unit.IntRect inflate(int delta);
+    method @androidx.compose.runtime.Stable public androidx.compose.ui.unit.IntRect intersect(androidx.compose.ui.unit.IntRect other);
+    method public boolean isEmpty();
+    method public boolean overlaps(androidx.compose.ui.unit.IntRect other);
+    method @androidx.compose.runtime.Stable public androidx.compose.ui.unit.IntRect translate(int translateX, int translateY);
+    method @androidx.compose.runtime.Stable public androidx.compose.ui.unit.IntRect translate(long offset);
+    property public final int bottom;
+    property public final long bottomCenter;
+    property public final long bottomLeft;
+    property public final long bottomRight;
+    property public final long center;
+    property public final long centerLeft;
+    property public final long centerRight;
+    property @androidx.compose.runtime.Stable public final int height;
+    property @androidx.compose.runtime.Stable public final boolean isEmpty;
+    property public final int left;
+    property public final int maxDimension;
+    property public final int minDimension;
+    property public final int right;
+    property @androidx.compose.runtime.Stable public final long size;
+    property public final int top;
+    property public final long topCenter;
+    property public final long topLeft;
+    property public final long topRight;
+    property @androidx.compose.runtime.Stable public final int width;
+    field public static final androidx.compose.ui.unit.IntRect.Companion Companion;
+  }
+
+  public static final class IntRect.Companion {
+    method public androidx.compose.ui.unit.IntRect getZero();
+    property public final androidx.compose.ui.unit.IntRect Zero;
+  }
+
+  public final class IntRectKt {
+    method @androidx.compose.runtime.Stable public static androidx.compose.ui.unit.IntRect IntRect(long center, int radius);
+    method @androidx.compose.runtime.Stable public static androidx.compose.ui.unit.IntRect IntRect(long offset, long size);
+    method @androidx.compose.runtime.Stable public static androidx.compose.ui.unit.IntRect IntRect(long topLeft, long bottomRight);
+    method @androidx.compose.runtime.Stable public static androidx.compose.ui.unit.IntRect lerp(androidx.compose.ui.unit.IntRect start, androidx.compose.ui.unit.IntRect stop, float fraction);
+    method @androidx.compose.runtime.Stable public static androidx.compose.ui.unit.IntRect roundToIntRect(androidx.compose.ui.geometry.Rect);
+    method @androidx.compose.runtime.Stable public static androidx.compose.ui.geometry.Rect toRect(androidx.compose.ui.unit.IntRect);
+  }
+
+  @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class IntSize {
+    method @androidx.compose.runtime.Stable public inline operator int component1();
+    method @androidx.compose.runtime.Stable public inline operator int component2();
+    method @androidx.compose.runtime.Stable public operator long div(int other);
+    method public int getHeight();
+    method public int getWidth();
+    method @androidx.compose.runtime.Stable public operator long times(int other);
+    property @androidx.compose.runtime.Stable public final int height;
+    property @androidx.compose.runtime.Stable public final int width;
+    field public static final androidx.compose.ui.unit.IntSize.Companion Companion;
+  }
+
+  public static final class IntSize.Companion {
+    method public long getZero();
+    property public final long Zero;
+  }
+
+  public final class IntSizeKt {
+    method @androidx.compose.runtime.Stable public static long IntSize(int width, int height);
+    method public static long getCenter(long);
+    method @androidx.compose.runtime.Stable public static operator long times(int, long size);
+    method @androidx.compose.runtime.Stable public static androidx.compose.ui.unit.IntRect toIntRect(long);
+    method @androidx.compose.runtime.Stable public static long toSize(long);
+  }
+
+  public enum LayoutDirection {
+    method public static androidx.compose.ui.unit.LayoutDirection valueOf(String value) throws java.lang.IllegalArgumentException, java.lang.NullPointerException;
+    method public static androidx.compose.ui.unit.LayoutDirection[] values();
+    enum_constant public static final androidx.compose.ui.unit.LayoutDirection Ltr;
+    enum_constant public static final androidx.compose.ui.unit.LayoutDirection Rtl;
+  }
+
+  @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class TextUnit {
+    method public inline operator int compareTo(long other);
+    method public inline operator long div(double other);
+    method public inline operator long div(float other);
+    method public inline operator long div(int other);
+    method public long getType();
+    method public float getValue();
+    method public boolean isEm();
+    method public boolean isSp();
+    method public inline operator long times(double other);
+    method public inline operator long times(float other);
+    method public inline operator long times(int other);
+    method public inline operator long unaryMinus();
+    property public final boolean isEm;
+    property public final boolean isSp;
+    property @kotlin.PublishedApi internal final long rawType;
+    property public final long type;
+    property public final float value;
+    field public static final androidx.compose.ui.unit.TextUnit.Companion Companion;
+  }
+
+  public static final class TextUnit.Companion {
+    method public long getUnspecified();
+    property public final long Unspecified;
+  }
+
+  public final class TextUnitKt {
+    method public static long TextUnit(float value, long type);
+    method @kotlin.PublishedApi internal static void checkArithmetic(long a);
+    method @kotlin.PublishedApi internal static void checkArithmetic(long a, long b);
+    method @kotlin.PublishedApi internal static void checkArithmetic(long a, long b, long c);
+    method public static long getEm(double);
+    method public static long getEm(float);
+    method public static long getEm(int);
+    method public static long getSp(double);
+    method public static long getSp(float);
+    method public static long getSp(int);
+    method public static inline boolean isSpecified(long);
+    method public static boolean isUnspecified(long);
+    method @androidx.compose.runtime.Stable public static long lerp(long start, long stop, float fraction);
+    method @kotlin.PublishedApi internal static long pack(long unitType, float v);
+    method public static inline long takeOrElse(long, kotlin.jvm.functions.Function0<androidx.compose.ui.unit.TextUnit> block);
+    method @androidx.compose.runtime.Stable public static inline operator long times(double, long other);
+    method @androidx.compose.runtime.Stable public static inline operator long times(float, long other);
+    method @androidx.compose.runtime.Stable public static inline operator long times(int, long other);
+  }
+
+  @kotlin.jvm.JvmInline public final value class TextUnitType {
+    ctor public TextUnitType(long type);
+    field public static final androidx.compose.ui.unit.TextUnitType.Companion Companion;
+  }
+
+  public static final class TextUnitType.Companion {
+    method public long getEm();
+    method public long getSp();
+    method public long getUnspecified();
+    property public final long Em;
+    property public final long Sp;
+    property public final long Unspecified;
+  }
+
+  @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class Velocity {
+    method @androidx.compose.runtime.Stable public operator float component1();
+    method @androidx.compose.runtime.Stable public operator float component2();
+    method public long copy(optional float x, optional float y);
+    method @androidx.compose.runtime.Stable public operator long div(float operand);
+    method public float getX();
+    method public float getY();
+    method @androidx.compose.runtime.Stable public operator long minus(long other);
+    method @androidx.compose.runtime.Stable public operator long plus(long other);
+    method @androidx.compose.runtime.Stable public operator long rem(float operand);
+    method @androidx.compose.runtime.Stable public operator long times(float operand);
+    method @androidx.compose.runtime.Stable public operator long unaryMinus();
+    property @androidx.compose.runtime.Stable public final float x;
+    property @androidx.compose.runtime.Stable public final float y;
+    field public static final androidx.compose.ui.unit.Velocity.Companion Companion;
+  }
+
+  public static final class Velocity.Companion {
+    method public long getZero();
+    property public final long Zero;
+  }
+
+  public final class VelocityKt {
+    method @androidx.compose.runtime.Stable public static long Velocity(float x, float y);
+  }
+
+}
+
diff --git a/compose/ui/ui-unit/api/restricted_current.txt b/compose/ui/ui-unit/api/restricted_current.txt
index c076a0f..fa535e7 100644
--- a/compose/ui/ui-unit/api/restricted_current.txt
+++ b/compose/ui/ui-unit/api/restricted_current.txt
@@ -194,6 +194,9 @@
     property public final long Zero;
   }
 
+  @kotlin.RequiresOptIn(message="This API is experimental and is likely to change in the future.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface ExperimentalUnitApi {
+  }
+
   @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class IntOffset {
     method @androidx.compose.runtime.Stable public operator int component1();
     method @androidx.compose.runtime.Stable public operator int component2();
diff --git a/compose/ui/ui-util/api/public_plus_experimental_current.txt b/compose/ui/ui-util/api/1.5.0-beta01.txt
similarity index 100%
rename from compose/ui/ui-util/api/public_plus_experimental_current.txt
rename to compose/ui/ui-util/api/1.5.0-beta01.txt
diff --git a/compose/ui/ui-util/api/res-1.5.0-beta01.txt b/compose/ui/ui-util/api/res-1.5.0-beta01.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/compose/ui/ui-util/api/res-1.5.0-beta01.txt
diff --git a/compose/ui/ui-util/api/public_plus_experimental_current.txt b/compose/ui/ui-util/api/restricted_1.5.0-beta01.txt
similarity index 100%
copy from compose/ui/ui-util/api/public_plus_experimental_current.txt
copy to compose/ui/ui-util/api/restricted_1.5.0-beta01.txt
diff --git a/compose/ui/ui-util/src/test/kotlin/androidx/compose/ui/util/InlineClassHelperTest.kt b/compose/ui/ui-util/src/test/kotlin/androidx/compose/ui/util/InlineClassHelperTest.kt
index 9cf3ad6..7f52124 100644
--- a/compose/ui/ui-util/src/test/kotlin/androidx/compose/ui/util/InlineClassHelperTest.kt
+++ b/compose/ui/ui-util/src/test/kotlin/androidx/compose/ui/util/InlineClassHelperTest.kt
@@ -34,6 +34,33 @@
     }
 
     @Test
+    fun packAndUnpackNegativeAndPositiveFloats() {
+        val first = -50f
+        val second = 100f
+        val packed = packFloats(first, second)
+        assertEquals(first, unpackFloat1(packed))
+        assertEquals(second, unpackFloat2(packed))
+    }
+
+    @Test
+    fun packAndUnpackPositiveAndNegativeFloats() {
+        val first = 50f
+        val second = -100f
+        val packed = packFloats(first, second)
+        assertEquals(first, unpackFloat1(packed))
+        assertEquals(second, unpackFloat2(packed))
+    }
+
+    @Test
+    fun packAndUnpackNegativeFloats() {
+        val first = -50f
+        val second = -100f
+        val packed = packFloats(first, second)
+        assertEquals(first, unpackFloat1(packed))
+        assertEquals(second, unpackFloat2(packed))
+    }
+
+    @Test
     fun packAndUnpackInts() {
         val first = Int.MAX_VALUE
         val second = Int.MIN_VALUE
@@ -41,4 +68,31 @@
         assertEquals(first, unpackInt1(packed))
         assertEquals(second, unpackInt2(packed))
     }
+
+    @Test
+    fun packAndUnpackNegativeAndPositiveInts() {
+        val first = -50
+        val second = 100
+        val packed = packInts(first, second)
+        assertEquals(first, unpackInt1(packed))
+        assertEquals(second, unpackInt2(packed))
+    }
+
+    @Test
+    fun packAndUnpackPositiveAndNegativeInts() {
+        val first = 50
+        val second = -100
+        val packed = packInts(first, second)
+        assertEquals(first, unpackInt1(packed))
+        assertEquals(second, unpackInt2(packed))
+    }
+
+    @Test
+    fun packAndUnpackNegativeInts() {
+        val first = -50
+        val second = -100
+        val packed = packInts(first, second)
+        assertEquals(first, unpackInt1(packed))
+        assertEquals(second, unpackInt2(packed))
+    }
 }
\ No newline at end of file
diff --git a/compose/ui/ui-viewbinding/api/public_plus_experimental_current.txt b/compose/ui/ui-viewbinding/api/1.5.0-beta01.txt
similarity index 100%
rename from compose/ui/ui-viewbinding/api/public_plus_experimental_current.txt
rename to compose/ui/ui-viewbinding/api/1.5.0-beta01.txt
diff --git a/compose/ui/ui-viewbinding/api/res-1.5.0-beta01.txt b/compose/ui/ui-viewbinding/api/res-1.5.0-beta01.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/compose/ui/ui-viewbinding/api/res-1.5.0-beta01.txt
diff --git a/compose/ui/ui-viewbinding/api/public_plus_experimental_current.txt b/compose/ui/ui-viewbinding/api/restricted_1.5.0-beta01.txt
similarity index 100%
copy from compose/ui/ui-viewbinding/api/public_plus_experimental_current.txt
copy to compose/ui/ui-viewbinding/api/restricted_1.5.0-beta01.txt
diff --git a/compose/ui/ui/api/public_plus_experimental_current.txt b/compose/ui/ui/api/1.5.0-beta01.txt
similarity index 99%
rename from compose/ui/ui/api/public_plus_experimental_current.txt
rename to compose/ui/ui/api/1.5.0-beta01.txt
index 434d4ce..ad58ecf 100644
--- a/compose/ui/ui/api/public_plus_experimental_current.txt
+++ b/compose/ui/ui/api/1.5.0-beta01.txt
@@ -2405,9 +2405,6 @@
     method public boolean retainAll(kotlin.jvm.functions.Function1<java.lang.Object,java.lang.Boolean> predicate);
   }
 
-  public final class TestModifierUpdaterKt {
-  }
-
   public final class VerticalAlignmentLine extends androidx.compose.ui.layout.AlignmentLine {
     ctor public VerticalAlignmentLine(kotlin.jvm.functions.Function2<? super java.lang.Integer,? super java.lang.Integer,java.lang.Integer> merger);
   }
diff --git a/compose/ui/ui/api/current.ignore b/compose/ui/ui/api/current.ignore
index fc531f7..af7782e 100644
--- a/compose/ui/ui/api/current.ignore
+++ b/compose/ui/ui/api/current.ignore
@@ -1,4 +1,10 @@
 // Baseline format: 1.0
+BecameUnchecked: Field NestedScrollSource.Companion.Relocate:
+    Removed Field NestedScrollSource.Companion.Relocate from compatibility checked API surface
+BecameUnchecked: androidx.compose.ui.input.nestedscroll.NestedScrollSource.Companion#getRelocate():
+    Removed method androidx.compose.ui.input.nestedscroll.NestedScrollSource.Companion.getRelocate() from compatibility checked API surface
+
+
 InvalidNullConversion: androidx.compose.ui.CombinedModifier#foldIn(R, kotlin.jvm.functions.Function2<? super R,? super androidx.compose.ui.Modifier.Element,? extends R>) parameter #0:
     Attempted to change parameter from @Nullable to @NonNull: incompatible change for parameter initial in androidx.compose.ui.CombinedModifier.foldIn(R initial, kotlin.jvm.functions.Function2<? super R,? super androidx.compose.ui.Modifier.Element,? extends R> operation)
 InvalidNullConversion: androidx.compose.ui.CombinedModifier#foldOut(R, kotlin.jvm.functions.Function2<? super androidx.compose.ui.Modifier.Element,? super R,? extends R>) parameter #0:
@@ -27,9 +33,7 @@
     Attempted to change parameter from @Nullable to @NonNull: incompatible change for parameter value in androidx.compose.ui.semantics.SemanticsPropertyReceiver.set(androidx.compose.ui.semantics.SemanticsPropertyKey<T> key, T value)
 
 
+RemovedClass: androidx.compose.ui.layout.TestModifierUpdaterKt:
+    Removed class androidx.compose.ui.layout.TestModifierUpdaterKt
 RemovedClass: androidx.compose.ui.platform.AndroidComposeView_androidKt:
     Removed class androidx.compose.ui.platform.AndroidComposeView_androidKt
-
-
-RemovedDeprecatedMethod: androidx.compose.ui.input.nestedscroll.NestedScrollSource.Companion#getRelocate():
-    Removed deprecated method androidx.compose.ui.input.nestedscroll.NestedScrollSource.Companion.getRelocate()
diff --git a/compose/ui/ui/api/current.txt b/compose/ui/ui/api/current.txt
index 614cfda..ad58ecf 100644
--- a/compose/ui/ui/api/current.txt
+++ b/compose/ui/ui/api/current.txt
@@ -112,11 +112,21 @@
   }
 
   public final class ComposedModifierKt {
+    method @androidx.compose.ui.ExperimentalComposeUiApi public static androidx.compose.ui.Modifier composed(androidx.compose.ui.Modifier, String fullyQualifiedName, Object? key1, Object? key2, Object? key3, optional kotlin.jvm.functions.Function1<? super androidx.compose.ui.platform.InspectorInfo,kotlin.Unit> inspectorInfo, kotlin.jvm.functions.Function1<? super androidx.compose.ui.Modifier,? extends androidx.compose.ui.Modifier> factory);
+    method @androidx.compose.ui.ExperimentalComposeUiApi public static androidx.compose.ui.Modifier composed(androidx.compose.ui.Modifier, String fullyQualifiedName, Object? key1, Object? key2, optional kotlin.jvm.functions.Function1<? super androidx.compose.ui.platform.InspectorInfo,kotlin.Unit> inspectorInfo, kotlin.jvm.functions.Function1<? super androidx.compose.ui.Modifier,? extends androidx.compose.ui.Modifier> factory);
+    method @androidx.compose.ui.ExperimentalComposeUiApi public static androidx.compose.ui.Modifier composed(androidx.compose.ui.Modifier, String fullyQualifiedName, Object? key1, optional kotlin.jvm.functions.Function1<? super androidx.compose.ui.platform.InspectorInfo,kotlin.Unit> inspectorInfo, kotlin.jvm.functions.Function1<? super androidx.compose.ui.Modifier,? extends androidx.compose.ui.Modifier> factory);
+    method @androidx.compose.ui.ExperimentalComposeUiApi public static androidx.compose.ui.Modifier composed(androidx.compose.ui.Modifier, String fullyQualifiedName, Object![]? keys, optional kotlin.jvm.functions.Function1<? super androidx.compose.ui.platform.InspectorInfo,kotlin.Unit> inspectorInfo, kotlin.jvm.functions.Function1<? super androidx.compose.ui.Modifier,? extends androidx.compose.ui.Modifier> factory);
     method public static androidx.compose.ui.Modifier composed(androidx.compose.ui.Modifier, optional kotlin.jvm.functions.Function1<? super androidx.compose.ui.platform.InspectorInfo,kotlin.Unit> inspectorInfo, kotlin.jvm.functions.Function1<? super androidx.compose.ui.Modifier,? extends androidx.compose.ui.Modifier> factory);
     method @Deprecated public static androidx.compose.ui.Modifier materialize(androidx.compose.runtime.Composer, androidx.compose.ui.Modifier modifier);
     method public static androidx.compose.ui.Modifier materializeModifier(androidx.compose.runtime.Composer, androidx.compose.ui.Modifier modifier);
   }
 
+  @kotlin.RequiresOptIn(message="This API is experimental and is likely to change in the future.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface ExperimentalComposeUiApi {
+  }
+
+  @kotlin.RequiresOptIn(message="Unstable API for use only between compose-ui modules sharing the same exact version, " + "subject to change without notice in major, minor, or patch releases.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface InternalComposeUiApi {
+  }
+
   @androidx.compose.runtime.Stable @kotlin.jvm.JvmDefaultWithCompatibility public interface Modifier {
     method public boolean all(kotlin.jvm.functions.Function1<? super androidx.compose.ui.Modifier.Element,java.lang.Boolean> predicate);
     method public boolean any(kotlin.jvm.functions.Function1<? super androidx.compose.ui.Modifier.Element,java.lang.Boolean> predicate);
@@ -149,6 +159,7 @@
     method public void onAttach();
     method public void onDetach();
     method public void onReset();
+    method @androidx.compose.ui.ExperimentalComposeUiApi public final void sideEffect(kotlin.jvm.functions.Function0<kotlin.Unit> effect);
     property public final kotlinx.coroutines.CoroutineScope coroutineScope;
     property public final boolean isAttached;
     property public final androidx.compose.ui.Modifier.Node node;
@@ -175,6 +186,77 @@
 
 }
 
+package androidx.compose.ui.autofill {
+
+  @androidx.compose.ui.ExperimentalComposeUiApi public interface Autofill {
+    method public void cancelAutofillForNode(androidx.compose.ui.autofill.AutofillNode autofillNode);
+    method public void requestAutofillForNode(androidx.compose.ui.autofill.AutofillNode autofillNode);
+  }
+
+  @androidx.compose.ui.ExperimentalComposeUiApi public final class AutofillNode {
+    ctor public AutofillNode(optional java.util.List<? extends androidx.compose.ui.autofill.AutofillType> autofillTypes, optional androidx.compose.ui.geometry.Rect? boundingBox, kotlin.jvm.functions.Function1<? super java.lang.String,kotlin.Unit>? onFill);
+    method public java.util.List<androidx.compose.ui.autofill.AutofillType> getAutofillTypes();
+    method public androidx.compose.ui.geometry.Rect? getBoundingBox();
+    method public int getId();
+    method public kotlin.jvm.functions.Function1<java.lang.String,kotlin.Unit>? getOnFill();
+    method public void setBoundingBox(androidx.compose.ui.geometry.Rect?);
+    property public final java.util.List<androidx.compose.ui.autofill.AutofillType> autofillTypes;
+    property public final androidx.compose.ui.geometry.Rect? boundingBox;
+    property public final int id;
+    property public final kotlin.jvm.functions.Function1<java.lang.String,kotlin.Unit>? onFill;
+  }
+
+  @androidx.compose.ui.ExperimentalComposeUiApi public final class AutofillTree {
+    ctor public AutofillTree();
+    method public java.util.Map<java.lang.Integer,androidx.compose.ui.autofill.AutofillNode> getChildren();
+    method public kotlin.Unit? performAutofill(int id, String value);
+    method public operator void plusAssign(androidx.compose.ui.autofill.AutofillNode autofillNode);
+    property public final java.util.Map<java.lang.Integer,androidx.compose.ui.autofill.AutofillNode> children;
+  }
+
+  @androidx.compose.ui.ExperimentalComposeUiApi public enum AutofillType {
+    method public static androidx.compose.ui.autofill.AutofillType valueOf(String value) throws java.lang.IllegalArgumentException, java.lang.NullPointerException;
+    method public static androidx.compose.ui.autofill.AutofillType[] values();
+    enum_constant public static final androidx.compose.ui.autofill.AutofillType AddressAuxiliaryDetails;
+    enum_constant public static final androidx.compose.ui.autofill.AutofillType AddressCountry;
+    enum_constant public static final androidx.compose.ui.autofill.AutofillType AddressLocality;
+    enum_constant public static final androidx.compose.ui.autofill.AutofillType AddressRegion;
+    enum_constant public static final androidx.compose.ui.autofill.AutofillType AddressStreet;
+    enum_constant public static final androidx.compose.ui.autofill.AutofillType BirthDateDay;
+    enum_constant public static final androidx.compose.ui.autofill.AutofillType BirthDateFull;
+    enum_constant public static final androidx.compose.ui.autofill.AutofillType BirthDateMonth;
+    enum_constant public static final androidx.compose.ui.autofill.AutofillType BirthDateYear;
+    enum_constant public static final androidx.compose.ui.autofill.AutofillType CreditCardExpirationDate;
+    enum_constant public static final androidx.compose.ui.autofill.AutofillType CreditCardExpirationDay;
+    enum_constant public static final androidx.compose.ui.autofill.AutofillType CreditCardExpirationMonth;
+    enum_constant public static final androidx.compose.ui.autofill.AutofillType CreditCardExpirationYear;
+    enum_constant public static final androidx.compose.ui.autofill.AutofillType CreditCardNumber;
+    enum_constant public static final androidx.compose.ui.autofill.AutofillType CreditCardSecurityCode;
+    enum_constant public static final androidx.compose.ui.autofill.AutofillType EmailAddress;
+    enum_constant public static final androidx.compose.ui.autofill.AutofillType Gender;
+    enum_constant public static final androidx.compose.ui.autofill.AutofillType NewPassword;
+    enum_constant public static final androidx.compose.ui.autofill.AutofillType NewUsername;
+    enum_constant public static final androidx.compose.ui.autofill.AutofillType Password;
+    enum_constant public static final androidx.compose.ui.autofill.AutofillType PersonFirstName;
+    enum_constant public static final androidx.compose.ui.autofill.AutofillType PersonFullName;
+    enum_constant public static final androidx.compose.ui.autofill.AutofillType PersonLastName;
+    enum_constant public static final androidx.compose.ui.autofill.AutofillType PersonMiddleInitial;
+    enum_constant public static final androidx.compose.ui.autofill.AutofillType PersonMiddleName;
+    enum_constant public static final androidx.compose.ui.autofill.AutofillType PersonNamePrefix;
+    enum_constant public static final androidx.compose.ui.autofill.AutofillType PersonNameSuffix;
+    enum_constant public static final androidx.compose.ui.autofill.AutofillType PhoneCountryCode;
+    enum_constant public static final androidx.compose.ui.autofill.AutofillType PhoneNumber;
+    enum_constant public static final androidx.compose.ui.autofill.AutofillType PhoneNumberDevice;
+    enum_constant public static final androidx.compose.ui.autofill.AutofillType PhoneNumberNational;
+    enum_constant public static final androidx.compose.ui.autofill.AutofillType PostalAddress;
+    enum_constant public static final androidx.compose.ui.autofill.AutofillType PostalCode;
+    enum_constant public static final androidx.compose.ui.autofill.AutofillType PostalCodeExtended;
+    enum_constant public static final androidx.compose.ui.autofill.AutofillType SmsOtpCode;
+    enum_constant public static final androidx.compose.ui.autofill.AutofillType Username;
+  }
+
+}
+
 package androidx.compose.ui.draw {
 
   public final class AlphaKt {
@@ -277,14 +359,22 @@
 
   public static final class FocusDirection.Companion {
     method public int getDown();
+    method @androidx.compose.ui.ExperimentalComposeUiApi public int getEnter();
+    method @androidx.compose.ui.ExperimentalComposeUiApi public int getExit();
+    method @Deprecated @androidx.compose.ui.ExperimentalComposeUiApi public int getIn();
     method public int getLeft();
     method public int getNext();
+    method @Deprecated @androidx.compose.ui.ExperimentalComposeUiApi public int getOut();
     method public int getPrevious();
     method public int getRight();
     method public int getUp();
     property public final int Down;
+    property @androidx.compose.ui.ExperimentalComposeUiApi public final int Enter;
+    property @androidx.compose.ui.ExperimentalComposeUiApi public final int Exit;
+    property @Deprecated @androidx.compose.ui.ExperimentalComposeUiApi public final int In;
     property public final int Left;
     property public final int Next;
+    property @Deprecated @androidx.compose.ui.ExperimentalComposeUiApi public final int Out;
     property public final int Previous;
     property public final int Right;
     property public final int Up;
@@ -354,6 +444,8 @@
     method public boolean getCanFocus();
     method public default androidx.compose.ui.focus.FocusRequester getDown();
     method public default androidx.compose.ui.focus.FocusRequester getEnd();
+    method @androidx.compose.ui.ExperimentalComposeUiApi public default kotlin.jvm.functions.Function1<androidx.compose.ui.focus.FocusDirection,androidx.compose.ui.focus.FocusRequester> getEnter();
+    method @androidx.compose.ui.ExperimentalComposeUiApi public default kotlin.jvm.functions.Function1<androidx.compose.ui.focus.FocusDirection,androidx.compose.ui.focus.FocusRequester> getExit();
     method public default androidx.compose.ui.focus.FocusRequester getLeft();
     method public default androidx.compose.ui.focus.FocusRequester getNext();
     method public default androidx.compose.ui.focus.FocusRequester getPrevious();
@@ -363,6 +455,8 @@
     method public void setCanFocus(boolean);
     method public default void setDown(androidx.compose.ui.focus.FocusRequester);
     method public default void setEnd(androidx.compose.ui.focus.FocusRequester);
+    method @androidx.compose.ui.ExperimentalComposeUiApi public default void setEnter(kotlin.jvm.functions.Function1<? super androidx.compose.ui.focus.FocusDirection,androidx.compose.ui.focus.FocusRequester>);
+    method @androidx.compose.ui.ExperimentalComposeUiApi public default void setExit(kotlin.jvm.functions.Function1<? super androidx.compose.ui.focus.FocusDirection,androidx.compose.ui.focus.FocusRequester>);
     method public default void setLeft(androidx.compose.ui.focus.FocusRequester);
     method public default void setNext(androidx.compose.ui.focus.FocusRequester);
     method public default void setPrevious(androidx.compose.ui.focus.FocusRequester);
@@ -372,6 +466,8 @@
     property public abstract boolean canFocus;
     property public default androidx.compose.ui.focus.FocusRequester down;
     property public default androidx.compose.ui.focus.FocusRequester end;
+    property @androidx.compose.ui.ExperimentalComposeUiApi public default kotlin.jvm.functions.Function1<androidx.compose.ui.focus.FocusDirection,androidx.compose.ui.focus.FocusRequester> enter;
+    property @androidx.compose.ui.ExperimentalComposeUiApi public default kotlin.jvm.functions.Function1<androidx.compose.ui.focus.FocusDirection,androidx.compose.ui.focus.FocusRequester> exit;
     property public default androidx.compose.ui.focus.FocusRequester left;
     property public default androidx.compose.ui.focus.FocusRequester next;
     property public default androidx.compose.ui.focus.FocusRequester previous;
@@ -401,10 +497,33 @@
   }
 
   public static final class FocusRequester.Companion {
+    method @androidx.compose.ui.ExperimentalComposeUiApi public androidx.compose.ui.focus.FocusRequester.Companion.FocusRequesterFactory createRefs();
+    method @androidx.compose.ui.ExperimentalComposeUiApi public androidx.compose.ui.focus.FocusRequester getCancel();
     method public androidx.compose.ui.focus.FocusRequester getDefault();
+    property @androidx.compose.ui.ExperimentalComposeUiApi public final androidx.compose.ui.focus.FocusRequester Cancel;
     property public final androidx.compose.ui.focus.FocusRequester Default;
   }
 
+  @androidx.compose.ui.ExperimentalComposeUiApi public static final class FocusRequester.Companion.FocusRequesterFactory {
+    method public operator androidx.compose.ui.focus.FocusRequester component1();
+    method public operator androidx.compose.ui.focus.FocusRequester component10();
+    method public operator androidx.compose.ui.focus.FocusRequester component11();
+    method public operator androidx.compose.ui.focus.FocusRequester component12();
+    method public operator androidx.compose.ui.focus.FocusRequester component13();
+    method public operator androidx.compose.ui.focus.FocusRequester component14();
+    method public operator androidx.compose.ui.focus.FocusRequester component15();
+    method public operator androidx.compose.ui.focus.FocusRequester component16();
+    method public operator androidx.compose.ui.focus.FocusRequester component2();
+    method public operator androidx.compose.ui.focus.FocusRequester component3();
+    method public operator androidx.compose.ui.focus.FocusRequester component4();
+    method public operator androidx.compose.ui.focus.FocusRequester component5();
+    method public operator androidx.compose.ui.focus.FocusRequester component6();
+    method public operator androidx.compose.ui.focus.FocusRequester component7();
+    method public operator androidx.compose.ui.focus.FocusRequester component8();
+    method public operator androidx.compose.ui.focus.FocusRequester component9();
+    field public static final androidx.compose.ui.focus.FocusRequester.Companion.FocusRequesterFactory INSTANCE;
+  }
+
   @Deprecated @kotlin.jvm.JvmDefaultWithCompatibility public interface FocusRequesterModifier extends androidx.compose.ui.Modifier.Element {
     method @Deprecated public androidx.compose.ui.focus.FocusRequester getFocusRequester();
     property @Deprecated public abstract androidx.compose.ui.focus.FocusRequester focusRequester;
@@ -826,6 +945,7 @@
 
   public interface InputModeManager {
     method public int getInputMode();
+    method @androidx.compose.ui.ExperimentalComposeUiApi public boolean requestInputMode(int inputMode);
     property public abstract int inputMode;
   }
 
@@ -1461,6 +1581,16 @@
     method public static int getNativeKeyCode(long);
   }
 
+  @androidx.compose.ui.ExperimentalComposeUiApi public interface SoftKeyboardInterceptionModifierNode extends androidx.compose.ui.node.DelegatableNode {
+    method public boolean onInterceptKeyBeforeSoftKeyboard(android.view.KeyEvent event);
+    method public boolean onPreInterceptKeyBeforeSoftKeyboard(android.view.KeyEvent event);
+  }
+
+  public final class SoftwareKeyboardInterceptionModifierKt {
+    method @androidx.compose.ui.ExperimentalComposeUiApi public static androidx.compose.ui.Modifier onInterceptKeyBeforeSoftKeyboard(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1<? super androidx.compose.ui.input.key.KeyEvent,java.lang.Boolean> onInterceptKeyBeforeSoftKeyboard);
+    method @androidx.compose.ui.ExperimentalComposeUiApi public static androidx.compose.ui.Modifier onPreInterceptKeyBeforeSoftKeyboard(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1<? super androidx.compose.ui.input.key.KeyEvent,java.lang.Boolean> onPreInterceptKeyBeforeSoftKeyboard);
+  }
+
 }
 
 package androidx.compose.ui.input.nestedscroll {
@@ -1497,8 +1627,10 @@
   public static final class NestedScrollSource.Companion {
     method public int getDrag();
     method public int getFling();
+    method @Deprecated @androidx.compose.ui.ExperimentalComposeUiApi public int getRelocate();
     property public final int Drag;
     property public final int Fling;
+    property @Deprecated @androidx.compose.ui.ExperimentalComposeUiApi public final int Relocate;
   }
 
 }
@@ -1529,6 +1661,14 @@
     property @Deprecated public final boolean positionChange;
   }
 
+  @androidx.compose.runtime.Immutable @androidx.compose.ui.ExperimentalComposeUiApi public final class HistoricalChange {
+    ctor public HistoricalChange(long uptimeMillis, long position);
+    method public long getPosition();
+    method public long getUptimeMillis();
+    property public final long position;
+    property public final long uptimeMillis;
+  }
+
   @kotlin.jvm.JvmInline public final value class PointerButtons {
     ctor public PointerButtons(int packedValue);
   }
@@ -1658,11 +1798,14 @@
     ctor @Deprecated public PointerInputChange(long id, long uptimeMillis, long position, boolean pressed, long previousUptimeMillis, long previousPosition, boolean previousPressed, androidx.compose.ui.input.pointer.ConsumedData consumed, optional int type);
     ctor public PointerInputChange(long id, long uptimeMillis, long position, boolean pressed, long previousUptimeMillis, long previousPosition, boolean previousPressed, boolean isInitiallyConsumed, optional int type, optional long scrollDelta);
     method public void consume();
+    method @androidx.compose.ui.ExperimentalComposeUiApi public androidx.compose.ui.input.pointer.PointerInputChange copy(optional long id, optional long currentTime, optional long currentPosition, optional boolean currentPressed, optional float pressure, optional long previousTime, optional long previousPosition, optional boolean previousPressed, optional int type, optional java.util.List<androidx.compose.ui.input.pointer.HistoricalChange> historical, optional long scrollDelta);
     method public androidx.compose.ui.input.pointer.PointerInputChange copy(optional long id, optional long currentTime, optional long currentPosition, optional boolean currentPressed, optional float pressure, optional long previousTime, optional long previousPosition, optional boolean previousPressed, optional int type, optional long scrollDelta);
     method @Deprecated public androidx.compose.ui.input.pointer.PointerInputChange copy(optional long id, optional long currentTime, optional long currentPosition, optional boolean currentPressed, optional long previousTime, optional long previousPosition, optional boolean previousPressed, optional androidx.compose.ui.input.pointer.ConsumedData consumed, optional int type);
     method @Deprecated public androidx.compose.ui.input.pointer.PointerInputChange copy(optional long id, optional long currentTime, optional long currentPosition, optional boolean currentPressed, optional long previousTime, optional long previousPosition, optional boolean previousPressed, androidx.compose.ui.input.pointer.ConsumedData consumed, optional int type, optional long scrollDelta);
+    method @androidx.compose.ui.ExperimentalComposeUiApi public androidx.compose.ui.input.pointer.PointerInputChange copy(optional long id, optional long currentTime, optional long currentPosition, optional boolean currentPressed, optional long previousTime, optional long previousPosition, optional boolean previousPressed, optional int type, java.util.List<androidx.compose.ui.input.pointer.HistoricalChange> historical, optional long scrollDelta);
     method public androidx.compose.ui.input.pointer.PointerInputChange copy(optional long id, optional long currentTime, optional long currentPosition, optional boolean currentPressed, optional long previousTime, optional long previousPosition, optional boolean previousPressed, optional int type, optional long scrollDelta);
     method @Deprecated public androidx.compose.ui.input.pointer.ConsumedData getConsumed();
+    method @androidx.compose.ui.ExperimentalComposeUiApi public java.util.List<androidx.compose.ui.input.pointer.HistoricalChange> getHistorical();
     method public long getId();
     method public long getPosition();
     method public boolean getPressed();
@@ -1675,6 +1818,7 @@
     method public long getUptimeMillis();
     method public boolean isConsumed();
     property @Deprecated public final androidx.compose.ui.input.pointer.ConsumedData consumed;
+    property @androidx.compose.ui.ExperimentalComposeUiApi public final java.util.List<androidx.compose.ui.input.pointer.HistoricalChange> historical;
     property public final long id;
     property public final boolean isConsumed;
     property public final long position;
@@ -1718,6 +1862,11 @@
     property public abstract androidx.compose.ui.platform.ViewConfiguration viewConfiguration;
   }
 
+  public final class PointerInteropFilter_androidKt {
+    method @androidx.compose.ui.ExperimentalComposeUiApi public static androidx.compose.ui.Modifier motionEventSpy(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1<? super android.view.MotionEvent,kotlin.Unit> watcher);
+    method @androidx.compose.ui.ExperimentalComposeUiApi public static androidx.compose.ui.Modifier pointerInteropFilter(androidx.compose.ui.Modifier, optional androidx.compose.ui.input.pointer.RequestDisallowInterceptTouchEvent? requestDisallowInterceptTouchEvent, kotlin.jvm.functions.Function1<? super android.view.MotionEvent,java.lang.Boolean> onTouchEvent);
+  }
+
   @kotlin.jvm.JvmInline public final value class PointerKeyboardModifiers {
     ctor public PointerKeyboardModifiers(int packedValue);
   }
@@ -1739,6 +1888,11 @@
     property public final int Unknown;
   }
 
+  @androidx.compose.ui.ExperimentalComposeUiApi public final class RequestDisallowInterceptTouchEvent implements kotlin.jvm.functions.Function1<java.lang.Boolean,kotlin.Unit> {
+    ctor public RequestDisallowInterceptTouchEvent();
+    method public void invoke(boolean disallowIntercept);
+  }
+
   public final class SuspendingPointerInputFilterKt {
     method public static androidx.compose.ui.input.pointer.SuspendingPointerInputModifierNode SuspendingPointerInputModifierNode(kotlin.jvm.functions.Function2<? super androidx.compose.ui.input.pointer.PointerInputScope,? super kotlin.coroutines.Continuation<? super kotlin.Unit>,?> pointerInputHandler);
     method public static androidx.compose.ui.Modifier pointerInput(androidx.compose.ui.Modifier, Object? key1, Object? key2, kotlin.jvm.functions.Function2<? super androidx.compose.ui.input.pointer.PointerInputScope,? super kotlin.coroutines.Continuation<? super kotlin.Unit>,?> block);
@@ -1776,6 +1930,9 @@
 
   public final class VelocityTrackerKt {
     method public static void addPointerInputChange(androidx.compose.ui.input.pointer.util.VelocityTracker, androidx.compose.ui.input.pointer.PointerInputChange event);
+    method @androidx.compose.ui.ExperimentalComposeUiApi public static boolean getVelocityTrackerAddPointsFix();
+    method @androidx.compose.ui.ExperimentalComposeUiApi public static void setVelocityTrackerAddPointsFix(boolean);
+    property @androidx.compose.ui.ExperimentalComposeUiApi public static final boolean VelocityTrackerAddPointsFix;
   }
 
 }
@@ -1895,6 +2052,11 @@
     ctor public HorizontalAlignmentLine(kotlin.jvm.functions.Function2<? super java.lang.Integer,? super java.lang.Integer,java.lang.Integer> merger);
   }
 
+  @androidx.compose.ui.ExperimentalComposeUiApi public sealed interface IntermediateMeasureScope extends androidx.compose.ui.layout.LookaheadScope kotlinx.coroutines.CoroutineScope androidx.compose.ui.layout.MeasureScope {
+    method public long getLookaheadSize();
+    property public abstract long lookaheadSize;
+  }
+
   public interface IntrinsicMeasurable {
     method public Object? getParentData();
     method public int maxIntrinsicHeight(int width);
@@ -1906,6 +2068,8 @@
 
   public interface IntrinsicMeasureScope extends androidx.compose.ui.unit.Density {
     method public androidx.compose.ui.unit.LayoutDirection getLayoutDirection();
+    method @androidx.compose.ui.ExperimentalComposeUiApi public default boolean isLookingAhead();
+    property @androidx.compose.ui.ExperimentalComposeUiApi public default boolean isLookingAhead;
     property public abstract androidx.compose.ui.unit.LayoutDirection layoutDirection;
   }
 
@@ -1992,6 +2156,27 @@
     method public static androidx.compose.ui.Modifier layout(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function3<? super androidx.compose.ui.layout.MeasureScope,? super androidx.compose.ui.layout.Measurable,? super androidx.compose.ui.unit.Constraints,? extends androidx.compose.ui.layout.MeasureResult> measure);
   }
 
+  @Deprecated @androidx.compose.ui.ExperimentalComposeUiApi public sealed interface LookaheadLayoutCoordinates extends androidx.compose.ui.layout.LayoutCoordinates {
+  }
+
+  @Deprecated @androidx.compose.ui.ExperimentalComposeUiApi public interface LookaheadLayoutScope {
+    method @Deprecated public androidx.compose.ui.Modifier onPlaced(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function2<? super androidx.compose.ui.layout.LookaheadLayoutCoordinates,? super androidx.compose.ui.layout.LookaheadLayoutCoordinates,kotlin.Unit> onPlaced);
+  }
+
+  @androidx.compose.ui.ExperimentalComposeUiApi public interface LookaheadScope {
+    method public androidx.compose.ui.layout.LayoutCoordinates getLookaheadScopeCoordinates(androidx.compose.ui.layout.Placeable.PlacementScope);
+    method @Deprecated public default androidx.compose.ui.Modifier intermediateLayout(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function4<? super androidx.compose.ui.layout.MeasureScope,? super androidx.compose.ui.layout.Measurable,? super androidx.compose.ui.unit.Constraints,? super androidx.compose.ui.unit.IntSize,? extends androidx.compose.ui.layout.MeasureResult> measure);
+    method public default long localLookaheadPositionOf(androidx.compose.ui.layout.LayoutCoordinates, androidx.compose.ui.layout.LayoutCoordinates coordinates);
+    method @Deprecated public androidx.compose.ui.Modifier onPlaced(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function2<? super androidx.compose.ui.layout.LookaheadLayoutCoordinates,? super androidx.compose.ui.layout.LookaheadLayoutCoordinates,kotlin.Unit> onPlaced);
+    method public androidx.compose.ui.layout.LayoutCoordinates toLookaheadCoordinates(androidx.compose.ui.layout.LayoutCoordinates);
+  }
+
+  public final class LookaheadScopeKt {
+    method @Deprecated @androidx.compose.runtime.Composable @androidx.compose.ui.ExperimentalComposeUiApi @androidx.compose.ui.UiComposable public static void LookaheadLayout(kotlin.jvm.functions.Function1<? super androidx.compose.ui.layout.LookaheadScope,kotlin.Unit> content, optional androidx.compose.ui.Modifier modifier, androidx.compose.ui.layout.MeasurePolicy measurePolicy);
+    method @androidx.compose.runtime.Composable @androidx.compose.ui.ExperimentalComposeUiApi @androidx.compose.ui.UiComposable public static void LookaheadScope(kotlin.jvm.functions.Function1<? super androidx.compose.ui.layout.LookaheadScope,kotlin.Unit> content);
+    method @androidx.compose.ui.ExperimentalComposeUiApi public static androidx.compose.ui.Modifier intermediateLayout(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function3<? super androidx.compose.ui.layout.IntermediateMeasureScope,? super androidx.compose.ui.layout.Measurable,? super androidx.compose.ui.unit.Constraints,? extends androidx.compose.ui.layout.MeasureResult> measure);
+  }
+
   public interface Measurable extends androidx.compose.ui.layout.IntrinsicMeasurable {
     method public androidx.compose.ui.layout.Placeable measure(long constraints);
   }
@@ -2126,6 +2311,24 @@
     property protected abstract int parentWidth;
   }
 
+  @Deprecated @androidx.compose.ui.ExperimentalComposeUiApi @kotlin.jvm.JvmDefaultWithCompatibility public interface RelocationModifier extends androidx.compose.ui.Modifier.Element {
+    method @Deprecated public androidx.compose.ui.geometry.Rect computeDestination(androidx.compose.ui.geometry.Rect source, androidx.compose.ui.layout.LayoutCoordinates layoutCoordinates);
+    method @Deprecated public suspend Object? performRelocation(androidx.compose.ui.geometry.Rect source, androidx.compose.ui.geometry.Rect destination, kotlin.coroutines.Continuation<? super kotlin.Unit>);
+  }
+
+  public final class RelocationModifierKt {
+    method @Deprecated @androidx.compose.ui.ExperimentalComposeUiApi public static androidx.compose.ui.Modifier onRelocationRequest(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function2<? super androidx.compose.ui.geometry.Rect,? super androidx.compose.ui.layout.LayoutCoordinates,androidx.compose.ui.geometry.Rect> onProvideDestination, kotlin.jvm.functions.Function3<? super androidx.compose.ui.geometry.Rect,? super androidx.compose.ui.geometry.Rect,? super kotlin.coroutines.Continuation<? super kotlin.Unit>,?> onPerformRelocation);
+  }
+
+  @Deprecated @androidx.compose.ui.ExperimentalComposeUiApi public final class RelocationRequester {
+    ctor @Deprecated public RelocationRequester();
+    method @Deprecated public suspend Object? bringIntoView(optional androidx.compose.ui.geometry.Rect? rect, optional kotlin.coroutines.Continuation<? super kotlin.Unit>);
+  }
+
+  public final class RelocationRequesterModifierKt {
+    method @Deprecated @androidx.compose.ui.ExperimentalComposeUiApi public static androidx.compose.ui.Modifier relocationRequester(androidx.compose.ui.Modifier, Object relocationRequester);
+  }
+
   public interface Remeasurement {
     method public void forceRemeasure();
   }
@@ -2202,9 +2405,6 @@
     method public boolean retainAll(kotlin.jvm.functions.Function1<java.lang.Object,java.lang.Boolean> predicate);
   }
 
-  public final class TestModifierUpdaterKt {
-  }
-
   public final class VerticalAlignmentLine extends androidx.compose.ui.layout.AlignmentLine {
     ctor public VerticalAlignmentLine(kotlin.jvm.functions.Function2<? super java.lang.Integer,? super java.lang.Integer,java.lang.Integer> merger);
   }
@@ -2220,6 +2420,10 @@
     method public void onModifierLocalsUpdated(androidx.compose.ui.modifier.ModifierLocalReadScope scope);
   }
 
+  public final class ModifierLocalConsumerKt {
+    method @androidx.compose.runtime.Stable @androidx.compose.ui.ExperimentalComposeUiApi public static androidx.compose.ui.Modifier modifierLocalConsumer(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1<? super androidx.compose.ui.modifier.ModifierLocalReadScope,kotlin.Unit> consumer);
+  }
+
   public final class ModifierLocalKt {
     method public static <T> androidx.compose.ui.modifier.ProvidableModifierLocal<T> modifierLocalOf(kotlin.jvm.functions.Function0<? extends T> defaultFactory);
   }
@@ -2249,6 +2453,10 @@
     property public abstract T value;
   }
 
+  public final class ModifierLocalProviderKt {
+    method @androidx.compose.ui.ExperimentalComposeUiApi public static <T> androidx.compose.ui.Modifier modifierLocalProvider(androidx.compose.ui.Modifier, androidx.compose.ui.modifier.ProvidableModifierLocal<T> key, kotlin.jvm.functions.Function0<? extends T> value);
+  }
+
   public interface ModifierLocalReadScope {
     method public <T> T getCurrent(androidx.compose.ui.modifier.ModifierLocal<T>);
   }
@@ -2302,6 +2510,13 @@
     method public void onGloballyPositioned(androidx.compose.ui.layout.LayoutCoordinates coordinates);
   }
 
+  @kotlin.RequiresOptIn(message="This API is internal to library.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.CLASS, kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.PROPERTY, kotlin.annotation.AnnotationTarget.PROPERTY_GETTER, kotlin.annotation.AnnotationTarget.PROPERTY_SETTER}) public @interface InternalCoreApi {
+  }
+
+  @androidx.compose.ui.InternalComposeUiApi public sealed interface InteroperableComposeUiNode {
+    method public android.view.View? getInteropView();
+  }
+
   public interface LayoutAwareModifierNode extends androidx.compose.ui.node.DelegatableNode {
     method public default void onPlaced(androidx.compose.ui.layout.LayoutCoordinates coordinates);
     method public default void onRemeasured(long size);
@@ -2373,6 +2588,7 @@
     method public androidx.compose.ui.unit.Density getDensity();
     method public androidx.compose.ui.semantics.SemanticsOwner getSemanticsOwner();
     method public androidx.compose.ui.text.input.TextInputService getTextInputService();
+    method @androidx.compose.ui.ExperimentalComposeUiApi public default void measureAndLayoutForTest();
     method public boolean sendKeyEvent(android.view.KeyEvent keyEvent);
     property public abstract androidx.compose.ui.unit.Density density;
     property public abstract androidx.compose.ui.semantics.SemanticsOwner semanticsOwner;
@@ -2489,6 +2705,8 @@
 
   public final class CompositionLocalsKt {
     method public static androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.ui.platform.AccessibilityManager> getLocalAccessibilityManager();
+    method @androidx.compose.ui.ExperimentalComposeUiApi public static androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.ui.autofill.Autofill> getLocalAutofill();
+    method @androidx.compose.ui.ExperimentalComposeUiApi public static androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.ui.autofill.AutofillTree> getLocalAutofillTree();
     method public static androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.ui.platform.ClipboardManager> getLocalClipboardManager();
     method public static androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.ui.unit.Density> getLocalDensity();
     method public static androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.ui.focus.FocusManager> getLocalFocusManager();
@@ -2496,12 +2714,15 @@
     method public static androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.ui.hapticfeedback.HapticFeedback> getLocalHapticFeedback();
     method public static androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.ui.input.InputModeManager> getLocalInputModeManager();
     method public static androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.ui.unit.LayoutDirection> getLocalLayoutDirection();
+    method @androidx.compose.ui.text.ExperimentalTextApi public static androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.ui.text.input.PlatformTextInputPluginRegistry> getLocalPlatformTextInputPluginRegistry();
     method public static androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.ui.text.input.TextInputService> getLocalTextInputService();
     method public static androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.ui.platform.TextToolbar> getLocalTextToolbar();
     method public static androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.ui.platform.UriHandler> getLocalUriHandler();
     method public static androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.ui.platform.ViewConfiguration> getLocalViewConfiguration();
     method public static androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.ui.platform.WindowInfo> getLocalWindowInfo();
     property public static final androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.ui.platform.AccessibilityManager> LocalAccessibilityManager;
+    property @androidx.compose.ui.ExperimentalComposeUiApi public static final androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.ui.autofill.Autofill> LocalAutofill;
+    property @androidx.compose.ui.ExperimentalComposeUiApi public static final androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.ui.autofill.AutofillTree> LocalAutofillTree;
     property public static final androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.ui.platform.ClipboardManager> LocalClipboardManager;
     property public static final androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.ui.unit.Density> LocalDensity;
     property public static final androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.ui.focus.FocusManager> LocalFocusManager;
@@ -2509,6 +2730,7 @@
     property public static final androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.ui.hapticfeedback.HapticFeedback> LocalHapticFeedback;
     property public static final androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.ui.input.InputModeManager> LocalInputModeManager;
     property public static final androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.ui.unit.LayoutDirection> LocalLayoutDirection;
+    property @androidx.compose.ui.text.ExperimentalTextApi public static final androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.ui.text.input.PlatformTextInputPluginRegistry> LocalPlatformTextInputPluginRegistry;
     property public static final androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.ui.text.input.TextInputService> LocalTextInputService;
     property public static final androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.ui.platform.TextToolbar> LocalTextToolbar;
     property public static final androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.ui.platform.UriHandler> LocalUriHandler;
@@ -2579,10 +2801,24 @@
     property public Object? valueOverride;
   }
 
+  @androidx.compose.ui.ExperimentalComposeUiApi public final class LocalSoftwareKeyboardController {
+    method @androidx.compose.runtime.Composable public androidx.compose.ui.platform.SoftwareKeyboardController? getCurrent();
+    method public infix androidx.compose.runtime.ProvidedValue<androidx.compose.ui.platform.SoftwareKeyboardController> provides(androidx.compose.ui.platform.SoftwareKeyboardController softwareKeyboardController);
+    property @androidx.compose.runtime.Composable @androidx.compose.ui.ExperimentalComposeUiApi public final androidx.compose.ui.platform.SoftwareKeyboardController? current;
+    field public static final androidx.compose.ui.platform.LocalSoftwareKeyboardController INSTANCE;
+  }
+
   public final class NestedScrollInteropConnectionKt {
     method @androidx.compose.runtime.Composable public static androidx.compose.ui.input.nestedscroll.NestedScrollConnection rememberNestedScrollInteropConnection(optional android.view.View hostView);
   }
 
+  @androidx.compose.runtime.Stable @androidx.compose.ui.ExperimentalComposeUiApi public interface SoftwareKeyboardController {
+    method public void hide();
+    method @Deprecated public default void hideSoftwareKeyboard();
+    method public void show();
+    method @Deprecated public default void showSoftwareKeyboard();
+  }
+
   public final class TestTagKt {
     method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier testTag(androidx.compose.ui.Modifier, String tag);
   }
@@ -2691,11 +2927,30 @@
   }
 
   @androidx.compose.runtime.Stable public interface WindowInfo {
+    method @androidx.compose.ui.ExperimentalComposeUiApi public default int getKeyboardModifiers();
     method public boolean isWindowFocused();
     property public abstract boolean isWindowFocused;
+    property @androidx.compose.ui.ExperimentalComposeUiApi public default int keyboardModifiers;
+  }
+
+  @androidx.compose.ui.InternalComposeUiApi public fun interface WindowRecomposerFactory {
+    method public androidx.compose.runtime.Recomposer createRecomposer(android.view.View windowRootView);
+    field public static final androidx.compose.ui.platform.WindowRecomposerFactory.Companion Companion;
+  }
+
+  public static final class WindowRecomposerFactory.Companion {
+    method public androidx.compose.ui.platform.WindowRecomposerFactory getLifecycleAware();
+    property public final androidx.compose.ui.platform.WindowRecomposerFactory LifecycleAware;
+  }
+
+  @androidx.compose.ui.InternalComposeUiApi public final class WindowRecomposerPolicy {
+    method public void setFactory(androidx.compose.ui.platform.WindowRecomposerFactory factory);
+    method public inline <R> R withFactory(androidx.compose.ui.platform.WindowRecomposerFactory factory, kotlin.jvm.functions.Function0<? extends R> block);
+    field public static final androidx.compose.ui.platform.WindowRecomposerPolicy INSTANCE;
   }
 
   public final class WindowRecomposer_androidKt {
+    method @androidx.compose.ui.ExperimentalComposeUiApi public static androidx.compose.runtime.Recomposer createLifecycleAwareWindowRecomposer(android.view.View, optional kotlin.coroutines.CoroutineContext coroutineContext, optional androidx.lifecycle.Lifecycle? lifecycle);
     method public static androidx.compose.runtime.CompositionContext? findViewTreeCompositionContext(android.view.View);
     method public static androidx.compose.runtime.CompositionContext? getCompositionContext(android.view.View);
     method public static void setCompositionContext(android.view.View, androidx.compose.runtime.CompositionContext?);
@@ -3028,6 +3283,12 @@
     field public static final androidx.compose.ui.semantics.SemanticsProperties INSTANCE;
   }
 
+  @androidx.compose.ui.ExperimentalComposeUiApi public final class SemanticsPropertiesAndroid {
+    method @androidx.compose.ui.ExperimentalComposeUiApi public androidx.compose.ui.semantics.SemanticsPropertyKey<java.lang.Boolean> getTestTagsAsResourceId();
+    property @androidx.compose.ui.ExperimentalComposeUiApi public final androidx.compose.ui.semantics.SemanticsPropertyKey<java.lang.Boolean> TestTagsAsResourceId;
+    field public static final androidx.compose.ui.semantics.SemanticsPropertiesAndroid INSTANCE;
+  }
+
   public final class SemanticsPropertiesKt {
     method public static void collapse(androidx.compose.ui.semantics.SemanticsPropertyReceiver, optional String? label, kotlin.jvm.functions.Function0<java.lang.Boolean>? action);
     method public static void copyText(androidx.compose.ui.semantics.SemanticsPropertyReceiver, optional String? label, kotlin.jvm.functions.Function0<java.lang.Boolean>? action);
@@ -3061,6 +3322,7 @@
     method public static void heading(androidx.compose.ui.semantics.SemanticsPropertyReceiver);
     method public static void indexForKey(androidx.compose.ui.semantics.SemanticsPropertyReceiver, kotlin.jvm.functions.Function1<java.lang.Object,java.lang.Integer> mapping);
     method public static void insertTextAtCursor(androidx.compose.ui.semantics.SemanticsPropertyReceiver, optional String? label, kotlin.jvm.functions.Function1<? super androidx.compose.ui.text.AnnotatedString,java.lang.Boolean>? action);
+    method @androidx.compose.ui.ExperimentalComposeUiApi public static void invisibleToUser(androidx.compose.ui.semantics.SemanticsPropertyReceiver);
     method @Deprecated public static boolean isContainer(androidx.compose.ui.semantics.SemanticsPropertyReceiver);
     method public static boolean isTraversalGroup(androidx.compose.ui.semantics.SemanticsPropertyReceiver);
     method public static void onClick(androidx.compose.ui.semantics.SemanticsPropertyReceiver, optional String? label, kotlin.jvm.functions.Function0<java.lang.Boolean>? action);
@@ -3104,6 +3366,11 @@
     method public static void setVerticalScrollAxisRange(androidx.compose.ui.semantics.SemanticsPropertyReceiver, androidx.compose.ui.semantics.ScrollAxisRange);
   }
 
+  public final class SemanticsProperties_androidKt {
+    method @androidx.compose.ui.ExperimentalComposeUiApi public static boolean getTestTagsAsResourceId(androidx.compose.ui.semantics.SemanticsPropertyReceiver);
+    method @androidx.compose.ui.ExperimentalComposeUiApi public static void setTestTagsAsResourceId(androidx.compose.ui.semantics.SemanticsPropertyReceiver, boolean);
+  }
+
   public final class SemanticsPropertyKey<T> {
     ctor public SemanticsPropertyKey(String name, optional kotlin.jvm.functions.Function2<? super T,? super T,? extends T> mergePolicy);
     method public String getName();
@@ -3192,6 +3459,7 @@
 
   @androidx.compose.runtime.Immutable public final class PopupProperties {
     ctor public PopupProperties(optional boolean focusable, optional boolean dismissOnBackPress, optional boolean dismissOnClickOutside, optional androidx.compose.ui.window.SecureFlagPolicy securePolicy, optional boolean excludeFromSystemGesture, optional boolean clippingEnabled);
+    ctor @androidx.compose.ui.ExperimentalComposeUiApi public PopupProperties(optional boolean focusable, optional boolean dismissOnBackPress, optional boolean dismissOnClickOutside, optional androidx.compose.ui.window.SecureFlagPolicy securePolicy, optional boolean excludeFromSystemGesture, optional boolean clippingEnabled, optional boolean usePlatformDefaultWidth);
     method public boolean getClippingEnabled();
     method public boolean getDismissOnBackPress();
     method public boolean getDismissOnClickOutside();
diff --git a/compose/ui/ui/api/res-1.5.0-beta01.txt b/compose/ui/ui/api/res-1.5.0-beta01.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/compose/ui/ui/api/res-1.5.0-beta01.txt
diff --git a/compose/ui/ui/api/public_plus_experimental_current.txt b/compose/ui/ui/api/restricted_1.5.0-beta01.txt
similarity index 97%
copy from compose/ui/ui/api/public_plus_experimental_current.txt
copy to compose/ui/ui/api/restricted_1.5.0-beta01.txt
index 434d4ce..d24ac94 100644
--- a/compose/ui/ui/api/public_plus_experimental_current.txt
+++ b/compose/ui/ui/api/restricted_1.5.0-beta01.txt
@@ -2142,6 +2142,9 @@
     method @androidx.compose.runtime.Composable @androidx.compose.ui.UiComposable public static inline void Layout(java.util.List<? extends kotlin.jvm.functions.Function0<kotlin.Unit>> contents, optional androidx.compose.ui.Modifier modifier, androidx.compose.ui.layout.MultiContentMeasurePolicy measurePolicy);
     method @androidx.compose.runtime.Composable @androidx.compose.ui.UiComposable public static inline void Layout(kotlin.jvm.functions.Function0<kotlin.Unit> content, optional androidx.compose.ui.Modifier modifier, androidx.compose.ui.layout.MeasurePolicy measurePolicy);
     method @Deprecated @androidx.compose.runtime.Composable @androidx.compose.ui.UiComposable public static void MultiMeasureLayout(optional androidx.compose.ui.Modifier modifier, kotlin.jvm.functions.Function0<kotlin.Unit> content, androidx.compose.ui.layout.MeasurePolicy measurePolicy);
+    method @kotlin.PublishedApi internal static kotlin.jvm.functions.Function0<kotlin.Unit> combineAsVirtualLayouts(java.util.List<? extends kotlin.jvm.functions.Function0<kotlin.Unit>> contents);
+    method @Deprecated @kotlin.PublishedApi internal static kotlin.jvm.functions.Function1<androidx.compose.runtime.SkippableUpdater<androidx.compose.ui.node.ComposeUiNode>,kotlin.Unit> materializerOf(androidx.compose.ui.Modifier modifier);
+    method @kotlin.PublishedApi internal static kotlin.jvm.functions.Function1<androidx.compose.runtime.SkippableUpdater<androidx.compose.ui.node.ComposeUiNode>,kotlin.Unit> modifierMaterializerOf(androidx.compose.ui.Modifier modifier);
   }
 
   @kotlin.jvm.JvmDefaultWithCompatibility public interface LayoutModifier extends androidx.compose.ui.Modifier.Element {
@@ -2231,6 +2234,10 @@
     method public default int minIntrinsicWidth(androidx.compose.ui.layout.IntrinsicMeasureScope, java.util.List<? extends java.util.List<? extends androidx.compose.ui.layout.IntrinsicMeasurable>> measurables, int height);
   }
 
+  public final class MultiContentMeasurePolicyKt {
+    method @kotlin.PublishedApi internal static androidx.compose.ui.layout.MeasurePolicy createMeasurePolicy(androidx.compose.ui.layout.MultiContentMeasurePolicy measurePolicy);
+  }
+
   @kotlin.jvm.JvmDefaultWithCompatibility public interface OnGloballyPositionedModifier extends androidx.compose.ui.Modifier.Element {
     method public void onGloballyPositioned(androidx.compose.ui.layout.LayoutCoordinates coordinates);
   }
@@ -2405,9 +2412,6 @@
     method public boolean retainAll(kotlin.jvm.functions.Function1<java.lang.Object,java.lang.Boolean> predicate);
   }
 
-  public final class TestModifierUpdaterKt {
-  }
-
   public final class VerticalAlignmentLine extends androidx.compose.ui.layout.AlignmentLine {
     ctor public VerticalAlignmentLine(kotlin.jvm.functions.Function2<? super java.lang.Integer,? super java.lang.Integer,java.lang.Integer> merger);
   }
@@ -2476,6 +2480,47 @@
     method public void invalidateDrawCache();
   }
 
+  @kotlin.PublishedApi internal interface ComposeUiNode {
+    method public androidx.compose.runtime.CompositionLocalMap getCompositionLocalMap();
+    method public androidx.compose.ui.unit.Density getDensity();
+    method public androidx.compose.ui.unit.LayoutDirection getLayoutDirection();
+    method public androidx.compose.ui.layout.MeasurePolicy getMeasurePolicy();
+    method public androidx.compose.ui.Modifier getModifier();
+    method public androidx.compose.ui.platform.ViewConfiguration getViewConfiguration();
+    method public void setCompositionLocalMap(androidx.compose.runtime.CompositionLocalMap);
+    method public void setDensity(androidx.compose.ui.unit.Density);
+    method public void setLayoutDirection(androidx.compose.ui.unit.LayoutDirection);
+    method public void setMeasurePolicy(androidx.compose.ui.layout.MeasurePolicy);
+    method public void setModifier(androidx.compose.ui.Modifier);
+    method public void setViewConfiguration(androidx.compose.ui.platform.ViewConfiguration);
+    property public abstract androidx.compose.runtime.CompositionLocalMap compositionLocalMap;
+    property public abstract androidx.compose.ui.unit.Density density;
+    property public abstract androidx.compose.ui.unit.LayoutDirection layoutDirection;
+    property public abstract androidx.compose.ui.layout.MeasurePolicy measurePolicy;
+    property public abstract androidx.compose.ui.Modifier modifier;
+    property public abstract androidx.compose.ui.platform.ViewConfiguration viewConfiguration;
+    field public static final androidx.compose.ui.node.ComposeUiNode.Companion Companion;
+  }
+
+  public static final class ComposeUiNode.Companion {
+    method public kotlin.jvm.functions.Function0<androidx.compose.ui.node.ComposeUiNode> getConstructor();
+    method public kotlin.jvm.functions.Function2<androidx.compose.ui.node.ComposeUiNode,androidx.compose.ui.unit.Density,kotlin.Unit> getSetDensity();
+    method public kotlin.jvm.functions.Function2<androidx.compose.ui.node.ComposeUiNode,androidx.compose.ui.unit.LayoutDirection,kotlin.Unit> getSetLayoutDirection();
+    method public kotlin.jvm.functions.Function2<androidx.compose.ui.node.ComposeUiNode,androidx.compose.ui.layout.MeasurePolicy,kotlin.Unit> getSetMeasurePolicy();
+    method public kotlin.jvm.functions.Function2<androidx.compose.ui.node.ComposeUiNode,androidx.compose.ui.Modifier,kotlin.Unit> getSetModifier();
+    method public kotlin.jvm.functions.Function2<androidx.compose.ui.node.ComposeUiNode,androidx.compose.runtime.CompositionLocalMap,kotlin.Unit> getSetResolvedCompositionLocals();
+    method public kotlin.jvm.functions.Function2<androidx.compose.ui.node.ComposeUiNode,androidx.compose.ui.platform.ViewConfiguration,kotlin.Unit> getSetViewConfiguration();
+    method public kotlin.jvm.functions.Function0<androidx.compose.ui.node.ComposeUiNode> getVirtualConstructor();
+    property public final kotlin.jvm.functions.Function0<androidx.compose.ui.node.ComposeUiNode> Constructor;
+    property public final kotlin.jvm.functions.Function2<androidx.compose.ui.node.ComposeUiNode,androidx.compose.ui.unit.Density,kotlin.Unit> SetDensity;
+    property public final kotlin.jvm.functions.Function2<androidx.compose.ui.node.ComposeUiNode,androidx.compose.ui.unit.LayoutDirection,kotlin.Unit> SetLayoutDirection;
+    property public final kotlin.jvm.functions.Function2<androidx.compose.ui.node.ComposeUiNode,androidx.compose.ui.layout.MeasurePolicy,kotlin.Unit> SetMeasurePolicy;
+    property public final kotlin.jvm.functions.Function2<androidx.compose.ui.node.ComposeUiNode,androidx.compose.ui.Modifier,kotlin.Unit> SetModifier;
+    property public final kotlin.jvm.functions.Function2<androidx.compose.ui.node.ComposeUiNode,androidx.compose.runtime.CompositionLocalMap,kotlin.Unit> SetResolvedCompositionLocals;
+    property public final kotlin.jvm.functions.Function2<androidx.compose.ui.node.ComposeUiNode,androidx.compose.ui.platform.ViewConfiguration,kotlin.Unit> SetViewConfiguration;
+    property public final kotlin.jvm.functions.Function0<androidx.compose.ui.node.ComposeUiNode> VirtualConstructor;
+  }
+
   public interface CompositionLocalConsumerModifierNode extends androidx.compose.ui.node.DelegatableNode {
   }
 
@@ -2774,6 +2819,7 @@
     method public static inline kotlin.jvm.functions.Function1<androidx.compose.ui.platform.InspectorInfo,kotlin.Unit> debugInspectorInfo(kotlin.jvm.functions.Function1<? super androidx.compose.ui.platform.InspectorInfo,kotlin.Unit> definitions);
     method public static kotlin.jvm.functions.Function1<androidx.compose.ui.platform.InspectorInfo,kotlin.Unit> getNoInspectorInfo();
     method public static inline androidx.compose.ui.Modifier inspectable(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1<? super androidx.compose.ui.platform.InspectorInfo,kotlin.Unit> inspectorInfo, kotlin.jvm.functions.Function1<? super androidx.compose.ui.Modifier,? extends androidx.compose.ui.Modifier> factory);
+    method @kotlin.PublishedApi internal static androidx.compose.ui.Modifier inspectableWrapper(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1<? super androidx.compose.ui.platform.InspectorInfo,kotlin.Unit> inspectorInfo, androidx.compose.ui.Modifier wrapped);
     method public static boolean isDebugInspectorInfoEnabled();
     method public static void setDebugInspectorInfoEnabled(boolean);
     property public static final kotlin.jvm.functions.Function1<androidx.compose.ui.platform.InspectorInfo,kotlin.Unit> NoInspectorInfo;
@@ -2947,6 +2993,8 @@
   }
 
   @androidx.compose.ui.InternalComposeUiApi public final class WindowRecomposerPolicy {
+    method @kotlin.PublishedApi internal boolean compareAndSetFactory(androidx.compose.ui.platform.WindowRecomposerFactory expected, androidx.compose.ui.platform.WindowRecomposerFactory factory);
+    method @kotlin.PublishedApi internal androidx.compose.ui.platform.WindowRecomposerFactory getAndSetFactory(androidx.compose.ui.platform.WindowRecomposerFactory factory);
     method public void setFactory(androidx.compose.ui.platform.WindowRecomposerFactory factory);
     method public inline <R> R withFactory(androidx.compose.ui.platform.WindowRecomposerFactory factory, kotlin.jvm.functions.Function0<? extends R> block);
     field public static final androidx.compose.ui.platform.WindowRecomposerPolicy INSTANCE;
diff --git a/compose/ui/ui/api/restricted_current.ignore b/compose/ui/ui/api/restricted_current.ignore
index fc531f7..af7782e 100644
--- a/compose/ui/ui/api/restricted_current.ignore
+++ b/compose/ui/ui/api/restricted_current.ignore
@@ -1,4 +1,10 @@
 // Baseline format: 1.0
+BecameUnchecked: Field NestedScrollSource.Companion.Relocate:
+    Removed Field NestedScrollSource.Companion.Relocate from compatibility checked API surface
+BecameUnchecked: androidx.compose.ui.input.nestedscroll.NestedScrollSource.Companion#getRelocate():
+    Removed method androidx.compose.ui.input.nestedscroll.NestedScrollSource.Companion.getRelocate() from compatibility checked API surface
+
+
 InvalidNullConversion: androidx.compose.ui.CombinedModifier#foldIn(R, kotlin.jvm.functions.Function2<? super R,? super androidx.compose.ui.Modifier.Element,? extends R>) parameter #0:
     Attempted to change parameter from @Nullable to @NonNull: incompatible change for parameter initial in androidx.compose.ui.CombinedModifier.foldIn(R initial, kotlin.jvm.functions.Function2<? super R,? super androidx.compose.ui.Modifier.Element,? extends R> operation)
 InvalidNullConversion: androidx.compose.ui.CombinedModifier#foldOut(R, kotlin.jvm.functions.Function2<? super androidx.compose.ui.Modifier.Element,? super R,? extends R>) parameter #0:
@@ -27,9 +33,7 @@
     Attempted to change parameter from @Nullable to @NonNull: incompatible change for parameter value in androidx.compose.ui.semantics.SemanticsPropertyReceiver.set(androidx.compose.ui.semantics.SemanticsPropertyKey<T> key, T value)
 
 
+RemovedClass: androidx.compose.ui.layout.TestModifierUpdaterKt:
+    Removed class androidx.compose.ui.layout.TestModifierUpdaterKt
 RemovedClass: androidx.compose.ui.platform.AndroidComposeView_androidKt:
     Removed class androidx.compose.ui.platform.AndroidComposeView_androidKt
-
-
-RemovedDeprecatedMethod: androidx.compose.ui.input.nestedscroll.NestedScrollSource.Companion#getRelocate():
-    Removed deprecated method androidx.compose.ui.input.nestedscroll.NestedScrollSource.Companion.getRelocate()
diff --git a/compose/ui/ui/api/restricted_current.txt b/compose/ui/ui/api/restricted_current.txt
index 72c9aaa..d24ac94 100644
--- a/compose/ui/ui/api/restricted_current.txt
+++ b/compose/ui/ui/api/restricted_current.txt
@@ -112,11 +112,21 @@
   }
 
   public final class ComposedModifierKt {
+    method @androidx.compose.ui.ExperimentalComposeUiApi public static androidx.compose.ui.Modifier composed(androidx.compose.ui.Modifier, String fullyQualifiedName, Object? key1, Object? key2, Object? key3, optional kotlin.jvm.functions.Function1<? super androidx.compose.ui.platform.InspectorInfo,kotlin.Unit> inspectorInfo, kotlin.jvm.functions.Function1<? super androidx.compose.ui.Modifier,? extends androidx.compose.ui.Modifier> factory);
+    method @androidx.compose.ui.ExperimentalComposeUiApi public static androidx.compose.ui.Modifier composed(androidx.compose.ui.Modifier, String fullyQualifiedName, Object? key1, Object? key2, optional kotlin.jvm.functions.Function1<? super androidx.compose.ui.platform.InspectorInfo,kotlin.Unit> inspectorInfo, kotlin.jvm.functions.Function1<? super androidx.compose.ui.Modifier,? extends androidx.compose.ui.Modifier> factory);
+    method @androidx.compose.ui.ExperimentalComposeUiApi public static androidx.compose.ui.Modifier composed(androidx.compose.ui.Modifier, String fullyQualifiedName, Object? key1, optional kotlin.jvm.functions.Function1<? super androidx.compose.ui.platform.InspectorInfo,kotlin.Unit> inspectorInfo, kotlin.jvm.functions.Function1<? super androidx.compose.ui.Modifier,? extends androidx.compose.ui.Modifier> factory);
+    method @androidx.compose.ui.ExperimentalComposeUiApi public static androidx.compose.ui.Modifier composed(androidx.compose.ui.Modifier, String fullyQualifiedName, Object![]? keys, optional kotlin.jvm.functions.Function1<? super androidx.compose.ui.platform.InspectorInfo,kotlin.Unit> inspectorInfo, kotlin.jvm.functions.Function1<? super androidx.compose.ui.Modifier,? extends androidx.compose.ui.Modifier> factory);
     method public static androidx.compose.ui.Modifier composed(androidx.compose.ui.Modifier, optional kotlin.jvm.functions.Function1<? super androidx.compose.ui.platform.InspectorInfo,kotlin.Unit> inspectorInfo, kotlin.jvm.functions.Function1<? super androidx.compose.ui.Modifier,? extends androidx.compose.ui.Modifier> factory);
     method @Deprecated public static androidx.compose.ui.Modifier materialize(androidx.compose.runtime.Composer, androidx.compose.ui.Modifier modifier);
     method public static androidx.compose.ui.Modifier materializeModifier(androidx.compose.runtime.Composer, androidx.compose.ui.Modifier modifier);
   }
 
+  @kotlin.RequiresOptIn(message="This API is experimental and is likely to change in the future.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface ExperimentalComposeUiApi {
+  }
+
+  @kotlin.RequiresOptIn(message="Unstable API for use only between compose-ui modules sharing the same exact version, " + "subject to change without notice in major, minor, or patch releases.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface InternalComposeUiApi {
+  }
+
   @androidx.compose.runtime.Stable @kotlin.jvm.JvmDefaultWithCompatibility public interface Modifier {
     method public boolean all(kotlin.jvm.functions.Function1<? super androidx.compose.ui.Modifier.Element,java.lang.Boolean> predicate);
     method public boolean any(kotlin.jvm.functions.Function1<? super androidx.compose.ui.Modifier.Element,java.lang.Boolean> predicate);
@@ -149,6 +159,7 @@
     method public void onAttach();
     method public void onDetach();
     method public void onReset();
+    method @androidx.compose.ui.ExperimentalComposeUiApi public final void sideEffect(kotlin.jvm.functions.Function0<kotlin.Unit> effect);
     property public final kotlinx.coroutines.CoroutineScope coroutineScope;
     property public final boolean isAttached;
     property public final androidx.compose.ui.Modifier.Node node;
@@ -175,6 +186,77 @@
 
 }
 
+package androidx.compose.ui.autofill {
+
+  @androidx.compose.ui.ExperimentalComposeUiApi public interface Autofill {
+    method public void cancelAutofillForNode(androidx.compose.ui.autofill.AutofillNode autofillNode);
+    method public void requestAutofillForNode(androidx.compose.ui.autofill.AutofillNode autofillNode);
+  }
+
+  @androidx.compose.ui.ExperimentalComposeUiApi public final class AutofillNode {
+    ctor public AutofillNode(optional java.util.List<? extends androidx.compose.ui.autofill.AutofillType> autofillTypes, optional androidx.compose.ui.geometry.Rect? boundingBox, kotlin.jvm.functions.Function1<? super java.lang.String,kotlin.Unit>? onFill);
+    method public java.util.List<androidx.compose.ui.autofill.AutofillType> getAutofillTypes();
+    method public androidx.compose.ui.geometry.Rect? getBoundingBox();
+    method public int getId();
+    method public kotlin.jvm.functions.Function1<java.lang.String,kotlin.Unit>? getOnFill();
+    method public void setBoundingBox(androidx.compose.ui.geometry.Rect?);
+    property public final java.util.List<androidx.compose.ui.autofill.AutofillType> autofillTypes;
+    property public final androidx.compose.ui.geometry.Rect? boundingBox;
+    property public final int id;
+    property public final kotlin.jvm.functions.Function1<java.lang.String,kotlin.Unit>? onFill;
+  }
+
+  @androidx.compose.ui.ExperimentalComposeUiApi public final class AutofillTree {
+    ctor public AutofillTree();
+    method public java.util.Map<java.lang.Integer,androidx.compose.ui.autofill.AutofillNode> getChildren();
+    method public kotlin.Unit? performAutofill(int id, String value);
+    method public operator void plusAssign(androidx.compose.ui.autofill.AutofillNode autofillNode);
+    property public final java.util.Map<java.lang.Integer,androidx.compose.ui.autofill.AutofillNode> children;
+  }
+
+  @androidx.compose.ui.ExperimentalComposeUiApi public enum AutofillType {
+    method public static androidx.compose.ui.autofill.AutofillType valueOf(String value) throws java.lang.IllegalArgumentException, java.lang.NullPointerException;
+    method public static androidx.compose.ui.autofill.AutofillType[] values();
+    enum_constant public static final androidx.compose.ui.autofill.AutofillType AddressAuxiliaryDetails;
+    enum_constant public static final androidx.compose.ui.autofill.AutofillType AddressCountry;
+    enum_constant public static final androidx.compose.ui.autofill.AutofillType AddressLocality;
+    enum_constant public static final androidx.compose.ui.autofill.AutofillType AddressRegion;
+    enum_constant public static final androidx.compose.ui.autofill.AutofillType AddressStreet;
+    enum_constant public static final androidx.compose.ui.autofill.AutofillType BirthDateDay;
+    enum_constant public static final androidx.compose.ui.autofill.AutofillType BirthDateFull;
+    enum_constant public static final androidx.compose.ui.autofill.AutofillType BirthDateMonth;
+    enum_constant public static final androidx.compose.ui.autofill.AutofillType BirthDateYear;
+    enum_constant public static final androidx.compose.ui.autofill.AutofillType CreditCardExpirationDate;
+    enum_constant public static final androidx.compose.ui.autofill.AutofillType CreditCardExpirationDay;
+    enum_constant public static final androidx.compose.ui.autofill.AutofillType CreditCardExpirationMonth;
+    enum_constant public static final androidx.compose.ui.autofill.AutofillType CreditCardExpirationYear;
+    enum_constant public static final androidx.compose.ui.autofill.AutofillType CreditCardNumber;
+    enum_constant public static final androidx.compose.ui.autofill.AutofillType CreditCardSecurityCode;
+    enum_constant public static final androidx.compose.ui.autofill.AutofillType EmailAddress;
+    enum_constant public static final androidx.compose.ui.autofill.AutofillType Gender;
+    enum_constant public static final androidx.compose.ui.autofill.AutofillType NewPassword;
+    enum_constant public static final androidx.compose.ui.autofill.AutofillType NewUsername;
+    enum_constant public static final androidx.compose.ui.autofill.AutofillType Password;
+    enum_constant public static final androidx.compose.ui.autofill.AutofillType PersonFirstName;
+    enum_constant public static final androidx.compose.ui.autofill.AutofillType PersonFullName;
+    enum_constant public static final androidx.compose.ui.autofill.AutofillType PersonLastName;
+    enum_constant public static final androidx.compose.ui.autofill.AutofillType PersonMiddleInitial;
+    enum_constant public static final androidx.compose.ui.autofill.AutofillType PersonMiddleName;
+    enum_constant public static final androidx.compose.ui.autofill.AutofillType PersonNamePrefix;
+    enum_constant public static final androidx.compose.ui.autofill.AutofillType PersonNameSuffix;
+    enum_constant public static final androidx.compose.ui.autofill.AutofillType PhoneCountryCode;
+    enum_constant public static final androidx.compose.ui.autofill.AutofillType PhoneNumber;
+    enum_constant public static final androidx.compose.ui.autofill.AutofillType PhoneNumberDevice;
+    enum_constant public static final androidx.compose.ui.autofill.AutofillType PhoneNumberNational;
+    enum_constant public static final androidx.compose.ui.autofill.AutofillType PostalAddress;
+    enum_constant public static final androidx.compose.ui.autofill.AutofillType PostalCode;
+    enum_constant public static final androidx.compose.ui.autofill.AutofillType PostalCodeExtended;
+    enum_constant public static final androidx.compose.ui.autofill.AutofillType SmsOtpCode;
+    enum_constant public static final androidx.compose.ui.autofill.AutofillType Username;
+  }
+
+}
+
 package androidx.compose.ui.draw {
 
   public final class AlphaKt {
@@ -277,14 +359,22 @@
 
   public static final class FocusDirection.Companion {
     method public int getDown();
+    method @androidx.compose.ui.ExperimentalComposeUiApi public int getEnter();
+    method @androidx.compose.ui.ExperimentalComposeUiApi public int getExit();
+    method @Deprecated @androidx.compose.ui.ExperimentalComposeUiApi public int getIn();
     method public int getLeft();
     method public int getNext();
+    method @Deprecated @androidx.compose.ui.ExperimentalComposeUiApi public int getOut();
     method public int getPrevious();
     method public int getRight();
     method public int getUp();
     property public final int Down;
+    property @androidx.compose.ui.ExperimentalComposeUiApi public final int Enter;
+    property @androidx.compose.ui.ExperimentalComposeUiApi public final int Exit;
+    property @Deprecated @androidx.compose.ui.ExperimentalComposeUiApi public final int In;
     property public final int Left;
     property public final int Next;
+    property @Deprecated @androidx.compose.ui.ExperimentalComposeUiApi public final int Out;
     property public final int Previous;
     property public final int Right;
     property public final int Up;
@@ -354,6 +444,8 @@
     method public boolean getCanFocus();
     method public default androidx.compose.ui.focus.FocusRequester getDown();
     method public default androidx.compose.ui.focus.FocusRequester getEnd();
+    method @androidx.compose.ui.ExperimentalComposeUiApi public default kotlin.jvm.functions.Function1<androidx.compose.ui.focus.FocusDirection,androidx.compose.ui.focus.FocusRequester> getEnter();
+    method @androidx.compose.ui.ExperimentalComposeUiApi public default kotlin.jvm.functions.Function1<androidx.compose.ui.focus.FocusDirection,androidx.compose.ui.focus.FocusRequester> getExit();
     method public default androidx.compose.ui.focus.FocusRequester getLeft();
     method public default androidx.compose.ui.focus.FocusRequester getNext();
     method public default androidx.compose.ui.focus.FocusRequester getPrevious();
@@ -363,6 +455,8 @@
     method public void setCanFocus(boolean);
     method public default void setDown(androidx.compose.ui.focus.FocusRequester);
     method public default void setEnd(androidx.compose.ui.focus.FocusRequester);
+    method @androidx.compose.ui.ExperimentalComposeUiApi public default void setEnter(kotlin.jvm.functions.Function1<? super androidx.compose.ui.focus.FocusDirection,androidx.compose.ui.focus.FocusRequester>);
+    method @androidx.compose.ui.ExperimentalComposeUiApi public default void setExit(kotlin.jvm.functions.Function1<? super androidx.compose.ui.focus.FocusDirection,androidx.compose.ui.focus.FocusRequester>);
     method public default void setLeft(androidx.compose.ui.focus.FocusRequester);
     method public default void setNext(androidx.compose.ui.focus.FocusRequester);
     method public default void setPrevious(androidx.compose.ui.focus.FocusRequester);
@@ -372,6 +466,8 @@
     property public abstract boolean canFocus;
     property public default androidx.compose.ui.focus.FocusRequester down;
     property public default androidx.compose.ui.focus.FocusRequester end;
+    property @androidx.compose.ui.ExperimentalComposeUiApi public default kotlin.jvm.functions.Function1<androidx.compose.ui.focus.FocusDirection,androidx.compose.ui.focus.FocusRequester> enter;
+    property @androidx.compose.ui.ExperimentalComposeUiApi public default kotlin.jvm.functions.Function1<androidx.compose.ui.focus.FocusDirection,androidx.compose.ui.focus.FocusRequester> exit;
     property public default androidx.compose.ui.focus.FocusRequester left;
     property public default androidx.compose.ui.focus.FocusRequester next;
     property public default androidx.compose.ui.focus.FocusRequester previous;
@@ -401,10 +497,33 @@
   }
 
   public static final class FocusRequester.Companion {
+    method @androidx.compose.ui.ExperimentalComposeUiApi public androidx.compose.ui.focus.FocusRequester.Companion.FocusRequesterFactory createRefs();
+    method @androidx.compose.ui.ExperimentalComposeUiApi public androidx.compose.ui.focus.FocusRequester getCancel();
     method public androidx.compose.ui.focus.FocusRequester getDefault();
+    property @androidx.compose.ui.ExperimentalComposeUiApi public final androidx.compose.ui.focus.FocusRequester Cancel;
     property public final androidx.compose.ui.focus.FocusRequester Default;
   }
 
+  @androidx.compose.ui.ExperimentalComposeUiApi public static final class FocusRequester.Companion.FocusRequesterFactory {
+    method public operator androidx.compose.ui.focus.FocusRequester component1();
+    method public operator androidx.compose.ui.focus.FocusRequester component10();
+    method public operator androidx.compose.ui.focus.FocusRequester component11();
+    method public operator androidx.compose.ui.focus.FocusRequester component12();
+    method public operator androidx.compose.ui.focus.FocusRequester component13();
+    method public operator androidx.compose.ui.focus.FocusRequester component14();
+    method public operator androidx.compose.ui.focus.FocusRequester component15();
+    method public operator androidx.compose.ui.focus.FocusRequester component16();
+    method public operator androidx.compose.ui.focus.FocusRequester component2();
+    method public operator androidx.compose.ui.focus.FocusRequester component3();
+    method public operator androidx.compose.ui.focus.FocusRequester component4();
+    method public operator androidx.compose.ui.focus.FocusRequester component5();
+    method public operator androidx.compose.ui.focus.FocusRequester component6();
+    method public operator androidx.compose.ui.focus.FocusRequester component7();
+    method public operator androidx.compose.ui.focus.FocusRequester component8();
+    method public operator androidx.compose.ui.focus.FocusRequester component9();
+    field public static final androidx.compose.ui.focus.FocusRequester.Companion.FocusRequesterFactory INSTANCE;
+  }
+
   @Deprecated @kotlin.jvm.JvmDefaultWithCompatibility public interface FocusRequesterModifier extends androidx.compose.ui.Modifier.Element {
     method @Deprecated public androidx.compose.ui.focus.FocusRequester getFocusRequester();
     property @Deprecated public abstract androidx.compose.ui.focus.FocusRequester focusRequester;
@@ -826,6 +945,7 @@
 
   public interface InputModeManager {
     method public int getInputMode();
+    method @androidx.compose.ui.ExperimentalComposeUiApi public boolean requestInputMode(int inputMode);
     property public abstract int inputMode;
   }
 
@@ -1461,6 +1581,16 @@
     method public static int getNativeKeyCode(long);
   }
 
+  @androidx.compose.ui.ExperimentalComposeUiApi public interface SoftKeyboardInterceptionModifierNode extends androidx.compose.ui.node.DelegatableNode {
+    method public boolean onInterceptKeyBeforeSoftKeyboard(android.view.KeyEvent event);
+    method public boolean onPreInterceptKeyBeforeSoftKeyboard(android.view.KeyEvent event);
+  }
+
+  public final class SoftwareKeyboardInterceptionModifierKt {
+    method @androidx.compose.ui.ExperimentalComposeUiApi public static androidx.compose.ui.Modifier onInterceptKeyBeforeSoftKeyboard(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1<? super androidx.compose.ui.input.key.KeyEvent,java.lang.Boolean> onInterceptKeyBeforeSoftKeyboard);
+    method @androidx.compose.ui.ExperimentalComposeUiApi public static androidx.compose.ui.Modifier onPreInterceptKeyBeforeSoftKeyboard(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1<? super androidx.compose.ui.input.key.KeyEvent,java.lang.Boolean> onPreInterceptKeyBeforeSoftKeyboard);
+  }
+
 }
 
 package androidx.compose.ui.input.nestedscroll {
@@ -1497,8 +1627,10 @@
   public static final class NestedScrollSource.Companion {
     method public int getDrag();
     method public int getFling();
+    method @Deprecated @androidx.compose.ui.ExperimentalComposeUiApi public int getRelocate();
     property public final int Drag;
     property public final int Fling;
+    property @Deprecated @androidx.compose.ui.ExperimentalComposeUiApi public final int Relocate;
   }
 
 }
@@ -1529,6 +1661,14 @@
     property @Deprecated public final boolean positionChange;
   }
 
+  @androidx.compose.runtime.Immutable @androidx.compose.ui.ExperimentalComposeUiApi public final class HistoricalChange {
+    ctor public HistoricalChange(long uptimeMillis, long position);
+    method public long getPosition();
+    method public long getUptimeMillis();
+    property public final long position;
+    property public final long uptimeMillis;
+  }
+
   @kotlin.jvm.JvmInline public final value class PointerButtons {
     ctor public PointerButtons(int packedValue);
   }
@@ -1658,11 +1798,14 @@
     ctor @Deprecated public PointerInputChange(long id, long uptimeMillis, long position, boolean pressed, long previousUptimeMillis, long previousPosition, boolean previousPressed, androidx.compose.ui.input.pointer.ConsumedData consumed, optional int type);
     ctor public PointerInputChange(long id, long uptimeMillis, long position, boolean pressed, long previousUptimeMillis, long previousPosition, boolean previousPressed, boolean isInitiallyConsumed, optional int type, optional long scrollDelta);
     method public void consume();
+    method @androidx.compose.ui.ExperimentalComposeUiApi public androidx.compose.ui.input.pointer.PointerInputChange copy(optional long id, optional long currentTime, optional long currentPosition, optional boolean currentPressed, optional float pressure, optional long previousTime, optional long previousPosition, optional boolean previousPressed, optional int type, optional java.util.List<androidx.compose.ui.input.pointer.HistoricalChange> historical, optional long scrollDelta);
     method public androidx.compose.ui.input.pointer.PointerInputChange copy(optional long id, optional long currentTime, optional long currentPosition, optional boolean currentPressed, optional float pressure, optional long previousTime, optional long previousPosition, optional boolean previousPressed, optional int type, optional long scrollDelta);
     method @Deprecated public androidx.compose.ui.input.pointer.PointerInputChange copy(optional long id, optional long currentTime, optional long currentPosition, optional boolean currentPressed, optional long previousTime, optional long previousPosition, optional boolean previousPressed, optional androidx.compose.ui.input.pointer.ConsumedData consumed, optional int type);
     method @Deprecated public androidx.compose.ui.input.pointer.PointerInputChange copy(optional long id, optional long currentTime, optional long currentPosition, optional boolean currentPressed, optional long previousTime, optional long previousPosition, optional boolean previousPressed, androidx.compose.ui.input.pointer.ConsumedData consumed, optional int type, optional long scrollDelta);
+    method @androidx.compose.ui.ExperimentalComposeUiApi public androidx.compose.ui.input.pointer.PointerInputChange copy(optional long id, optional long currentTime, optional long currentPosition, optional boolean currentPressed, optional long previousTime, optional long previousPosition, optional boolean previousPressed, optional int type, java.util.List<androidx.compose.ui.input.pointer.HistoricalChange> historical, optional long scrollDelta);
     method public androidx.compose.ui.input.pointer.PointerInputChange copy(optional long id, optional long currentTime, optional long currentPosition, optional boolean currentPressed, optional long previousTime, optional long previousPosition, optional boolean previousPressed, optional int type, optional long scrollDelta);
     method @Deprecated public androidx.compose.ui.input.pointer.ConsumedData getConsumed();
+    method @androidx.compose.ui.ExperimentalComposeUiApi public java.util.List<androidx.compose.ui.input.pointer.HistoricalChange> getHistorical();
     method public long getId();
     method public long getPosition();
     method public boolean getPressed();
@@ -1675,6 +1818,7 @@
     method public long getUptimeMillis();
     method public boolean isConsumed();
     property @Deprecated public final androidx.compose.ui.input.pointer.ConsumedData consumed;
+    property @androidx.compose.ui.ExperimentalComposeUiApi public final java.util.List<androidx.compose.ui.input.pointer.HistoricalChange> historical;
     property public final long id;
     property public final boolean isConsumed;
     property public final long position;
@@ -1718,6 +1862,11 @@
     property public abstract androidx.compose.ui.platform.ViewConfiguration viewConfiguration;
   }
 
+  public final class PointerInteropFilter_androidKt {
+    method @androidx.compose.ui.ExperimentalComposeUiApi public static androidx.compose.ui.Modifier motionEventSpy(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1<? super android.view.MotionEvent,kotlin.Unit> watcher);
+    method @androidx.compose.ui.ExperimentalComposeUiApi public static androidx.compose.ui.Modifier pointerInteropFilter(androidx.compose.ui.Modifier, optional androidx.compose.ui.input.pointer.RequestDisallowInterceptTouchEvent? requestDisallowInterceptTouchEvent, kotlin.jvm.functions.Function1<? super android.view.MotionEvent,java.lang.Boolean> onTouchEvent);
+  }
+
   @kotlin.jvm.JvmInline public final value class PointerKeyboardModifiers {
     ctor public PointerKeyboardModifiers(int packedValue);
   }
@@ -1739,6 +1888,11 @@
     property public final int Unknown;
   }
 
+  @androidx.compose.ui.ExperimentalComposeUiApi public final class RequestDisallowInterceptTouchEvent implements kotlin.jvm.functions.Function1<java.lang.Boolean,kotlin.Unit> {
+    ctor public RequestDisallowInterceptTouchEvent();
+    method public void invoke(boolean disallowIntercept);
+  }
+
   public final class SuspendingPointerInputFilterKt {
     method public static androidx.compose.ui.input.pointer.SuspendingPointerInputModifierNode SuspendingPointerInputModifierNode(kotlin.jvm.functions.Function2<? super androidx.compose.ui.input.pointer.PointerInputScope,? super kotlin.coroutines.Continuation<? super kotlin.Unit>,?> pointerInputHandler);
     method public static androidx.compose.ui.Modifier pointerInput(androidx.compose.ui.Modifier, Object? key1, Object? key2, kotlin.jvm.functions.Function2<? super androidx.compose.ui.input.pointer.PointerInputScope,? super kotlin.coroutines.Continuation<? super kotlin.Unit>,?> block);
@@ -1776,6 +1930,9 @@
 
   public final class VelocityTrackerKt {
     method public static void addPointerInputChange(androidx.compose.ui.input.pointer.util.VelocityTracker, androidx.compose.ui.input.pointer.PointerInputChange event);
+    method @androidx.compose.ui.ExperimentalComposeUiApi public static boolean getVelocityTrackerAddPointsFix();
+    method @androidx.compose.ui.ExperimentalComposeUiApi public static void setVelocityTrackerAddPointsFix(boolean);
+    property @androidx.compose.ui.ExperimentalComposeUiApi public static final boolean VelocityTrackerAddPointsFix;
   }
 
 }
@@ -1895,6 +2052,11 @@
     ctor public HorizontalAlignmentLine(kotlin.jvm.functions.Function2<? super java.lang.Integer,? super java.lang.Integer,java.lang.Integer> merger);
   }
 
+  @androidx.compose.ui.ExperimentalComposeUiApi public sealed interface IntermediateMeasureScope extends androidx.compose.ui.layout.LookaheadScope kotlinx.coroutines.CoroutineScope androidx.compose.ui.layout.MeasureScope {
+    method public long getLookaheadSize();
+    property public abstract long lookaheadSize;
+  }
+
   public interface IntrinsicMeasurable {
     method public Object? getParentData();
     method public int maxIntrinsicHeight(int width);
@@ -1906,6 +2068,8 @@
 
   public interface IntrinsicMeasureScope extends androidx.compose.ui.unit.Density {
     method public androidx.compose.ui.unit.LayoutDirection getLayoutDirection();
+    method @androidx.compose.ui.ExperimentalComposeUiApi public default boolean isLookingAhead();
+    property @androidx.compose.ui.ExperimentalComposeUiApi public default boolean isLookingAhead;
     property public abstract androidx.compose.ui.unit.LayoutDirection layoutDirection;
   }
 
@@ -1995,6 +2159,27 @@
     method public static androidx.compose.ui.Modifier layout(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function3<? super androidx.compose.ui.layout.MeasureScope,? super androidx.compose.ui.layout.Measurable,? super androidx.compose.ui.unit.Constraints,? extends androidx.compose.ui.layout.MeasureResult> measure);
   }
 
+  @Deprecated @androidx.compose.ui.ExperimentalComposeUiApi public sealed interface LookaheadLayoutCoordinates extends androidx.compose.ui.layout.LayoutCoordinates {
+  }
+
+  @Deprecated @androidx.compose.ui.ExperimentalComposeUiApi public interface LookaheadLayoutScope {
+    method @Deprecated public androidx.compose.ui.Modifier onPlaced(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function2<? super androidx.compose.ui.layout.LookaheadLayoutCoordinates,? super androidx.compose.ui.layout.LookaheadLayoutCoordinates,kotlin.Unit> onPlaced);
+  }
+
+  @androidx.compose.ui.ExperimentalComposeUiApi public interface LookaheadScope {
+    method public androidx.compose.ui.layout.LayoutCoordinates getLookaheadScopeCoordinates(androidx.compose.ui.layout.Placeable.PlacementScope);
+    method @Deprecated public default androidx.compose.ui.Modifier intermediateLayout(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function4<? super androidx.compose.ui.layout.MeasureScope,? super androidx.compose.ui.layout.Measurable,? super androidx.compose.ui.unit.Constraints,? super androidx.compose.ui.unit.IntSize,? extends androidx.compose.ui.layout.MeasureResult> measure);
+    method public default long localLookaheadPositionOf(androidx.compose.ui.layout.LayoutCoordinates, androidx.compose.ui.layout.LayoutCoordinates coordinates);
+    method @Deprecated public androidx.compose.ui.Modifier onPlaced(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function2<? super androidx.compose.ui.layout.LookaheadLayoutCoordinates,? super androidx.compose.ui.layout.LookaheadLayoutCoordinates,kotlin.Unit> onPlaced);
+    method public androidx.compose.ui.layout.LayoutCoordinates toLookaheadCoordinates(androidx.compose.ui.layout.LayoutCoordinates);
+  }
+
+  public final class LookaheadScopeKt {
+    method @Deprecated @androidx.compose.runtime.Composable @androidx.compose.ui.ExperimentalComposeUiApi @androidx.compose.ui.UiComposable public static void LookaheadLayout(kotlin.jvm.functions.Function1<? super androidx.compose.ui.layout.LookaheadScope,kotlin.Unit> content, optional androidx.compose.ui.Modifier modifier, androidx.compose.ui.layout.MeasurePolicy measurePolicy);
+    method @androidx.compose.runtime.Composable @androidx.compose.ui.ExperimentalComposeUiApi @androidx.compose.ui.UiComposable public static void LookaheadScope(kotlin.jvm.functions.Function1<? super androidx.compose.ui.layout.LookaheadScope,kotlin.Unit> content);
+    method @androidx.compose.ui.ExperimentalComposeUiApi public static androidx.compose.ui.Modifier intermediateLayout(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function3<? super androidx.compose.ui.layout.IntermediateMeasureScope,? super androidx.compose.ui.layout.Measurable,? super androidx.compose.ui.unit.Constraints,? extends androidx.compose.ui.layout.MeasureResult> measure);
+  }
+
   public interface Measurable extends androidx.compose.ui.layout.IntrinsicMeasurable {
     method public androidx.compose.ui.layout.Placeable measure(long constraints);
   }
@@ -2133,6 +2318,24 @@
     property protected abstract int parentWidth;
   }
 
+  @Deprecated @androidx.compose.ui.ExperimentalComposeUiApi @kotlin.jvm.JvmDefaultWithCompatibility public interface RelocationModifier extends androidx.compose.ui.Modifier.Element {
+    method @Deprecated public androidx.compose.ui.geometry.Rect computeDestination(androidx.compose.ui.geometry.Rect source, androidx.compose.ui.layout.LayoutCoordinates layoutCoordinates);
+    method @Deprecated public suspend Object? performRelocation(androidx.compose.ui.geometry.Rect source, androidx.compose.ui.geometry.Rect destination, kotlin.coroutines.Continuation<? super kotlin.Unit>);
+  }
+
+  public final class RelocationModifierKt {
+    method @Deprecated @androidx.compose.ui.ExperimentalComposeUiApi public static androidx.compose.ui.Modifier onRelocationRequest(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function2<? super androidx.compose.ui.geometry.Rect,? super androidx.compose.ui.layout.LayoutCoordinates,androidx.compose.ui.geometry.Rect> onProvideDestination, kotlin.jvm.functions.Function3<? super androidx.compose.ui.geometry.Rect,? super androidx.compose.ui.geometry.Rect,? super kotlin.coroutines.Continuation<? super kotlin.Unit>,?> onPerformRelocation);
+  }
+
+  @Deprecated @androidx.compose.ui.ExperimentalComposeUiApi public final class RelocationRequester {
+    ctor @Deprecated public RelocationRequester();
+    method @Deprecated public suspend Object? bringIntoView(optional androidx.compose.ui.geometry.Rect? rect, optional kotlin.coroutines.Continuation<? super kotlin.Unit>);
+  }
+
+  public final class RelocationRequesterModifierKt {
+    method @Deprecated @androidx.compose.ui.ExperimentalComposeUiApi public static androidx.compose.ui.Modifier relocationRequester(androidx.compose.ui.Modifier, Object relocationRequester);
+  }
+
   public interface Remeasurement {
     method public void forceRemeasure();
   }
@@ -2209,9 +2412,6 @@
     method public boolean retainAll(kotlin.jvm.functions.Function1<java.lang.Object,java.lang.Boolean> predicate);
   }
 
-  public final class TestModifierUpdaterKt {
-  }
-
   public final class VerticalAlignmentLine extends androidx.compose.ui.layout.AlignmentLine {
     ctor public VerticalAlignmentLine(kotlin.jvm.functions.Function2<? super java.lang.Integer,? super java.lang.Integer,java.lang.Integer> merger);
   }
@@ -2227,6 +2427,10 @@
     method public void onModifierLocalsUpdated(androidx.compose.ui.modifier.ModifierLocalReadScope scope);
   }
 
+  public final class ModifierLocalConsumerKt {
+    method @androidx.compose.runtime.Stable @androidx.compose.ui.ExperimentalComposeUiApi public static androidx.compose.ui.Modifier modifierLocalConsumer(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1<? super androidx.compose.ui.modifier.ModifierLocalReadScope,kotlin.Unit> consumer);
+  }
+
   public final class ModifierLocalKt {
     method public static <T> androidx.compose.ui.modifier.ProvidableModifierLocal<T> modifierLocalOf(kotlin.jvm.functions.Function0<? extends T> defaultFactory);
   }
@@ -2256,6 +2460,10 @@
     property public abstract T value;
   }
 
+  public final class ModifierLocalProviderKt {
+    method @androidx.compose.ui.ExperimentalComposeUiApi public static <T> androidx.compose.ui.Modifier modifierLocalProvider(androidx.compose.ui.Modifier, androidx.compose.ui.modifier.ProvidableModifierLocal<T> key, kotlin.jvm.functions.Function0<? extends T> value);
+  }
+
   public interface ModifierLocalReadScope {
     method public <T> T getCurrent(androidx.compose.ui.modifier.ModifierLocal<T>);
   }
@@ -2350,6 +2558,13 @@
     method public void onGloballyPositioned(androidx.compose.ui.layout.LayoutCoordinates coordinates);
   }
 
+  @kotlin.RequiresOptIn(message="This API is internal to library.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.CLASS, kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.PROPERTY, kotlin.annotation.AnnotationTarget.PROPERTY_GETTER, kotlin.annotation.AnnotationTarget.PROPERTY_SETTER}) public @interface InternalCoreApi {
+  }
+
+  @androidx.compose.ui.InternalComposeUiApi public sealed interface InteroperableComposeUiNode {
+    method public android.view.View? getInteropView();
+  }
+
   public interface LayoutAwareModifierNode extends androidx.compose.ui.node.DelegatableNode {
     method public default void onPlaced(androidx.compose.ui.layout.LayoutCoordinates coordinates);
     method public default void onRemeasured(long size);
@@ -2421,6 +2636,7 @@
     method public androidx.compose.ui.unit.Density getDensity();
     method public androidx.compose.ui.semantics.SemanticsOwner getSemanticsOwner();
     method public androidx.compose.ui.text.input.TextInputService getTextInputService();
+    method @androidx.compose.ui.ExperimentalComposeUiApi public default void measureAndLayoutForTest();
     method public boolean sendKeyEvent(android.view.KeyEvent keyEvent);
     property public abstract androidx.compose.ui.unit.Density density;
     property public abstract androidx.compose.ui.semantics.SemanticsOwner semanticsOwner;
@@ -2537,6 +2753,8 @@
 
   public final class CompositionLocalsKt {
     method public static androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.ui.platform.AccessibilityManager> getLocalAccessibilityManager();
+    method @androidx.compose.ui.ExperimentalComposeUiApi public static androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.ui.autofill.Autofill> getLocalAutofill();
+    method @androidx.compose.ui.ExperimentalComposeUiApi public static androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.ui.autofill.AutofillTree> getLocalAutofillTree();
     method public static androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.ui.platform.ClipboardManager> getLocalClipboardManager();
     method public static androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.ui.unit.Density> getLocalDensity();
     method public static androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.ui.focus.FocusManager> getLocalFocusManager();
@@ -2544,12 +2762,15 @@
     method public static androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.ui.hapticfeedback.HapticFeedback> getLocalHapticFeedback();
     method public static androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.ui.input.InputModeManager> getLocalInputModeManager();
     method public static androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.ui.unit.LayoutDirection> getLocalLayoutDirection();
+    method @androidx.compose.ui.text.ExperimentalTextApi public static androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.ui.text.input.PlatformTextInputPluginRegistry> getLocalPlatformTextInputPluginRegistry();
     method public static androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.ui.text.input.TextInputService> getLocalTextInputService();
     method public static androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.ui.platform.TextToolbar> getLocalTextToolbar();
     method public static androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.ui.platform.UriHandler> getLocalUriHandler();
     method public static androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.ui.platform.ViewConfiguration> getLocalViewConfiguration();
     method public static androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.ui.platform.WindowInfo> getLocalWindowInfo();
     property public static final androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.ui.platform.AccessibilityManager> LocalAccessibilityManager;
+    property @androidx.compose.ui.ExperimentalComposeUiApi public static final androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.ui.autofill.Autofill> LocalAutofill;
+    property @androidx.compose.ui.ExperimentalComposeUiApi public static final androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.ui.autofill.AutofillTree> LocalAutofillTree;
     property public static final androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.ui.platform.ClipboardManager> LocalClipboardManager;
     property public static final androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.ui.unit.Density> LocalDensity;
     property public static final androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.ui.focus.FocusManager> LocalFocusManager;
@@ -2557,6 +2778,7 @@
     property public static final androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.ui.hapticfeedback.HapticFeedback> LocalHapticFeedback;
     property public static final androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.ui.input.InputModeManager> LocalInputModeManager;
     property public static final androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.ui.unit.LayoutDirection> LocalLayoutDirection;
+    property @androidx.compose.ui.text.ExperimentalTextApi public static final androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.ui.text.input.PlatformTextInputPluginRegistry> LocalPlatformTextInputPluginRegistry;
     property public static final androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.ui.text.input.TextInputService> LocalTextInputService;
     property public static final androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.ui.platform.TextToolbar> LocalTextToolbar;
     property public static final androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.ui.platform.UriHandler> LocalUriHandler;
@@ -2628,10 +2850,24 @@
     property public Object? valueOverride;
   }
 
+  @androidx.compose.ui.ExperimentalComposeUiApi public final class LocalSoftwareKeyboardController {
+    method @androidx.compose.runtime.Composable public androidx.compose.ui.platform.SoftwareKeyboardController? getCurrent();
+    method public infix androidx.compose.runtime.ProvidedValue<androidx.compose.ui.platform.SoftwareKeyboardController> provides(androidx.compose.ui.platform.SoftwareKeyboardController softwareKeyboardController);
+    property @androidx.compose.runtime.Composable @androidx.compose.ui.ExperimentalComposeUiApi public final androidx.compose.ui.platform.SoftwareKeyboardController? current;
+    field public static final androidx.compose.ui.platform.LocalSoftwareKeyboardController INSTANCE;
+  }
+
   public final class NestedScrollInteropConnectionKt {
     method @androidx.compose.runtime.Composable public static androidx.compose.ui.input.nestedscroll.NestedScrollConnection rememberNestedScrollInteropConnection(optional android.view.View hostView);
   }
 
+  @androidx.compose.runtime.Stable @androidx.compose.ui.ExperimentalComposeUiApi public interface SoftwareKeyboardController {
+    method public void hide();
+    method @Deprecated public default void hideSoftwareKeyboard();
+    method public void show();
+    method @Deprecated public default void showSoftwareKeyboard();
+  }
+
   public final class TestTagKt {
     method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier testTag(androidx.compose.ui.Modifier, String tag);
   }
@@ -2740,11 +2976,32 @@
   }
 
   @androidx.compose.runtime.Stable public interface WindowInfo {
+    method @androidx.compose.ui.ExperimentalComposeUiApi public default int getKeyboardModifiers();
     method public boolean isWindowFocused();
     property public abstract boolean isWindowFocused;
+    property @androidx.compose.ui.ExperimentalComposeUiApi public default int keyboardModifiers;
+  }
+
+  @androidx.compose.ui.InternalComposeUiApi public fun interface WindowRecomposerFactory {
+    method public androidx.compose.runtime.Recomposer createRecomposer(android.view.View windowRootView);
+    field public static final androidx.compose.ui.platform.WindowRecomposerFactory.Companion Companion;
+  }
+
+  public static final class WindowRecomposerFactory.Companion {
+    method public androidx.compose.ui.platform.WindowRecomposerFactory getLifecycleAware();
+    property public final androidx.compose.ui.platform.WindowRecomposerFactory LifecycleAware;
+  }
+
+  @androidx.compose.ui.InternalComposeUiApi public final class WindowRecomposerPolicy {
+    method @kotlin.PublishedApi internal boolean compareAndSetFactory(androidx.compose.ui.platform.WindowRecomposerFactory expected, androidx.compose.ui.platform.WindowRecomposerFactory factory);
+    method @kotlin.PublishedApi internal androidx.compose.ui.platform.WindowRecomposerFactory getAndSetFactory(androidx.compose.ui.platform.WindowRecomposerFactory factory);
+    method public void setFactory(androidx.compose.ui.platform.WindowRecomposerFactory factory);
+    method public inline <R> R withFactory(androidx.compose.ui.platform.WindowRecomposerFactory factory, kotlin.jvm.functions.Function0<? extends R> block);
+    field public static final androidx.compose.ui.platform.WindowRecomposerPolicy INSTANCE;
   }
 
   public final class WindowRecomposer_androidKt {
+    method @androidx.compose.ui.ExperimentalComposeUiApi public static androidx.compose.runtime.Recomposer createLifecycleAwareWindowRecomposer(android.view.View, optional kotlin.coroutines.CoroutineContext coroutineContext, optional androidx.lifecycle.Lifecycle? lifecycle);
     method public static androidx.compose.runtime.CompositionContext? findViewTreeCompositionContext(android.view.View);
     method public static androidx.compose.runtime.CompositionContext? getCompositionContext(android.view.View);
     method public static void setCompositionContext(android.view.View, androidx.compose.runtime.CompositionContext?);
@@ -3077,6 +3334,12 @@
     field public static final androidx.compose.ui.semantics.SemanticsProperties INSTANCE;
   }
 
+  @androidx.compose.ui.ExperimentalComposeUiApi public final class SemanticsPropertiesAndroid {
+    method @androidx.compose.ui.ExperimentalComposeUiApi public androidx.compose.ui.semantics.SemanticsPropertyKey<java.lang.Boolean> getTestTagsAsResourceId();
+    property @androidx.compose.ui.ExperimentalComposeUiApi public final androidx.compose.ui.semantics.SemanticsPropertyKey<java.lang.Boolean> TestTagsAsResourceId;
+    field public static final androidx.compose.ui.semantics.SemanticsPropertiesAndroid INSTANCE;
+  }
+
   public final class SemanticsPropertiesKt {
     method public static void collapse(androidx.compose.ui.semantics.SemanticsPropertyReceiver, optional String? label, kotlin.jvm.functions.Function0<java.lang.Boolean>? action);
     method public static void copyText(androidx.compose.ui.semantics.SemanticsPropertyReceiver, optional String? label, kotlin.jvm.functions.Function0<java.lang.Boolean>? action);
@@ -3110,6 +3373,7 @@
     method public static void heading(androidx.compose.ui.semantics.SemanticsPropertyReceiver);
     method public static void indexForKey(androidx.compose.ui.semantics.SemanticsPropertyReceiver, kotlin.jvm.functions.Function1<java.lang.Object,java.lang.Integer> mapping);
     method public static void insertTextAtCursor(androidx.compose.ui.semantics.SemanticsPropertyReceiver, optional String? label, kotlin.jvm.functions.Function1<? super androidx.compose.ui.text.AnnotatedString,java.lang.Boolean>? action);
+    method @androidx.compose.ui.ExperimentalComposeUiApi public static void invisibleToUser(androidx.compose.ui.semantics.SemanticsPropertyReceiver);
     method @Deprecated public static boolean isContainer(androidx.compose.ui.semantics.SemanticsPropertyReceiver);
     method public static boolean isTraversalGroup(androidx.compose.ui.semantics.SemanticsPropertyReceiver);
     method public static void onClick(androidx.compose.ui.semantics.SemanticsPropertyReceiver, optional String? label, kotlin.jvm.functions.Function0<java.lang.Boolean>? action);
@@ -3153,6 +3417,11 @@
     method public static void setVerticalScrollAxisRange(androidx.compose.ui.semantics.SemanticsPropertyReceiver, androidx.compose.ui.semantics.ScrollAxisRange);
   }
 
+  public final class SemanticsProperties_androidKt {
+    method @androidx.compose.ui.ExperimentalComposeUiApi public static boolean getTestTagsAsResourceId(androidx.compose.ui.semantics.SemanticsPropertyReceiver);
+    method @androidx.compose.ui.ExperimentalComposeUiApi public static void setTestTagsAsResourceId(androidx.compose.ui.semantics.SemanticsPropertyReceiver, boolean);
+  }
+
   public final class SemanticsPropertyKey<T> {
     ctor public SemanticsPropertyKey(String name, optional kotlin.jvm.functions.Function2<? super T,? super T,? extends T> mergePolicy);
     method public String getName();
@@ -3241,6 +3510,7 @@
 
   @androidx.compose.runtime.Immutable public final class PopupProperties {
     ctor public PopupProperties(optional boolean focusable, optional boolean dismissOnBackPress, optional boolean dismissOnClickOutside, optional androidx.compose.ui.window.SecureFlagPolicy securePolicy, optional boolean excludeFromSystemGesture, optional boolean clippingEnabled);
+    ctor @androidx.compose.ui.ExperimentalComposeUiApi public PopupProperties(optional boolean focusable, optional boolean dismissOnBackPress, optional boolean dismissOnClickOutside, optional androidx.compose.ui.window.SecureFlagPolicy securePolicy, optional boolean excludeFromSystemGesture, optional boolean clippingEnabled, optional boolean usePlatformDefaultWidth);
     method public boolean getClippingEnabled();
     method public boolean getDismissOnBackPress();
     method public boolean getDismissOnClickOutside();
diff --git a/compose/ui/ui/build.gradle b/compose/ui/ui/build.gradle
index caff544..501305c 100644
--- a/compose/ui/ui/build.gradle
+++ b/compose/ui/ui/build.gradle
@@ -37,7 +37,7 @@
             dependencies {
                 implementation(libs.kotlinStdlibCommon)
                 implementation(libs.kotlinCoroutinesCore)
-
+                api("androidx.annotation:annotation:1.6.0")
                 // when updating the runtime version please also update the runtime-saveable version
                 implementation(project(":compose:runtime:runtime"))
                 api(project(":compose:runtime:runtime-saveable"))
@@ -79,7 +79,6 @@
                 // This has stub APIs for access to legacy Android APIs, so we don't want
                 // any dependency on this module.
                 compileOnly(project(":compose:ui:ui-android-stubs"))
-                api("androidx.annotation:annotation:1.5.0")
                 implementation("androidx.autofill:autofill:1.0.0")
                 implementation(libs.kotlinCoroutinesAndroid)
 
diff --git a/compose/ui/ui/lint-baseline.xml b/compose/ui/ui/lint-baseline.xml
index 8aebb3a..4d3c0de 100644
--- a/compose/ui/ui/lint-baseline.xml
+++ b/compose/ui/ui/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 8.1.0-alpha07" type="baseline" client="gradle" dependencies="false" name="AGP (8.0.0-beta03)" variant="all" version="8.1.0-alpha07">
+<issues format="6" by="lint 8.1.0-beta02" type="baseline" client="gradle" dependencies="false" name="AGP (8.1.0-beta02)" variant="all" version="8.1.0-beta02">
 
     <issue
         id="BanHideAnnotation"
@@ -11,42 +11,6 @@
     </issue>
 
     <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="class TestModifierUpdater internal constructor(private val node: LayoutNode) {"
-        errorLine2="      ~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/ui/layout/TestModifierUpdater.kt"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="fun TestModifierUpdaterLayout(onAttached: (TestModifierUpdater) -> Unit) {"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/ui/layout/TestModifierUpdater.kt"/>
-    </issue>
-
-    <issue
-        id="BanInlineOptIn"
-        message="Inline functions cannot opt into experimental APIs."
-        errorLine1="    internal inline fun fetchCustomEnter("
-        errorLine2="                        ~~~~~~~~~~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/ui/focus/FocusTargetModifierNode.kt"/>
-    </issue>
-
-    <issue
-        id="BanInlineOptIn"
-        message="Inline functions cannot opt into experimental APIs."
-        errorLine1="    internal inline fun fetchCustomExit("
-        errorLine2="                        ~~~~~~~~~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/ui/focus/FocusTargetModifierNode.kt"/>
-    </issue>
-
-    <issue
         id="BanThreadSleep"
         message="Uses Thread.sleep()"
         errorLine1="                Thread.sleep(sleepTime)"
@@ -67,2598 +31,6 @@
     <issue
         id="ExperimentalPropertyAnnotation"
         message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.android.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
-        errorLine1="        @ExperimentalComposeUiApi"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/ui/input/nestedscroll/NestedScrollModifier.kt"/>
-    </issue>
-
-    <issue
-        id="ExperimentalPropertyAnnotation"
-        message="This property does not have all required annotations to correctly mark it as experimental."
         errorLine1="    @ExperimentalComposeUiApi"
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
diff --git a/compose/ui/ui/src/androidAndroidTest/kotlin/androidx/compose/ui/layout/OnGloballyPositionedTest.kt b/compose/ui/ui/src/androidAndroidTest/kotlin/androidx/compose/ui/layout/OnGloballyPositionedTest.kt
index d0c65cd..e49bbc4a 100644
--- a/compose/ui/ui/src/androidAndroidTest/kotlin/androidx/compose/ui/layout/OnGloballyPositionedTest.kt
+++ b/compose/ui/ui/src/androidAndroidTest/kotlin/androidx/compose/ui/layout/OnGloballyPositionedTest.kt
@@ -16,12 +16,15 @@
 
 package androidx.compose.ui.layout
 
+import android.os.SystemClock
+import android.view.MotionEvent
 import android.view.View
 import android.view.ViewGroup
 import android.widget.LinearLayout
 import android.widget.ScrollView
 import androidx.compose.foundation.layout.Box
 import androidx.compose.foundation.layout.fillMaxSize
+import androidx.compose.foundation.layout.offset
 import androidx.compose.foundation.layout.padding
 import androidx.compose.foundation.layout.requiredSize
 import androidx.compose.foundation.layout.size
@@ -53,6 +56,7 @@
 import androidx.compose.ui.test.junit4.createAndroidComposeRule
 import androidx.compose.ui.test.onRoot
 import androidx.compose.ui.unit.Constraints
+import androidx.compose.ui.unit.IntOffset
 import androidx.compose.ui.unit.dp
 import androidx.compose.ui.window.Popup
 import androidx.test.ext.junit.runners.AndroidJUnit4
@@ -1051,6 +1055,62 @@
             assertFalse(coordindates.isAttached)
         }
     }
+
+    // In some special circumstances, the onGloballyPositioned callbacks can be called recursively
+    // and they shouldn't crash when that happens. This tests a pointer event causing an
+    // onGloballyPositioned callback while processing the onGloballyPositioned.
+    @Test
+    fun recurseGloballyPositionedCallback() {
+        val view = rule.activity.findViewById<View>(android.R.id.content)
+        var offset by mutableStateOf(IntOffset.Zero)
+        var position = Offset.Unspecified
+        var hasSent = false
+        rule.setContent {
+            Box(Modifier.fillMaxSize()) {
+                Box(Modifier.fillMaxSize().offset { offset }.onGloballyPositioned {
+                    if (offset != IntOffset.Zero) {
+                        position = it.positionInRoot()
+                    }
+                })
+                Box(Modifier.fillMaxSize().offset { offset }.onGloballyPositioned {
+                    if (offset != IntOffset.Zero && !hasSent) {
+                        hasSent = true
+                        val now = SystemClock.uptimeMillis()
+                        val event = MotionEvent.obtain(now, now, MotionEvent.ACTION_DOWN, 0f, 0f, 0)
+                        view.dispatchTouchEvent(event)
+                    }
+                })
+            }
+        }
+        rule.runOnIdle {
+            offset = IntOffset(1, 1)
+        }
+        rule.runOnIdle {
+            assertThat(position).isEqualTo(Offset(1f, 1f))
+        }
+    }
+
+    @Test
+    fun lotsOfNotifications() {
+        // have more than 16 OnGloballyPositioned liseteners to test listener cache
+        var offset by mutableStateOf(IntOffset.Zero)
+        var position = Offset.Unspecified
+        rule.setContent {
+            Box(Modifier.fillMaxSize()) {
+                repeat(30) {
+                    Box(Modifier.fillMaxSize().offset { offset }.onGloballyPositioned {
+                        position = it.positionInRoot()
+                    })
+                }
+            }
+        }
+        rule.runOnIdle {
+            offset = IntOffset(1, 1)
+        }
+        rule.runOnIdle {
+            assertThat(position).isEqualTo(Offset(1f, 1f))
+        }
+    }
 }
 
 @Composable
diff --git a/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/layout/TestModifierUpdater.kt b/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/layout/TestModifierUpdater.kt
index d065d02..5bda8ad 100644
--- a/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/layout/TestModifierUpdater.kt
+++ b/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/layout/TestModifierUpdater.kt
@@ -16,6 +16,7 @@
 
 package androidx.compose.ui.layout
 
+import androidx.annotation.RestrictTo
 import androidx.compose.runtime.Applier
 import androidx.compose.runtime.Composable
 import androidx.compose.runtime.ComposeNode
@@ -23,7 +24,7 @@
 import androidx.compose.ui.node.ComposeUiNode
 import androidx.compose.ui.node.LayoutNode
 
-/** @hide */
+@RestrictTo(RestrictTo.Scope.LIBRARY)
 @Deprecated(
     "It is a test API, do not use it in the real applications",
     level = DeprecationLevel.ERROR
@@ -35,7 +36,7 @@
     }
 }
 
-/** @hide */
+@RestrictTo(RestrictTo.Scope.LIBRARY)
 @Deprecated(
     "It is a test API, do not use it in the real applications",
     level = DeprecationLevel.ERROR
diff --git a/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/node/OnPositionedDispatcher.kt b/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/node/OnPositionedDispatcher.kt
index 07b7f50..9642118 100644
--- a/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/node/OnPositionedDispatcher.kt
+++ b/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/node/OnPositionedDispatcher.kt
@@ -24,6 +24,7 @@
  */
 internal class OnPositionedDispatcher {
     private val layoutNodes = mutableVectorOf<LayoutNode>()
+    private var cachedNodes: Array<LayoutNode?>? = null
 
     fun onNodePositioned(node: LayoutNode) {
         layoutNodes += node
@@ -39,12 +40,28 @@
     fun dispatch() {
         // sort layoutNodes so that the root is at the end and leaves are at the front
         layoutNodes.sortWith(DepthComparator)
-        layoutNodes.forEachReversed { layoutNode ->
+        val cache: Array<LayoutNode?>
+        val size = layoutNodes.size
+        val cachedNodes = this.cachedNodes
+        if (cachedNodes == null || cachedNodes.size < size) {
+            cache = arrayOfNulls(maxOf(MinArraySize, layoutNodes.size))
+        } else {
+            cache = cachedNodes
+        }
+        this.cachedNodes = null
+
+        // copy to cache to prevent reentrancy being a problem
+        for (i in 0 until size) {
+            cache[i] = layoutNodes[i]
+        }
+        layoutNodes.clear()
+        for (i in size - 1 downTo 0) {
+            val layoutNode = cache[i]!!
             if (layoutNode.needsOnPositionedDispatch) {
                 dispatchHierarchy(layoutNode)
             }
         }
-        layoutNodes.clear()
+        this.cachedNodes = cache
     }
 
     private fun dispatchHierarchy(layoutNode: LayoutNode) {
@@ -59,6 +76,8 @@
     }
 
     internal companion object {
+        private const val MinArraySize = 16
+
         private object DepthComparator : Comparator<LayoutNode> {
             override fun compare(a: LayoutNode, b: LayoutNode): Int {
                 val depthDiff = b.depth.compareTo(a.depth)
diff --git a/core/core-ktx/api/1.11.0-beta01.txt b/core/core-ktx/api/1.11.0-beta01.txt
new file mode 100644
index 0000000..7a12effb
--- /dev/null
+++ b/core/core-ktx/api/1.11.0-beta01.txt
@@ -0,0 +1,634 @@
+// Signature format: 4.0
+package androidx.core.animation {
+
+  public final class AnimatorKt {
+    method public static inline android.animation.Animator.AnimatorListener addListener(android.animation.Animator, optional kotlin.jvm.functions.Function1<? super android.animation.Animator,kotlin.Unit> onEnd, optional kotlin.jvm.functions.Function1<? super android.animation.Animator,kotlin.Unit> onStart, optional kotlin.jvm.functions.Function1<? super android.animation.Animator,kotlin.Unit> onCancel, optional kotlin.jvm.functions.Function1<? super android.animation.Animator,kotlin.Unit> onRepeat);
+    method @RequiresApi(19) public static android.animation.Animator.AnimatorPauseListener addPauseListener(android.animation.Animator, optional kotlin.jvm.functions.Function1<? super android.animation.Animator,kotlin.Unit> onResume, optional kotlin.jvm.functions.Function1<? super android.animation.Animator,kotlin.Unit> onPause);
+    method public static inline android.animation.Animator.AnimatorListener doOnCancel(android.animation.Animator, kotlin.jvm.functions.Function1<? super android.animation.Animator,kotlin.Unit> action);
+    method public static inline android.animation.Animator.AnimatorListener doOnEnd(android.animation.Animator, kotlin.jvm.functions.Function1<? super android.animation.Animator,kotlin.Unit> action);
+    method @RequiresApi(19) public static android.animation.Animator.AnimatorPauseListener doOnPause(android.animation.Animator, kotlin.jvm.functions.Function1<? super android.animation.Animator,kotlin.Unit> action);
+    method public static inline android.animation.Animator.AnimatorListener doOnRepeat(android.animation.Animator, kotlin.jvm.functions.Function1<? super android.animation.Animator,kotlin.Unit> action);
+    method @RequiresApi(19) public static android.animation.Animator.AnimatorPauseListener doOnResume(android.animation.Animator, kotlin.jvm.functions.Function1<? super android.animation.Animator,kotlin.Unit> action);
+    method public static inline android.animation.Animator.AnimatorListener doOnStart(android.animation.Animator, kotlin.jvm.functions.Function1<? super android.animation.Animator,kotlin.Unit> action);
+  }
+
+}
+
+package androidx.core.content {
+
+  public final class ContentValuesKt {
+    method public static android.content.ContentValues contentValuesOf(kotlin.Pair<java.lang.String,?>... pairs);
+  }
+
+  public final class ContextKt {
+    method public static inline <reified T> T! getSystemService(android.content.Context);
+    method public static inline void withStyledAttributes(android.content.Context, optional android.util.AttributeSet? set, int[] attrs, optional @AttrRes int defStyleAttr, optional @StyleRes int defStyleRes, kotlin.jvm.functions.Function1<? super android.content.res.TypedArray,kotlin.Unit> block);
+    method public static inline void withStyledAttributes(android.content.Context, @StyleRes int resourceId, int[] attrs, kotlin.jvm.functions.Function1<? super android.content.res.TypedArray,kotlin.Unit> block);
+  }
+
+  public final class SharedPreferencesKt {
+    method public static inline void edit(android.content.SharedPreferences, optional boolean commit, kotlin.jvm.functions.Function1<? super android.content.SharedPreferences.Editor,kotlin.Unit> action);
+  }
+
+}
+
+package androidx.core.content.res {
+
+  public final class TypedArrayKt {
+    method public static boolean getBooleanOrThrow(android.content.res.TypedArray, @StyleableRes int index);
+    method @ColorInt public static int getColorOrThrow(android.content.res.TypedArray, @StyleableRes int index);
+    method public static android.content.res.ColorStateList getColorStateListOrThrow(android.content.res.TypedArray, @StyleableRes int index);
+    method public static float getDimensionOrThrow(android.content.res.TypedArray, @StyleableRes int index);
+    method @Dimension public static int getDimensionPixelOffsetOrThrow(android.content.res.TypedArray, @StyleableRes int index);
+    method @Dimension public static int getDimensionPixelSizeOrThrow(android.content.res.TypedArray, @StyleableRes int index);
+    method public static android.graphics.drawable.Drawable getDrawableOrThrow(android.content.res.TypedArray, @StyleableRes int index);
+    method public static float getFloatOrThrow(android.content.res.TypedArray, @StyleableRes int index);
+    method @RequiresApi(26) public static android.graphics.Typeface getFontOrThrow(android.content.res.TypedArray, @StyleableRes int index);
+    method public static int getIntOrThrow(android.content.res.TypedArray, @StyleableRes int index);
+    method public static int getIntegerOrThrow(android.content.res.TypedArray, @StyleableRes int index);
+    method @AnyRes public static int getResourceIdOrThrow(android.content.res.TypedArray, @StyleableRes int index);
+    method public static String getStringOrThrow(android.content.res.TypedArray, @StyleableRes int index);
+    method public static CharSequence![] getTextArrayOrThrow(android.content.res.TypedArray, @StyleableRes int index);
+    method public static CharSequence getTextOrThrow(android.content.res.TypedArray, @StyleableRes int index);
+    method public static inline <R> R use(android.content.res.TypedArray, kotlin.jvm.functions.Function1<? super android.content.res.TypedArray,? extends R> block);
+  }
+
+}
+
+package androidx.core.database {
+
+  public final class CursorKt {
+    method public static inline byte[]? getBlobOrNull(android.database.Cursor, int index);
+    method public static inline Double? getDoubleOrNull(android.database.Cursor, int index);
+    method public static inline Float? getFloatOrNull(android.database.Cursor, int index);
+    method public static inline Integer? getIntOrNull(android.database.Cursor, int index);
+    method public static inline Long? getLongOrNull(android.database.Cursor, int index);
+    method public static inline Short? getShortOrNull(android.database.Cursor, int index);
+    method public static inline String? getStringOrNull(android.database.Cursor, int index);
+  }
+
+}
+
+package androidx.core.database.sqlite {
+
+  public final class SQLiteDatabaseKt {
+    method public static inline <T> T transaction(android.database.sqlite.SQLiteDatabase, optional boolean exclusive, kotlin.jvm.functions.Function1<? super android.database.sqlite.SQLiteDatabase,? extends T> body);
+  }
+
+}
+
+package androidx.core.graphics {
+
+  public final class BitmapKt {
+    method public static inline android.graphics.Bitmap applyCanvas(android.graphics.Bitmap, kotlin.jvm.functions.Function1<? super android.graphics.Canvas,kotlin.Unit> block);
+    method public static inline operator boolean contains(android.graphics.Bitmap, android.graphics.Point p);
+    method public static inline operator boolean contains(android.graphics.Bitmap, android.graphics.PointF p);
+    method public static inline android.graphics.Bitmap createBitmap(int width, int height, optional android.graphics.Bitmap.Config config);
+    method @RequiresApi(26) public static inline android.graphics.Bitmap createBitmap(int width, int height, optional android.graphics.Bitmap.Config config, optional boolean hasAlpha, optional android.graphics.ColorSpace colorSpace);
+    method public static inline operator int get(android.graphics.Bitmap, int x, int y);
+    method public static inline android.graphics.Bitmap scale(android.graphics.Bitmap, int width, int height, optional boolean filter);
+    method public static inline operator void set(android.graphics.Bitmap, int x, int y, @ColorInt int color);
+  }
+
+  public final class CanvasKt {
+    method public static inline void withClip(android.graphics.Canvas, android.graphics.Path clipPath, kotlin.jvm.functions.Function1<? super android.graphics.Canvas,kotlin.Unit> block);
+    method public static inline void withClip(android.graphics.Canvas, android.graphics.Rect clipRect, kotlin.jvm.functions.Function1<? super android.graphics.Canvas,kotlin.Unit> block);
+    method public static inline void withClip(android.graphics.Canvas, android.graphics.RectF clipRect, kotlin.jvm.functions.Function1<? super android.graphics.Canvas,kotlin.Unit> block);
+    method public static inline void withClip(android.graphics.Canvas, float left, float top, float right, float bottom, kotlin.jvm.functions.Function1<? super android.graphics.Canvas,kotlin.Unit> block);
+    method public static inline void withClip(android.graphics.Canvas, int left, int top, int right, int bottom, kotlin.jvm.functions.Function1<? super android.graphics.Canvas,kotlin.Unit> block);
+    method public static inline void withMatrix(android.graphics.Canvas, optional android.graphics.Matrix matrix, kotlin.jvm.functions.Function1<? super android.graphics.Canvas,kotlin.Unit> block);
+    method public static inline void withRotation(android.graphics.Canvas, optional float degrees, optional float pivotX, optional float pivotY, kotlin.jvm.functions.Function1<? super android.graphics.Canvas,kotlin.Unit> block);
+    method public static inline void withSave(android.graphics.Canvas, kotlin.jvm.functions.Function1<? super android.graphics.Canvas,kotlin.Unit> block);
+    method public static inline void withScale(android.graphics.Canvas, optional float x, optional float y, optional float pivotX, optional float pivotY, kotlin.jvm.functions.Function1<? super android.graphics.Canvas,kotlin.Unit> block);
+    method public static inline void withSkew(android.graphics.Canvas, optional float x, optional float y, kotlin.jvm.functions.Function1<? super android.graphics.Canvas,kotlin.Unit> block);
+    method public static inline void withTranslation(android.graphics.Canvas, optional float x, optional float y, kotlin.jvm.functions.Function1<? super android.graphics.Canvas,kotlin.Unit> block);
+  }
+
+  public final class ColorKt {
+    method @RequiresApi(26) public static inline operator float component1(android.graphics.Color);
+    method public static inline operator int component1(@ColorInt int);
+    method @RequiresApi(26) public static inline operator float component1(@ColorLong long);
+    method @RequiresApi(26) public static inline operator float component2(android.graphics.Color);
+    method public static inline operator int component2(@ColorInt int);
+    method @RequiresApi(26) public static inline operator float component2(@ColorLong long);
+    method @RequiresApi(26) public static inline operator float component3(android.graphics.Color);
+    method public static inline operator int component3(@ColorInt int);
+    method @RequiresApi(26) public static inline operator float component3(@ColorLong long);
+    method @RequiresApi(26) public static inline operator float component4(android.graphics.Color);
+    method public static inline operator int component4(@ColorInt int);
+    method @RequiresApi(26) public static inline operator float component4(@ColorLong long);
+    method @RequiresApi(26) public static inline infix android.graphics.Color convertTo(android.graphics.Color, android.graphics.ColorSpace colorSpace);
+    method @RequiresApi(26) public static inline infix android.graphics.Color convertTo(android.graphics.Color, android.graphics.ColorSpace.Named colorSpace);
+    method @ColorLong @RequiresApi(26) public static inline infix long convertTo(@ColorInt int, android.graphics.ColorSpace colorSpace);
+    method @ColorLong @RequiresApi(26) public static inline infix long convertTo(@ColorInt int, android.graphics.ColorSpace.Named colorSpace);
+    method @ColorLong @RequiresApi(26) public static inline infix long convertTo(@ColorLong long, android.graphics.ColorSpace colorSpace);
+    method @ColorLong @RequiresApi(26) public static inline infix long convertTo(@ColorLong long, android.graphics.ColorSpace.Named colorSpace);
+    method public static inline int getAlpha(@ColorInt int);
+    method @RequiresApi(26) public static inline float getAlpha(@ColorLong long);
+    method public static inline int getBlue(@ColorInt int);
+    method @RequiresApi(26) public static inline float getBlue(@ColorLong long);
+    method @RequiresApi(26) public static inline android.graphics.ColorSpace getColorSpace(@ColorLong long);
+    method public static inline int getGreen(@ColorInt int);
+    method @RequiresApi(26) public static inline float getGreen(@ColorLong long);
+    method @RequiresApi(26) public static inline float getLuminance(@ColorInt int);
+    method @RequiresApi(26) public static inline float getLuminance(@ColorLong long);
+    method public static inline int getRed(@ColorInt int);
+    method @RequiresApi(26) public static inline float getRed(@ColorLong long);
+    method @RequiresApi(26) public static inline boolean isSrgb(@ColorLong long);
+    method @RequiresApi(26) public static inline boolean isWideGamut(@ColorLong long);
+    method @RequiresApi(26) public static operator android.graphics.Color plus(android.graphics.Color, android.graphics.Color c);
+    method @RequiresApi(26) public static inline android.graphics.Color toColor(@ColorInt int);
+    method @RequiresApi(26) public static inline android.graphics.Color toColor(@ColorLong long);
+    method @ColorInt public static inline int toColorInt(String);
+    method @ColorInt @RequiresApi(26) public static inline int toColorInt(@ColorLong long);
+    method @ColorLong @RequiresApi(26) public static inline long toColorLong(@ColorInt int);
+  }
+
+  public final class ImageDecoderKt {
+    method @RequiresApi(28) public static inline android.graphics.Bitmap decodeBitmap(android.graphics.ImageDecoder.Source, kotlin.jvm.functions.Function3<? super android.graphics.ImageDecoder,? super android.graphics.ImageDecoder.ImageInfo,? super android.graphics.ImageDecoder.Source,kotlin.Unit> action);
+    method @RequiresApi(28) public static inline android.graphics.drawable.Drawable decodeDrawable(android.graphics.ImageDecoder.Source, kotlin.jvm.functions.Function3<? super android.graphics.ImageDecoder,? super android.graphics.ImageDecoder.ImageInfo,? super android.graphics.ImageDecoder.Source,kotlin.Unit> action);
+  }
+
+  public final class MatrixKt {
+    method public static android.graphics.Matrix rotationMatrix(float degrees, optional float px, optional float py);
+    method public static android.graphics.Matrix scaleMatrix(optional float sx, optional float sy);
+    method public static inline operator android.graphics.Matrix times(android.graphics.Matrix, android.graphics.Matrix m);
+    method public static android.graphics.Matrix translationMatrix(optional float tx, optional float ty);
+    method public static inline float[] values(android.graphics.Matrix);
+  }
+
+  public final class PaintKt {
+    method public static inline boolean setBlendMode(android.graphics.Paint, androidx.core.graphics.BlendModeCompat? blendModeCompat);
+  }
+
+  public final class PathKt {
+    method @RequiresApi(19) public static inline infix android.graphics.Path and(android.graphics.Path, android.graphics.Path p);
+    method @RequiresApi(26) public static Iterable<androidx.core.graphics.PathSegment> flatten(android.graphics.Path, optional float error);
+    method @RequiresApi(19) public static inline operator android.graphics.Path minus(android.graphics.Path, android.graphics.Path p);
+    method @RequiresApi(19) public static inline infix android.graphics.Path or(android.graphics.Path, android.graphics.Path p);
+    method @RequiresApi(19) public static inline operator android.graphics.Path plus(android.graphics.Path, android.graphics.Path p);
+    method @RequiresApi(19) public static inline infix android.graphics.Path xor(android.graphics.Path, android.graphics.Path p);
+  }
+
+  public final class PictureKt {
+    method public static inline android.graphics.Picture record(android.graphics.Picture, int width, int height, kotlin.jvm.functions.Function1<? super android.graphics.Canvas,kotlin.Unit> block);
+  }
+
+  public final class PointKt {
+    method public static inline operator int component1(android.graphics.Point);
+    method public static inline operator float component1(android.graphics.PointF);
+    method public static inline operator int component2(android.graphics.Point);
+    method public static inline operator float component2(android.graphics.PointF);
+    method public static inline operator android.graphics.Point div(android.graphics.Point, float scalar);
+    method public static inline operator android.graphics.PointF div(android.graphics.PointF, float scalar);
+    method public static inline operator android.graphics.Point minus(android.graphics.Point, android.graphics.Point p);
+    method public static inline operator android.graphics.Point minus(android.graphics.Point, int xy);
+    method public static inline operator android.graphics.PointF minus(android.graphics.PointF, android.graphics.PointF p);
+    method public static inline operator android.graphics.PointF minus(android.graphics.PointF, float xy);
+    method public static inline operator android.graphics.Point plus(android.graphics.Point, android.graphics.Point p);
+    method public static inline operator android.graphics.Point plus(android.graphics.Point, int xy);
+    method public static inline operator android.graphics.PointF plus(android.graphics.PointF, android.graphics.PointF p);
+    method public static inline operator android.graphics.PointF plus(android.graphics.PointF, float xy);
+    method public static inline operator android.graphics.Point times(android.graphics.Point, float scalar);
+    method public static inline operator android.graphics.PointF times(android.graphics.PointF, float scalar);
+    method public static inline android.graphics.Point toPoint(android.graphics.PointF);
+    method public static inline android.graphics.PointF toPointF(android.graphics.Point);
+    method public static inline operator android.graphics.Point unaryMinus(android.graphics.Point);
+    method public static inline operator android.graphics.PointF unaryMinus(android.graphics.PointF);
+  }
+
+  public final class PorterDuffKt {
+    method public static inline android.graphics.PorterDuffColorFilter toColorFilter(android.graphics.PorterDuff.Mode, int color);
+    method public static inline android.graphics.PorterDuffXfermode toXfermode(android.graphics.PorterDuff.Mode);
+  }
+
+  public final class RectKt {
+    method public static inline infix android.graphics.Rect and(android.graphics.Rect, android.graphics.Rect r);
+    method public static inline infix android.graphics.RectF and(android.graphics.RectF, android.graphics.RectF r);
+    method public static inline operator int component1(android.graphics.Rect);
+    method public static inline operator float component1(android.graphics.RectF);
+    method public static inline operator int component2(android.graphics.Rect);
+    method public static inline operator float component2(android.graphics.RectF);
+    method public static inline operator int component3(android.graphics.Rect);
+    method public static inline operator float component3(android.graphics.RectF);
+    method public static inline operator int component4(android.graphics.Rect);
+    method public static inline operator float component4(android.graphics.RectF);
+    method public static inline operator boolean contains(android.graphics.Rect, android.graphics.Point p);
+    method public static inline operator boolean contains(android.graphics.RectF, android.graphics.PointF p);
+    method public static inline operator android.graphics.Rect minus(android.graphics.Rect, android.graphics.Point xy);
+    method public static inline operator android.graphics.Region minus(android.graphics.Rect, android.graphics.Rect r);
+    method public static inline operator android.graphics.Rect minus(android.graphics.Rect, int xy);
+    method public static inline operator android.graphics.RectF minus(android.graphics.RectF, android.graphics.PointF xy);
+    method public static inline operator android.graphics.Region minus(android.graphics.RectF, android.graphics.RectF r);
+    method public static inline operator android.graphics.RectF minus(android.graphics.RectF, float xy);
+    method public static inline infix android.graphics.Rect or(android.graphics.Rect, android.graphics.Rect r);
+    method public static inline infix android.graphics.RectF or(android.graphics.RectF, android.graphics.RectF r);
+    method public static inline operator android.graphics.Rect plus(android.graphics.Rect, android.graphics.Point xy);
+    method public static inline operator android.graphics.Rect plus(android.graphics.Rect, android.graphics.Rect r);
+    method public static inline operator android.graphics.Rect plus(android.graphics.Rect, int xy);
+    method public static inline operator android.graphics.RectF plus(android.graphics.RectF, android.graphics.PointF xy);
+    method public static inline operator android.graphics.RectF plus(android.graphics.RectF, android.graphics.RectF r);
+    method public static inline operator android.graphics.RectF plus(android.graphics.RectF, float xy);
+    method public static inline operator android.graphics.Rect times(android.graphics.Rect, int factor);
+    method public static inline operator android.graphics.RectF times(android.graphics.RectF, float factor);
+    method public static inline operator android.graphics.RectF times(android.graphics.RectF, int factor);
+    method public static inline android.graphics.Rect toRect(android.graphics.RectF);
+    method public static inline android.graphics.RectF toRectF(android.graphics.Rect);
+    method public static inline android.graphics.Region toRegion(android.graphics.Rect);
+    method public static inline android.graphics.Region toRegion(android.graphics.RectF);
+    method public static inline android.graphics.RectF transform(android.graphics.RectF, android.graphics.Matrix m);
+    method public static inline infix android.graphics.Region xor(android.graphics.Rect, android.graphics.Rect r);
+    method public static inline infix android.graphics.Region xor(android.graphics.RectF, android.graphics.RectF r);
+  }
+
+  public final class RegionKt {
+    method public static inline infix android.graphics.Region and(android.graphics.Region, android.graphics.Rect r);
+    method public static inline infix android.graphics.Region and(android.graphics.Region, android.graphics.Region r);
+    method public static inline operator boolean contains(android.graphics.Region, android.graphics.Point p);
+    method public static inline void forEach(android.graphics.Region, kotlin.jvm.functions.Function1<? super android.graphics.Rect,kotlin.Unit> action);
+    method public static operator java.util.Iterator<android.graphics.Rect> iterator(android.graphics.Region);
+    method public static inline operator android.graphics.Region minus(android.graphics.Region, android.graphics.Rect r);
+    method public static inline operator android.graphics.Region minus(android.graphics.Region, android.graphics.Region r);
+    method public static inline operator android.graphics.Region not(android.graphics.Region);
+    method public static inline infix android.graphics.Region or(android.graphics.Region, android.graphics.Rect r);
+    method public static inline infix android.graphics.Region or(android.graphics.Region, android.graphics.Region r);
+    method public static inline operator android.graphics.Region plus(android.graphics.Region, android.graphics.Rect r);
+    method public static inline operator android.graphics.Region plus(android.graphics.Region, android.graphics.Region r);
+    method public static inline operator android.graphics.Region unaryMinus(android.graphics.Region);
+    method public static inline infix android.graphics.Region xor(android.graphics.Region, android.graphics.Rect r);
+    method public static inline infix android.graphics.Region xor(android.graphics.Region, android.graphics.Region r);
+  }
+
+  public final class ShaderKt {
+    method public static inline void transform(android.graphics.Shader, kotlin.jvm.functions.Function1<? super android.graphics.Matrix,kotlin.Unit> block);
+  }
+
+}
+
+package androidx.core.graphics.drawable {
+
+  public final class BitmapDrawableKt {
+    method public static inline android.graphics.drawable.BitmapDrawable toDrawable(android.graphics.Bitmap, android.content.res.Resources resources);
+  }
+
+  public final class ColorDrawableKt {
+    method @RequiresApi(26) public static inline android.graphics.drawable.ColorDrawable toDrawable(android.graphics.Color);
+    method public static inline android.graphics.drawable.ColorDrawable toDrawable(@ColorInt int);
+  }
+
+  public final class DrawableKt {
+    method public static android.graphics.Bitmap toBitmap(android.graphics.drawable.Drawable, optional @Px int width, optional @Px int height, optional android.graphics.Bitmap.Config? config);
+    method public static android.graphics.Bitmap? toBitmapOrNull(android.graphics.drawable.Drawable, optional @Px int width, optional @Px int height, optional android.graphics.Bitmap.Config? config);
+    method public static void updateBounds(android.graphics.drawable.Drawable, optional @Px int left, optional @Px int top, optional @Px int right, optional @Px int bottom);
+  }
+
+  public final class IconKt {
+    method @RequiresApi(26) public static inline android.graphics.drawable.Icon toAdaptiveIcon(android.graphics.Bitmap);
+    method @RequiresApi(26) public static inline android.graphics.drawable.Icon toIcon(android.graphics.Bitmap);
+    method @RequiresApi(26) public static inline android.graphics.drawable.Icon toIcon(android.net.Uri);
+    method @RequiresApi(26) public static inline android.graphics.drawable.Icon toIcon(byte[]);
+  }
+
+}
+
+package androidx.core.location {
+
+  public final class LocationKt {
+    method public static inline operator double component1(android.location.Location);
+    method public static inline operator double component2(android.location.Location);
+  }
+
+}
+
+package androidx.core.net {
+
+  public final class UriKt {
+    method public static java.io.File toFile(android.net.Uri);
+    method public static inline android.net.Uri toUri(java.io.File);
+    method public static inline android.net.Uri toUri(String);
+  }
+
+}
+
+package androidx.core.os {
+
+  public final class BundleKt {
+    method public static android.os.Bundle bundleOf();
+    method public static android.os.Bundle bundleOf(kotlin.Pair<java.lang.String,?>... pairs);
+  }
+
+  public final class HandlerKt {
+    method public static inline Runnable postAtTime(android.os.Handler, long uptimeMillis, optional Object? token, kotlin.jvm.functions.Function0<kotlin.Unit> action);
+    method public static inline Runnable postDelayed(android.os.Handler, long delayInMillis, optional Object? token, kotlin.jvm.functions.Function0<kotlin.Unit> action);
+  }
+
+  @RequiresApi(31) public final class OutcomeReceiverKt {
+    method @RequiresApi(31) public static <R, E extends java.lang.Throwable> android.os.OutcomeReceiver<R,E> asOutcomeReceiver(kotlin.coroutines.Continuation<? super R>);
+  }
+
+  public final class PersistableBundleKt {
+    method @RequiresApi(21) public static android.os.PersistableBundle persistableBundleOf();
+    method @RequiresApi(21) public static android.os.PersistableBundle persistableBundleOf(kotlin.Pair<java.lang.String,?>... pairs);
+    method @RequiresApi(21) public static android.os.PersistableBundle toPersistableBundle(java.util.Map<java.lang.String,?>);
+  }
+
+  public final class TraceKt {
+    method @Deprecated public static inline <T> T trace(String sectionName, kotlin.jvm.functions.Function0<? extends T> block);
+  }
+
+}
+
+package androidx.core.text {
+
+  public final class CharSequenceKt {
+    method public static inline boolean isDigitsOnly(CharSequence);
+    method public static inline int trimmedLength(CharSequence);
+  }
+
+  public final class HtmlKt {
+    method public static inline android.text.Spanned parseAsHtml(String, optional int flags, optional android.text.Html.ImageGetter? imageGetter, optional android.text.Html.TagHandler? tagHandler);
+    method public static inline String toHtml(android.text.Spanned, optional int option);
+  }
+
+  public final class LocaleKt {
+    method @RequiresApi(17) public static inline int getLayoutDirection(java.util.Locale);
+  }
+
+  public final class SpannableStringBuilderKt {
+    method public static inline android.text.SpannableStringBuilder backgroundColor(android.text.SpannableStringBuilder, @ColorInt int color, kotlin.jvm.functions.Function1<? super android.text.SpannableStringBuilder,kotlin.Unit> builderAction);
+    method public static inline android.text.SpannableStringBuilder bold(android.text.SpannableStringBuilder, kotlin.jvm.functions.Function1<? super android.text.SpannableStringBuilder,kotlin.Unit> builderAction);
+    method public static inline android.text.SpannedString buildSpannedString(kotlin.jvm.functions.Function1<? super android.text.SpannableStringBuilder,kotlin.Unit> builderAction);
+    method public static inline android.text.SpannableStringBuilder color(android.text.SpannableStringBuilder, @ColorInt int color, kotlin.jvm.functions.Function1<? super android.text.SpannableStringBuilder,kotlin.Unit> builderAction);
+    method public static inline android.text.SpannableStringBuilder inSpans(android.text.SpannableStringBuilder, Object span, kotlin.jvm.functions.Function1<? super android.text.SpannableStringBuilder,kotlin.Unit> builderAction);
+    method public static inline android.text.SpannableStringBuilder inSpans(android.text.SpannableStringBuilder, Object![] spans, kotlin.jvm.functions.Function1<? super android.text.SpannableStringBuilder,kotlin.Unit> builderAction);
+    method public static inline android.text.SpannableStringBuilder italic(android.text.SpannableStringBuilder, kotlin.jvm.functions.Function1<? super android.text.SpannableStringBuilder,kotlin.Unit> builderAction);
+    method public static inline android.text.SpannableStringBuilder scale(android.text.SpannableStringBuilder, float proportion, kotlin.jvm.functions.Function1<? super android.text.SpannableStringBuilder,kotlin.Unit> builderAction);
+    method public static inline android.text.SpannableStringBuilder strikeThrough(android.text.SpannableStringBuilder, kotlin.jvm.functions.Function1<? super android.text.SpannableStringBuilder,kotlin.Unit> builderAction);
+    method public static inline android.text.SpannableStringBuilder subscript(android.text.SpannableStringBuilder, kotlin.jvm.functions.Function1<? super android.text.SpannableStringBuilder,kotlin.Unit> builderAction);
+    method public static inline android.text.SpannableStringBuilder superscript(android.text.SpannableStringBuilder, kotlin.jvm.functions.Function1<? super android.text.SpannableStringBuilder,kotlin.Unit> builderAction);
+    method public static inline android.text.SpannableStringBuilder underline(android.text.SpannableStringBuilder, kotlin.jvm.functions.Function1<? super android.text.SpannableStringBuilder,kotlin.Unit> builderAction);
+  }
+
+  public final class SpannableStringKt {
+    method public static inline void clearSpans(android.text.Spannable);
+    method public static inline operator void set(android.text.Spannable, int start, int end, Object span);
+    method public static inline operator void set(android.text.Spannable, kotlin.ranges.IntRange range, Object span);
+    method public static inline android.text.Spannable toSpannable(CharSequence);
+  }
+
+  public final class SpannedStringKt {
+    method public static inline <reified T> T![] getSpans(android.text.Spanned, optional int start, optional int end);
+    method public static inline android.text.Spanned toSpanned(CharSequence);
+  }
+
+  public final class StringKt {
+    method public static inline String htmlEncode(String);
+  }
+
+}
+
+package androidx.core.transition {
+
+  public final class TransitionKt {
+    method @RequiresApi(19) public static inline android.transition.Transition.TransitionListener addListener(android.transition.Transition, optional kotlin.jvm.functions.Function1<? super android.transition.Transition,kotlin.Unit> onEnd, optional kotlin.jvm.functions.Function1<? super android.transition.Transition,kotlin.Unit> onStart, optional kotlin.jvm.functions.Function1<? super android.transition.Transition,kotlin.Unit> onCancel, optional kotlin.jvm.functions.Function1<? super android.transition.Transition,kotlin.Unit> onResume, optional kotlin.jvm.functions.Function1<? super android.transition.Transition,kotlin.Unit> onPause);
+    method @RequiresApi(19) public static inline android.transition.Transition.TransitionListener doOnCancel(android.transition.Transition, kotlin.jvm.functions.Function1<? super android.transition.Transition,kotlin.Unit> action);
+    method @RequiresApi(19) public static inline android.transition.Transition.TransitionListener doOnEnd(android.transition.Transition, kotlin.jvm.functions.Function1<? super android.transition.Transition,kotlin.Unit> action);
+    method @RequiresApi(19) public static inline android.transition.Transition.TransitionListener doOnPause(android.transition.Transition, kotlin.jvm.functions.Function1<? super android.transition.Transition,kotlin.Unit> action);
+    method @RequiresApi(19) public static inline android.transition.Transition.TransitionListener doOnResume(android.transition.Transition, kotlin.jvm.functions.Function1<? super android.transition.Transition,kotlin.Unit> action);
+    method @RequiresApi(19) public static inline android.transition.Transition.TransitionListener doOnStart(android.transition.Transition, kotlin.jvm.functions.Function1<? super android.transition.Transition,kotlin.Unit> action);
+  }
+
+}
+
+package androidx.core.util {
+
+  public final class AndroidXConsumerKt {
+    method public static <T> androidx.core.util.Consumer<T> asAndroidXConsumer(kotlin.coroutines.Continuation<? super T>);
+  }
+
+  public final class AtomicFileKt {
+    method @RequiresApi(17) public static inline byte[] readBytes(android.util.AtomicFile);
+    method @RequiresApi(17) public static String readText(android.util.AtomicFile, optional java.nio.charset.Charset charset);
+    method @RequiresApi(17) public static inline void tryWrite(android.util.AtomicFile, kotlin.jvm.functions.Function1<? super java.io.FileOutputStream,kotlin.Unit> block);
+    method @RequiresApi(17) public static void writeBytes(android.util.AtomicFile, byte[] array);
+    method @RequiresApi(17) public static void writeText(android.util.AtomicFile, String text, optional java.nio.charset.Charset charset);
+  }
+
+  @RequiresApi(24) public final class ConsumerKt {
+    method @RequiresApi(24) public static <T> java.util.function.Consumer<T> asConsumer(kotlin.coroutines.Continuation<? super T>);
+  }
+
+  public final class HalfKt {
+    method @RequiresApi(26) public static inline android.util.Half toHalf(double);
+    method @RequiresApi(26) public static inline android.util.Half toHalf(float);
+    method @RequiresApi(26) public static inline android.util.Half toHalf(String);
+    method @RequiresApi(26) public static inline android.util.Half toHalf(@HalfFloat short);
+  }
+
+  public final class LongSparseArrayKt {
+    method @RequiresApi(16) public static inline operator <T> boolean contains(android.util.LongSparseArray<T>, long key);
+    method @RequiresApi(16) public static inline <T> boolean containsKey(android.util.LongSparseArray<T>, long key);
+    method @RequiresApi(16) public static inline <T> boolean containsValue(android.util.LongSparseArray<T>, T value);
+    method @RequiresApi(16) public static inline <T> void forEach(android.util.LongSparseArray<T>, kotlin.jvm.functions.Function2<? super java.lang.Long,? super T,kotlin.Unit> action);
+    method @RequiresApi(16) public static inline <T> T getOrDefault(android.util.LongSparseArray<T>, long key, T defaultValue);
+    method @RequiresApi(16) public static inline <T> T getOrElse(android.util.LongSparseArray<T>, long key, kotlin.jvm.functions.Function0<? extends T> defaultValue);
+    method @RequiresApi(16) public static inline <T> int getSize(android.util.LongSparseArray<T>);
+    method @RequiresApi(16) public static inline <T> boolean isEmpty(android.util.LongSparseArray<T>);
+    method @RequiresApi(16) public static inline <T> boolean isNotEmpty(android.util.LongSparseArray<T>);
+    method @RequiresApi(16) public static <T> kotlin.collections.LongIterator keyIterator(android.util.LongSparseArray<T>);
+    method @RequiresApi(16) public static operator <T> android.util.LongSparseArray<T> plus(android.util.LongSparseArray<T>, android.util.LongSparseArray<T> other);
+    method @RequiresApi(16) public static <T> void putAll(android.util.LongSparseArray<T>, android.util.LongSparseArray<T> other);
+    method @RequiresApi(16) public static <T> boolean remove(android.util.LongSparseArray<T>, long key, T value);
+    method @RequiresApi(16) public static inline operator <T> void set(android.util.LongSparseArray<T>, long key, T value);
+    method @RequiresApi(16) public static <T> java.util.Iterator<T> valueIterator(android.util.LongSparseArray<T>);
+  }
+
+  public final class LruCacheKt {
+    method public static inline <K, V> android.util.LruCache<K,V> lruCache(int maxSize, optional kotlin.jvm.functions.Function2<? super K,? super V,java.lang.Integer> sizeOf, optional kotlin.jvm.functions.Function1<? super K,? extends V> create, optional kotlin.jvm.functions.Function4<? super java.lang.Boolean,? super K,? super V,? super V,kotlin.Unit> onEntryRemoved);
+  }
+
+  public final class PairKt {
+    method public static inline operator <F, S> F component1(android.util.Pair<F,S>);
+    method public static inline operator <F, S> F component1(androidx.core.util.Pair<F,S>);
+    method public static inline operator <F, S> S component2(android.util.Pair<F,S>);
+    method public static inline operator <F, S> S component2(androidx.core.util.Pair<F,S>);
+    method public static inline <F, S> android.util.Pair<F,S> toAndroidPair(kotlin.Pair<? extends F,? extends S>);
+    method public static inline <F, S> androidx.core.util.Pair<F,S> toAndroidXPair(kotlin.Pair<? extends F,? extends S>);
+    method public static inline <F, S> kotlin.Pair<F,S> toKotlinPair(android.util.Pair<F,S>);
+    method public static inline <F, S> kotlin.Pair<F,S> toKotlinPair(androidx.core.util.Pair<F,S>);
+  }
+
+  public final class RangeKt {
+    method @RequiresApi(21) public static inline infix <T extends java.lang.Comparable<? super T>> android.util.Range<T> and(android.util.Range<T>, android.util.Range<T> other);
+    method @RequiresApi(21) public static inline operator <T extends java.lang.Comparable<? super T>> android.util.Range<T> plus(android.util.Range<T>, android.util.Range<T> other);
+    method @RequiresApi(21) public static inline operator <T extends java.lang.Comparable<? super T>> android.util.Range<T> plus(android.util.Range<T>, T value);
+    method @RequiresApi(21) public static inline infix <T extends java.lang.Comparable<? super T>> android.util.Range<T> rangeTo(T, T that);
+    method @RequiresApi(21) public static <T extends java.lang.Comparable<? super T>> kotlin.ranges.ClosedRange<T> toClosedRange(android.util.Range<T>);
+    method @RequiresApi(21) public static <T extends java.lang.Comparable<? super T>> android.util.Range<T> toRange(kotlin.ranges.ClosedRange<T>);
+  }
+
+  public final class RunnableKt {
+    method public static Runnable asRunnable(kotlin.coroutines.Continuation<? super kotlin.Unit>);
+  }
+
+  public final class SizeKt {
+    method @RequiresApi(21) public static inline operator int component1(android.util.Size);
+    method @RequiresApi(21) public static inline operator float component1(android.util.SizeF);
+    method public static inline operator float component1(androidx.core.util.SizeFCompat);
+    method @RequiresApi(21) public static inline operator int component2(android.util.Size);
+    method @RequiresApi(21) public static inline operator float component2(android.util.SizeF);
+    method public static inline operator float component2(androidx.core.util.SizeFCompat);
+  }
+
+  public final class SparseArrayKt {
+    method public static inline operator <T> boolean contains(android.util.SparseArray<T>, int key);
+    method public static inline <T> boolean containsKey(android.util.SparseArray<T>, int key);
+    method public static inline <T> boolean containsValue(android.util.SparseArray<T>, T value);
+    method public static inline <T> void forEach(android.util.SparseArray<T>, kotlin.jvm.functions.Function2<? super java.lang.Integer,? super T,kotlin.Unit> action);
+    method public static inline <T> T getOrDefault(android.util.SparseArray<T>, int key, T defaultValue);
+    method public static inline <T> T getOrElse(android.util.SparseArray<T>, int key, kotlin.jvm.functions.Function0<? extends T> defaultValue);
+    method public static inline <T> int getSize(android.util.SparseArray<T>);
+    method public static inline <T> boolean isEmpty(android.util.SparseArray<T>);
+    method public static inline <T> boolean isNotEmpty(android.util.SparseArray<T>);
+    method public static <T> kotlin.collections.IntIterator keyIterator(android.util.SparseArray<T>);
+    method public static operator <T> android.util.SparseArray<T> plus(android.util.SparseArray<T>, android.util.SparseArray<T> other);
+    method public static <T> void putAll(android.util.SparseArray<T>, android.util.SparseArray<T> other);
+    method public static <T> boolean remove(android.util.SparseArray<T>, int key, T value);
+    method public static inline operator <T> void set(android.util.SparseArray<T>, int key, T value);
+    method public static <T> java.util.Iterator<T> valueIterator(android.util.SparseArray<T>);
+  }
+
+  public final class SparseBooleanArrayKt {
+    method public static inline operator boolean contains(android.util.SparseBooleanArray, int key);
+    method public static inline boolean containsKey(android.util.SparseBooleanArray, int key);
+    method public static inline boolean containsValue(android.util.SparseBooleanArray, boolean value);
+    method public static inline void forEach(android.util.SparseBooleanArray, kotlin.jvm.functions.Function2<? super java.lang.Integer,? super java.lang.Boolean,kotlin.Unit> action);
+    method public static inline boolean getOrDefault(android.util.SparseBooleanArray, int key, boolean defaultValue);
+    method public static inline boolean getOrElse(android.util.SparseBooleanArray, int key, kotlin.jvm.functions.Function0<java.lang.Boolean> defaultValue);
+    method public static inline int getSize(android.util.SparseBooleanArray);
+    method public static inline boolean isEmpty(android.util.SparseBooleanArray);
+    method public static inline boolean isNotEmpty(android.util.SparseBooleanArray);
+    method public static kotlin.collections.IntIterator keyIterator(android.util.SparseBooleanArray);
+    method public static operator android.util.SparseBooleanArray plus(android.util.SparseBooleanArray, android.util.SparseBooleanArray other);
+    method public static void putAll(android.util.SparseBooleanArray, android.util.SparseBooleanArray other);
+    method public static boolean remove(android.util.SparseBooleanArray, int key, boolean value);
+    method public static inline operator void set(android.util.SparseBooleanArray, int key, boolean value);
+    method public static kotlin.collections.BooleanIterator valueIterator(android.util.SparseBooleanArray);
+  }
+
+  public final class SparseIntArrayKt {
+    method public static inline operator boolean contains(android.util.SparseIntArray, int key);
+    method public static inline boolean containsKey(android.util.SparseIntArray, int key);
+    method public static inline boolean containsValue(android.util.SparseIntArray, int value);
+    method public static inline void forEach(android.util.SparseIntArray, kotlin.jvm.functions.Function2<? super java.lang.Integer,? super java.lang.Integer,kotlin.Unit> action);
+    method public static inline int getOrDefault(android.util.SparseIntArray, int key, int defaultValue);
+    method public static inline int getOrElse(android.util.SparseIntArray, int key, kotlin.jvm.functions.Function0<java.lang.Integer> defaultValue);
+    method public static inline int getSize(android.util.SparseIntArray);
+    method public static inline boolean isEmpty(android.util.SparseIntArray);
+    method public static inline boolean isNotEmpty(android.util.SparseIntArray);
+    method public static kotlin.collections.IntIterator keyIterator(android.util.SparseIntArray);
+    method public static operator android.util.SparseIntArray plus(android.util.SparseIntArray, android.util.SparseIntArray other);
+    method public static void putAll(android.util.SparseIntArray, android.util.SparseIntArray other);
+    method public static boolean remove(android.util.SparseIntArray, int key, int value);
+    method public static inline operator void set(android.util.SparseIntArray, int key, int value);
+    method public static kotlin.collections.IntIterator valueIterator(android.util.SparseIntArray);
+  }
+
+  public final class SparseLongArrayKt {
+    method @RequiresApi(18) public static inline operator boolean contains(android.util.SparseLongArray, int key);
+    method @RequiresApi(18) public static inline boolean containsKey(android.util.SparseLongArray, int key);
+    method @RequiresApi(18) public static inline boolean containsValue(android.util.SparseLongArray, long value);
+    method @RequiresApi(18) public static inline void forEach(android.util.SparseLongArray, kotlin.jvm.functions.Function2<? super java.lang.Integer,? super java.lang.Long,kotlin.Unit> action);
+    method @RequiresApi(18) public static inline long getOrDefault(android.util.SparseLongArray, int key, long defaultValue);
+    method @RequiresApi(18) public static inline long getOrElse(android.util.SparseLongArray, int key, kotlin.jvm.functions.Function0<java.lang.Long> defaultValue);
+    method @RequiresApi(18) public static inline int getSize(android.util.SparseLongArray);
+    method @RequiresApi(18) public static inline boolean isEmpty(android.util.SparseLongArray);
+    method @RequiresApi(18) public static inline boolean isNotEmpty(android.util.SparseLongArray);
+    method @RequiresApi(18) public static kotlin.collections.IntIterator keyIterator(android.util.SparseLongArray);
+    method @RequiresApi(18) public static operator android.util.SparseLongArray plus(android.util.SparseLongArray, android.util.SparseLongArray other);
+    method @RequiresApi(18) public static void putAll(android.util.SparseLongArray, android.util.SparseLongArray other);
+    method @RequiresApi(18) public static boolean remove(android.util.SparseLongArray, int key, long value);
+    method @RequiresApi(18) public static inline operator void set(android.util.SparseLongArray, int key, long value);
+    method @RequiresApi(18) public static kotlin.collections.LongIterator valueIterator(android.util.SparseLongArray);
+  }
+
+}
+
+package androidx.core.view {
+
+  public final class MenuKt {
+    method public static operator boolean contains(android.view.Menu, android.view.MenuItem item);
+    method public static inline void forEach(android.view.Menu, kotlin.jvm.functions.Function1<? super android.view.MenuItem,kotlin.Unit> action);
+    method public static inline void forEachIndexed(android.view.Menu, kotlin.jvm.functions.Function2<? super java.lang.Integer,? super android.view.MenuItem,kotlin.Unit> action);
+    method public static inline operator android.view.MenuItem get(android.view.Menu, int index);
+    method public static kotlin.sequences.Sequence<android.view.MenuItem> getChildren(android.view.Menu);
+    method public static inline int getSize(android.view.Menu);
+    method public static inline boolean isEmpty(android.view.Menu);
+    method public static inline boolean isNotEmpty(android.view.Menu);
+    method public static operator java.util.Iterator<android.view.MenuItem> iterator(android.view.Menu);
+    method public static inline operator void minusAssign(android.view.Menu, android.view.MenuItem item);
+    method public static inline void removeItemAt(android.view.Menu, int index);
+  }
+
+  public final class ViewGroupKt {
+    method public static inline operator boolean contains(android.view.ViewGroup, android.view.View view);
+    method public static inline void forEach(android.view.ViewGroup, kotlin.jvm.functions.Function1<? super android.view.View,kotlin.Unit> action);
+    method public static inline void forEachIndexed(android.view.ViewGroup, kotlin.jvm.functions.Function2<? super java.lang.Integer,? super android.view.View,kotlin.Unit> action);
+    method public static operator android.view.View get(android.view.ViewGroup, int index);
+    method public static kotlin.sequences.Sequence<android.view.View> getChildren(android.view.ViewGroup);
+    method public static kotlin.sequences.Sequence<android.view.View> getDescendants(android.view.ViewGroup);
+    method public static inline kotlin.ranges.IntRange getIndices(android.view.ViewGroup);
+    method public static inline int getSize(android.view.ViewGroup);
+    method public static inline boolean isEmpty(android.view.ViewGroup);
+    method public static inline boolean isNotEmpty(android.view.ViewGroup);
+    method public static operator java.util.Iterator<android.view.View> iterator(android.view.ViewGroup);
+    method public static inline operator void minusAssign(android.view.ViewGroup, android.view.View view);
+    method public static inline operator void plusAssign(android.view.ViewGroup, android.view.View view);
+    method public static inline void setMargins(android.view.ViewGroup.MarginLayoutParams, @Px int size);
+    method public static inline void updateMargins(android.view.ViewGroup.MarginLayoutParams, optional @Px int left, optional @Px int top, optional @Px int right, optional @Px int bottom);
+    method @RequiresApi(17) public static inline void updateMarginsRelative(android.view.ViewGroup.MarginLayoutParams, optional @Px int start, optional @Px int top, optional @Px int end, optional @Px int bottom);
+  }
+
+  public final class ViewKt {
+    method public static inline void doOnAttach(android.view.View, kotlin.jvm.functions.Function1<? super android.view.View,kotlin.Unit> action);
+    method public static inline void doOnDetach(android.view.View, kotlin.jvm.functions.Function1<? super android.view.View,kotlin.Unit> action);
+    method public static inline void doOnLayout(android.view.View, kotlin.jvm.functions.Function1<? super android.view.View,kotlin.Unit> action);
+    method public static inline void doOnNextLayout(android.view.View, kotlin.jvm.functions.Function1<? super android.view.View,kotlin.Unit> action);
+    method public static inline androidx.core.view.OneShotPreDrawListener doOnPreDraw(android.view.View, kotlin.jvm.functions.Function1<? super android.view.View,kotlin.Unit> action);
+    method public static android.graphics.Bitmap drawToBitmap(android.view.View, optional android.graphics.Bitmap.Config config);
+    method public static kotlin.sequences.Sequence<android.view.View> getAllViews(android.view.View);
+    method public static kotlin.sequences.Sequence<android.view.ViewParent> getAncestors(android.view.View);
+    method public static inline int getMarginBottom(android.view.View);
+    method public static inline int getMarginEnd(android.view.View);
+    method public static inline int getMarginLeft(android.view.View);
+    method public static inline int getMarginRight(android.view.View);
+    method public static inline int getMarginStart(android.view.View);
+    method public static inline int getMarginTop(android.view.View);
+    method public static inline boolean isGone(android.view.View);
+    method public static inline boolean isInvisible(android.view.View);
+    method public static inline boolean isVisible(android.view.View);
+    method public static inline Runnable postDelayed(android.view.View, long delayInMillis, kotlin.jvm.functions.Function0<kotlin.Unit> action);
+    method @RequiresApi(16) public static Runnable postOnAnimationDelayed(android.view.View, long delayInMillis, kotlin.jvm.functions.Function0<kotlin.Unit> action);
+    method public static inline void setGone(android.view.View, boolean);
+    method public static inline void setInvisible(android.view.View, boolean);
+    method public static inline void setPadding(android.view.View, @Px int size);
+    method public static inline void setVisible(android.view.View, boolean);
+    method public static inline void updateLayoutParams(android.view.View, kotlin.jvm.functions.Function1<? super android.view.ViewGroup.LayoutParams,kotlin.Unit> block);
+    method public static inline <reified T extends android.view.ViewGroup.LayoutParams> void updateLayoutParamsTyped(android.view.View, kotlin.jvm.functions.Function1<? super T,kotlin.Unit> block);
+    method public static inline void updatePadding(android.view.View, optional @Px int left, optional @Px int top, optional @Px int right, optional @Px int bottom);
+    method @RequiresApi(17) public static inline void updatePaddingRelative(android.view.View, optional @Px int start, optional @Px int top, optional @Px int end, optional @Px int bottom);
+  }
+
+}
+
+package androidx.core.widget {
+
+  public final class TextViewKt {
+    method public static inline android.text.TextWatcher addTextChangedListener(android.widget.TextView, optional kotlin.jvm.functions.Function4<? super java.lang.CharSequence,? super java.lang.Integer,? super java.lang.Integer,? super java.lang.Integer,kotlin.Unit> beforeTextChanged, optional kotlin.jvm.functions.Function4<? super java.lang.CharSequence,? super java.lang.Integer,? super java.lang.Integer,? super java.lang.Integer,kotlin.Unit> onTextChanged, optional kotlin.jvm.functions.Function1<? super android.text.Editable,kotlin.Unit> afterTextChanged);
+    method public static inline android.text.TextWatcher doAfterTextChanged(android.widget.TextView, kotlin.jvm.functions.Function1<? super android.text.Editable,kotlin.Unit> action);
+    method public static inline android.text.TextWatcher doBeforeTextChanged(android.widget.TextView, kotlin.jvm.functions.Function4<? super java.lang.CharSequence,? super java.lang.Integer,? super java.lang.Integer,? super java.lang.Integer,kotlin.Unit> action);
+    method public static inline android.text.TextWatcher doOnTextChanged(android.widget.TextView, kotlin.jvm.functions.Function4<? super java.lang.CharSequence,? super java.lang.Integer,? super java.lang.Integer,? super java.lang.Integer,kotlin.Unit> action);
+  }
+
+}
+
diff --git a/core/core-ktx/api/res-1.11.0-beta01.txt b/core/core-ktx/api/res-1.11.0-beta01.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/core/core-ktx/api/res-1.11.0-beta01.txt
diff --git a/core/core-ktx/api/restricted_1.11.0-beta01.txt b/core/core-ktx/api/restricted_1.11.0-beta01.txt
new file mode 100644
index 0000000..7a12effb
--- /dev/null
+++ b/core/core-ktx/api/restricted_1.11.0-beta01.txt
@@ -0,0 +1,634 @@
+// Signature format: 4.0
+package androidx.core.animation {
+
+  public final class AnimatorKt {
+    method public static inline android.animation.Animator.AnimatorListener addListener(android.animation.Animator, optional kotlin.jvm.functions.Function1<? super android.animation.Animator,kotlin.Unit> onEnd, optional kotlin.jvm.functions.Function1<? super android.animation.Animator,kotlin.Unit> onStart, optional kotlin.jvm.functions.Function1<? super android.animation.Animator,kotlin.Unit> onCancel, optional kotlin.jvm.functions.Function1<? super android.animation.Animator,kotlin.Unit> onRepeat);
+    method @RequiresApi(19) public static android.animation.Animator.AnimatorPauseListener addPauseListener(android.animation.Animator, optional kotlin.jvm.functions.Function1<? super android.animation.Animator,kotlin.Unit> onResume, optional kotlin.jvm.functions.Function1<? super android.animation.Animator,kotlin.Unit> onPause);
+    method public static inline android.animation.Animator.AnimatorListener doOnCancel(android.animation.Animator, kotlin.jvm.functions.Function1<? super android.animation.Animator,kotlin.Unit> action);
+    method public static inline android.animation.Animator.AnimatorListener doOnEnd(android.animation.Animator, kotlin.jvm.functions.Function1<? super android.animation.Animator,kotlin.Unit> action);
+    method @RequiresApi(19) public static android.animation.Animator.AnimatorPauseListener doOnPause(android.animation.Animator, kotlin.jvm.functions.Function1<? super android.animation.Animator,kotlin.Unit> action);
+    method public static inline android.animation.Animator.AnimatorListener doOnRepeat(android.animation.Animator, kotlin.jvm.functions.Function1<? super android.animation.Animator,kotlin.Unit> action);
+    method @RequiresApi(19) public static android.animation.Animator.AnimatorPauseListener doOnResume(android.animation.Animator, kotlin.jvm.functions.Function1<? super android.animation.Animator,kotlin.Unit> action);
+    method public static inline android.animation.Animator.AnimatorListener doOnStart(android.animation.Animator, kotlin.jvm.functions.Function1<? super android.animation.Animator,kotlin.Unit> action);
+  }
+
+}
+
+package androidx.core.content {
+
+  public final class ContentValuesKt {
+    method public static android.content.ContentValues contentValuesOf(kotlin.Pair<java.lang.String,?>... pairs);
+  }
+
+  public final class ContextKt {
+    method public static inline <reified T> T! getSystemService(android.content.Context);
+    method public static inline void withStyledAttributes(android.content.Context, optional android.util.AttributeSet? set, int[] attrs, optional @AttrRes int defStyleAttr, optional @StyleRes int defStyleRes, kotlin.jvm.functions.Function1<? super android.content.res.TypedArray,kotlin.Unit> block);
+    method public static inline void withStyledAttributes(android.content.Context, @StyleRes int resourceId, int[] attrs, kotlin.jvm.functions.Function1<? super android.content.res.TypedArray,kotlin.Unit> block);
+  }
+
+  public final class SharedPreferencesKt {
+    method public static inline void edit(android.content.SharedPreferences, optional boolean commit, kotlin.jvm.functions.Function1<? super android.content.SharedPreferences.Editor,kotlin.Unit> action);
+  }
+
+}
+
+package androidx.core.content.res {
+
+  public final class TypedArrayKt {
+    method public static boolean getBooleanOrThrow(android.content.res.TypedArray, @StyleableRes int index);
+    method @ColorInt public static int getColorOrThrow(android.content.res.TypedArray, @StyleableRes int index);
+    method public static android.content.res.ColorStateList getColorStateListOrThrow(android.content.res.TypedArray, @StyleableRes int index);
+    method public static float getDimensionOrThrow(android.content.res.TypedArray, @StyleableRes int index);
+    method @Dimension public static int getDimensionPixelOffsetOrThrow(android.content.res.TypedArray, @StyleableRes int index);
+    method @Dimension public static int getDimensionPixelSizeOrThrow(android.content.res.TypedArray, @StyleableRes int index);
+    method public static android.graphics.drawable.Drawable getDrawableOrThrow(android.content.res.TypedArray, @StyleableRes int index);
+    method public static float getFloatOrThrow(android.content.res.TypedArray, @StyleableRes int index);
+    method @RequiresApi(26) public static android.graphics.Typeface getFontOrThrow(android.content.res.TypedArray, @StyleableRes int index);
+    method public static int getIntOrThrow(android.content.res.TypedArray, @StyleableRes int index);
+    method public static int getIntegerOrThrow(android.content.res.TypedArray, @StyleableRes int index);
+    method @AnyRes public static int getResourceIdOrThrow(android.content.res.TypedArray, @StyleableRes int index);
+    method public static String getStringOrThrow(android.content.res.TypedArray, @StyleableRes int index);
+    method public static CharSequence![] getTextArrayOrThrow(android.content.res.TypedArray, @StyleableRes int index);
+    method public static CharSequence getTextOrThrow(android.content.res.TypedArray, @StyleableRes int index);
+    method public static inline <R> R use(android.content.res.TypedArray, kotlin.jvm.functions.Function1<? super android.content.res.TypedArray,? extends R> block);
+  }
+
+}
+
+package androidx.core.database {
+
+  public final class CursorKt {
+    method public static inline byte[]? getBlobOrNull(android.database.Cursor, int index);
+    method public static inline Double? getDoubleOrNull(android.database.Cursor, int index);
+    method public static inline Float? getFloatOrNull(android.database.Cursor, int index);
+    method public static inline Integer? getIntOrNull(android.database.Cursor, int index);
+    method public static inline Long? getLongOrNull(android.database.Cursor, int index);
+    method public static inline Short? getShortOrNull(android.database.Cursor, int index);
+    method public static inline String? getStringOrNull(android.database.Cursor, int index);
+  }
+
+}
+
+package androidx.core.database.sqlite {
+
+  public final class SQLiteDatabaseKt {
+    method public static inline <T> T transaction(android.database.sqlite.SQLiteDatabase, optional boolean exclusive, kotlin.jvm.functions.Function1<? super android.database.sqlite.SQLiteDatabase,? extends T> body);
+  }
+
+}
+
+package androidx.core.graphics {
+
+  public final class BitmapKt {
+    method public static inline android.graphics.Bitmap applyCanvas(android.graphics.Bitmap, kotlin.jvm.functions.Function1<? super android.graphics.Canvas,kotlin.Unit> block);
+    method public static inline operator boolean contains(android.graphics.Bitmap, android.graphics.Point p);
+    method public static inline operator boolean contains(android.graphics.Bitmap, android.graphics.PointF p);
+    method public static inline android.graphics.Bitmap createBitmap(int width, int height, optional android.graphics.Bitmap.Config config);
+    method @RequiresApi(26) public static inline android.graphics.Bitmap createBitmap(int width, int height, optional android.graphics.Bitmap.Config config, optional boolean hasAlpha, optional android.graphics.ColorSpace colorSpace);
+    method public static inline operator int get(android.graphics.Bitmap, int x, int y);
+    method public static inline android.graphics.Bitmap scale(android.graphics.Bitmap, int width, int height, optional boolean filter);
+    method public static inline operator void set(android.graphics.Bitmap, int x, int y, @ColorInt int color);
+  }
+
+  public final class CanvasKt {
+    method public static inline void withClip(android.graphics.Canvas, android.graphics.Path clipPath, kotlin.jvm.functions.Function1<? super android.graphics.Canvas,kotlin.Unit> block);
+    method public static inline void withClip(android.graphics.Canvas, android.graphics.Rect clipRect, kotlin.jvm.functions.Function1<? super android.graphics.Canvas,kotlin.Unit> block);
+    method public static inline void withClip(android.graphics.Canvas, android.graphics.RectF clipRect, kotlin.jvm.functions.Function1<? super android.graphics.Canvas,kotlin.Unit> block);
+    method public static inline void withClip(android.graphics.Canvas, float left, float top, float right, float bottom, kotlin.jvm.functions.Function1<? super android.graphics.Canvas,kotlin.Unit> block);
+    method public static inline void withClip(android.graphics.Canvas, int left, int top, int right, int bottom, kotlin.jvm.functions.Function1<? super android.graphics.Canvas,kotlin.Unit> block);
+    method public static inline void withMatrix(android.graphics.Canvas, optional android.graphics.Matrix matrix, kotlin.jvm.functions.Function1<? super android.graphics.Canvas,kotlin.Unit> block);
+    method public static inline void withRotation(android.graphics.Canvas, optional float degrees, optional float pivotX, optional float pivotY, kotlin.jvm.functions.Function1<? super android.graphics.Canvas,kotlin.Unit> block);
+    method public static inline void withSave(android.graphics.Canvas, kotlin.jvm.functions.Function1<? super android.graphics.Canvas,kotlin.Unit> block);
+    method public static inline void withScale(android.graphics.Canvas, optional float x, optional float y, optional float pivotX, optional float pivotY, kotlin.jvm.functions.Function1<? super android.graphics.Canvas,kotlin.Unit> block);
+    method public static inline void withSkew(android.graphics.Canvas, optional float x, optional float y, kotlin.jvm.functions.Function1<? super android.graphics.Canvas,kotlin.Unit> block);
+    method public static inline void withTranslation(android.graphics.Canvas, optional float x, optional float y, kotlin.jvm.functions.Function1<? super android.graphics.Canvas,kotlin.Unit> block);
+  }
+
+  public final class ColorKt {
+    method @RequiresApi(26) public static inline operator float component1(android.graphics.Color);
+    method public static inline operator int component1(@ColorInt int);
+    method @RequiresApi(26) public static inline operator float component1(@ColorLong long);
+    method @RequiresApi(26) public static inline operator float component2(android.graphics.Color);
+    method public static inline operator int component2(@ColorInt int);
+    method @RequiresApi(26) public static inline operator float component2(@ColorLong long);
+    method @RequiresApi(26) public static inline operator float component3(android.graphics.Color);
+    method public static inline operator int component3(@ColorInt int);
+    method @RequiresApi(26) public static inline operator float component3(@ColorLong long);
+    method @RequiresApi(26) public static inline operator float component4(android.graphics.Color);
+    method public static inline operator int component4(@ColorInt int);
+    method @RequiresApi(26) public static inline operator float component4(@ColorLong long);
+    method @RequiresApi(26) public static inline infix android.graphics.Color convertTo(android.graphics.Color, android.graphics.ColorSpace colorSpace);
+    method @RequiresApi(26) public static inline infix android.graphics.Color convertTo(android.graphics.Color, android.graphics.ColorSpace.Named colorSpace);
+    method @ColorLong @RequiresApi(26) public static inline infix long convertTo(@ColorInt int, android.graphics.ColorSpace colorSpace);
+    method @ColorLong @RequiresApi(26) public static inline infix long convertTo(@ColorInt int, android.graphics.ColorSpace.Named colorSpace);
+    method @ColorLong @RequiresApi(26) public static inline infix long convertTo(@ColorLong long, android.graphics.ColorSpace colorSpace);
+    method @ColorLong @RequiresApi(26) public static inline infix long convertTo(@ColorLong long, android.graphics.ColorSpace.Named colorSpace);
+    method public static inline int getAlpha(@ColorInt int);
+    method @RequiresApi(26) public static inline float getAlpha(@ColorLong long);
+    method public static inline int getBlue(@ColorInt int);
+    method @RequiresApi(26) public static inline float getBlue(@ColorLong long);
+    method @RequiresApi(26) public static inline android.graphics.ColorSpace getColorSpace(@ColorLong long);
+    method public static inline int getGreen(@ColorInt int);
+    method @RequiresApi(26) public static inline float getGreen(@ColorLong long);
+    method @RequiresApi(26) public static inline float getLuminance(@ColorInt int);
+    method @RequiresApi(26) public static inline float getLuminance(@ColorLong long);
+    method public static inline int getRed(@ColorInt int);
+    method @RequiresApi(26) public static inline float getRed(@ColorLong long);
+    method @RequiresApi(26) public static inline boolean isSrgb(@ColorLong long);
+    method @RequiresApi(26) public static inline boolean isWideGamut(@ColorLong long);
+    method @RequiresApi(26) public static operator android.graphics.Color plus(android.graphics.Color, android.graphics.Color c);
+    method @RequiresApi(26) public static inline android.graphics.Color toColor(@ColorInt int);
+    method @RequiresApi(26) public static inline android.graphics.Color toColor(@ColorLong long);
+    method @ColorInt public static inline int toColorInt(String);
+    method @ColorInt @RequiresApi(26) public static inline int toColorInt(@ColorLong long);
+    method @ColorLong @RequiresApi(26) public static inline long toColorLong(@ColorInt int);
+  }
+
+  public final class ImageDecoderKt {
+    method @RequiresApi(28) public static inline android.graphics.Bitmap decodeBitmap(android.graphics.ImageDecoder.Source, kotlin.jvm.functions.Function3<? super android.graphics.ImageDecoder,? super android.graphics.ImageDecoder.ImageInfo,? super android.graphics.ImageDecoder.Source,kotlin.Unit> action);
+    method @RequiresApi(28) public static inline android.graphics.drawable.Drawable decodeDrawable(android.graphics.ImageDecoder.Source, kotlin.jvm.functions.Function3<? super android.graphics.ImageDecoder,? super android.graphics.ImageDecoder.ImageInfo,? super android.graphics.ImageDecoder.Source,kotlin.Unit> action);
+  }
+
+  public final class MatrixKt {
+    method public static android.graphics.Matrix rotationMatrix(float degrees, optional float px, optional float py);
+    method public static android.graphics.Matrix scaleMatrix(optional float sx, optional float sy);
+    method public static inline operator android.graphics.Matrix times(android.graphics.Matrix, android.graphics.Matrix m);
+    method public static android.graphics.Matrix translationMatrix(optional float tx, optional float ty);
+    method public static inline float[] values(android.graphics.Matrix);
+  }
+
+  public final class PaintKt {
+    method public static inline boolean setBlendMode(android.graphics.Paint, androidx.core.graphics.BlendModeCompat? blendModeCompat);
+  }
+
+  public final class PathKt {
+    method @RequiresApi(19) public static inline infix android.graphics.Path and(android.graphics.Path, android.graphics.Path p);
+    method @RequiresApi(26) public static Iterable<androidx.core.graphics.PathSegment> flatten(android.graphics.Path, optional float error);
+    method @RequiresApi(19) public static inline operator android.graphics.Path minus(android.graphics.Path, android.graphics.Path p);
+    method @RequiresApi(19) public static inline infix android.graphics.Path or(android.graphics.Path, android.graphics.Path p);
+    method @RequiresApi(19) public static inline operator android.graphics.Path plus(android.graphics.Path, android.graphics.Path p);
+    method @RequiresApi(19) public static inline infix android.graphics.Path xor(android.graphics.Path, android.graphics.Path p);
+  }
+
+  public final class PictureKt {
+    method public static inline android.graphics.Picture record(android.graphics.Picture, int width, int height, kotlin.jvm.functions.Function1<? super android.graphics.Canvas,kotlin.Unit> block);
+  }
+
+  public final class PointKt {
+    method public static inline operator int component1(android.graphics.Point);
+    method public static inline operator float component1(android.graphics.PointF);
+    method public static inline operator int component2(android.graphics.Point);
+    method public static inline operator float component2(android.graphics.PointF);
+    method public static inline operator android.graphics.Point div(android.graphics.Point, float scalar);
+    method public static inline operator android.graphics.PointF div(android.graphics.PointF, float scalar);
+    method public static inline operator android.graphics.Point minus(android.graphics.Point, android.graphics.Point p);
+    method public static inline operator android.graphics.Point minus(android.graphics.Point, int xy);
+    method public static inline operator android.graphics.PointF minus(android.graphics.PointF, android.graphics.PointF p);
+    method public static inline operator android.graphics.PointF minus(android.graphics.PointF, float xy);
+    method public static inline operator android.graphics.Point plus(android.graphics.Point, android.graphics.Point p);
+    method public static inline operator android.graphics.Point plus(android.graphics.Point, int xy);
+    method public static inline operator android.graphics.PointF plus(android.graphics.PointF, android.graphics.PointF p);
+    method public static inline operator android.graphics.PointF plus(android.graphics.PointF, float xy);
+    method public static inline operator android.graphics.Point times(android.graphics.Point, float scalar);
+    method public static inline operator android.graphics.PointF times(android.graphics.PointF, float scalar);
+    method public static inline android.graphics.Point toPoint(android.graphics.PointF);
+    method public static inline android.graphics.PointF toPointF(android.graphics.Point);
+    method public static inline operator android.graphics.Point unaryMinus(android.graphics.Point);
+    method public static inline operator android.graphics.PointF unaryMinus(android.graphics.PointF);
+  }
+
+  public final class PorterDuffKt {
+    method public static inline android.graphics.PorterDuffColorFilter toColorFilter(android.graphics.PorterDuff.Mode, int color);
+    method public static inline android.graphics.PorterDuffXfermode toXfermode(android.graphics.PorterDuff.Mode);
+  }
+
+  public final class RectKt {
+    method public static inline infix android.graphics.Rect and(android.graphics.Rect, android.graphics.Rect r);
+    method public static inline infix android.graphics.RectF and(android.graphics.RectF, android.graphics.RectF r);
+    method public static inline operator int component1(android.graphics.Rect);
+    method public static inline operator float component1(android.graphics.RectF);
+    method public static inline operator int component2(android.graphics.Rect);
+    method public static inline operator float component2(android.graphics.RectF);
+    method public static inline operator int component3(android.graphics.Rect);
+    method public static inline operator float component3(android.graphics.RectF);
+    method public static inline operator int component4(android.graphics.Rect);
+    method public static inline operator float component4(android.graphics.RectF);
+    method public static inline operator boolean contains(android.graphics.Rect, android.graphics.Point p);
+    method public static inline operator boolean contains(android.graphics.RectF, android.graphics.PointF p);
+    method public static inline operator android.graphics.Rect minus(android.graphics.Rect, android.graphics.Point xy);
+    method public static inline operator android.graphics.Region minus(android.graphics.Rect, android.graphics.Rect r);
+    method public static inline operator android.graphics.Rect minus(android.graphics.Rect, int xy);
+    method public static inline operator android.graphics.RectF minus(android.graphics.RectF, android.graphics.PointF xy);
+    method public static inline operator android.graphics.Region minus(android.graphics.RectF, android.graphics.RectF r);
+    method public static inline operator android.graphics.RectF minus(android.graphics.RectF, float xy);
+    method public static inline infix android.graphics.Rect or(android.graphics.Rect, android.graphics.Rect r);
+    method public static inline infix android.graphics.RectF or(android.graphics.RectF, android.graphics.RectF r);
+    method public static inline operator android.graphics.Rect plus(android.graphics.Rect, android.graphics.Point xy);
+    method public static inline operator android.graphics.Rect plus(android.graphics.Rect, android.graphics.Rect r);
+    method public static inline operator android.graphics.Rect plus(android.graphics.Rect, int xy);
+    method public static inline operator android.graphics.RectF plus(android.graphics.RectF, android.graphics.PointF xy);
+    method public static inline operator android.graphics.RectF plus(android.graphics.RectF, android.graphics.RectF r);
+    method public static inline operator android.graphics.RectF plus(android.graphics.RectF, float xy);
+    method public static inline operator android.graphics.Rect times(android.graphics.Rect, int factor);
+    method public static inline operator android.graphics.RectF times(android.graphics.RectF, float factor);
+    method public static inline operator android.graphics.RectF times(android.graphics.RectF, int factor);
+    method public static inline android.graphics.Rect toRect(android.graphics.RectF);
+    method public static inline android.graphics.RectF toRectF(android.graphics.Rect);
+    method public static inline android.graphics.Region toRegion(android.graphics.Rect);
+    method public static inline android.graphics.Region toRegion(android.graphics.RectF);
+    method public static inline android.graphics.RectF transform(android.graphics.RectF, android.graphics.Matrix m);
+    method public static inline infix android.graphics.Region xor(android.graphics.Rect, android.graphics.Rect r);
+    method public static inline infix android.graphics.Region xor(android.graphics.RectF, android.graphics.RectF r);
+  }
+
+  public final class RegionKt {
+    method public static inline infix android.graphics.Region and(android.graphics.Region, android.graphics.Rect r);
+    method public static inline infix android.graphics.Region and(android.graphics.Region, android.graphics.Region r);
+    method public static inline operator boolean contains(android.graphics.Region, android.graphics.Point p);
+    method public static inline void forEach(android.graphics.Region, kotlin.jvm.functions.Function1<? super android.graphics.Rect,kotlin.Unit> action);
+    method public static operator java.util.Iterator<android.graphics.Rect> iterator(android.graphics.Region);
+    method public static inline operator android.graphics.Region minus(android.graphics.Region, android.graphics.Rect r);
+    method public static inline operator android.graphics.Region minus(android.graphics.Region, android.graphics.Region r);
+    method public static inline operator android.graphics.Region not(android.graphics.Region);
+    method public static inline infix android.graphics.Region or(android.graphics.Region, android.graphics.Rect r);
+    method public static inline infix android.graphics.Region or(android.graphics.Region, android.graphics.Region r);
+    method public static inline operator android.graphics.Region plus(android.graphics.Region, android.graphics.Rect r);
+    method public static inline operator android.graphics.Region plus(android.graphics.Region, android.graphics.Region r);
+    method public static inline operator android.graphics.Region unaryMinus(android.graphics.Region);
+    method public static inline infix android.graphics.Region xor(android.graphics.Region, android.graphics.Rect r);
+    method public static inline infix android.graphics.Region xor(android.graphics.Region, android.graphics.Region r);
+  }
+
+  public final class ShaderKt {
+    method public static inline void transform(android.graphics.Shader, kotlin.jvm.functions.Function1<? super android.graphics.Matrix,kotlin.Unit> block);
+  }
+
+}
+
+package androidx.core.graphics.drawable {
+
+  public final class BitmapDrawableKt {
+    method public static inline android.graphics.drawable.BitmapDrawable toDrawable(android.graphics.Bitmap, android.content.res.Resources resources);
+  }
+
+  public final class ColorDrawableKt {
+    method @RequiresApi(26) public static inline android.graphics.drawable.ColorDrawable toDrawable(android.graphics.Color);
+    method public static inline android.graphics.drawable.ColorDrawable toDrawable(@ColorInt int);
+  }
+
+  public final class DrawableKt {
+    method public static android.graphics.Bitmap toBitmap(android.graphics.drawable.Drawable, optional @Px int width, optional @Px int height, optional android.graphics.Bitmap.Config? config);
+    method public static android.graphics.Bitmap? toBitmapOrNull(android.graphics.drawable.Drawable, optional @Px int width, optional @Px int height, optional android.graphics.Bitmap.Config? config);
+    method public static void updateBounds(android.graphics.drawable.Drawable, optional @Px int left, optional @Px int top, optional @Px int right, optional @Px int bottom);
+  }
+
+  public final class IconKt {
+    method @RequiresApi(26) public static inline android.graphics.drawable.Icon toAdaptiveIcon(android.graphics.Bitmap);
+    method @RequiresApi(26) public static inline android.graphics.drawable.Icon toIcon(android.graphics.Bitmap);
+    method @RequiresApi(26) public static inline android.graphics.drawable.Icon toIcon(android.net.Uri);
+    method @RequiresApi(26) public static inline android.graphics.drawable.Icon toIcon(byte[]);
+  }
+
+}
+
+package androidx.core.location {
+
+  public final class LocationKt {
+    method public static inline operator double component1(android.location.Location);
+    method public static inline operator double component2(android.location.Location);
+  }
+
+}
+
+package androidx.core.net {
+
+  public final class UriKt {
+    method public static java.io.File toFile(android.net.Uri);
+    method public static inline android.net.Uri toUri(java.io.File);
+    method public static inline android.net.Uri toUri(String);
+  }
+
+}
+
+package androidx.core.os {
+
+  public final class BundleKt {
+    method public static android.os.Bundle bundleOf();
+    method public static android.os.Bundle bundleOf(kotlin.Pair<java.lang.String,?>... pairs);
+  }
+
+  public final class HandlerKt {
+    method public static inline Runnable postAtTime(android.os.Handler, long uptimeMillis, optional Object? token, kotlin.jvm.functions.Function0<kotlin.Unit> action);
+    method public static inline Runnable postDelayed(android.os.Handler, long delayInMillis, optional Object? token, kotlin.jvm.functions.Function0<kotlin.Unit> action);
+  }
+
+  @RequiresApi(31) public final class OutcomeReceiverKt {
+    method @RequiresApi(31) public static <R, E extends java.lang.Throwable> android.os.OutcomeReceiver<R,E> asOutcomeReceiver(kotlin.coroutines.Continuation<? super R>);
+  }
+
+  public final class PersistableBundleKt {
+    method @RequiresApi(21) public static android.os.PersistableBundle persistableBundleOf();
+    method @RequiresApi(21) public static android.os.PersistableBundle persistableBundleOf(kotlin.Pair<java.lang.String,?>... pairs);
+    method @RequiresApi(21) public static android.os.PersistableBundle toPersistableBundle(java.util.Map<java.lang.String,?>);
+  }
+
+  public final class TraceKt {
+    method @Deprecated public static inline <T> T trace(String sectionName, kotlin.jvm.functions.Function0<? extends T> block);
+  }
+
+}
+
+package androidx.core.text {
+
+  public final class CharSequenceKt {
+    method public static inline boolean isDigitsOnly(CharSequence);
+    method public static inline int trimmedLength(CharSequence);
+  }
+
+  public final class HtmlKt {
+    method public static inline android.text.Spanned parseAsHtml(String, optional int flags, optional android.text.Html.ImageGetter? imageGetter, optional android.text.Html.TagHandler? tagHandler);
+    method public static inline String toHtml(android.text.Spanned, optional int option);
+  }
+
+  public final class LocaleKt {
+    method @RequiresApi(17) public static inline int getLayoutDirection(java.util.Locale);
+  }
+
+  public final class SpannableStringBuilderKt {
+    method public static inline android.text.SpannableStringBuilder backgroundColor(android.text.SpannableStringBuilder, @ColorInt int color, kotlin.jvm.functions.Function1<? super android.text.SpannableStringBuilder,kotlin.Unit> builderAction);
+    method public static inline android.text.SpannableStringBuilder bold(android.text.SpannableStringBuilder, kotlin.jvm.functions.Function1<? super android.text.SpannableStringBuilder,kotlin.Unit> builderAction);
+    method public static inline android.text.SpannedString buildSpannedString(kotlin.jvm.functions.Function1<? super android.text.SpannableStringBuilder,kotlin.Unit> builderAction);
+    method public static inline android.text.SpannableStringBuilder color(android.text.SpannableStringBuilder, @ColorInt int color, kotlin.jvm.functions.Function1<? super android.text.SpannableStringBuilder,kotlin.Unit> builderAction);
+    method public static inline android.text.SpannableStringBuilder inSpans(android.text.SpannableStringBuilder, Object span, kotlin.jvm.functions.Function1<? super android.text.SpannableStringBuilder,kotlin.Unit> builderAction);
+    method public static inline android.text.SpannableStringBuilder inSpans(android.text.SpannableStringBuilder, Object![] spans, kotlin.jvm.functions.Function1<? super android.text.SpannableStringBuilder,kotlin.Unit> builderAction);
+    method public static inline android.text.SpannableStringBuilder italic(android.text.SpannableStringBuilder, kotlin.jvm.functions.Function1<? super android.text.SpannableStringBuilder,kotlin.Unit> builderAction);
+    method public static inline android.text.SpannableStringBuilder scale(android.text.SpannableStringBuilder, float proportion, kotlin.jvm.functions.Function1<? super android.text.SpannableStringBuilder,kotlin.Unit> builderAction);
+    method public static inline android.text.SpannableStringBuilder strikeThrough(android.text.SpannableStringBuilder, kotlin.jvm.functions.Function1<? super android.text.SpannableStringBuilder,kotlin.Unit> builderAction);
+    method public static inline android.text.SpannableStringBuilder subscript(android.text.SpannableStringBuilder, kotlin.jvm.functions.Function1<? super android.text.SpannableStringBuilder,kotlin.Unit> builderAction);
+    method public static inline android.text.SpannableStringBuilder superscript(android.text.SpannableStringBuilder, kotlin.jvm.functions.Function1<? super android.text.SpannableStringBuilder,kotlin.Unit> builderAction);
+    method public static inline android.text.SpannableStringBuilder underline(android.text.SpannableStringBuilder, kotlin.jvm.functions.Function1<? super android.text.SpannableStringBuilder,kotlin.Unit> builderAction);
+  }
+
+  public final class SpannableStringKt {
+    method public static inline void clearSpans(android.text.Spannable);
+    method public static inline operator void set(android.text.Spannable, int start, int end, Object span);
+    method public static inline operator void set(android.text.Spannable, kotlin.ranges.IntRange range, Object span);
+    method public static inline android.text.Spannable toSpannable(CharSequence);
+  }
+
+  public final class SpannedStringKt {
+    method public static inline <reified T> T![] getSpans(android.text.Spanned, optional int start, optional int end);
+    method public static inline android.text.Spanned toSpanned(CharSequence);
+  }
+
+  public final class StringKt {
+    method public static inline String htmlEncode(String);
+  }
+
+}
+
+package androidx.core.transition {
+
+  public final class TransitionKt {
+    method @RequiresApi(19) public static inline android.transition.Transition.TransitionListener addListener(android.transition.Transition, optional kotlin.jvm.functions.Function1<? super android.transition.Transition,kotlin.Unit> onEnd, optional kotlin.jvm.functions.Function1<? super android.transition.Transition,kotlin.Unit> onStart, optional kotlin.jvm.functions.Function1<? super android.transition.Transition,kotlin.Unit> onCancel, optional kotlin.jvm.functions.Function1<? super android.transition.Transition,kotlin.Unit> onResume, optional kotlin.jvm.functions.Function1<? super android.transition.Transition,kotlin.Unit> onPause);
+    method @RequiresApi(19) public static inline android.transition.Transition.TransitionListener doOnCancel(android.transition.Transition, kotlin.jvm.functions.Function1<? super android.transition.Transition,kotlin.Unit> action);
+    method @RequiresApi(19) public static inline android.transition.Transition.TransitionListener doOnEnd(android.transition.Transition, kotlin.jvm.functions.Function1<? super android.transition.Transition,kotlin.Unit> action);
+    method @RequiresApi(19) public static inline android.transition.Transition.TransitionListener doOnPause(android.transition.Transition, kotlin.jvm.functions.Function1<? super android.transition.Transition,kotlin.Unit> action);
+    method @RequiresApi(19) public static inline android.transition.Transition.TransitionListener doOnResume(android.transition.Transition, kotlin.jvm.functions.Function1<? super android.transition.Transition,kotlin.Unit> action);
+    method @RequiresApi(19) public static inline android.transition.Transition.TransitionListener doOnStart(android.transition.Transition, kotlin.jvm.functions.Function1<? super android.transition.Transition,kotlin.Unit> action);
+  }
+
+}
+
+package androidx.core.util {
+
+  public final class AndroidXConsumerKt {
+    method public static <T> androidx.core.util.Consumer<T> asAndroidXConsumer(kotlin.coroutines.Continuation<? super T>);
+  }
+
+  public final class AtomicFileKt {
+    method @RequiresApi(17) public static inline byte[] readBytes(android.util.AtomicFile);
+    method @RequiresApi(17) public static String readText(android.util.AtomicFile, optional java.nio.charset.Charset charset);
+    method @RequiresApi(17) public static inline void tryWrite(android.util.AtomicFile, kotlin.jvm.functions.Function1<? super java.io.FileOutputStream,kotlin.Unit> block);
+    method @RequiresApi(17) public static void writeBytes(android.util.AtomicFile, byte[] array);
+    method @RequiresApi(17) public static void writeText(android.util.AtomicFile, String text, optional java.nio.charset.Charset charset);
+  }
+
+  @RequiresApi(24) public final class ConsumerKt {
+    method @RequiresApi(24) public static <T> java.util.function.Consumer<T> asConsumer(kotlin.coroutines.Continuation<? super T>);
+  }
+
+  public final class HalfKt {
+    method @RequiresApi(26) public static inline android.util.Half toHalf(double);
+    method @RequiresApi(26) public static inline android.util.Half toHalf(float);
+    method @RequiresApi(26) public static inline android.util.Half toHalf(String);
+    method @RequiresApi(26) public static inline android.util.Half toHalf(@HalfFloat short);
+  }
+
+  public final class LongSparseArrayKt {
+    method @RequiresApi(16) public static inline operator <T> boolean contains(android.util.LongSparseArray<T>, long key);
+    method @RequiresApi(16) public static inline <T> boolean containsKey(android.util.LongSparseArray<T>, long key);
+    method @RequiresApi(16) public static inline <T> boolean containsValue(android.util.LongSparseArray<T>, T value);
+    method @RequiresApi(16) public static inline <T> void forEach(android.util.LongSparseArray<T>, kotlin.jvm.functions.Function2<? super java.lang.Long,? super T,kotlin.Unit> action);
+    method @RequiresApi(16) public static inline <T> T getOrDefault(android.util.LongSparseArray<T>, long key, T defaultValue);
+    method @RequiresApi(16) public static inline <T> T getOrElse(android.util.LongSparseArray<T>, long key, kotlin.jvm.functions.Function0<? extends T> defaultValue);
+    method @RequiresApi(16) public static inline <T> int getSize(android.util.LongSparseArray<T>);
+    method @RequiresApi(16) public static inline <T> boolean isEmpty(android.util.LongSparseArray<T>);
+    method @RequiresApi(16) public static inline <T> boolean isNotEmpty(android.util.LongSparseArray<T>);
+    method @RequiresApi(16) public static <T> kotlin.collections.LongIterator keyIterator(android.util.LongSparseArray<T>);
+    method @RequiresApi(16) public static operator <T> android.util.LongSparseArray<T> plus(android.util.LongSparseArray<T>, android.util.LongSparseArray<T> other);
+    method @RequiresApi(16) public static <T> void putAll(android.util.LongSparseArray<T>, android.util.LongSparseArray<T> other);
+    method @RequiresApi(16) public static <T> boolean remove(android.util.LongSparseArray<T>, long key, T value);
+    method @RequiresApi(16) public static inline operator <T> void set(android.util.LongSparseArray<T>, long key, T value);
+    method @RequiresApi(16) public static <T> java.util.Iterator<T> valueIterator(android.util.LongSparseArray<T>);
+  }
+
+  public final class LruCacheKt {
+    method public static inline <K, V> android.util.LruCache<K,V> lruCache(int maxSize, optional kotlin.jvm.functions.Function2<? super K,? super V,java.lang.Integer> sizeOf, optional kotlin.jvm.functions.Function1<? super K,? extends V> create, optional kotlin.jvm.functions.Function4<? super java.lang.Boolean,? super K,? super V,? super V,kotlin.Unit> onEntryRemoved);
+  }
+
+  public final class PairKt {
+    method public static inline operator <F, S> F component1(android.util.Pair<F,S>);
+    method public static inline operator <F, S> F component1(androidx.core.util.Pair<F,S>);
+    method public static inline operator <F, S> S component2(android.util.Pair<F,S>);
+    method public static inline operator <F, S> S component2(androidx.core.util.Pair<F,S>);
+    method public static inline <F, S> android.util.Pair<F,S> toAndroidPair(kotlin.Pair<? extends F,? extends S>);
+    method public static inline <F, S> androidx.core.util.Pair<F,S> toAndroidXPair(kotlin.Pair<? extends F,? extends S>);
+    method public static inline <F, S> kotlin.Pair<F,S> toKotlinPair(android.util.Pair<F,S>);
+    method public static inline <F, S> kotlin.Pair<F,S> toKotlinPair(androidx.core.util.Pair<F,S>);
+  }
+
+  public final class RangeKt {
+    method @RequiresApi(21) public static inline infix <T extends java.lang.Comparable<? super T>> android.util.Range<T> and(android.util.Range<T>, android.util.Range<T> other);
+    method @RequiresApi(21) public static inline operator <T extends java.lang.Comparable<? super T>> android.util.Range<T> plus(android.util.Range<T>, android.util.Range<T> other);
+    method @RequiresApi(21) public static inline operator <T extends java.lang.Comparable<? super T>> android.util.Range<T> plus(android.util.Range<T>, T value);
+    method @RequiresApi(21) public static inline infix <T extends java.lang.Comparable<? super T>> android.util.Range<T> rangeTo(T, T that);
+    method @RequiresApi(21) public static <T extends java.lang.Comparable<? super T>> kotlin.ranges.ClosedRange<T> toClosedRange(android.util.Range<T>);
+    method @RequiresApi(21) public static <T extends java.lang.Comparable<? super T>> android.util.Range<T> toRange(kotlin.ranges.ClosedRange<T>);
+  }
+
+  public final class RunnableKt {
+    method public static Runnable asRunnable(kotlin.coroutines.Continuation<? super kotlin.Unit>);
+  }
+
+  public final class SizeKt {
+    method @RequiresApi(21) public static inline operator int component1(android.util.Size);
+    method @RequiresApi(21) public static inline operator float component1(android.util.SizeF);
+    method public static inline operator float component1(androidx.core.util.SizeFCompat);
+    method @RequiresApi(21) public static inline operator int component2(android.util.Size);
+    method @RequiresApi(21) public static inline operator float component2(android.util.SizeF);
+    method public static inline operator float component2(androidx.core.util.SizeFCompat);
+  }
+
+  public final class SparseArrayKt {
+    method public static inline operator <T> boolean contains(android.util.SparseArray<T>, int key);
+    method public static inline <T> boolean containsKey(android.util.SparseArray<T>, int key);
+    method public static inline <T> boolean containsValue(android.util.SparseArray<T>, T value);
+    method public static inline <T> void forEach(android.util.SparseArray<T>, kotlin.jvm.functions.Function2<? super java.lang.Integer,? super T,kotlin.Unit> action);
+    method public static inline <T> T getOrDefault(android.util.SparseArray<T>, int key, T defaultValue);
+    method public static inline <T> T getOrElse(android.util.SparseArray<T>, int key, kotlin.jvm.functions.Function0<? extends T> defaultValue);
+    method public static inline <T> int getSize(android.util.SparseArray<T>);
+    method public static inline <T> boolean isEmpty(android.util.SparseArray<T>);
+    method public static inline <T> boolean isNotEmpty(android.util.SparseArray<T>);
+    method public static <T> kotlin.collections.IntIterator keyIterator(android.util.SparseArray<T>);
+    method public static operator <T> android.util.SparseArray<T> plus(android.util.SparseArray<T>, android.util.SparseArray<T> other);
+    method public static <T> void putAll(android.util.SparseArray<T>, android.util.SparseArray<T> other);
+    method public static <T> boolean remove(android.util.SparseArray<T>, int key, T value);
+    method public static inline operator <T> void set(android.util.SparseArray<T>, int key, T value);
+    method public static <T> java.util.Iterator<T> valueIterator(android.util.SparseArray<T>);
+  }
+
+  public final class SparseBooleanArrayKt {
+    method public static inline operator boolean contains(android.util.SparseBooleanArray, int key);
+    method public static inline boolean containsKey(android.util.SparseBooleanArray, int key);
+    method public static inline boolean containsValue(android.util.SparseBooleanArray, boolean value);
+    method public static inline void forEach(android.util.SparseBooleanArray, kotlin.jvm.functions.Function2<? super java.lang.Integer,? super java.lang.Boolean,kotlin.Unit> action);
+    method public static inline boolean getOrDefault(android.util.SparseBooleanArray, int key, boolean defaultValue);
+    method public static inline boolean getOrElse(android.util.SparseBooleanArray, int key, kotlin.jvm.functions.Function0<java.lang.Boolean> defaultValue);
+    method public static inline int getSize(android.util.SparseBooleanArray);
+    method public static inline boolean isEmpty(android.util.SparseBooleanArray);
+    method public static inline boolean isNotEmpty(android.util.SparseBooleanArray);
+    method public static kotlin.collections.IntIterator keyIterator(android.util.SparseBooleanArray);
+    method public static operator android.util.SparseBooleanArray plus(android.util.SparseBooleanArray, android.util.SparseBooleanArray other);
+    method public static void putAll(android.util.SparseBooleanArray, android.util.SparseBooleanArray other);
+    method public static boolean remove(android.util.SparseBooleanArray, int key, boolean value);
+    method public static inline operator void set(android.util.SparseBooleanArray, int key, boolean value);
+    method public static kotlin.collections.BooleanIterator valueIterator(android.util.SparseBooleanArray);
+  }
+
+  public final class SparseIntArrayKt {
+    method public static inline operator boolean contains(android.util.SparseIntArray, int key);
+    method public static inline boolean containsKey(android.util.SparseIntArray, int key);
+    method public static inline boolean containsValue(android.util.SparseIntArray, int value);
+    method public static inline void forEach(android.util.SparseIntArray, kotlin.jvm.functions.Function2<? super java.lang.Integer,? super java.lang.Integer,kotlin.Unit> action);
+    method public static inline int getOrDefault(android.util.SparseIntArray, int key, int defaultValue);
+    method public static inline int getOrElse(android.util.SparseIntArray, int key, kotlin.jvm.functions.Function0<java.lang.Integer> defaultValue);
+    method public static inline int getSize(android.util.SparseIntArray);
+    method public static inline boolean isEmpty(android.util.SparseIntArray);
+    method public static inline boolean isNotEmpty(android.util.SparseIntArray);
+    method public static kotlin.collections.IntIterator keyIterator(android.util.SparseIntArray);
+    method public static operator android.util.SparseIntArray plus(android.util.SparseIntArray, android.util.SparseIntArray other);
+    method public static void putAll(android.util.SparseIntArray, android.util.SparseIntArray other);
+    method public static boolean remove(android.util.SparseIntArray, int key, int value);
+    method public static inline operator void set(android.util.SparseIntArray, int key, int value);
+    method public static kotlin.collections.IntIterator valueIterator(android.util.SparseIntArray);
+  }
+
+  public final class SparseLongArrayKt {
+    method @RequiresApi(18) public static inline operator boolean contains(android.util.SparseLongArray, int key);
+    method @RequiresApi(18) public static inline boolean containsKey(android.util.SparseLongArray, int key);
+    method @RequiresApi(18) public static inline boolean containsValue(android.util.SparseLongArray, long value);
+    method @RequiresApi(18) public static inline void forEach(android.util.SparseLongArray, kotlin.jvm.functions.Function2<? super java.lang.Integer,? super java.lang.Long,kotlin.Unit> action);
+    method @RequiresApi(18) public static inline long getOrDefault(android.util.SparseLongArray, int key, long defaultValue);
+    method @RequiresApi(18) public static inline long getOrElse(android.util.SparseLongArray, int key, kotlin.jvm.functions.Function0<java.lang.Long> defaultValue);
+    method @RequiresApi(18) public static inline int getSize(android.util.SparseLongArray);
+    method @RequiresApi(18) public static inline boolean isEmpty(android.util.SparseLongArray);
+    method @RequiresApi(18) public static inline boolean isNotEmpty(android.util.SparseLongArray);
+    method @RequiresApi(18) public static kotlin.collections.IntIterator keyIterator(android.util.SparseLongArray);
+    method @RequiresApi(18) public static operator android.util.SparseLongArray plus(android.util.SparseLongArray, android.util.SparseLongArray other);
+    method @RequiresApi(18) public static void putAll(android.util.SparseLongArray, android.util.SparseLongArray other);
+    method @RequiresApi(18) public static boolean remove(android.util.SparseLongArray, int key, long value);
+    method @RequiresApi(18) public static inline operator void set(android.util.SparseLongArray, int key, long value);
+    method @RequiresApi(18) public static kotlin.collections.LongIterator valueIterator(android.util.SparseLongArray);
+  }
+
+}
+
+package androidx.core.view {
+
+  public final class MenuKt {
+    method public static operator boolean contains(android.view.Menu, android.view.MenuItem item);
+    method public static inline void forEach(android.view.Menu, kotlin.jvm.functions.Function1<? super android.view.MenuItem,kotlin.Unit> action);
+    method public static inline void forEachIndexed(android.view.Menu, kotlin.jvm.functions.Function2<? super java.lang.Integer,? super android.view.MenuItem,kotlin.Unit> action);
+    method public static inline operator android.view.MenuItem get(android.view.Menu, int index);
+    method public static kotlin.sequences.Sequence<android.view.MenuItem> getChildren(android.view.Menu);
+    method public static inline int getSize(android.view.Menu);
+    method public static inline boolean isEmpty(android.view.Menu);
+    method public static inline boolean isNotEmpty(android.view.Menu);
+    method public static operator java.util.Iterator<android.view.MenuItem> iterator(android.view.Menu);
+    method public static inline operator void minusAssign(android.view.Menu, android.view.MenuItem item);
+    method public static inline void removeItemAt(android.view.Menu, int index);
+  }
+
+  public final class ViewGroupKt {
+    method public static inline operator boolean contains(android.view.ViewGroup, android.view.View view);
+    method public static inline void forEach(android.view.ViewGroup, kotlin.jvm.functions.Function1<? super android.view.View,kotlin.Unit> action);
+    method public static inline void forEachIndexed(android.view.ViewGroup, kotlin.jvm.functions.Function2<? super java.lang.Integer,? super android.view.View,kotlin.Unit> action);
+    method public static operator android.view.View get(android.view.ViewGroup, int index);
+    method public static kotlin.sequences.Sequence<android.view.View> getChildren(android.view.ViewGroup);
+    method public static kotlin.sequences.Sequence<android.view.View> getDescendants(android.view.ViewGroup);
+    method public static inline kotlin.ranges.IntRange getIndices(android.view.ViewGroup);
+    method public static inline int getSize(android.view.ViewGroup);
+    method public static inline boolean isEmpty(android.view.ViewGroup);
+    method public static inline boolean isNotEmpty(android.view.ViewGroup);
+    method public static operator java.util.Iterator<android.view.View> iterator(android.view.ViewGroup);
+    method public static inline operator void minusAssign(android.view.ViewGroup, android.view.View view);
+    method public static inline operator void plusAssign(android.view.ViewGroup, android.view.View view);
+    method public static inline void setMargins(android.view.ViewGroup.MarginLayoutParams, @Px int size);
+    method public static inline void updateMargins(android.view.ViewGroup.MarginLayoutParams, optional @Px int left, optional @Px int top, optional @Px int right, optional @Px int bottom);
+    method @RequiresApi(17) public static inline void updateMarginsRelative(android.view.ViewGroup.MarginLayoutParams, optional @Px int start, optional @Px int top, optional @Px int end, optional @Px int bottom);
+  }
+
+  public final class ViewKt {
+    method public static inline void doOnAttach(android.view.View, kotlin.jvm.functions.Function1<? super android.view.View,kotlin.Unit> action);
+    method public static inline void doOnDetach(android.view.View, kotlin.jvm.functions.Function1<? super android.view.View,kotlin.Unit> action);
+    method public static inline void doOnLayout(android.view.View, kotlin.jvm.functions.Function1<? super android.view.View,kotlin.Unit> action);
+    method public static inline void doOnNextLayout(android.view.View, kotlin.jvm.functions.Function1<? super android.view.View,kotlin.Unit> action);
+    method public static inline androidx.core.view.OneShotPreDrawListener doOnPreDraw(android.view.View, kotlin.jvm.functions.Function1<? super android.view.View,kotlin.Unit> action);
+    method public static android.graphics.Bitmap drawToBitmap(android.view.View, optional android.graphics.Bitmap.Config config);
+    method public static kotlin.sequences.Sequence<android.view.View> getAllViews(android.view.View);
+    method public static kotlin.sequences.Sequence<android.view.ViewParent> getAncestors(android.view.View);
+    method public static inline int getMarginBottom(android.view.View);
+    method public static inline int getMarginEnd(android.view.View);
+    method public static inline int getMarginLeft(android.view.View);
+    method public static inline int getMarginRight(android.view.View);
+    method public static inline int getMarginStart(android.view.View);
+    method public static inline int getMarginTop(android.view.View);
+    method public static inline boolean isGone(android.view.View);
+    method public static inline boolean isInvisible(android.view.View);
+    method public static inline boolean isVisible(android.view.View);
+    method public static inline Runnable postDelayed(android.view.View, long delayInMillis, kotlin.jvm.functions.Function0<kotlin.Unit> action);
+    method @RequiresApi(16) public static Runnable postOnAnimationDelayed(android.view.View, long delayInMillis, kotlin.jvm.functions.Function0<kotlin.Unit> action);
+    method public static inline void setGone(android.view.View, boolean);
+    method public static inline void setInvisible(android.view.View, boolean);
+    method public static inline void setPadding(android.view.View, @Px int size);
+    method public static inline void setVisible(android.view.View, boolean);
+    method public static inline void updateLayoutParams(android.view.View, kotlin.jvm.functions.Function1<? super android.view.ViewGroup.LayoutParams,kotlin.Unit> block);
+    method public static inline <reified T extends android.view.ViewGroup.LayoutParams> void updateLayoutParamsTyped(android.view.View, kotlin.jvm.functions.Function1<? super T,kotlin.Unit> block);
+    method public static inline void updatePadding(android.view.View, optional @Px int left, optional @Px int top, optional @Px int right, optional @Px int bottom);
+    method @RequiresApi(17) public static inline void updatePaddingRelative(android.view.View, optional @Px int start, optional @Px int top, optional @Px int end, optional @Px int bottom);
+  }
+
+}
+
+package androidx.core.widget {
+
+  public final class TextViewKt {
+    method public static inline android.text.TextWatcher addTextChangedListener(android.widget.TextView, optional kotlin.jvm.functions.Function4<? super java.lang.CharSequence,? super java.lang.Integer,? super java.lang.Integer,? super java.lang.Integer,kotlin.Unit> beforeTextChanged, optional kotlin.jvm.functions.Function4<? super java.lang.CharSequence,? super java.lang.Integer,? super java.lang.Integer,? super java.lang.Integer,kotlin.Unit> onTextChanged, optional kotlin.jvm.functions.Function1<? super android.text.Editable,kotlin.Unit> afterTextChanged);
+    method public static inline android.text.TextWatcher doAfterTextChanged(android.widget.TextView, kotlin.jvm.functions.Function1<? super android.text.Editable,kotlin.Unit> action);
+    method public static inline android.text.TextWatcher doBeforeTextChanged(android.widget.TextView, kotlin.jvm.functions.Function4<? super java.lang.CharSequence,? super java.lang.Integer,? super java.lang.Integer,? super java.lang.Integer,kotlin.Unit> action);
+    method public static inline android.text.TextWatcher doOnTextChanged(android.widget.TextView, kotlin.jvm.functions.Function4<? super java.lang.CharSequence,? super java.lang.Integer,? super java.lang.Integer,? super java.lang.Integer,kotlin.Unit> action);
+  }
+
+}
+
diff --git a/core/core-testing/api/1.11.0-beta01.txt b/core/core-testing/api/1.11.0-beta01.txt
new file mode 100644
index 0000000..40c6d07
--- /dev/null
+++ b/core/core-testing/api/1.11.0-beta01.txt
@@ -0,0 +1,11 @@
+// Signature format: 4.0
+package androidx.core.testing.util {
+
+  public final class TestConsumer<T> implements androidx.core.util.Consumer<T> {
+    ctor public TestConsumer();
+    method public void accept(T t);
+    method public void assertValues(java.util.List<? extends T> values);
+  }
+
+}
+
diff --git a/core/core-testing/api/res-1.11.0-beta01.txt b/core/core-testing/api/res-1.11.0-beta01.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/core/core-testing/api/res-1.11.0-beta01.txt
diff --git a/core/core-testing/api/restricted_1.11.0-beta01.txt b/core/core-testing/api/restricted_1.11.0-beta01.txt
new file mode 100644
index 0000000..40c6d07
--- /dev/null
+++ b/core/core-testing/api/restricted_1.11.0-beta01.txt
@@ -0,0 +1,11 @@
+// Signature format: 4.0
+package androidx.core.testing.util {
+
+  public final class TestConsumer<T> implements androidx.core.util.Consumer<T> {
+    ctor public TestConsumer();
+    method public void accept(T t);
+    method public void assertValues(java.util.List<? extends T> values);
+  }
+
+}
+
diff --git a/core/core/api/public_plus_experimental_current.txt b/core/core/api/1.11.0-beta01.txt
similarity index 100%
rename from core/core/api/public_plus_experimental_current.txt
rename to core/core/api/1.11.0-beta01.txt
diff --git a/core/core/api/current.txt b/core/core/api/current.txt
index be1967c..0c385e3 100644
--- a/core/core/api/current.txt
+++ b/core/core/api/current.txt
@@ -1842,12 +1842,19 @@
     method @Deprecated @ChecksSdkIntAtLeast(api=android.os.Build.VERSION_CODES.Q) public static boolean isAtLeastQ();
     method @Deprecated @ChecksSdkIntAtLeast(api=android.os.Build.VERSION_CODES.R) public static boolean isAtLeastR();
     method @Deprecated @ChecksSdkIntAtLeast(api=31, codename="S") public static boolean isAtLeastS();
+    method @Deprecated @ChecksSdkIntAtLeast(api=32, codename="Sv2") @androidx.core.os.BuildCompat.PrereleaseSdkCheck public static boolean isAtLeastSv2();
+    method @Deprecated @ChecksSdkIntAtLeast(api=33, codename="Tiramisu") @androidx.core.os.BuildCompat.PrereleaseSdkCheck public static boolean isAtLeastT();
+    method @ChecksSdkIntAtLeast(api=34, codename="UpsideDownCake") @androidx.core.os.BuildCompat.PrereleaseSdkCheck public static boolean isAtLeastU();
+    method @ChecksSdkIntAtLeast(codename="VanillaIceCream") @androidx.core.os.BuildCompat.PrereleaseSdkCheck public static boolean isAtLeastV();
     field @ChecksSdkIntAtLeast(extension=android.os.ext.SdkExtensions.AD_SERVICES) public static final int AD_SERVICES_EXTENSION_INT;
     field @ChecksSdkIntAtLeast(extension=android.os.Build.VERSION_CODES.R) public static final int R_EXTENSION_INT;
     field @ChecksSdkIntAtLeast(extension=android.os.Build.VERSION_CODES.S) public static final int S_EXTENSION_INT;
     field @ChecksSdkIntAtLeast(extension=android.os.Build.VERSION_CODES.TIRAMISU) public static final int T_EXTENSION_INT;
   }
 
+  @RequiresOptIn @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) public static @interface BuildCompat.PrereleaseSdkCheck {
+  }
+
   public final class BundleCompat {
     method public static android.os.IBinder? getBinder(android.os.Bundle, String?);
     method public static <T> T? getParcelable(android.os.Bundle, String?, Class<T!>);
diff --git a/core/core/api/res-1.11.0-beta01.txt b/core/core/api/res-1.11.0-beta01.txt
new file mode 100644
index 0000000..dd913d3
--- /dev/null
+++ b/core/core/api/res-1.11.0-beta01.txt
@@ -0,0 +1,21 @@
+attr alpha
+attr font
+attr fontProviderAuthority
+attr fontProviderCerts
+attr fontProviderFetchStrategy
+attr fontProviderFetchTimeout
+attr fontProviderPackage
+attr fontProviderQuery
+attr fontProviderSystemFontFamily
+attr fontStyle
+attr fontVariationSettings
+attr fontWeight
+attr lStar
+attr queryPatterns
+attr shortcutMatchRequired
+attr ttcIndex
+style TextAppearance_Compat_Notification
+style TextAppearance_Compat_Notification_Info
+style TextAppearance_Compat_Notification_Line2
+style TextAppearance_Compat_Notification_Time
+style TextAppearance_Compat_Notification_Title
diff --git a/core/core/api/restricted_1.11.0-beta01.txt b/core/core/api/restricted_1.11.0-beta01.txt
new file mode 100644
index 0000000..29edb7b
--- /dev/null
+++ b/core/core/api/restricted_1.11.0-beta01.txt
@@ -0,0 +1,4583 @@
+// Signature format: 4.0
+package android.support.v4.os {
+
+  @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public class ResultReceiver implements android.os.Parcelable {
+    ctor public ResultReceiver(android.os.Handler!);
+    method public int describeContents();
+    method protected void onReceiveResult(int, android.os.Bundle!);
+    method public void send(int, android.os.Bundle!);
+    method public void writeToParcel(android.os.Parcel, int);
+    field public static final android.os.Parcelable.Creator<android.support.v4.os.ResultReceiver!>! CREATOR;
+  }
+
+}
+
+package androidx.core.accessibilityservice {
+
+  public final class AccessibilityServiceInfoCompat {
+    method public static String capabilityToString(int);
+    method public static String feedbackTypeToString(int);
+    method public static String? flagToString(int);
+    method public static int getCapabilities(android.accessibilityservice.AccessibilityServiceInfo);
+    method public static String? loadDescription(android.accessibilityservice.AccessibilityServiceInfo, android.content.pm.PackageManager);
+    field public static final int CAPABILITY_CAN_FILTER_KEY_EVENTS = 8; // 0x8
+    field public static final int CAPABILITY_CAN_REQUEST_ENHANCED_WEB_ACCESSIBILITY = 4; // 0x4
+    field public static final int CAPABILITY_CAN_REQUEST_TOUCH_EXPLORATION = 2; // 0x2
+    field public static final int CAPABILITY_CAN_RETRIEVE_WINDOW_CONTENT = 1; // 0x1
+    field public static final int FEEDBACK_ALL_MASK = -1; // 0xffffffff
+    field public static final int FEEDBACK_BRAILLE = 32; // 0x20
+    field public static final int FLAG_INCLUDE_NOT_IMPORTANT_VIEWS = 2; // 0x2
+    field public static final int FLAG_REPORT_VIEW_IDS = 16; // 0x10
+    field public static final int FLAG_REQUEST_ENHANCED_WEB_ACCESSIBILITY = 8; // 0x8
+    field public static final int FLAG_REQUEST_FILTER_KEY_EVENTS = 32; // 0x20
+    field public static final int FLAG_REQUEST_TOUCH_EXPLORATION_MODE = 4; // 0x4
+  }
+
+}
+
+package androidx.core.app {
+
+  public class ActivityCompat extends androidx.core.content.ContextCompat {
+    ctor protected ActivityCompat();
+    method public static void finishAffinity(android.app.Activity);
+    method public static void finishAfterTransition(android.app.Activity);
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static androidx.core.app.ActivityCompat.PermissionCompatDelegate? getPermissionCompatDelegate();
+    method public static android.net.Uri? getReferrer(android.app.Activity);
+    method @Deprecated public static boolean invalidateOptionsMenu(android.app.Activity!);
+    method public static boolean isLaunchedFromBubble(android.app.Activity);
+    method public static void postponeEnterTransition(android.app.Activity);
+    method public static void recreate(android.app.Activity);
+    method public static androidx.core.view.DragAndDropPermissionsCompat? requestDragAndDropPermissions(android.app.Activity, android.view.DragEvent);
+    method public static void requestPermissions(android.app.Activity, String![], @IntRange(from=0) int);
+    method public static <T extends android.view.View> T requireViewById(android.app.Activity, @IdRes int);
+    method public static void setEnterSharedElementCallback(android.app.Activity, androidx.core.app.SharedElementCallback?);
+    method public static void setExitSharedElementCallback(android.app.Activity, androidx.core.app.SharedElementCallback?);
+    method public static void setLocusContext(android.app.Activity, androidx.core.content.LocusIdCompat?, android.os.Bundle?);
+    method public static void setPermissionCompatDelegate(androidx.core.app.ActivityCompat.PermissionCompatDelegate?);
+    method public static boolean shouldShowRequestPermissionRationale(android.app.Activity, String);
+    method public static void startActivityForResult(android.app.Activity, android.content.Intent, int, android.os.Bundle?);
+    method public static void startIntentSenderForResult(android.app.Activity, android.content.IntentSender, int, android.content.Intent?, int, int, int, android.os.Bundle?) throws android.content.IntentSender.SendIntentException;
+    method public static void startPostponedEnterTransition(android.app.Activity);
+  }
+
+  public static interface ActivityCompat.OnRequestPermissionsResultCallback {
+    method public void onRequestPermissionsResult(int, String![], int[]);
+  }
+
+  public static interface ActivityCompat.PermissionCompatDelegate {
+    method public boolean onActivityResult(android.app.Activity, @IntRange(from=0) int, int, android.content.Intent?);
+    method public boolean requestPermissions(android.app.Activity, String![], @IntRange(from=0) int);
+  }
+
+  @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static interface ActivityCompat.RequestPermissionsRequestCodeValidator {
+    method public void validateRequestPermissionsRequestCode(int);
+  }
+
+  public final class ActivityManagerCompat {
+    method public static boolean isLowRamDevice(android.app.ActivityManager);
+  }
+
+  public class ActivityOptionsCompat {
+    ctor protected ActivityOptionsCompat();
+    method public android.graphics.Rect? getLaunchBounds();
+    method public static androidx.core.app.ActivityOptionsCompat makeBasic();
+    method public static androidx.core.app.ActivityOptionsCompat makeClipRevealAnimation(android.view.View, int, int, int, int);
+    method public static androidx.core.app.ActivityOptionsCompat makeCustomAnimation(android.content.Context, int, int);
+    method public static androidx.core.app.ActivityOptionsCompat makeScaleUpAnimation(android.view.View, int, int, int, int);
+    method public static androidx.core.app.ActivityOptionsCompat makeSceneTransitionAnimation(android.app.Activity, android.view.View, String);
+    method public static androidx.core.app.ActivityOptionsCompat makeSceneTransitionAnimation(android.app.Activity, androidx.core.util.Pair<android.view.View!,java.lang.String!>!...);
+    method public static androidx.core.app.ActivityOptionsCompat makeTaskLaunchBehind();
+    method public static androidx.core.app.ActivityOptionsCompat makeThumbnailScaleUpAnimation(android.view.View, android.graphics.Bitmap, int, int);
+    method public void requestUsageTimeReport(android.app.PendingIntent);
+    method public androidx.core.app.ActivityOptionsCompat setLaunchBounds(android.graphics.Rect?);
+    method public android.os.Bundle? toBundle();
+    method public void update(androidx.core.app.ActivityOptionsCompat);
+    field public static final String EXTRA_USAGE_TIME_REPORT = "android.activity.usage_time";
+    field public static final String EXTRA_USAGE_TIME_REPORT_PACKAGES = "android.usage_time_packages";
+  }
+
+  public final class AlarmManagerCompat {
+    method public static void setAlarmClock(android.app.AlarmManager, long, android.app.PendingIntent, android.app.PendingIntent);
+    method public static void setAndAllowWhileIdle(android.app.AlarmManager, int, long, android.app.PendingIntent);
+    method public static void setExact(android.app.AlarmManager, int, long, android.app.PendingIntent);
+    method public static void setExactAndAllowWhileIdle(android.app.AlarmManager, int, long, android.app.PendingIntent);
+  }
+
+  @RequiresApi(28) public class AppComponentFactory extends android.app.AppComponentFactory {
+    ctor public AppComponentFactory();
+    method public final android.app.Activity instantiateActivity(ClassLoader, String, android.content.Intent?) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException;
+    method public android.app.Activity instantiateActivityCompat(ClassLoader, String, android.content.Intent?) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException;
+    method public final android.app.Application instantiateApplication(ClassLoader, String) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException;
+    method public android.app.Application instantiateApplicationCompat(ClassLoader, String) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException;
+    method public final android.content.ContentProvider instantiateProvider(ClassLoader, String) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException;
+    method public android.content.ContentProvider instantiateProviderCompat(ClassLoader, String) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException;
+    method public final android.content.BroadcastReceiver instantiateReceiver(ClassLoader, String, android.content.Intent?) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException;
+    method public android.content.BroadcastReceiver instantiateReceiverCompat(ClassLoader, String, android.content.Intent?) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException;
+    method public final android.app.Service instantiateService(ClassLoader, String, android.content.Intent?) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException;
+    method public android.app.Service instantiateServiceCompat(ClassLoader, String, android.content.Intent?) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException;
+  }
+
+  public class AppLaunchChecker {
+    ctor @Deprecated public AppLaunchChecker();
+    method public static boolean hasStartedFromLauncher(android.content.Context);
+    method public static void onActivityCreate(android.app.Activity);
+  }
+
+  @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public class AppLocalesStorageHelper {
+    method public static void persistLocales(android.content.Context, String);
+    method public static String readLocales(android.content.Context);
+  }
+
+  public final class AppOpsManagerCompat {
+    method public static int checkOrNoteProxyOp(android.content.Context, int, String, String);
+    method public static int noteOp(android.content.Context, String, int, String);
+    method public static int noteOpNoThrow(android.content.Context, String, int, String);
+    method public static int noteProxyOp(android.content.Context, String, String);
+    method public static int noteProxyOpNoThrow(android.content.Context, String, String);
+    method public static String? permissionToOp(String);
+    field public static final int MODE_ALLOWED = 0; // 0x0
+    field public static final int MODE_DEFAULT = 3; // 0x3
+    field public static final int MODE_ERRORED = 2; // 0x2
+    field public static final int MODE_IGNORED = 1; // 0x1
+  }
+
+  @Deprecated public final class BundleCompat {
+    method @Deprecated public static android.os.IBinder? getBinder(android.os.Bundle, String?);
+    method @Deprecated public static void putBinder(android.os.Bundle, String?, android.os.IBinder?);
+  }
+
+  @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public class ComponentActivity extends android.app.Activity implements androidx.core.view.KeyEventDispatcher.Component androidx.lifecycle.LifecycleOwner {
+    ctor public ComponentActivity();
+    method @Deprecated @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public <T extends androidx.core.app.ComponentActivity.ExtraData> T! getExtraData(Class<T!>!);
+    method public androidx.lifecycle.Lifecycle getLifecycle();
+    method @Deprecated @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public void putExtraData(androidx.core.app.ComponentActivity.ExtraData!);
+    method protected final boolean shouldDumpInternalState(String![]?);
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public boolean superDispatchKeyEvent(android.view.KeyEvent);
+  }
+
+  @Deprecated @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static class ComponentActivity.ExtraData {
+    ctor @Deprecated public ComponentActivity.ExtraData();
+  }
+
+  @RequiresApi(api=28) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public class CoreComponentFactory extends android.app.AppComponentFactory {
+    ctor public CoreComponentFactory();
+  }
+
+  @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static interface CoreComponentFactory.CompatWrapped {
+    method public Object! getWrapper();
+  }
+
+  public class DialogCompat {
+    method public static android.view.View requireViewById(android.app.Dialog, int);
+  }
+
+  public class FrameMetricsAggregator {
+    ctor public FrameMetricsAggregator();
+    ctor public FrameMetricsAggregator(@androidx.core.app.FrameMetricsAggregator.MetricType int);
+    method public void add(android.app.Activity);
+    method public android.util.SparseIntArray![]? getMetrics();
+    method public android.util.SparseIntArray![]? remove(android.app.Activity);
+    method public android.util.SparseIntArray![]? reset();
+    method public android.util.SparseIntArray![]? stop();
+    field public static final int ANIMATION_DURATION = 256; // 0x100
+    field public static final int ANIMATION_INDEX = 8; // 0x8
+    field public static final int COMMAND_DURATION = 32; // 0x20
+    field public static final int COMMAND_INDEX = 5; // 0x5
+    field public static final int DELAY_DURATION = 128; // 0x80
+    field public static final int DELAY_INDEX = 7; // 0x7
+    field public static final int DRAW_DURATION = 8; // 0x8
+    field public static final int DRAW_INDEX = 3; // 0x3
+    field public static final int EVERY_DURATION = 511; // 0x1ff
+    field public static final int INPUT_DURATION = 2; // 0x2
+    field public static final int INPUT_INDEX = 1; // 0x1
+    field public static final int LAYOUT_MEASURE_DURATION = 4; // 0x4
+    field public static final int LAYOUT_MEASURE_INDEX = 2; // 0x2
+    field public static final int SWAP_DURATION = 64; // 0x40
+    field public static final int SWAP_INDEX = 6; // 0x6
+    field public static final int SYNC_DURATION = 16; // 0x10
+    field public static final int SYNC_INDEX = 4; // 0x4
+    field public static final int TOTAL_DURATION = 1; // 0x1
+    field public static final int TOTAL_INDEX = 0; // 0x0
+  }
+
+  @IntDef(flag=true, value={androidx.core.app.FrameMetricsAggregator.TOTAL_DURATION, androidx.core.app.FrameMetricsAggregator.INPUT_DURATION, androidx.core.app.FrameMetricsAggregator.LAYOUT_MEASURE_DURATION, androidx.core.app.FrameMetricsAggregator.DRAW_DURATION, androidx.core.app.FrameMetricsAggregator.SYNC_DURATION, androidx.core.app.FrameMetricsAggregator.COMMAND_DURATION, androidx.core.app.FrameMetricsAggregator.SWAP_DURATION, androidx.core.app.FrameMetricsAggregator.DELAY_DURATION, androidx.core.app.FrameMetricsAggregator.ANIMATION_DURATION, androidx.core.app.FrameMetricsAggregator.EVERY_DURATION}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface FrameMetricsAggregator.MetricType {
+  }
+
+  @Deprecated public abstract class JobIntentService extends android.app.Service {
+    ctor @Deprecated public JobIntentService();
+    method @Deprecated public static void enqueueWork(android.content.Context, android.content.ComponentName, int, android.content.Intent);
+    method @Deprecated public static void enqueueWork(android.content.Context, Class<?>, int, android.content.Intent);
+    method @Deprecated public boolean isStopped();
+    method @Deprecated public android.os.IBinder! onBind(android.content.Intent);
+    method @Deprecated protected abstract void onHandleWork(android.content.Intent);
+    method @Deprecated public boolean onStopCurrentWork();
+    method @Deprecated public void setInterruptIfStopped(boolean);
+  }
+
+  public final class LocaleManagerCompat {
+    method @AnyThread public static androidx.core.os.LocaleListCompat getApplicationLocales(android.content.Context);
+    method @AnyThread public static androidx.core.os.LocaleListCompat getSystemLocales(android.content.Context);
+  }
+
+  public final class MultiWindowModeChangedInfo {
+    ctor public MultiWindowModeChangedInfo(boolean);
+    ctor @RequiresApi(26) public MultiWindowModeChangedInfo(boolean, android.content.res.Configuration);
+    method @RequiresApi(26) public android.content.res.Configuration getNewConfig();
+    method public boolean isInMultiWindowMode();
+  }
+
+  public final class NavUtils {
+    method public static android.content.Intent? getParentActivityIntent(android.app.Activity);
+    method public static android.content.Intent? getParentActivityIntent(android.content.Context, android.content.ComponentName) throws android.content.pm.PackageManager.NameNotFoundException;
+    method public static android.content.Intent? getParentActivityIntent(android.content.Context, Class<?>) throws android.content.pm.PackageManager.NameNotFoundException;
+    method public static String? getParentActivityName(android.app.Activity);
+    method public static String? getParentActivityName(android.content.Context, android.content.ComponentName) throws android.content.pm.PackageManager.NameNotFoundException;
+    method public static void navigateUpFromSameTask(android.app.Activity);
+    method public static void navigateUpTo(android.app.Activity, android.content.Intent);
+    method public static boolean shouldUpRecreateTask(android.app.Activity, android.content.Intent);
+    field public static final String PARENT_ACTIVITY = "android.support.PARENT_ACTIVITY";
+  }
+
+  @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public interface NotificationBuilderWithBuilderAccessor {
+    method public android.app.Notification.Builder! getBuilder();
+  }
+
+  public class NotificationChannelCompat {
+    method public boolean canBubble();
+    method public boolean canBypassDnd();
+    method public boolean canShowBadge();
+    method public android.media.AudioAttributes? getAudioAttributes();
+    method public String? getConversationId();
+    method public String? getDescription();
+    method public String? getGroup();
+    method public String getId();
+    method public int getImportance();
+    method public int getLightColor();
+    method @androidx.core.app.NotificationCompat.NotificationVisibility public int getLockscreenVisibility();
+    method public CharSequence? getName();
+    method public String? getParentChannelId();
+    method public android.net.Uri? getSound();
+    method public long[]? getVibrationPattern();
+    method public boolean isImportantConversation();
+    method public boolean shouldShowLights();
+    method public boolean shouldVibrate();
+    method public androidx.core.app.NotificationChannelCompat.Builder toBuilder();
+    field public static final String DEFAULT_CHANNEL_ID = "miscellaneous";
+  }
+
+  public static class NotificationChannelCompat.Builder {
+    ctor public NotificationChannelCompat.Builder(String, int);
+    method public androidx.core.app.NotificationChannelCompat build();
+    method public androidx.core.app.NotificationChannelCompat.Builder setConversationId(String, String);
+    method public androidx.core.app.NotificationChannelCompat.Builder setDescription(String?);
+    method public androidx.core.app.NotificationChannelCompat.Builder setGroup(String?);
+    method public androidx.core.app.NotificationChannelCompat.Builder setImportance(int);
+    method public androidx.core.app.NotificationChannelCompat.Builder setLightColor(int);
+    method public androidx.core.app.NotificationChannelCompat.Builder setLightsEnabled(boolean);
+    method public androidx.core.app.NotificationChannelCompat.Builder setName(CharSequence?);
+    method public androidx.core.app.NotificationChannelCompat.Builder setShowBadge(boolean);
+    method public androidx.core.app.NotificationChannelCompat.Builder setSound(android.net.Uri?, android.media.AudioAttributes?);
+    method public androidx.core.app.NotificationChannelCompat.Builder setVibrationEnabled(boolean);
+    method public androidx.core.app.NotificationChannelCompat.Builder setVibrationPattern(long[]?);
+  }
+
+  public class NotificationChannelGroupCompat {
+    method public java.util.List<androidx.core.app.NotificationChannelCompat!> getChannels();
+    method public String? getDescription();
+    method public String getId();
+    method public CharSequence? getName();
+    method public boolean isBlocked();
+    method public androidx.core.app.NotificationChannelGroupCompat.Builder toBuilder();
+  }
+
+  public static class NotificationChannelGroupCompat.Builder {
+    ctor public NotificationChannelGroupCompat.Builder(String);
+    method public androidx.core.app.NotificationChannelGroupCompat build();
+    method public androidx.core.app.NotificationChannelGroupCompat.Builder setDescription(String?);
+    method public androidx.core.app.NotificationChannelGroupCompat.Builder setName(CharSequence?);
+  }
+
+  public class NotificationCompat {
+    ctor @Deprecated public NotificationCompat();
+    method public static androidx.core.app.NotificationCompat.Action? getAction(android.app.Notification, int);
+    method public static int getActionCount(android.app.Notification);
+    method public static boolean getAllowSystemGeneratedContextualActions(android.app.Notification);
+    method public static boolean getAutoCancel(android.app.Notification);
+    method public static int getBadgeIconType(android.app.Notification);
+    method public static androidx.core.app.NotificationCompat.BubbleMetadata? getBubbleMetadata(android.app.Notification);
+    method public static String? getCategory(android.app.Notification);
+    method public static String? getChannelId(android.app.Notification);
+    method public static int getColor(android.app.Notification);
+    method @RequiresApi(19) public static CharSequence? getContentInfo(android.app.Notification);
+    method @RequiresApi(19) public static CharSequence? getContentText(android.app.Notification);
+    method @RequiresApi(19) public static CharSequence? getContentTitle(android.app.Notification);
+    method public static android.os.Bundle? getExtras(android.app.Notification);
+    method public static String? getGroup(android.app.Notification);
+    method @androidx.core.app.NotificationCompat.GroupAlertBehavior public static int getGroupAlertBehavior(android.app.Notification);
+    method @RequiresApi(21) public static java.util.List<androidx.core.app.NotificationCompat.Action!> getInvisibleActions(android.app.Notification);
+    method public static boolean getLocalOnly(android.app.Notification);
+    method public static androidx.core.content.LocusIdCompat? getLocusId(android.app.Notification);
+    method public static boolean getOngoing(android.app.Notification);
+    method public static boolean getOnlyAlertOnce(android.app.Notification);
+    method public static java.util.List<androidx.core.app.Person!> getPeople(android.app.Notification);
+    method public static android.app.Notification? getPublicVersion(android.app.Notification);
+    method public static CharSequence? getSettingsText(android.app.Notification);
+    method public static String? getShortcutId(android.app.Notification);
+    method @RequiresApi(19) public static boolean getShowWhen(android.app.Notification);
+    method public static String? getSortKey(android.app.Notification);
+    method @RequiresApi(19) public static CharSequence? getSubText(android.app.Notification);
+    method public static long getTimeoutAfter(android.app.Notification);
+    method @RequiresApi(19) public static boolean getUsesChronometer(android.app.Notification);
+    method @androidx.core.app.NotificationCompat.NotificationVisibility public static int getVisibility(android.app.Notification);
+    method public static boolean isGroupSummary(android.app.Notification);
+    method public static android.graphics.Bitmap? reduceLargeIconSize(android.content.Context, android.graphics.Bitmap?);
+    field public static final int BADGE_ICON_LARGE = 2; // 0x2
+    field public static final int BADGE_ICON_NONE = 0; // 0x0
+    field public static final int BADGE_ICON_SMALL = 1; // 0x1
+    field public static final String CATEGORY_ALARM = "alarm";
+    field public static final String CATEGORY_CALL = "call";
+    field public static final String CATEGORY_EMAIL = "email";
+    field public static final String CATEGORY_ERROR = "err";
+    field public static final String CATEGORY_EVENT = "event";
+    field public static final String CATEGORY_LOCATION_SHARING = "location_sharing";
+    field public static final String CATEGORY_MESSAGE = "msg";
+    field public static final String CATEGORY_MISSED_CALL = "missed_call";
+    field public static final String CATEGORY_NAVIGATION = "navigation";
+    field public static final String CATEGORY_PROGRESS = "progress";
+    field public static final String CATEGORY_PROMO = "promo";
+    field public static final String CATEGORY_RECOMMENDATION = "recommendation";
+    field public static final String CATEGORY_REMINDER = "reminder";
+    field public static final String CATEGORY_SERVICE = "service";
+    field public static final String CATEGORY_SOCIAL = "social";
+    field public static final String CATEGORY_STATUS = "status";
+    field public static final String CATEGORY_STOPWATCH = "stopwatch";
+    field public static final String CATEGORY_SYSTEM = "sys";
+    field public static final String CATEGORY_TRANSPORT = "transport";
+    field public static final String CATEGORY_WORKOUT = "workout";
+    field @ColorInt public static final int COLOR_DEFAULT = 0; // 0x0
+    field public static final int DEFAULT_ALL = -1; // 0xffffffff
+    field public static final int DEFAULT_LIGHTS = 4; // 0x4
+    field public static final int DEFAULT_SOUND = 1; // 0x1
+    field public static final int DEFAULT_VIBRATE = 2; // 0x2
+    field public static final String EXTRA_ANSWER_COLOR = "android.answerColor";
+    field public static final String EXTRA_ANSWER_INTENT = "android.answerIntent";
+    field public static final String EXTRA_AUDIO_CONTENTS_URI = "android.audioContents";
+    field public static final String EXTRA_BACKGROUND_IMAGE_URI = "android.backgroundImageUri";
+    field public static final String EXTRA_BIG_TEXT = "android.bigText";
+    field public static final String EXTRA_CALL_IS_VIDEO = "android.callIsVideo";
+    field public static final String EXTRA_CALL_PERSON = "android.callPerson";
+    field public static final String EXTRA_CALL_PERSON_COMPAT = "android.callPersonCompat";
+    field public static final String EXTRA_CALL_TYPE = "android.callType";
+    field public static final String EXTRA_CHANNEL_GROUP_ID = "android.intent.extra.CHANNEL_GROUP_ID";
+    field public static final String EXTRA_CHANNEL_ID = "android.intent.extra.CHANNEL_ID";
+    field public static final String EXTRA_CHRONOMETER_COUNT_DOWN = "android.chronometerCountDown";
+    field public static final String EXTRA_COLORIZED = "android.colorized";
+    field public static final String EXTRA_COMPACT_ACTIONS = "android.compactActions";
+    field public static final String EXTRA_COMPAT_TEMPLATE = "androidx.core.app.extra.COMPAT_TEMPLATE";
+    field public static final String EXTRA_CONVERSATION_TITLE = "android.conversationTitle";
+    field public static final String EXTRA_DECLINE_COLOR = "android.declineColor";
+    field public static final String EXTRA_DECLINE_INTENT = "android.declineIntent";
+    field public static final String EXTRA_HANG_UP_INTENT = "android.hangUpIntent";
+    field public static final String EXTRA_HIDDEN_CONVERSATION_TITLE = "android.hiddenConversationTitle";
+    field public static final String EXTRA_HISTORIC_MESSAGES = "android.messages.historic";
+    field public static final String EXTRA_INFO_TEXT = "android.infoText";
+    field public static final String EXTRA_IS_GROUP_CONVERSATION = "android.isGroupConversation";
+    field public static final String EXTRA_LARGE_ICON = "android.largeIcon";
+    field public static final String EXTRA_LARGE_ICON_BIG = "android.largeIcon.big";
+    field public static final String EXTRA_MEDIA_SESSION = "android.mediaSession";
+    field public static final String EXTRA_MESSAGES = "android.messages";
+    field public static final String EXTRA_MESSAGING_STYLE_USER = "android.messagingStyleUser";
+    field public static final String EXTRA_NOTIFICATION_ID = "android.intent.extra.NOTIFICATION_ID";
+    field public static final String EXTRA_NOTIFICATION_TAG = "android.intent.extra.NOTIFICATION_TAG";
+    field @Deprecated public static final String EXTRA_PEOPLE = "android.people";
+    field public static final String EXTRA_PEOPLE_LIST = "android.people.list";
+    field public static final String EXTRA_PICTURE = "android.picture";
+    field public static final String EXTRA_PICTURE_CONTENT_DESCRIPTION = "android.pictureContentDescription";
+    field public static final String EXTRA_PICTURE_ICON = "android.pictureIcon";
+    field public static final String EXTRA_PROGRESS = "android.progress";
+    field public static final String EXTRA_PROGRESS_INDETERMINATE = "android.progressIndeterminate";
+    field public static final String EXTRA_PROGRESS_MAX = "android.progressMax";
+    field public static final String EXTRA_REMOTE_INPUT_HISTORY = "android.remoteInputHistory";
+    field public static final String EXTRA_SELF_DISPLAY_NAME = "android.selfDisplayName";
+    field public static final String EXTRA_SHOW_BIG_PICTURE_WHEN_COLLAPSED = "android.showBigPictureWhenCollapsed";
+    field public static final String EXTRA_SHOW_CHRONOMETER = "android.showChronometer";
+    field public static final String EXTRA_SHOW_WHEN = "android.showWhen";
+    field public static final String EXTRA_SMALL_ICON = "android.icon";
+    field public static final String EXTRA_SUB_TEXT = "android.subText";
+    field public static final String EXTRA_SUMMARY_TEXT = "android.summaryText";
+    field public static final String EXTRA_TEMPLATE = "android.template";
+    field public static final String EXTRA_TEXT = "android.text";
+    field public static final String EXTRA_TEXT_LINES = "android.textLines";
+    field public static final String EXTRA_TITLE = "android.title";
+    field public static final String EXTRA_TITLE_BIG = "android.title.big";
+    field public static final String EXTRA_VERIFICATION_ICON = "android.verificationIcon";
+    field public static final String EXTRA_VERIFICATION_ICON_COMPAT = "android.verificationIconCompat";
+    field public static final String EXTRA_VERIFICATION_TEXT = "android.verificationText";
+    field public static final int FLAG_AUTO_CANCEL = 16; // 0x10
+    field public static final int FLAG_BUBBLE = 4096; // 0x1000
+    field public static final int FLAG_FOREGROUND_SERVICE = 64; // 0x40
+    field public static final int FLAG_GROUP_SUMMARY = 512; // 0x200
+    field @Deprecated public static final int FLAG_HIGH_PRIORITY = 128; // 0x80
+    field public static final int FLAG_INSISTENT = 4; // 0x4
+    field public static final int FLAG_LOCAL_ONLY = 256; // 0x100
+    field public static final int FLAG_NO_CLEAR = 32; // 0x20
+    field public static final int FLAG_ONGOING_EVENT = 2; // 0x2
+    field public static final int FLAG_ONLY_ALERT_ONCE = 8; // 0x8
+    field public static final int FLAG_SHOW_LIGHTS = 1; // 0x1
+    field public static final int FOREGROUND_SERVICE_DEFAULT = 0; // 0x0
+    field public static final int FOREGROUND_SERVICE_DEFERRED = 2; // 0x2
+    field public static final int FOREGROUND_SERVICE_IMMEDIATE = 1; // 0x1
+    field public static final int GROUP_ALERT_ALL = 0; // 0x0
+    field public static final int GROUP_ALERT_CHILDREN = 2; // 0x2
+    field public static final int GROUP_ALERT_SUMMARY = 1; // 0x1
+    field public static final String GROUP_KEY_SILENT = "silent";
+    field public static final String INTENT_CATEGORY_NOTIFICATION_PREFERENCES = "android.intent.category.NOTIFICATION_PREFERENCES";
+    field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static final int MAX_ACTION_BUTTONS = 3; // 0x3
+    field public static final int PRIORITY_DEFAULT = 0; // 0x0
+    field public static final int PRIORITY_HIGH = 1; // 0x1
+    field public static final int PRIORITY_LOW = -1; // 0xffffffff
+    field public static final int PRIORITY_MAX = 2; // 0x2
+    field public static final int PRIORITY_MIN = -2; // 0xfffffffe
+    field public static final int STREAM_DEFAULT = -1; // 0xffffffff
+    field public static final int VISIBILITY_PRIVATE = 0; // 0x0
+    field public static final int VISIBILITY_PUBLIC = 1; // 0x1
+    field public static final int VISIBILITY_SECRET = -1; // 0xffffffff
+  }
+
+  public static class NotificationCompat.Action {
+    ctor public NotificationCompat.Action(androidx.core.graphics.drawable.IconCompat?, CharSequence?, android.app.PendingIntent?);
+    ctor public NotificationCompat.Action(int, CharSequence?, android.app.PendingIntent?);
+    method public android.app.PendingIntent? getActionIntent();
+    method public boolean getAllowGeneratedReplies();
+    method public androidx.core.app.RemoteInput![]? getDataOnlyRemoteInputs();
+    method public android.os.Bundle getExtras();
+    method @Deprecated public int getIcon();
+    method public androidx.core.graphics.drawable.IconCompat? getIconCompat();
+    method public androidx.core.app.RemoteInput![]? getRemoteInputs();
+    method @androidx.core.app.NotificationCompat.Action.SemanticAction public int getSemanticAction();
+    method public boolean getShowsUserInterface();
+    method public CharSequence? getTitle();
+    method public boolean isAuthenticationRequired();
+    method public boolean isContextual();
+    field public static final int SEMANTIC_ACTION_ARCHIVE = 5; // 0x5
+    field public static final int SEMANTIC_ACTION_CALL = 10; // 0xa
+    field public static final int SEMANTIC_ACTION_DELETE = 4; // 0x4
+    field public static final int SEMANTIC_ACTION_MARK_AS_READ = 2; // 0x2
+    field public static final int SEMANTIC_ACTION_MARK_AS_UNREAD = 3; // 0x3
+    field public static final int SEMANTIC_ACTION_MUTE = 6; // 0x6
+    field public static final int SEMANTIC_ACTION_NONE = 0; // 0x0
+    field public static final int SEMANTIC_ACTION_REPLY = 1; // 0x1
+    field public static final int SEMANTIC_ACTION_THUMBS_DOWN = 9; // 0x9
+    field public static final int SEMANTIC_ACTION_THUMBS_UP = 8; // 0x8
+    field public static final int SEMANTIC_ACTION_UNMUTE = 7; // 0x7
+    field public android.app.PendingIntent? actionIntent;
+    field @Deprecated public int icon;
+    field public CharSequence! title;
+  }
+
+  public static final class NotificationCompat.Action.Builder {
+    ctor public NotificationCompat.Action.Builder(androidx.core.app.NotificationCompat.Action);
+    ctor public NotificationCompat.Action.Builder(androidx.core.graphics.drawable.IconCompat?, CharSequence?, android.app.PendingIntent?);
+    ctor public NotificationCompat.Action.Builder(int, CharSequence?, android.app.PendingIntent?);
+    method public androidx.core.app.NotificationCompat.Action.Builder addExtras(android.os.Bundle?);
+    method public androidx.core.app.NotificationCompat.Action.Builder addRemoteInput(androidx.core.app.RemoteInput?);
+    method public androidx.core.app.NotificationCompat.Action build();
+    method public androidx.core.app.NotificationCompat.Action.Builder extend(androidx.core.app.NotificationCompat.Action.Extender);
+    method @RequiresApi(19) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static androidx.core.app.NotificationCompat.Action.Builder fromAndroidAction(android.app.Notification.Action);
+    method public android.os.Bundle getExtras();
+    method public androidx.core.app.NotificationCompat.Action.Builder setAllowGeneratedReplies(boolean);
+    method public androidx.core.app.NotificationCompat.Action.Builder setAuthenticationRequired(boolean);
+    method public androidx.core.app.NotificationCompat.Action.Builder setContextual(boolean);
+    method public androidx.core.app.NotificationCompat.Action.Builder setSemanticAction(@androidx.core.app.NotificationCompat.Action.SemanticAction int);
+    method public androidx.core.app.NotificationCompat.Action.Builder setShowsUserInterface(boolean);
+  }
+
+  public static interface NotificationCompat.Action.Extender {
+    method public androidx.core.app.NotificationCompat.Action.Builder extend(androidx.core.app.NotificationCompat.Action.Builder);
+  }
+
+  @IntDef({androidx.core.app.NotificationCompat.Action.SEMANTIC_ACTION_NONE, androidx.core.app.NotificationCompat.Action.SEMANTIC_ACTION_REPLY, androidx.core.app.NotificationCompat.Action.SEMANTIC_ACTION_MARK_AS_READ, androidx.core.app.NotificationCompat.Action.SEMANTIC_ACTION_MARK_AS_UNREAD, androidx.core.app.NotificationCompat.Action.SEMANTIC_ACTION_DELETE, androidx.core.app.NotificationCompat.Action.SEMANTIC_ACTION_ARCHIVE, androidx.core.app.NotificationCompat.Action.SEMANTIC_ACTION_MUTE, androidx.core.app.NotificationCompat.Action.SEMANTIC_ACTION_UNMUTE, androidx.core.app.NotificationCompat.Action.SEMANTIC_ACTION_THUMBS_UP, androidx.core.app.NotificationCompat.Action.SEMANTIC_ACTION_THUMBS_DOWN, androidx.core.app.NotificationCompat.Action.SEMANTIC_ACTION_CALL}) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface NotificationCompat.Action.SemanticAction {
+  }
+
+  public static final class NotificationCompat.Action.WearableExtender implements androidx.core.app.NotificationCompat.Action.Extender {
+    ctor public NotificationCompat.Action.WearableExtender();
+    ctor public NotificationCompat.Action.WearableExtender(androidx.core.app.NotificationCompat.Action);
+    method public androidx.core.app.NotificationCompat.Action.WearableExtender clone();
+    method public androidx.core.app.NotificationCompat.Action.Builder extend(androidx.core.app.NotificationCompat.Action.Builder);
+    method @Deprecated public CharSequence? getCancelLabel();
+    method @Deprecated public CharSequence? getConfirmLabel();
+    method public boolean getHintDisplayActionInline();
+    method public boolean getHintLaunchesActivity();
+    method @Deprecated public CharSequence? getInProgressLabel();
+    method public boolean isAvailableOffline();
+    method public androidx.core.app.NotificationCompat.Action.WearableExtender setAvailableOffline(boolean);
+    method @Deprecated public androidx.core.app.NotificationCompat.Action.WearableExtender setCancelLabel(CharSequence?);
+    method @Deprecated public androidx.core.app.NotificationCompat.Action.WearableExtender setConfirmLabel(CharSequence?);
+    method public androidx.core.app.NotificationCompat.Action.WearableExtender setHintDisplayActionInline(boolean);
+    method public androidx.core.app.NotificationCompat.Action.WearableExtender setHintLaunchesActivity(boolean);
+    method @Deprecated public androidx.core.app.NotificationCompat.Action.WearableExtender setInProgressLabel(CharSequence?);
+  }
+
+  @IntDef({androidx.core.app.NotificationCompat.BADGE_ICON_NONE, androidx.core.app.NotificationCompat.BADGE_ICON_SMALL, androidx.core.app.NotificationCompat.BADGE_ICON_LARGE}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface NotificationCompat.BadgeIconType {
+  }
+
+  public static class NotificationCompat.BigPictureStyle extends androidx.core.app.NotificationCompat.Style {
+    ctor public NotificationCompat.BigPictureStyle();
+    ctor public NotificationCompat.BigPictureStyle(androidx.core.app.NotificationCompat.Builder?);
+    method public androidx.core.app.NotificationCompat.BigPictureStyle bigLargeIcon(android.graphics.Bitmap?);
+    method @RequiresApi(23) public androidx.core.app.NotificationCompat.BigPictureStyle bigLargeIcon(android.graphics.drawable.Icon?);
+    method public androidx.core.app.NotificationCompat.BigPictureStyle bigPicture(android.graphics.Bitmap?);
+    method @RequiresApi(31) public androidx.core.app.NotificationCompat.BigPictureStyle bigPicture(android.graphics.drawable.Icon?);
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static androidx.core.graphics.drawable.IconCompat? getPictureIcon(android.os.Bundle?);
+    method public androidx.core.app.NotificationCompat.BigPictureStyle setBigContentTitle(CharSequence?);
+    method @RequiresApi(31) public androidx.core.app.NotificationCompat.BigPictureStyle setContentDescription(CharSequence?);
+    method public androidx.core.app.NotificationCompat.BigPictureStyle setSummaryText(CharSequence?);
+    method @RequiresApi(31) public androidx.core.app.NotificationCompat.BigPictureStyle showBigPictureWhenCollapsed(boolean);
+  }
+
+  public static class NotificationCompat.BigTextStyle extends androidx.core.app.NotificationCompat.Style {
+    ctor public NotificationCompat.BigTextStyle();
+    ctor public NotificationCompat.BigTextStyle(androidx.core.app.NotificationCompat.Builder?);
+    method public androidx.core.app.NotificationCompat.BigTextStyle bigText(CharSequence?);
+    method public androidx.core.app.NotificationCompat.BigTextStyle setBigContentTitle(CharSequence?);
+    method public androidx.core.app.NotificationCompat.BigTextStyle setSummaryText(CharSequence?);
+  }
+
+  public static final class NotificationCompat.BubbleMetadata {
+    method public static androidx.core.app.NotificationCompat.BubbleMetadata? fromPlatform(android.app.Notification.BubbleMetadata?);
+    method public boolean getAutoExpandBubble();
+    method public android.app.PendingIntent? getDeleteIntent();
+    method @Dimension(unit=androidx.annotation.Dimension.DP) public int getDesiredHeight();
+    method @DimenRes public int getDesiredHeightResId();
+    method public androidx.core.graphics.drawable.IconCompat? getIcon();
+    method public android.app.PendingIntent? getIntent();
+    method public String? getShortcutId();
+    method public boolean isNotificationSuppressed();
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public void setFlags(int);
+    method public static android.app.Notification.BubbleMetadata? toPlatform(androidx.core.app.NotificationCompat.BubbleMetadata?);
+  }
+
+  public static final class NotificationCompat.BubbleMetadata.Builder {
+    ctor @Deprecated public NotificationCompat.BubbleMetadata.Builder();
+    ctor public NotificationCompat.BubbleMetadata.Builder(android.app.PendingIntent, androidx.core.graphics.drawable.IconCompat);
+    ctor @RequiresApi(30) public NotificationCompat.BubbleMetadata.Builder(String);
+    method public androidx.core.app.NotificationCompat.BubbleMetadata build();
+    method public androidx.core.app.NotificationCompat.BubbleMetadata.Builder setAutoExpandBubble(boolean);
+    method public androidx.core.app.NotificationCompat.BubbleMetadata.Builder setDeleteIntent(android.app.PendingIntent?);
+    method public androidx.core.app.NotificationCompat.BubbleMetadata.Builder setDesiredHeight(@Dimension(unit=androidx.annotation.Dimension.DP) int);
+    method public androidx.core.app.NotificationCompat.BubbleMetadata.Builder setDesiredHeightResId(@DimenRes int);
+    method public androidx.core.app.NotificationCompat.BubbleMetadata.Builder setIcon(androidx.core.graphics.drawable.IconCompat);
+    method public androidx.core.app.NotificationCompat.BubbleMetadata.Builder setIntent(android.app.PendingIntent);
+    method public androidx.core.app.NotificationCompat.BubbleMetadata.Builder setSuppressNotification(boolean);
+  }
+
+  public static class NotificationCompat.Builder {
+    ctor @Deprecated public NotificationCompat.Builder(android.content.Context);
+    ctor @RequiresApi(19) public NotificationCompat.Builder(android.content.Context, android.app.Notification);
+    ctor public NotificationCompat.Builder(android.content.Context, String);
+    method public androidx.core.app.NotificationCompat.Builder addAction(androidx.core.app.NotificationCompat.Action?);
+    method public androidx.core.app.NotificationCompat.Builder addAction(int, CharSequence?, android.app.PendingIntent?);
+    method public androidx.core.app.NotificationCompat.Builder addExtras(android.os.Bundle?);
+    method @RequiresApi(21) public androidx.core.app.NotificationCompat.Builder addInvisibleAction(androidx.core.app.NotificationCompat.Action?);
+    method @RequiresApi(21) public androidx.core.app.NotificationCompat.Builder addInvisibleAction(int, CharSequence?, android.app.PendingIntent?);
+    method public androidx.core.app.NotificationCompat.Builder addPerson(androidx.core.app.Person?);
+    method @Deprecated public androidx.core.app.NotificationCompat.Builder addPerson(String?);
+    method public android.app.Notification build();
+    method public androidx.core.app.NotificationCompat.Builder clearActions();
+    method public androidx.core.app.NotificationCompat.Builder clearInvisibleActions();
+    method public androidx.core.app.NotificationCompat.Builder clearPeople();
+    method public android.widget.RemoteViews? createBigContentView();
+    method public android.widget.RemoteViews? createContentView();
+    method public android.widget.RemoteViews? createHeadsUpContentView();
+    method public androidx.core.app.NotificationCompat.Builder extend(androidx.core.app.NotificationCompat.Extender);
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public android.widget.RemoteViews! getBigContentView();
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public androidx.core.app.NotificationCompat.BubbleMetadata? getBubbleMetadata();
+    method @ColorInt @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public int getColor();
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public android.widget.RemoteViews! getContentView();
+    method public android.os.Bundle getExtras();
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public int getForegroundServiceBehavior();
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public android.widget.RemoteViews! getHeadsUpContentView();
+    method @Deprecated public android.app.Notification getNotification();
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public int getPriority();
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public long getWhenIfShowing();
+    method protected static CharSequence? limitCharSequenceLength(CharSequence?);
+    method public androidx.core.app.NotificationCompat.Builder setAllowSystemGeneratedContextualActions(boolean);
+    method public androidx.core.app.NotificationCompat.Builder setAutoCancel(boolean);
+    method public androidx.core.app.NotificationCompat.Builder setBadgeIconType(@androidx.core.app.NotificationCompat.BadgeIconType int);
+    method public androidx.core.app.NotificationCompat.Builder setBubbleMetadata(androidx.core.app.NotificationCompat.BubbleMetadata?);
+    method public androidx.core.app.NotificationCompat.Builder setCategory(String?);
+    method public androidx.core.app.NotificationCompat.Builder setChannelId(String);
+    method @RequiresApi(24) public androidx.core.app.NotificationCompat.Builder setChronometerCountDown(boolean);
+    method public androidx.core.app.NotificationCompat.Builder setColor(@ColorInt int);
+    method public androidx.core.app.NotificationCompat.Builder setColorized(boolean);
+    method public androidx.core.app.NotificationCompat.Builder setContent(android.widget.RemoteViews?);
+    method public androidx.core.app.NotificationCompat.Builder setContentInfo(CharSequence?);
+    method public androidx.core.app.NotificationCompat.Builder setContentIntent(android.app.PendingIntent?);
+    method public androidx.core.app.NotificationCompat.Builder setContentText(CharSequence?);
+    method public androidx.core.app.NotificationCompat.Builder setContentTitle(CharSequence?);
+    method public androidx.core.app.NotificationCompat.Builder setCustomBigContentView(android.widget.RemoteViews?);
+    method public androidx.core.app.NotificationCompat.Builder setCustomContentView(android.widget.RemoteViews?);
+    method public androidx.core.app.NotificationCompat.Builder setCustomHeadsUpContentView(android.widget.RemoteViews?);
+    method public androidx.core.app.NotificationCompat.Builder setDefaults(int);
+    method public androidx.core.app.NotificationCompat.Builder setDeleteIntent(android.app.PendingIntent?);
+    method public androidx.core.app.NotificationCompat.Builder setExtras(android.os.Bundle?);
+    method public androidx.core.app.NotificationCompat.Builder setForegroundServiceBehavior(@androidx.core.app.NotificationCompat.ServiceNotificationBehavior int);
+    method public androidx.core.app.NotificationCompat.Builder setFullScreenIntent(android.app.PendingIntent?, boolean);
+    method public androidx.core.app.NotificationCompat.Builder setGroup(String?);
+    method public androidx.core.app.NotificationCompat.Builder setGroupAlertBehavior(@androidx.core.app.NotificationCompat.GroupAlertBehavior int);
+    method public androidx.core.app.NotificationCompat.Builder setGroupSummary(boolean);
+    method public androidx.core.app.NotificationCompat.Builder setLargeIcon(android.graphics.Bitmap?);
+    method @RequiresApi(23) public androidx.core.app.NotificationCompat.Builder setLargeIcon(android.graphics.drawable.Icon?);
+    method public androidx.core.app.NotificationCompat.Builder setLights(@ColorInt int, int, int);
+    method public androidx.core.app.NotificationCompat.Builder setLocalOnly(boolean);
+    method public androidx.core.app.NotificationCompat.Builder setLocusId(androidx.core.content.LocusIdCompat?);
+    method @Deprecated public androidx.core.app.NotificationCompat.Builder setNotificationSilent();
+    method public androidx.core.app.NotificationCompat.Builder setNumber(int);
+    method public androidx.core.app.NotificationCompat.Builder setOngoing(boolean);
+    method public androidx.core.app.NotificationCompat.Builder setOnlyAlertOnce(boolean);
+    method public androidx.core.app.NotificationCompat.Builder setPriority(int);
+    method public androidx.core.app.NotificationCompat.Builder setProgress(int, int, boolean);
+    method public androidx.core.app.NotificationCompat.Builder setPublicVersion(android.app.Notification?);
+    method public androidx.core.app.NotificationCompat.Builder setRemoteInputHistory(CharSequence![]?);
+    method public androidx.core.app.NotificationCompat.Builder setSettingsText(CharSequence?);
+    method public androidx.core.app.NotificationCompat.Builder setShortcutId(String?);
+    method public androidx.core.app.NotificationCompat.Builder setShortcutInfo(androidx.core.content.pm.ShortcutInfoCompat?);
+    method public androidx.core.app.NotificationCompat.Builder setShowWhen(boolean);
+    method public androidx.core.app.NotificationCompat.Builder setSilent(boolean);
+    method @RequiresApi(23) public androidx.core.app.NotificationCompat.Builder setSmallIcon(androidx.core.graphics.drawable.IconCompat);
+    method public androidx.core.app.NotificationCompat.Builder setSmallIcon(int);
+    method public androidx.core.app.NotificationCompat.Builder setSmallIcon(int, int);
+    method public androidx.core.app.NotificationCompat.Builder setSortKey(String?);
+    method public androidx.core.app.NotificationCompat.Builder setSound(android.net.Uri?);
+    method public androidx.core.app.NotificationCompat.Builder setSound(android.net.Uri?, @androidx.core.app.NotificationCompat.StreamType int);
+    method public androidx.core.app.NotificationCompat.Builder setStyle(androidx.core.app.NotificationCompat.Style?);
+    method public androidx.core.app.NotificationCompat.Builder setSubText(CharSequence?);
+    method public androidx.core.app.NotificationCompat.Builder setTicker(CharSequence?);
+    method @Deprecated public androidx.core.app.NotificationCompat.Builder setTicker(CharSequence?, android.widget.RemoteViews?);
+    method public androidx.core.app.NotificationCompat.Builder setTimeoutAfter(long);
+    method public androidx.core.app.NotificationCompat.Builder setUsesChronometer(boolean);
+    method public androidx.core.app.NotificationCompat.Builder setVibrate(long[]?);
+    method public androidx.core.app.NotificationCompat.Builder setVisibility(@androidx.core.app.NotificationCompat.NotificationVisibility int);
+    method public androidx.core.app.NotificationCompat.Builder setWhen(long);
+    field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public java.util.ArrayList<androidx.core.app.NotificationCompat.Action!>! mActions;
+    field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public android.content.Context! mContext;
+    field @Deprecated public java.util.ArrayList<java.lang.String!>! mPeople;
+    field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public java.util.ArrayList<androidx.core.app.Person!> mPersonList;
+  }
+
+  public static class NotificationCompat.CallStyle extends androidx.core.app.NotificationCompat.Style {
+    ctor public NotificationCompat.CallStyle();
+    ctor public NotificationCompat.CallStyle(androidx.core.app.NotificationCompat.Builder?);
+    method public static androidx.core.app.NotificationCompat.CallStyle forIncomingCall(androidx.core.app.Person, android.app.PendingIntent, android.app.PendingIntent);
+    method public static androidx.core.app.NotificationCompat.CallStyle forOngoingCall(androidx.core.app.Person, android.app.PendingIntent);
+    method public static androidx.core.app.NotificationCompat.CallStyle forScreeningCall(androidx.core.app.Person, android.app.PendingIntent, android.app.PendingIntent);
+    method @RequiresApi(20) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public java.util.ArrayList<androidx.core.app.NotificationCompat.Action!> getActionsListWithSystemActions();
+    method public androidx.core.app.NotificationCompat.CallStyle setAnswerButtonColorHint(@ColorInt int);
+    method public androidx.core.app.NotificationCompat.CallStyle setDeclineButtonColorHint(@ColorInt int);
+    method public androidx.core.app.NotificationCompat.CallStyle setIsVideo(boolean);
+    method public androidx.core.app.NotificationCompat.CallStyle setVerificationIcon(android.graphics.Bitmap?);
+    method @RequiresApi(23) public androidx.core.app.NotificationCompat.CallStyle setVerificationIcon(android.graphics.drawable.Icon?);
+    method public androidx.core.app.NotificationCompat.CallStyle setVerificationText(CharSequence?);
+    field public static final int CALL_TYPE_INCOMING = 1; // 0x1
+    field public static final int CALL_TYPE_ONGOING = 2; // 0x2
+    field public static final int CALL_TYPE_SCREENING = 3; // 0x3
+    field public static final int CALL_TYPE_UNKNOWN = 0; // 0x0
+  }
+
+  @IntDef({androidx.core.app.NotificationCompat.CallStyle.CALL_TYPE_UNKNOWN, androidx.core.app.NotificationCompat.CallStyle.CALL_TYPE_INCOMING, androidx.core.app.NotificationCompat.CallStyle.CALL_TYPE_ONGOING, androidx.core.app.NotificationCompat.CallStyle.CALL_TYPE_SCREENING}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface NotificationCompat.CallStyle.CallType {
+  }
+
+  public static final class NotificationCompat.CarExtender implements androidx.core.app.NotificationCompat.Extender {
+    ctor public NotificationCompat.CarExtender();
+    ctor public NotificationCompat.CarExtender(android.app.Notification);
+    method public androidx.core.app.NotificationCompat.Builder extend(androidx.core.app.NotificationCompat.Builder);
+    method @ColorInt public int getColor();
+    method public android.graphics.Bitmap? getLargeIcon();
+    method @Deprecated public androidx.core.app.NotificationCompat.CarExtender.UnreadConversation? getUnreadConversation();
+    method public androidx.core.app.NotificationCompat.CarExtender setColor(@ColorInt int);
+    method public androidx.core.app.NotificationCompat.CarExtender setLargeIcon(android.graphics.Bitmap?);
+    method @Deprecated public androidx.core.app.NotificationCompat.CarExtender setUnreadConversation(androidx.core.app.NotificationCompat.CarExtender.UnreadConversation?);
+  }
+
+  @Deprecated public static class NotificationCompat.CarExtender.UnreadConversation {
+    method @Deprecated public long getLatestTimestamp();
+    method @Deprecated public String![]? getMessages();
+    method @Deprecated public String? getParticipant();
+    method @Deprecated public String![]? getParticipants();
+    method @Deprecated public android.app.PendingIntent? getReadPendingIntent();
+    method @Deprecated public androidx.core.app.RemoteInput? getRemoteInput();
+    method @Deprecated public android.app.PendingIntent? getReplyPendingIntent();
+  }
+
+  @Deprecated public static class NotificationCompat.CarExtender.UnreadConversation.Builder {
+    ctor @Deprecated public NotificationCompat.CarExtender.UnreadConversation.Builder(String);
+    method @Deprecated public androidx.core.app.NotificationCompat.CarExtender.UnreadConversation.Builder addMessage(String?);
+    method @Deprecated public androidx.core.app.NotificationCompat.CarExtender.UnreadConversation build();
+    method @Deprecated public androidx.core.app.NotificationCompat.CarExtender.UnreadConversation.Builder setLatestTimestamp(long);
+    method @Deprecated public androidx.core.app.NotificationCompat.CarExtender.UnreadConversation.Builder setReadPendingIntent(android.app.PendingIntent?);
+    method @Deprecated public androidx.core.app.NotificationCompat.CarExtender.UnreadConversation.Builder setReplyAction(android.app.PendingIntent?, androidx.core.app.RemoteInput?);
+  }
+
+  public static class NotificationCompat.DecoratedCustomViewStyle extends androidx.core.app.NotificationCompat.Style {
+    ctor public NotificationCompat.DecoratedCustomViewStyle();
+  }
+
+  public static interface NotificationCompat.Extender {
+    method public androidx.core.app.NotificationCompat.Builder extend(androidx.core.app.NotificationCompat.Builder);
+  }
+
+  @IntDef({androidx.core.app.NotificationCompat.GROUP_ALERT_ALL, androidx.core.app.NotificationCompat.GROUP_ALERT_SUMMARY, androidx.core.app.NotificationCompat.GROUP_ALERT_CHILDREN}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface NotificationCompat.GroupAlertBehavior {
+  }
+
+  public static class NotificationCompat.InboxStyle extends androidx.core.app.NotificationCompat.Style {
+    ctor public NotificationCompat.InboxStyle();
+    ctor public NotificationCompat.InboxStyle(androidx.core.app.NotificationCompat.Builder?);
+    method public androidx.core.app.NotificationCompat.InboxStyle addLine(CharSequence?);
+    method public androidx.core.app.NotificationCompat.InboxStyle setBigContentTitle(CharSequence?);
+    method public androidx.core.app.NotificationCompat.InboxStyle setSummaryText(CharSequence?);
+  }
+
+  public static class NotificationCompat.MessagingStyle extends androidx.core.app.NotificationCompat.Style {
+    ctor public NotificationCompat.MessagingStyle(androidx.core.app.Person);
+    ctor @Deprecated public NotificationCompat.MessagingStyle(CharSequence);
+    method public androidx.core.app.NotificationCompat.MessagingStyle addHistoricMessage(androidx.core.app.NotificationCompat.MessagingStyle.Message?);
+    method public androidx.core.app.NotificationCompat.MessagingStyle addMessage(androidx.core.app.NotificationCompat.MessagingStyle.Message?);
+    method public androidx.core.app.NotificationCompat.MessagingStyle addMessage(CharSequence?, long, androidx.core.app.Person?);
+    method @Deprecated public androidx.core.app.NotificationCompat.MessagingStyle addMessage(CharSequence?, long, CharSequence?);
+    method public static androidx.core.app.NotificationCompat.MessagingStyle? extractMessagingStyleFromNotification(android.app.Notification);
+    method public CharSequence? getConversationTitle();
+    method public java.util.List<androidx.core.app.NotificationCompat.MessagingStyle.Message!> getHistoricMessages();
+    method public java.util.List<androidx.core.app.NotificationCompat.MessagingStyle.Message!> getMessages();
+    method public androidx.core.app.Person getUser();
+    method @Deprecated public CharSequence? getUserDisplayName();
+    method public boolean isGroupConversation();
+    method public androidx.core.app.NotificationCompat.MessagingStyle setConversationTitle(CharSequence?);
+    method public androidx.core.app.NotificationCompat.MessagingStyle setGroupConversation(boolean);
+    field public static final int MAXIMUM_RETAINED_MESSAGES = 25; // 0x19
+  }
+
+  public static final class NotificationCompat.MessagingStyle.Message {
+    ctor public NotificationCompat.MessagingStyle.Message(CharSequence?, long, androidx.core.app.Person?);
+    ctor @Deprecated public NotificationCompat.MessagingStyle.Message(CharSequence?, long, CharSequence?);
+    method public String? getDataMimeType();
+    method public android.net.Uri? getDataUri();
+    method public android.os.Bundle getExtras();
+    method public androidx.core.app.Person? getPerson();
+    method @Deprecated public CharSequence? getSender();
+    method public CharSequence? getText();
+    method public long getTimestamp();
+    method public androidx.core.app.NotificationCompat.MessagingStyle.Message setData(String?, android.net.Uri?);
+  }
+
+  @IntDef({androidx.core.app.NotificationCompat.VISIBILITY_PUBLIC, androidx.core.app.NotificationCompat.VISIBILITY_PRIVATE, androidx.core.app.NotificationCompat.VISIBILITY_SECRET}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface NotificationCompat.NotificationVisibility {
+  }
+
+  @IntDef({androidx.core.app.NotificationCompat.FOREGROUND_SERVICE_DEFAULT, androidx.core.app.NotificationCompat.FOREGROUND_SERVICE_IMMEDIATE, androidx.core.app.NotificationCompat.FOREGROUND_SERVICE_DEFERRED}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface NotificationCompat.ServiceNotificationBehavior {
+  }
+
+  @IntDef({android.media.AudioManager.STREAM_VOICE_CALL, android.media.AudioManager.STREAM_SYSTEM, android.media.AudioManager.STREAM_RING, android.media.AudioManager.STREAM_MUSIC, android.media.AudioManager.STREAM_ALARM, android.media.AudioManager.STREAM_NOTIFICATION, android.media.AudioManager.STREAM_DTMF, android.media.AudioManager.STREAM_ACCESSIBILITY}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface NotificationCompat.StreamType {
+  }
+
+  public abstract static class NotificationCompat.Style {
+    ctor public NotificationCompat.Style();
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public void addCompatExtras(android.os.Bundle);
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public void apply(androidx.core.app.NotificationBuilderWithBuilderAccessor!);
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public android.widget.RemoteViews applyStandardTemplate(boolean, int, boolean);
+    method public android.app.Notification? build();
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public void buildIntoRemoteViews(android.widget.RemoteViews!, android.widget.RemoteViews!);
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) protected void clearCompatExtraKeys(android.os.Bundle);
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public android.graphics.Bitmap! createColoredBitmap(int, int);
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public boolean displayCustomViewInline();
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static androidx.core.app.NotificationCompat.Style? extractStyleFromNotification(android.app.Notification);
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) protected String? getClassName();
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public android.widget.RemoteViews! makeBigContentView(androidx.core.app.NotificationBuilderWithBuilderAccessor!);
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public android.widget.RemoteViews! makeContentView(androidx.core.app.NotificationBuilderWithBuilderAccessor!);
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public android.widget.RemoteViews! makeHeadsUpContentView(androidx.core.app.NotificationBuilderWithBuilderAccessor!);
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) protected void restoreFromCompatExtras(android.os.Bundle);
+    method public void setBuilder(androidx.core.app.NotificationCompat.Builder?);
+    field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) protected androidx.core.app.NotificationCompat.Builder! mBuilder;
+  }
+
+  public static final class NotificationCompat.TvExtender implements androidx.core.app.NotificationCompat.Extender {
+    ctor public NotificationCompat.TvExtender();
+    ctor public NotificationCompat.TvExtender(android.app.Notification);
+    method public androidx.core.app.NotificationCompat.Builder extend(androidx.core.app.NotificationCompat.Builder);
+    method public String? getChannelId();
+    method public android.app.PendingIntent? getContentIntent();
+    method public android.app.PendingIntent? getDeleteIntent();
+    method public boolean isAvailableOnTv();
+    method public boolean isSuppressShowOverApps();
+    method public androidx.core.app.NotificationCompat.TvExtender setChannelId(String?);
+    method public androidx.core.app.NotificationCompat.TvExtender setContentIntent(android.app.PendingIntent?);
+    method public androidx.core.app.NotificationCompat.TvExtender setDeleteIntent(android.app.PendingIntent?);
+    method public androidx.core.app.NotificationCompat.TvExtender setSuppressShowOverApps(boolean);
+  }
+
+  public static final class NotificationCompat.WearableExtender implements androidx.core.app.NotificationCompat.Extender {
+    ctor public NotificationCompat.WearableExtender();
+    ctor public NotificationCompat.WearableExtender(android.app.Notification);
+    method public androidx.core.app.NotificationCompat.WearableExtender addAction(androidx.core.app.NotificationCompat.Action);
+    method public androidx.core.app.NotificationCompat.WearableExtender addActions(java.util.List<androidx.core.app.NotificationCompat.Action!>);
+    method @Deprecated public androidx.core.app.NotificationCompat.WearableExtender addPage(android.app.Notification);
+    method @Deprecated public androidx.core.app.NotificationCompat.WearableExtender addPages(java.util.List<android.app.Notification!>);
+    method public androidx.core.app.NotificationCompat.WearableExtender clearActions();
+    method @Deprecated public androidx.core.app.NotificationCompat.WearableExtender clearPages();
+    method public androidx.core.app.NotificationCompat.WearableExtender clone();
+    method public androidx.core.app.NotificationCompat.Builder extend(androidx.core.app.NotificationCompat.Builder);
+    method public java.util.List<androidx.core.app.NotificationCompat.Action!> getActions();
+    method @Deprecated public android.graphics.Bitmap? getBackground();
+    method public String? getBridgeTag();
+    method public int getContentAction();
+    method @Deprecated public int getContentIcon();
+    method @Deprecated public int getContentIconGravity();
+    method public boolean getContentIntentAvailableOffline();
+    method @Deprecated public int getCustomContentHeight();
+    method @Deprecated public int getCustomSizePreset();
+    method public String? getDismissalId();
+    method @Deprecated public android.app.PendingIntent? getDisplayIntent();
+    method @Deprecated public int getGravity();
+    method @Deprecated public boolean getHintAmbientBigPicture();
+    method @Deprecated public boolean getHintAvoidBackgroundClipping();
+    method public boolean getHintContentIntentLaunchesActivity();
+    method @Deprecated public boolean getHintHideIcon();
+    method @Deprecated public int getHintScreenTimeout();
+    method @Deprecated public boolean getHintShowBackgroundOnly();
+    method @Deprecated public java.util.List<android.app.Notification!> getPages();
+    method public boolean getStartScrollBottom();
+    method @Deprecated public androidx.core.app.NotificationCompat.WearableExtender setBackground(android.graphics.Bitmap?);
+    method public androidx.core.app.NotificationCompat.WearableExtender setBridgeTag(String?);
+    method public androidx.core.app.NotificationCompat.WearableExtender setContentAction(int);
+    method @Deprecated public androidx.core.app.NotificationCompat.WearableExtender setContentIcon(int);
+    method @Deprecated public androidx.core.app.NotificationCompat.WearableExtender setContentIconGravity(int);
+    method public androidx.core.app.NotificationCompat.WearableExtender setContentIntentAvailableOffline(boolean);
+    method @Deprecated public androidx.core.app.NotificationCompat.WearableExtender setCustomContentHeight(int);
+    method @Deprecated public androidx.core.app.NotificationCompat.WearableExtender setCustomSizePreset(int);
+    method public androidx.core.app.NotificationCompat.WearableExtender setDismissalId(String?);
+    method @Deprecated public androidx.core.app.NotificationCompat.WearableExtender setDisplayIntent(android.app.PendingIntent?);
+    method @Deprecated public androidx.core.app.NotificationCompat.WearableExtender setGravity(int);
+    method @Deprecated public androidx.core.app.NotificationCompat.WearableExtender setHintAmbientBigPicture(boolean);
+    method @Deprecated public androidx.core.app.NotificationCompat.WearableExtender setHintAvoidBackgroundClipping(boolean);
+    method public androidx.core.app.NotificationCompat.WearableExtender setHintContentIntentLaunchesActivity(boolean);
+    method @Deprecated public androidx.core.app.NotificationCompat.WearableExtender setHintHideIcon(boolean);
+    method @Deprecated public androidx.core.app.NotificationCompat.WearableExtender setHintScreenTimeout(int);
+    method @Deprecated public androidx.core.app.NotificationCompat.WearableExtender setHintShowBackgroundOnly(boolean);
+    method public androidx.core.app.NotificationCompat.WearableExtender setStartScrollBottom(boolean);
+    field @Deprecated public static final int SCREEN_TIMEOUT_LONG = -1; // 0xffffffff
+    field @Deprecated public static final int SCREEN_TIMEOUT_SHORT = 0; // 0x0
+    field @Deprecated public static final int SIZE_DEFAULT = 0; // 0x0
+    field @Deprecated public static final int SIZE_FULL_SCREEN = 5; // 0x5
+    field @Deprecated public static final int SIZE_LARGE = 4; // 0x4
+    field @Deprecated public static final int SIZE_MEDIUM = 3; // 0x3
+    field @Deprecated public static final int SIZE_SMALL = 2; // 0x2
+    field @Deprecated public static final int SIZE_XSMALL = 1; // 0x1
+    field public static final int UNSET_ACTION_INDEX = -1; // 0xffffffff
+  }
+
+  public final class NotificationCompatExtras {
+    field public static final String EXTRA_ACTION_EXTRAS = "android.support.actionExtras";
+    field public static final String EXTRA_GROUP_KEY = "android.support.groupKey";
+    field public static final String EXTRA_GROUP_SUMMARY = "android.support.isGroupSummary";
+    field public static final String EXTRA_LOCAL_ONLY = "android.support.localOnly";
+    field public static final String EXTRA_REMOTE_INPUTS = "android.support.remoteInputs";
+    field public static final String EXTRA_SORT_KEY = "android.support.sortKey";
+  }
+
+  public abstract class NotificationCompatSideChannelService extends android.app.Service {
+    ctor public NotificationCompatSideChannelService();
+    method public abstract void cancel(String!, int, String!);
+    method public abstract void cancelAll(String!);
+    method public abstract void notify(String!, int, String!, android.app.Notification!);
+    method public android.os.IBinder! onBind(android.content.Intent!);
+  }
+
+  public final class NotificationManagerCompat {
+    method public boolean areNotificationsEnabled();
+    method public void cancel(int);
+    method public void cancel(String?, int);
+    method public void cancelAll();
+    method public void createNotificationChannel(android.app.NotificationChannel);
+    method public void createNotificationChannel(androidx.core.app.NotificationChannelCompat);
+    method public void createNotificationChannelGroup(android.app.NotificationChannelGroup);
+    method public void createNotificationChannelGroup(androidx.core.app.NotificationChannelGroupCompat);
+    method public void createNotificationChannelGroups(java.util.List<android.app.NotificationChannelGroup!>);
+    method public void createNotificationChannelGroupsCompat(java.util.List<androidx.core.app.NotificationChannelGroupCompat!>);
+    method public void createNotificationChannels(java.util.List<android.app.NotificationChannel!>);
+    method public void createNotificationChannelsCompat(java.util.List<androidx.core.app.NotificationChannelCompat!>);
+    method public void deleteNotificationChannel(String);
+    method public void deleteNotificationChannelGroup(String);
+    method public void deleteUnlistedNotificationChannels(java.util.Collection<java.lang.String!>);
+    method public static androidx.core.app.NotificationManagerCompat from(android.content.Context);
+    method public java.util.List<android.service.notification.StatusBarNotification!> getActiveNotifications();
+    method @androidx.core.app.NotificationManagerCompat.InterruptionFilter public int getCurrentInterruptionFilter();
+    method public static java.util.Set<java.lang.String!> getEnabledListenerPackages(android.content.Context);
+    method public int getImportance();
+    method public android.app.NotificationChannel? getNotificationChannel(String);
+    method public android.app.NotificationChannel? getNotificationChannel(String, String);
+    method public androidx.core.app.NotificationChannelCompat? getNotificationChannelCompat(String);
+    method public androidx.core.app.NotificationChannelCompat? getNotificationChannelCompat(String, String);
+    method public android.app.NotificationChannelGroup? getNotificationChannelGroup(String);
+    method public androidx.core.app.NotificationChannelGroupCompat? getNotificationChannelGroupCompat(String);
+    method public java.util.List<android.app.NotificationChannelGroup!> getNotificationChannelGroups();
+    method public java.util.List<androidx.core.app.NotificationChannelGroupCompat!> getNotificationChannelGroupsCompat();
+    method public java.util.List<android.app.NotificationChannel!> getNotificationChannels();
+    method public java.util.List<androidx.core.app.NotificationChannelCompat!> getNotificationChannelsCompat();
+    method @RequiresPermission(android.Manifest.permission.POST_NOTIFICATIONS) public void notify(int, android.app.Notification);
+    method @RequiresPermission(android.Manifest.permission.POST_NOTIFICATIONS) public void notify(String?, int, android.app.Notification);
+    method @RequiresPermission(android.Manifest.permission.POST_NOTIFICATIONS) public void notify(java.util.List<androidx.core.app.NotificationManagerCompat.NotificationWithIdAndTag!>);
+    field public static final String ACTION_BIND_SIDE_CHANNEL = "android.support.BIND_NOTIFICATION_SIDE_CHANNEL";
+    field public static final String EXTRA_USE_SIDE_CHANNEL = "android.support.useSideChannel";
+    field public static final int IMPORTANCE_DEFAULT = 3; // 0x3
+    field public static final int IMPORTANCE_HIGH = 4; // 0x4
+    field public static final int IMPORTANCE_LOW = 2; // 0x2
+    field public static final int IMPORTANCE_MAX = 5; // 0x5
+    field public static final int IMPORTANCE_MIN = 1; // 0x1
+    field public static final int IMPORTANCE_NONE = 0; // 0x0
+    field public static final int IMPORTANCE_UNSPECIFIED = -1000; // 0xfffffc18
+    field public static final int INTERRUPTION_FILTER_ALARMS = 4; // 0x4
+    field public static final int INTERRUPTION_FILTER_ALL = 1; // 0x1
+    field public static final int INTERRUPTION_FILTER_NONE = 3; // 0x3
+    field public static final int INTERRUPTION_FILTER_PRIORITY = 2; // 0x2
+    field public static final int INTERRUPTION_FILTER_UNKNOWN = 0; // 0x0
+  }
+
+  @IntDef({androidx.core.app.NotificationManagerCompat.INTERRUPTION_FILTER_UNKNOWN, androidx.core.app.NotificationManagerCompat.INTERRUPTION_FILTER_ALL, androidx.core.app.NotificationManagerCompat.INTERRUPTION_FILTER_PRIORITY, androidx.core.app.NotificationManagerCompat.INTERRUPTION_FILTER_NONE, androidx.core.app.NotificationManagerCompat.INTERRUPTION_FILTER_ALARMS}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface NotificationManagerCompat.InterruptionFilter {
+  }
+
+  public static class NotificationManagerCompat.NotificationWithIdAndTag {
+    ctor public NotificationManagerCompat.NotificationWithIdAndTag(int, android.app.Notification);
+    ctor public NotificationManagerCompat.NotificationWithIdAndTag(String?, int, android.app.Notification);
+  }
+
+  public interface OnMultiWindowModeChangedProvider {
+    method public void addOnMultiWindowModeChangedListener(androidx.core.util.Consumer<androidx.core.app.MultiWindowModeChangedInfo!>);
+    method public void removeOnMultiWindowModeChangedListener(androidx.core.util.Consumer<androidx.core.app.MultiWindowModeChangedInfo!>);
+  }
+
+  public interface OnNewIntentProvider {
+    method public void addOnNewIntentListener(androidx.core.util.Consumer<android.content.Intent!>);
+    method public void removeOnNewIntentListener(androidx.core.util.Consumer<android.content.Intent!>);
+  }
+
+  public interface OnPictureInPictureModeChangedProvider {
+    method public void addOnPictureInPictureModeChangedListener(androidx.core.util.Consumer<androidx.core.app.PictureInPictureModeChangedInfo!>);
+    method public void removeOnPictureInPictureModeChangedListener(androidx.core.util.Consumer<androidx.core.app.PictureInPictureModeChangedInfo!>);
+  }
+
+  public final class PendingIntentCompat {
+    method public static android.app.PendingIntent getActivities(android.content.Context, int, android.content.Intent![], int, android.os.Bundle, boolean);
+    method public static android.app.PendingIntent getActivities(android.content.Context, int, android.content.Intent![], int, boolean);
+    method public static android.app.PendingIntent getActivity(android.content.Context, int, android.content.Intent, int, android.os.Bundle, boolean);
+    method public static android.app.PendingIntent getActivity(android.content.Context, int, android.content.Intent, int, boolean);
+    method public static android.app.PendingIntent? getBroadcast(android.content.Context, int, android.content.Intent, int, boolean);
+    method @RequiresApi(26) public static android.app.PendingIntent getForegroundService(android.content.Context, int, android.content.Intent, int, boolean);
+    method public static android.app.PendingIntent getService(android.content.Context, int, android.content.Intent, int, boolean);
+  }
+
+  public class Person {
+    method @RequiresApi(28) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static androidx.core.app.Person fromAndroidPerson(android.app.Person);
+    method public static androidx.core.app.Person fromBundle(android.os.Bundle);
+    method @RequiresApi(22) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static androidx.core.app.Person fromPersistableBundle(android.os.PersistableBundle);
+    method public androidx.core.graphics.drawable.IconCompat? getIcon();
+    method public String? getKey();
+    method public CharSequence? getName();
+    method public String? getUri();
+    method public boolean isBot();
+    method public boolean isImportant();
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public String resolveToLegacyUri();
+    method @RequiresApi(28) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public android.app.Person toAndroidPerson();
+    method public androidx.core.app.Person.Builder toBuilder();
+    method public android.os.Bundle toBundle();
+    method @RequiresApi(22) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public android.os.PersistableBundle toPersistableBundle();
+  }
+
+  public static class Person.Builder {
+    ctor public Person.Builder();
+    method public androidx.core.app.Person build();
+    method public androidx.core.app.Person.Builder setBot(boolean);
+    method public androidx.core.app.Person.Builder setIcon(androidx.core.graphics.drawable.IconCompat?);
+    method public androidx.core.app.Person.Builder setImportant(boolean);
+    method public androidx.core.app.Person.Builder setKey(String?);
+    method public androidx.core.app.Person.Builder setName(CharSequence?);
+    method public androidx.core.app.Person.Builder setUri(String?);
+  }
+
+  public final class PictureInPictureModeChangedInfo {
+    ctor public PictureInPictureModeChangedInfo(boolean);
+    ctor @RequiresApi(26) public PictureInPictureModeChangedInfo(boolean, android.content.res.Configuration);
+    method @RequiresApi(26) public android.content.res.Configuration getNewConfig();
+    method public boolean isInPictureInPictureMode();
+  }
+
+  @androidx.versionedparcelable.VersionedParcelize(jetifyAs="android.support.v4.app.RemoteActionCompat") public final class RemoteActionCompat implements androidx.versionedparcelable.VersionedParcelable {
+    ctor @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public RemoteActionCompat();
+    ctor public RemoteActionCompat(androidx.core.app.RemoteActionCompat);
+    ctor public RemoteActionCompat(androidx.core.graphics.drawable.IconCompat, CharSequence, CharSequence, android.app.PendingIntent);
+    method @RequiresApi(26) public static androidx.core.app.RemoteActionCompat createFromRemoteAction(android.app.RemoteAction);
+    method public android.app.PendingIntent getActionIntent();
+    method public CharSequence getContentDescription();
+    method public androidx.core.graphics.drawable.IconCompat getIcon();
+    method public CharSequence getTitle();
+    method public boolean isEnabled();
+    method public void setEnabled(boolean);
+    method public void setShouldShowIcon(boolean);
+    method public boolean shouldShowIcon();
+    method @RequiresApi(26) public android.app.RemoteAction toRemoteAction();
+    field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @androidx.versionedparcelable.ParcelField(4) public android.app.PendingIntent mActionIntent;
+    field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @androidx.versionedparcelable.ParcelField(3) public CharSequence mContentDescription;
+    field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @androidx.versionedparcelable.ParcelField(5) public boolean mEnabled;
+    field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @androidx.versionedparcelable.ParcelField(1) public androidx.core.graphics.drawable.IconCompat mIcon;
+    field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @androidx.versionedparcelable.ParcelField(6) public boolean mShouldShowIcon;
+    field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @androidx.versionedparcelable.ParcelField(2) public CharSequence mTitle;
+  }
+
+  public final class RemoteInput {
+    method public static void addDataResultToIntent(androidx.core.app.RemoteInput, android.content.Intent, java.util.Map<java.lang.String!,android.net.Uri!>);
+    method public static void addResultsToIntent(androidx.core.app.RemoteInput![], android.content.Intent, android.os.Bundle);
+    method public boolean getAllowFreeFormInput();
+    method public java.util.Set<java.lang.String!>? getAllowedDataTypes();
+    method public CharSequence![]? getChoices();
+    method public static java.util.Map<java.lang.String!,android.net.Uri!>? getDataResultsFromIntent(android.content.Intent, String);
+    method @androidx.core.app.RemoteInput.EditChoicesBeforeSending public int getEditChoicesBeforeSending();
+    method public android.os.Bundle getExtras();
+    method public CharSequence? getLabel();
+    method public String getResultKey();
+    method public static android.os.Bundle? getResultsFromIntent(android.content.Intent);
+    method @androidx.core.app.RemoteInput.Source public static int getResultsSource(android.content.Intent);
+    method public boolean isDataOnly();
+    method public static void setResultsSource(android.content.Intent, @androidx.core.app.RemoteInput.Source int);
+    field public static final int EDIT_CHOICES_BEFORE_SENDING_AUTO = 0; // 0x0
+    field public static final int EDIT_CHOICES_BEFORE_SENDING_DISABLED = 1; // 0x1
+    field public static final int EDIT_CHOICES_BEFORE_SENDING_ENABLED = 2; // 0x2
+    field public static final String EXTRA_RESULTS_DATA = "android.remoteinput.resultsData";
+    field public static final String RESULTS_CLIP_LABEL = "android.remoteinput.results";
+    field public static final int SOURCE_CHOICE = 1; // 0x1
+    field public static final int SOURCE_FREE_FORM_INPUT = 0; // 0x0
+  }
+
+  public static final class RemoteInput.Builder {
+    ctor public RemoteInput.Builder(String);
+    method public androidx.core.app.RemoteInput.Builder addExtras(android.os.Bundle);
+    method public androidx.core.app.RemoteInput build();
+    method public android.os.Bundle getExtras();
+    method public androidx.core.app.RemoteInput.Builder setAllowDataType(String, boolean);
+    method public androidx.core.app.RemoteInput.Builder setAllowFreeFormInput(boolean);
+    method public androidx.core.app.RemoteInput.Builder setChoices(CharSequence![]?);
+    method public androidx.core.app.RemoteInput.Builder setEditChoicesBeforeSending(@androidx.core.app.RemoteInput.EditChoicesBeforeSending int);
+    method public androidx.core.app.RemoteInput.Builder setLabel(CharSequence?);
+  }
+
+  @IntDef({androidx.core.app.RemoteInput.EDIT_CHOICES_BEFORE_SENDING_AUTO, androidx.core.app.RemoteInput.EDIT_CHOICES_BEFORE_SENDING_DISABLED, androidx.core.app.RemoteInput.EDIT_CHOICES_BEFORE_SENDING_ENABLED}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface RemoteInput.EditChoicesBeforeSending {
+  }
+
+  @IntDef({androidx.core.app.RemoteInput.SOURCE_FREE_FORM_INPUT, androidx.core.app.RemoteInput.SOURCE_CHOICE}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface RemoteInput.Source {
+  }
+
+  public final class ServiceCompat {
+    method public static void stopForeground(android.app.Service, @androidx.core.app.ServiceCompat.StopForegroundFlags int);
+    field public static final int START_STICKY = 1; // 0x1
+    field public static final int STOP_FOREGROUND_DETACH = 2; // 0x2
+    field public static final int STOP_FOREGROUND_REMOVE = 1; // 0x1
+  }
+
+  @IntDef(flag=true, value={androidx.core.app.ServiceCompat.STOP_FOREGROUND_REMOVE, androidx.core.app.ServiceCompat.STOP_FOREGROUND_DETACH}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface ServiceCompat.StopForegroundFlags {
+  }
+
+  public final class ShareCompat {
+    method @Deprecated public static void configureMenuItem(android.view.Menu, @IdRes int, androidx.core.app.ShareCompat.IntentBuilder);
+    method @Deprecated public static void configureMenuItem(android.view.MenuItem, androidx.core.app.ShareCompat.IntentBuilder);
+    method public static android.content.ComponentName? getCallingActivity(android.app.Activity);
+    method public static String? getCallingPackage(android.app.Activity);
+    field public static final String EXTRA_CALLING_ACTIVITY = "androidx.core.app.EXTRA_CALLING_ACTIVITY";
+    field public static final String EXTRA_CALLING_ACTIVITY_INTEROP = "android.support.v4.app.EXTRA_CALLING_ACTIVITY";
+    field public static final String EXTRA_CALLING_PACKAGE = "androidx.core.app.EXTRA_CALLING_PACKAGE";
+    field public static final String EXTRA_CALLING_PACKAGE_INTEROP = "android.support.v4.app.EXTRA_CALLING_PACKAGE";
+  }
+
+  public static class ShareCompat.IntentBuilder {
+    ctor public ShareCompat.IntentBuilder(android.content.Context);
+    method public androidx.core.app.ShareCompat.IntentBuilder addEmailBcc(String);
+    method public androidx.core.app.ShareCompat.IntentBuilder addEmailBcc(String![]);
+    method public androidx.core.app.ShareCompat.IntentBuilder addEmailCc(String);
+    method public androidx.core.app.ShareCompat.IntentBuilder addEmailCc(String![]);
+    method public androidx.core.app.ShareCompat.IntentBuilder addEmailTo(String);
+    method public androidx.core.app.ShareCompat.IntentBuilder addEmailTo(String![]);
+    method public androidx.core.app.ShareCompat.IntentBuilder addStream(android.net.Uri);
+    method public android.content.Intent createChooserIntent();
+    method @Deprecated public static androidx.core.app.ShareCompat.IntentBuilder from(android.app.Activity);
+    method public android.content.Intent getIntent();
+    method public androidx.core.app.ShareCompat.IntentBuilder setChooserTitle(@StringRes int);
+    method public androidx.core.app.ShareCompat.IntentBuilder setChooserTitle(CharSequence?);
+    method public androidx.core.app.ShareCompat.IntentBuilder setEmailBcc(String![]?);
+    method public androidx.core.app.ShareCompat.IntentBuilder setEmailCc(String![]?);
+    method public androidx.core.app.ShareCompat.IntentBuilder setEmailTo(String![]?);
+    method public androidx.core.app.ShareCompat.IntentBuilder setHtmlText(String?);
+    method public androidx.core.app.ShareCompat.IntentBuilder setStream(android.net.Uri?);
+    method public androidx.core.app.ShareCompat.IntentBuilder setSubject(String?);
+    method public androidx.core.app.ShareCompat.IntentBuilder setText(CharSequence?);
+    method public androidx.core.app.ShareCompat.IntentBuilder setType(String?);
+    method public void startChooser();
+  }
+
+  public static class ShareCompat.IntentReader {
+    ctor public ShareCompat.IntentReader(android.app.Activity);
+    ctor public ShareCompat.IntentReader(android.content.Context, android.content.Intent);
+    method @Deprecated public static androidx.core.app.ShareCompat.IntentReader from(android.app.Activity);
+    method public android.content.ComponentName? getCallingActivity();
+    method public android.graphics.drawable.Drawable? getCallingActivityIcon();
+    method public android.graphics.drawable.Drawable? getCallingApplicationIcon();
+    method public CharSequence? getCallingApplicationLabel();
+    method public String? getCallingPackage();
+    method public String![]? getEmailBcc();
+    method public String![]? getEmailCc();
+    method public String![]? getEmailTo();
+    method public String? getHtmlText();
+    method public android.net.Uri? getStream();
+    method public android.net.Uri? getStream(int);
+    method public int getStreamCount();
+    method public String? getSubject();
+    method public CharSequence? getText();
+    method public String? getType();
+    method public boolean isMultipleShare();
+    method public boolean isShareIntent();
+    method public boolean isSingleShare();
+  }
+
+  public abstract class SharedElementCallback {
+    ctor public SharedElementCallback();
+    method public android.os.Parcelable! onCaptureSharedElementSnapshot(android.view.View!, android.graphics.Matrix!, android.graphics.RectF!);
+    method public android.view.View! onCreateSnapshotView(android.content.Context!, android.os.Parcelable!);
+    method public void onMapSharedElements(java.util.List<java.lang.String!>!, java.util.Map<java.lang.String!,android.view.View!>!);
+    method public void onRejectSharedElements(java.util.List<android.view.View!>!);
+    method public void onSharedElementEnd(java.util.List<java.lang.String!>!, java.util.List<android.view.View!>!, java.util.List<android.view.View!>!);
+    method public void onSharedElementStart(java.util.List<java.lang.String!>!, java.util.List<android.view.View!>!, java.util.List<android.view.View!>!);
+    method public void onSharedElementsArrived(java.util.List<java.lang.String!>!, java.util.List<android.view.View!>!, androidx.core.app.SharedElementCallback.OnSharedElementsReadyListener!);
+  }
+
+  public static interface SharedElementCallback.OnSharedElementsReadyListener {
+    method public void onSharedElementsReady();
+  }
+
+  public final class TaskStackBuilder implements java.lang.Iterable<android.content.Intent> {
+    method public androidx.core.app.TaskStackBuilder addNextIntent(android.content.Intent);
+    method public androidx.core.app.TaskStackBuilder addNextIntentWithParentStack(android.content.Intent);
+    method public androidx.core.app.TaskStackBuilder addParentStack(android.app.Activity);
+    method public androidx.core.app.TaskStackBuilder addParentStack(android.content.ComponentName);
+    method public androidx.core.app.TaskStackBuilder addParentStack(Class<?>);
+    method public static androidx.core.app.TaskStackBuilder create(android.content.Context);
+    method public android.content.Intent? editIntentAt(int);
+    method @Deprecated public static androidx.core.app.TaskStackBuilder! from(android.content.Context!);
+    method @Deprecated public android.content.Intent! getIntent(int);
+    method public int getIntentCount();
+    method public android.content.Intent![] getIntents();
+    method public android.app.PendingIntent? getPendingIntent(int, int);
+    method public android.app.PendingIntent? getPendingIntent(int, int, android.os.Bundle?);
+    method @Deprecated public java.util.Iterator<android.content.Intent!> iterator();
+    method public void startActivities();
+    method public void startActivities(android.os.Bundle?);
+  }
+
+  public static interface TaskStackBuilder.SupportParentable {
+    method public android.content.Intent? getSupportParentActivityIntent();
+  }
+
+}
+
+package androidx.core.content {
+
+  public final class ContentProviderCompat {
+    method public static android.content.Context requireContext(android.content.ContentProvider);
+  }
+
+  public final class ContentResolverCompat {
+    method public static android.database.Cursor? query(android.content.ContentResolver, android.net.Uri, String![]?, String?, String![]?, String?, androidx.core.os.CancellationSignal?);
+  }
+
+  public class ContextCompat {
+    ctor protected ContextCompat();
+    method public static int checkSelfPermission(android.content.Context, String);
+    method public static android.content.Context? createDeviceProtectedStorageContext(android.content.Context);
+    method public static String? getAttributionTag(android.content.Context);
+    method public static java.io.File getCodeCacheDir(android.content.Context);
+    method @ColorInt public static int getColor(android.content.Context, @ColorRes int);
+    method public static android.content.res.ColorStateList? getColorStateList(android.content.Context, @ColorRes int);
+    method public static android.content.Context getContextForLanguage(android.content.Context);
+    method public static java.io.File? getDataDir(android.content.Context);
+    method public static android.view.Display getDisplayOrDefault(@DisplayContext android.content.Context);
+    method public static android.graphics.drawable.Drawable? getDrawable(android.content.Context, @DrawableRes int);
+    method public static java.io.File![] getExternalCacheDirs(android.content.Context);
+    method public static java.io.File![] getExternalFilesDirs(android.content.Context, String?);
+    method public static java.util.concurrent.Executor getMainExecutor(android.content.Context);
+    method public static java.io.File? getNoBackupFilesDir(android.content.Context);
+    method public static java.io.File![] getObbDirs(android.content.Context);
+    method public static String getString(android.content.Context, int);
+    method public static <T> T? getSystemService(android.content.Context, Class<T!>);
+    method public static String? getSystemServiceName(android.content.Context, Class<?>);
+    method public static boolean isDeviceProtectedStorage(android.content.Context);
+    method public static android.content.Intent? registerReceiver(android.content.Context, android.content.BroadcastReceiver?, android.content.IntentFilter, int);
+    method public static android.content.Intent? registerReceiver(android.content.Context, android.content.BroadcastReceiver?, android.content.IntentFilter, String?, android.os.Handler?, int);
+    method public static boolean startActivities(android.content.Context, android.content.Intent![]);
+    method public static boolean startActivities(android.content.Context, android.content.Intent![], android.os.Bundle?);
+    method public static void startActivity(android.content.Context, android.content.Intent, android.os.Bundle?);
+    method public static void startForegroundService(android.content.Context, android.content.Intent);
+    field public static final int RECEIVER_EXPORTED = 2; // 0x2
+    field public static final int RECEIVER_NOT_EXPORTED = 4; // 0x4
+    field public static final int RECEIVER_VISIBLE_TO_INSTANT_APPS = 1; // 0x1
+  }
+
+  public class FileProvider extends android.content.ContentProvider {
+    ctor public FileProvider();
+    ctor protected FileProvider(@XmlRes int);
+    method public int delete(android.net.Uri, String?, String![]?);
+    method public String? getType(android.net.Uri);
+    method public String? getTypeAnonymous(android.net.Uri);
+    method public static android.net.Uri! getUriForFile(android.content.Context, String, java.io.File);
+    method public static android.net.Uri getUriForFile(android.content.Context, String, java.io.File, String);
+    method public android.net.Uri! insert(android.net.Uri, android.content.ContentValues);
+    method public boolean onCreate();
+    method public android.database.Cursor query(android.net.Uri, String![]?, String?, String![]?, String?);
+    method public int update(android.net.Uri, android.content.ContentValues, String?, String![]?);
+  }
+
+  public final class IntentCompat {
+    method public static android.content.Intent createManageUnusedAppRestrictionsIntent(android.content.Context, String);
+    method public static android.os.Parcelable![]? getParcelableArrayExtra(android.content.Intent, String?, Class<? extends android.os.Parcelable>);
+    method public static <T> java.util.ArrayList<T!>? getParcelableArrayListExtra(android.content.Intent, String?, Class<? extends T>);
+    method public static <T> T? getParcelableExtra(android.content.Intent, String?, Class<T!>);
+    method public static android.content.Intent makeMainSelectorActivity(String, String);
+    field public static final String ACTION_CREATE_REMINDER = "android.intent.action.CREATE_REMINDER";
+    field public static final String CATEGORY_LEANBACK_LAUNCHER = "android.intent.category.LEANBACK_LAUNCHER";
+    field public static final String EXTRA_HTML_TEXT = "android.intent.extra.HTML_TEXT";
+    field public static final String EXTRA_START_PLAYBACK = "android.intent.extra.START_PLAYBACK";
+    field public static final String EXTRA_TIME = "android.intent.extra.TIME";
+  }
+
+  public class IntentSanitizer {
+    method public android.content.Intent sanitize(android.content.Intent, androidx.core.util.Consumer<java.lang.String!>);
+    method public android.content.Intent sanitizeByFiltering(android.content.Intent);
+    method public android.content.Intent sanitizeByThrowing(android.content.Intent);
+  }
+
+  public static final class IntentSanitizer.Builder {
+    ctor public IntentSanitizer.Builder();
+    method public androidx.core.content.IntentSanitizer.Builder allowAction(androidx.core.util.Predicate<java.lang.String!>);
+    method public androidx.core.content.IntentSanitizer.Builder allowAction(String);
+    method public androidx.core.content.IntentSanitizer.Builder allowAnyComponent();
+    method public androidx.core.content.IntentSanitizer.Builder allowCategory(androidx.core.util.Predicate<java.lang.String!>);
+    method public androidx.core.content.IntentSanitizer.Builder allowCategory(String);
+    method public androidx.core.content.IntentSanitizer.Builder allowClipData(androidx.core.util.Predicate<android.content.ClipData!>);
+    method public androidx.core.content.IntentSanitizer.Builder allowClipDataText();
+    method public androidx.core.content.IntentSanitizer.Builder allowClipDataUri(androidx.core.util.Predicate<android.net.Uri!>);
+    method public androidx.core.content.IntentSanitizer.Builder allowClipDataUriWithAuthority(String);
+    method public androidx.core.content.IntentSanitizer.Builder allowComponent(android.content.ComponentName);
+    method public androidx.core.content.IntentSanitizer.Builder allowComponent(androidx.core.util.Predicate<android.content.ComponentName!>);
+    method public androidx.core.content.IntentSanitizer.Builder allowComponentWithPackage(String);
+    method public androidx.core.content.IntentSanitizer.Builder allowData(androidx.core.util.Predicate<android.net.Uri!>);
+    method public androidx.core.content.IntentSanitizer.Builder allowDataWithAuthority(String);
+    method public androidx.core.content.IntentSanitizer.Builder allowExtra(String, androidx.core.util.Predicate<java.lang.Object!>);
+    method public androidx.core.content.IntentSanitizer.Builder allowExtra(String, Class<?>);
+    method public <T> androidx.core.content.IntentSanitizer.Builder allowExtra(String, Class<T!>, androidx.core.util.Predicate<T!>);
+    method public androidx.core.content.IntentSanitizer.Builder allowExtraOutput(androidx.core.util.Predicate<android.net.Uri!>);
+    method public androidx.core.content.IntentSanitizer.Builder allowExtraOutput(String);
+    method public androidx.core.content.IntentSanitizer.Builder allowExtraStream(androidx.core.util.Predicate<android.net.Uri!>);
+    method public androidx.core.content.IntentSanitizer.Builder allowExtraStreamUriWithAuthority(String);
+    method public androidx.core.content.IntentSanitizer.Builder allowFlags(int);
+    method public androidx.core.content.IntentSanitizer.Builder allowHistoryStackFlags();
+    method public androidx.core.content.IntentSanitizer.Builder allowIdentifier();
+    method public androidx.core.content.IntentSanitizer.Builder allowPackage(androidx.core.util.Predicate<java.lang.String!>);
+    method public androidx.core.content.IntentSanitizer.Builder allowPackage(String);
+    method public androidx.core.content.IntentSanitizer.Builder allowReceiverFlags();
+    method public androidx.core.content.IntentSanitizer.Builder allowSelector();
+    method public androidx.core.content.IntentSanitizer.Builder allowSourceBounds();
+    method public androidx.core.content.IntentSanitizer.Builder allowType(androidx.core.util.Predicate<java.lang.String!>);
+    method public androidx.core.content.IntentSanitizer.Builder allowType(String);
+    method public androidx.core.content.IntentSanitizer build();
+  }
+
+  public final class LocusIdCompat {
+    ctor public LocusIdCompat(String);
+    method public String getId();
+    method @RequiresApi(29) public android.content.LocusId toLocusId();
+    method @RequiresApi(29) public static androidx.core.content.LocusIdCompat toLocusIdCompat(android.content.LocusId);
+  }
+
+  public final class MimeTypeFilter {
+    method public static boolean matches(String?, String);
+    method public static String? matches(String?, String![]);
+    method public static String? matches(String![]?, String);
+    method public static String![] matchesMany(String![]?, String);
+  }
+
+  public interface OnConfigurationChangedProvider {
+    method public void addOnConfigurationChangedListener(androidx.core.util.Consumer<android.content.res.Configuration!>);
+    method public void removeOnConfigurationChangedListener(androidx.core.util.Consumer<android.content.res.Configuration!>);
+  }
+
+  public interface OnTrimMemoryProvider {
+    method public void addOnTrimMemoryListener(androidx.core.util.Consumer<java.lang.Integer!>);
+    method public void removeOnTrimMemoryListener(androidx.core.util.Consumer<java.lang.Integer!>);
+  }
+
+  public final class PackageManagerCompat {
+    method public static com.google.common.util.concurrent.ListenableFuture<java.lang.Integer!> getUnusedAppRestrictionsStatus(android.content.Context);
+    field public static final String ACTION_PERMISSION_REVOCATION_SETTINGS = "android.intent.action.AUTO_REVOKE_PERMISSIONS";
+  }
+
+  public final class PermissionChecker {
+    method @androidx.core.content.PermissionChecker.PermissionResult public static int checkCallingOrSelfPermission(android.content.Context, String);
+    method @androidx.core.content.PermissionChecker.PermissionResult public static int checkCallingPermission(android.content.Context, String, String?);
+    method @androidx.core.content.PermissionChecker.PermissionResult public static int checkPermission(android.content.Context, String, int, int, String?);
+    method @androidx.core.content.PermissionChecker.PermissionResult public static int checkSelfPermission(android.content.Context, String);
+    field public static final int PERMISSION_DENIED = -1; // 0xffffffff
+    field public static final int PERMISSION_DENIED_APP_OP = -2; // 0xfffffffe
+    field public static final int PERMISSION_GRANTED = 0; // 0x0
+  }
+
+  @IntDef({androidx.core.content.PermissionChecker.PERMISSION_GRANTED, androidx.core.content.PermissionChecker.PERMISSION_DENIED, androidx.core.content.PermissionChecker.PERMISSION_DENIED_APP_OP}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface PermissionChecker.PermissionResult {
+  }
+
+  @Deprecated public final class SharedPreferencesCompat {
+  }
+
+  @Deprecated public static final class SharedPreferencesCompat.EditorCompat {
+    method @Deprecated public void apply(android.content.SharedPreferences.Editor);
+    method @Deprecated public static androidx.core.content.SharedPreferencesCompat.EditorCompat! getInstance();
+  }
+
+  public class UnusedAppRestrictionsBackportCallback {
+    method public void onResult(boolean, boolean) throws android.os.RemoteException;
+  }
+
+  public abstract class UnusedAppRestrictionsBackportService extends android.app.Service {
+    ctor public UnusedAppRestrictionsBackportService();
+    method protected abstract void isPermissionRevocationEnabled(androidx.core.content.UnusedAppRestrictionsBackportCallback);
+    method public android.os.IBinder? onBind(android.content.Intent?);
+    field public static final String ACTION_UNUSED_APP_RESTRICTIONS_BACKPORT_CONNECTION = "android.support.unusedapprestrictions.action.CustomUnusedAppRestrictionsBackportService";
+  }
+
+  public final class UnusedAppRestrictionsConstants {
+    field public static final int API_30 = 4; // 0x4
+    field public static final int API_30_BACKPORT = 3; // 0x3
+    field public static final int API_31 = 5; // 0x5
+    field public static final int DISABLED = 2; // 0x2
+    field public static final int ERROR = 0; // 0x0
+    field public static final int FEATURE_NOT_AVAILABLE = 1; // 0x1
+  }
+
+  public class UriMatcherCompat {
+    method public static androidx.core.util.Predicate<android.net.Uri!> asPredicate(android.content.UriMatcher);
+  }
+
+}
+
+package androidx.core.content.pm {
+
+  @Deprecated public final class ActivityInfoCompat {
+    field @Deprecated public static final int CONFIG_UI_MODE = 512; // 0x200
+  }
+
+  public final class PackageInfoCompat {
+    method public static long getLongVersionCode(android.content.pm.PackageInfo);
+    method public static java.util.List<android.content.pm.Signature!> getSignatures(android.content.pm.PackageManager, String) throws android.content.pm.PackageManager.NameNotFoundException;
+    method public static boolean hasSignatures(android.content.pm.PackageManager, String, @Size(min=1) java.util.Map<byte[]!,java.lang.Integer!>, boolean) throws android.content.pm.PackageManager.NameNotFoundException;
+  }
+
+  public final class PermissionInfoCompat {
+    method public static int getProtection(android.content.pm.PermissionInfo);
+    method public static int getProtectionFlags(android.content.pm.PermissionInfo);
+  }
+
+  @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public abstract class ShortcutInfoChangeListener {
+    ctor public ShortcutInfoChangeListener();
+    method @AnyThread public void onAllShortcutsRemoved();
+    method @AnyThread public void onShortcutAdded(java.util.List<androidx.core.content.pm.ShortcutInfoCompat!>);
+    method @AnyThread public void onShortcutRemoved(java.util.List<java.lang.String!>);
+    method @AnyThread public void onShortcutUpdated(java.util.List<androidx.core.content.pm.ShortcutInfoCompat!>);
+    method @AnyThread public void onShortcutUsageReported(java.util.List<java.lang.String!>);
+  }
+
+  public class ShortcutInfoCompat {
+    method public android.content.ComponentName? getActivity();
+    method public java.util.Set<java.lang.String!>? getCategories();
+    method public CharSequence? getDisabledMessage();
+    method public int getDisabledReason();
+    method @androidx.core.content.pm.ShortcutInfoCompat.Surface public int getExcludedFromSurfaces();
+    method public android.os.PersistableBundle? getExtras();
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public androidx.core.graphics.drawable.IconCompat! getIcon();
+    method public String getId();
+    method public android.content.Intent getIntent();
+    method public android.content.Intent![] getIntents();
+    method public long getLastChangedTimestamp();
+    method public androidx.core.content.LocusIdCompat? getLocusId();
+    method public CharSequence? getLongLabel();
+    method public String getPackage();
+    method public int getRank();
+    method public CharSequence getShortLabel();
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public android.os.Bundle? getTransientExtras();
+    method public android.os.UserHandle? getUserHandle();
+    method public boolean hasKeyFieldsOnly();
+    method public boolean isCached();
+    method public boolean isDeclaredInManifest();
+    method public boolean isDynamic();
+    method public boolean isEnabled();
+    method public boolean isExcludedFromSurfaces(@androidx.core.content.pm.ShortcutInfoCompat.Surface int);
+    method public boolean isImmutable();
+    method public boolean isPinned();
+    method @RequiresApi(25) public android.content.pm.ShortcutInfo! toShortcutInfo();
+    field public static final int SURFACE_LAUNCHER = 1; // 0x1
+  }
+
+  public static class ShortcutInfoCompat.Builder {
+    ctor @RequiresApi(25) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public ShortcutInfoCompat.Builder(android.content.Context, android.content.pm.ShortcutInfo);
+    ctor public ShortcutInfoCompat.Builder(android.content.Context, String);
+    ctor @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public ShortcutInfoCompat.Builder(androidx.core.content.pm.ShortcutInfoCompat);
+    method public androidx.core.content.pm.ShortcutInfoCompat.Builder addCapabilityBinding(String);
+    method public androidx.core.content.pm.ShortcutInfoCompat.Builder addCapabilityBinding(String, String, java.util.List<java.lang.String!>);
+    method public androidx.core.content.pm.ShortcutInfoCompat build();
+    method public androidx.core.content.pm.ShortcutInfoCompat.Builder setActivity(android.content.ComponentName);
+    method public androidx.core.content.pm.ShortcutInfoCompat.Builder setAlwaysBadged();
+    method public androidx.core.content.pm.ShortcutInfoCompat.Builder setCategories(java.util.Set<java.lang.String!>);
+    method public androidx.core.content.pm.ShortcutInfoCompat.Builder setDisabledMessage(CharSequence);
+    method public androidx.core.content.pm.ShortcutInfoCompat.Builder setExcludedFromSurfaces(int);
+    method public androidx.core.content.pm.ShortcutInfoCompat.Builder setExtras(android.os.PersistableBundle);
+    method public androidx.core.content.pm.ShortcutInfoCompat.Builder setIcon(androidx.core.graphics.drawable.IconCompat!);
+    method public androidx.core.content.pm.ShortcutInfoCompat.Builder setIntent(android.content.Intent);
+    method public androidx.core.content.pm.ShortcutInfoCompat.Builder setIntents(android.content.Intent![]);
+    method public androidx.core.content.pm.ShortcutInfoCompat.Builder setIsConversation();
+    method public androidx.core.content.pm.ShortcutInfoCompat.Builder setLocusId(androidx.core.content.LocusIdCompat?);
+    method public androidx.core.content.pm.ShortcutInfoCompat.Builder setLongLabel(CharSequence);
+    method @Deprecated public androidx.core.content.pm.ShortcutInfoCompat.Builder setLongLived();
+    method public androidx.core.content.pm.ShortcutInfoCompat.Builder setLongLived(boolean);
+    method public androidx.core.content.pm.ShortcutInfoCompat.Builder setPerson(androidx.core.app.Person);
+    method public androidx.core.content.pm.ShortcutInfoCompat.Builder setPersons(androidx.core.app.Person![]);
+    method public androidx.core.content.pm.ShortcutInfoCompat.Builder setRank(int);
+    method public androidx.core.content.pm.ShortcutInfoCompat.Builder setShortLabel(CharSequence);
+    method public androidx.core.content.pm.ShortcutInfoCompat.Builder setSliceUri(android.net.Uri);
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public androidx.core.content.pm.ShortcutInfoCompat.Builder setTransientExtras(android.os.Bundle);
+  }
+
+  @IntDef(flag=true, value={androidx.core.content.pm.ShortcutInfoCompat.SURFACE_LAUNCHER}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface ShortcutInfoCompat.Surface {
+  }
+
+  @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public abstract class ShortcutInfoCompatSaver<T> {
+    ctor public ShortcutInfoCompatSaver();
+    method @AnyThread public abstract T! addShortcuts(java.util.List<androidx.core.content.pm.ShortcutInfoCompat!>!);
+    method @WorkerThread public java.util.List<androidx.core.content.pm.ShortcutInfoCompat!>! getShortcuts() throws java.lang.Exception;
+    method @AnyThread public abstract T! removeAllShortcuts();
+    method @AnyThread public abstract T! removeShortcuts(java.util.List<java.lang.String!>!);
+  }
+
+  public class ShortcutManagerCompat {
+    method public static boolean addDynamicShortcuts(android.content.Context, java.util.List<androidx.core.content.pm.ShortcutInfoCompat!>);
+    method public static android.content.Intent createShortcutResultIntent(android.content.Context, androidx.core.content.pm.ShortcutInfoCompat);
+    method public static void disableShortcuts(android.content.Context, java.util.List<java.lang.String!>, CharSequence?);
+    method public static void enableShortcuts(android.content.Context, java.util.List<androidx.core.content.pm.ShortcutInfoCompat!>);
+    method public static java.util.List<androidx.core.content.pm.ShortcutInfoCompat!> getDynamicShortcuts(android.content.Context);
+    method public static int getIconMaxHeight(android.content.Context);
+    method public static int getIconMaxWidth(android.content.Context);
+    method public static int getMaxShortcutCountPerActivity(android.content.Context);
+    method public static java.util.List<androidx.core.content.pm.ShortcutInfoCompat!> getShortcuts(android.content.Context, @androidx.core.content.pm.ShortcutManagerCompat.ShortcutMatchFlags int);
+    method public static boolean isRateLimitingActive(android.content.Context);
+    method public static boolean isRequestPinShortcutSupported(android.content.Context);
+    method public static boolean pushDynamicShortcut(android.content.Context, androidx.core.content.pm.ShortcutInfoCompat);
+    method public static void removeAllDynamicShortcuts(android.content.Context);
+    method public static void removeDynamicShortcuts(android.content.Context, java.util.List<java.lang.String!>);
+    method public static void removeLongLivedShortcuts(android.content.Context, java.util.List<java.lang.String!>);
+    method public static void reportShortcutUsed(android.content.Context, String);
+    method public static boolean requestPinShortcut(android.content.Context, androidx.core.content.pm.ShortcutInfoCompat, android.content.IntentSender?);
+    method public static boolean setDynamicShortcuts(android.content.Context, java.util.List<androidx.core.content.pm.ShortcutInfoCompat!>);
+    method public static boolean updateShortcuts(android.content.Context, java.util.List<androidx.core.content.pm.ShortcutInfoCompat!>);
+    field public static final String EXTRA_SHORTCUT_ID = "android.intent.extra.shortcut.ID";
+    field public static final int FLAG_MATCH_CACHED = 8; // 0x8
+    field public static final int FLAG_MATCH_DYNAMIC = 2; // 0x2
+    field public static final int FLAG_MATCH_MANIFEST = 1; // 0x1
+    field public static final int FLAG_MATCH_PINNED = 4; // 0x4
+  }
+
+  @IntDef(flag=true, value={androidx.core.content.pm.ShortcutManagerCompat.FLAG_MATCH_MANIFEST, androidx.core.content.pm.ShortcutManagerCompat.FLAG_MATCH_DYNAMIC, androidx.core.content.pm.ShortcutManagerCompat.FLAG_MATCH_PINNED, androidx.core.content.pm.ShortcutManagerCompat.FLAG_MATCH_CACHED}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface ShortcutManagerCompat.ShortcutMatchFlags {
+  }
+
+  @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public class ShortcutXmlParser {
+    method @WorkerThread public static java.util.List<java.lang.String!> getShortcutIds(android.content.Context);
+    method @VisibleForTesting public static java.util.List<java.lang.String!> parseShortcutIds(org.xmlpull.v1.XmlPullParser) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
+  }
+
+}
+
+package androidx.core.content.res {
+
+  @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public class CamColor {
+    method public static void getM3HCTfromColor(@ColorInt int, float[]);
+    method public static int toColor(@FloatRange(from=0.0, to=360.0) float, @FloatRange(from=0.0, to=java.lang.Double.POSITIVE_INFINITY, toInclusive=false) float, @FloatRange(from=0.0, to=100.0) float);
+  }
+
+  @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public final class ColorStateListInflaterCompat {
+    method public static android.content.res.ColorStateList createFromXml(android.content.res.Resources, org.xmlpull.v1.XmlPullParser, android.content.res.Resources.Theme?) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
+    method public static android.content.res.ColorStateList createFromXmlInner(android.content.res.Resources, org.xmlpull.v1.XmlPullParser, android.util.AttributeSet, android.content.res.Resources.Theme?) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
+    method public static android.content.res.ColorStateList? inflate(android.content.res.Resources, @XmlRes int, android.content.res.Resources.Theme?);
+  }
+
+  @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public final class ComplexColorCompat {
+    method @ColorInt public int getColor();
+    method public android.graphics.Shader? getShader();
+    method public static androidx.core.content.res.ComplexColorCompat? inflate(android.content.res.Resources, @ColorRes int, android.content.res.Resources.Theme?);
+    method public boolean isGradient();
+    method public boolean isStateful();
+    method public boolean onStateChanged(int[]!);
+    method public void setColor(@ColorInt int);
+    method public boolean willDraw();
+  }
+
+  public final class ConfigurationHelper {
+    method public static int getDensityDpi(android.content.res.Resources);
+  }
+
+  @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public class FontResourcesParserCompat {
+    method public static androidx.core.content.res.FontResourcesParserCompat.FamilyResourceEntry? parse(org.xmlpull.v1.XmlPullParser, android.content.res.Resources) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
+    method public static java.util.List<java.util.List<byte[]!>!> readCerts(android.content.res.Resources, @ArrayRes int);
+    field public static final int FETCH_STRATEGY_ASYNC = 1; // 0x1
+    field public static final int FETCH_STRATEGY_BLOCKING = 0; // 0x0
+    field public static final int INFINITE_TIMEOUT_VALUE = -1; // 0xffffffff
+  }
+
+  public static interface FontResourcesParserCompat.FamilyResourceEntry {
+  }
+
+  @IntDef({androidx.core.content.res.FontResourcesParserCompat.FETCH_STRATEGY_BLOCKING, androidx.core.content.res.FontResourcesParserCompat.FETCH_STRATEGY_ASYNC}) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface FontResourcesParserCompat.FetchStrategy {
+  }
+
+  public static final class FontResourcesParserCompat.FontFamilyFilesResourceEntry implements androidx.core.content.res.FontResourcesParserCompat.FamilyResourceEntry {
+    ctor public FontResourcesParserCompat.FontFamilyFilesResourceEntry(androidx.core.content.res.FontResourcesParserCompat.FontFileResourceEntry![]);
+    method public androidx.core.content.res.FontResourcesParserCompat.FontFileResourceEntry![] getEntries();
+  }
+
+  public static final class FontResourcesParserCompat.FontFileResourceEntry {
+    ctor public FontResourcesParserCompat.FontFileResourceEntry(String, int, boolean, String?, int, int);
+    method public String getFileName();
+    method public int getResourceId();
+    method public int getTtcIndex();
+    method public String? getVariationSettings();
+    method public int getWeight();
+    method public boolean isItalic();
+  }
+
+  public static final class FontResourcesParserCompat.ProviderResourceEntry implements androidx.core.content.res.FontResourcesParserCompat.FamilyResourceEntry {
+    ctor public FontResourcesParserCompat.ProviderResourceEntry(androidx.core.provider.FontRequest, @androidx.core.content.res.FontResourcesParserCompat.FetchStrategy int, int);
+    method @androidx.core.content.res.FontResourcesParserCompat.FetchStrategy public int getFetchStrategy();
+    method public androidx.core.provider.FontRequest getRequest();
+    method public int getTimeout();
+  }
+
+  public final class ResourcesCompat {
+    method public static void clearCachesForTheme(android.content.res.Resources.Theme);
+    method public static android.graphics.Typeface? getCachedFont(android.content.Context, @FontRes int) throws android.content.res.Resources.NotFoundException;
+    method @ColorInt public static int getColor(android.content.res.Resources, @ColorRes int, android.content.res.Resources.Theme?) throws android.content.res.Resources.NotFoundException;
+    method public static android.content.res.ColorStateList? getColorStateList(android.content.res.Resources, @ColorRes int, android.content.res.Resources.Theme?) throws android.content.res.Resources.NotFoundException;
+    method public static android.graphics.drawable.Drawable? getDrawable(android.content.res.Resources, @DrawableRes int, android.content.res.Resources.Theme?) throws android.content.res.Resources.NotFoundException;
+    method public static android.graphics.drawable.Drawable? getDrawableForDensity(android.content.res.Resources, @DrawableRes int, int, android.content.res.Resources.Theme?) throws android.content.res.Resources.NotFoundException;
+    method public static float getFloat(android.content.res.Resources, @DimenRes int);
+    method public static android.graphics.Typeface? getFont(android.content.Context, @FontRes int) throws android.content.res.Resources.NotFoundException;
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static android.graphics.Typeface? getFont(android.content.Context, @FontRes int, android.util.TypedValue, int, androidx.core.content.res.ResourcesCompat.FontCallback?) throws android.content.res.Resources.NotFoundException;
+    method public static void getFont(android.content.Context, @FontRes int, androidx.core.content.res.ResourcesCompat.FontCallback, android.os.Handler?) throws android.content.res.Resources.NotFoundException;
+    field @AnyRes public static final int ID_NULL = 0; // 0x0
+  }
+
+  public abstract static class ResourcesCompat.FontCallback {
+    ctor public ResourcesCompat.FontCallback();
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public final void callbackFailAsync(@androidx.core.provider.FontsContractCompat.FontRequestCallback.FontRequestFailReason int, android.os.Handler?);
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public final void callbackSuccessAsync(android.graphics.Typeface, android.os.Handler?);
+    method public abstract void onFontRetrievalFailed(@androidx.core.provider.FontsContractCompat.FontRequestCallback.FontRequestFailReason int);
+    method public abstract void onFontRetrieved(android.graphics.Typeface);
+  }
+
+  public static final class ResourcesCompat.ThemeCompat {
+    method public static void rebase(android.content.res.Resources.Theme);
+  }
+
+  @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public class TypedArrayUtils {
+    method public static int getAttr(android.content.Context, int, int);
+    method public static boolean getBoolean(android.content.res.TypedArray, @StyleableRes int, @StyleableRes int, boolean);
+    method public static android.graphics.drawable.Drawable? getDrawable(android.content.res.TypedArray, @StyleableRes int, @StyleableRes int);
+    method public static int getInt(android.content.res.TypedArray, @StyleableRes int, @StyleableRes int, int);
+    method public static boolean getNamedBoolean(android.content.res.TypedArray, org.xmlpull.v1.XmlPullParser, String, @StyleableRes int, boolean);
+    method @ColorInt public static int getNamedColor(android.content.res.TypedArray, org.xmlpull.v1.XmlPullParser, String, @StyleableRes int, @ColorInt int);
+    method public static android.content.res.ColorStateList? getNamedColorStateList(android.content.res.TypedArray, org.xmlpull.v1.XmlPullParser, android.content.res.Resources.Theme?, String, @StyleableRes int);
+    method public static androidx.core.content.res.ComplexColorCompat! getNamedComplexColor(android.content.res.TypedArray, org.xmlpull.v1.XmlPullParser, android.content.res.Resources.Theme?, String, @StyleableRes int, @ColorInt int);
+    method public static float getNamedFloat(android.content.res.TypedArray, org.xmlpull.v1.XmlPullParser, String, @StyleableRes int, float);
+    method public static int getNamedInt(android.content.res.TypedArray, org.xmlpull.v1.XmlPullParser, String, @StyleableRes int, int);
+    method @AnyRes public static int getNamedResourceId(android.content.res.TypedArray, org.xmlpull.v1.XmlPullParser, String, @StyleableRes int, @AnyRes int);
+    method public static String? getNamedString(android.content.res.TypedArray, org.xmlpull.v1.XmlPullParser, String, @StyleableRes int);
+    method @AnyRes public static int getResourceId(android.content.res.TypedArray, @StyleableRes int, @StyleableRes int, @AnyRes int);
+    method public static String? getString(android.content.res.TypedArray, @StyleableRes int, @StyleableRes int);
+    method public static CharSequence? getText(android.content.res.TypedArray, @StyleableRes int, @StyleableRes int);
+    method public static CharSequence![]? getTextArray(android.content.res.TypedArray, @StyleableRes int, @StyleableRes int);
+    method public static boolean hasAttribute(org.xmlpull.v1.XmlPullParser, String);
+    method public static android.content.res.TypedArray obtainAttributes(android.content.res.Resources, android.content.res.Resources.Theme?, android.util.AttributeSet, int[]);
+    method public static android.util.TypedValue? peekNamedValue(android.content.res.TypedArray, org.xmlpull.v1.XmlPullParser, String, int);
+  }
+
+}
+
+package androidx.core.database {
+
+  public final class CursorWindowCompat {
+    method public static android.database.CursorWindow create(String?, long);
+  }
+
+  @Deprecated public final class DatabaseUtilsCompat {
+    method @Deprecated public static String![]! appendSelectionArgs(String![]!, String![]!);
+    method @Deprecated public static String! concatenateWhere(String!, String!);
+  }
+
+}
+
+package androidx.core.database.sqlite {
+
+  public final class SQLiteCursorCompat {
+    method public static void setFillWindowForwardOnly(android.database.sqlite.SQLiteCursor, boolean);
+  }
+
+}
+
+package androidx.core.graphics {
+
+  public final class BitmapCompat {
+    method public static android.graphics.Bitmap createScaledBitmap(android.graphics.Bitmap, int, int, android.graphics.Rect?, boolean);
+    method public static int getAllocationByteCount(android.graphics.Bitmap);
+    method public static boolean hasMipMap(android.graphics.Bitmap);
+    method public static void setHasMipMap(android.graphics.Bitmap, boolean);
+  }
+
+  public class BlendModeColorFilterCompat {
+    method public static android.graphics.ColorFilter? createBlendModeColorFilterCompat(int, androidx.core.graphics.BlendModeCompat);
+  }
+
+  public enum BlendModeCompat {
+    enum_constant public static final androidx.core.graphics.BlendModeCompat CLEAR;
+    enum_constant @RequiresApi(android.os.Build.VERSION_CODES.Q) public static final androidx.core.graphics.BlendModeCompat COLOR;
+    enum_constant @RequiresApi(android.os.Build.VERSION_CODES.Q) public static final androidx.core.graphics.BlendModeCompat COLOR_BURN;
+    enum_constant @RequiresApi(android.os.Build.VERSION_CODES.Q) public static final androidx.core.graphics.BlendModeCompat COLOR_DODGE;
+    enum_constant public static final androidx.core.graphics.BlendModeCompat DARKEN;
+    enum_constant @RequiresApi(android.os.Build.VERSION_CODES.Q) public static final androidx.core.graphics.BlendModeCompat DIFFERENCE;
+    enum_constant public static final androidx.core.graphics.BlendModeCompat DST;
+    enum_constant public static final androidx.core.graphics.BlendModeCompat DST_ATOP;
+    enum_constant public static final androidx.core.graphics.BlendModeCompat DST_IN;
+    enum_constant public static final androidx.core.graphics.BlendModeCompat DST_OUT;
+    enum_constant public static final androidx.core.graphics.BlendModeCompat DST_OVER;
+    enum_constant @RequiresApi(android.os.Build.VERSION_CODES.Q) public static final androidx.core.graphics.BlendModeCompat EXCLUSION;
+    enum_constant @RequiresApi(android.os.Build.VERSION_CODES.Q) public static final androidx.core.graphics.BlendModeCompat HARD_LIGHT;
+    enum_constant @RequiresApi(android.os.Build.VERSION_CODES.Q) public static final androidx.core.graphics.BlendModeCompat HUE;
+    enum_constant public static final androidx.core.graphics.BlendModeCompat LIGHTEN;
+    enum_constant @RequiresApi(android.os.Build.VERSION_CODES.Q) public static final androidx.core.graphics.BlendModeCompat LUMINOSITY;
+    enum_constant public static final androidx.core.graphics.BlendModeCompat MODULATE;
+    enum_constant @RequiresApi(android.os.Build.VERSION_CODES.Q) public static final androidx.core.graphics.BlendModeCompat MULTIPLY;
+    enum_constant public static final androidx.core.graphics.BlendModeCompat OVERLAY;
+    enum_constant public static final androidx.core.graphics.BlendModeCompat PLUS;
+    enum_constant @RequiresApi(android.os.Build.VERSION_CODES.Q) public static final androidx.core.graphics.BlendModeCompat SATURATION;
+    enum_constant public static final androidx.core.graphics.BlendModeCompat SCREEN;
+    enum_constant @RequiresApi(android.os.Build.VERSION_CODES.Q) public static final androidx.core.graphics.BlendModeCompat SOFT_LIGHT;
+    enum_constant public static final androidx.core.graphics.BlendModeCompat SRC;
+    enum_constant public static final androidx.core.graphics.BlendModeCompat SRC_ATOP;
+    enum_constant public static final androidx.core.graphics.BlendModeCompat SRC_IN;
+    enum_constant public static final androidx.core.graphics.BlendModeCompat SRC_OUT;
+    enum_constant public static final androidx.core.graphics.BlendModeCompat SRC_OVER;
+    enum_constant public static final androidx.core.graphics.BlendModeCompat XOR;
+  }
+
+  public final class ColorUtils {
+    method @ColorInt public static int HSLToColor(float[]);
+    method @ColorInt public static int LABToColor(@FloatRange(from=0.0f, to=100) double, @FloatRange(from=0xffffff80, to=127) double, @FloatRange(from=0xffffff80, to=127) double);
+    method public static void LABToXYZ(@FloatRange(from=0.0f, to=100) double, @FloatRange(from=0xffffff80, to=127) double, @FloatRange(from=0xffffff80, to=127) double, double[]);
+    method @ColorInt public static int M3HCTtoColor(float, float, float);
+    method public static void RGBToHSL(@IntRange(from=0, to=255) int, @IntRange(from=0, to=255) int, @IntRange(from=0, to=255) int, float[]);
+    method public static void RGBToLAB(@IntRange(from=0, to=255) int, @IntRange(from=0, to=255) int, @IntRange(from=0, to=255) int, double[]);
+    method public static void RGBToXYZ(@IntRange(from=0, to=255) int, @IntRange(from=0, to=255) int, @IntRange(from=0, to=255) int, double[]);
+    method @ColorInt public static int XYZToColor(@FloatRange(from=0.0f, to=95.047) double, @FloatRange(from=0.0f, to=0x64) double, @FloatRange(from=0.0f, to=108.883) double);
+    method public static void XYZToLAB(@FloatRange(from=0.0f, to=95.047) double, @FloatRange(from=0.0f, to=0x64) double, @FloatRange(from=0.0f, to=108.883) double, double[]);
+    method @ColorInt public static int blendARGB(@ColorInt int, @ColorInt int, @FloatRange(from=0.0, to=1.0) float);
+    method public static void blendHSL(float[], float[], @FloatRange(from=0.0, to=1.0) float, float[]);
+    method public static void blendLAB(double[], double[], @FloatRange(from=0.0, to=1.0) double, double[]);
+    method public static double calculateContrast(@ColorInt int, @ColorInt int);
+    method @FloatRange(from=0.0, to=1.0) public static double calculateLuminance(@ColorInt int);
+    method public static int calculateMinimumAlpha(@ColorInt int, @ColorInt int, float);
+    method public static void colorToHSL(@ColorInt int, float[]);
+    method public static void colorToLAB(@ColorInt int, double[]);
+    method public static void colorToM3HCT(@ColorInt int, float[]);
+    method public static void colorToXYZ(@ColorInt int, double[]);
+    method @RequiresApi(26) public static android.graphics.Color compositeColors(android.graphics.Color, android.graphics.Color);
+    method public static int compositeColors(@ColorInt int, @ColorInt int);
+    method public static double distanceEuclidean(double[], double[]);
+    method @ColorInt public static int setAlphaComponent(@ColorInt int, @IntRange(from=0, to=255) int);
+  }
+
+  public final class Insets {
+    method public static androidx.core.graphics.Insets add(androidx.core.graphics.Insets, androidx.core.graphics.Insets);
+    method public static androidx.core.graphics.Insets max(androidx.core.graphics.Insets, androidx.core.graphics.Insets);
+    method public static androidx.core.graphics.Insets min(androidx.core.graphics.Insets, androidx.core.graphics.Insets);
+    method public static androidx.core.graphics.Insets of(android.graphics.Rect);
+    method public static androidx.core.graphics.Insets of(int, int, int, int);
+    method public static androidx.core.graphics.Insets subtract(androidx.core.graphics.Insets, androidx.core.graphics.Insets);
+    method @RequiresApi(api=29) public static androidx.core.graphics.Insets toCompatInsets(android.graphics.Insets);
+    method @RequiresApi(29) public android.graphics.Insets toPlatformInsets();
+    method @Deprecated @RequiresApi(api=29) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static androidx.core.graphics.Insets wrap(android.graphics.Insets);
+    field public static final androidx.core.graphics.Insets NONE;
+    field public final int bottom;
+    field public final int left;
+    field public final int right;
+    field public final int top;
+  }
+
+  public final class PaintCompat {
+    method public static boolean hasGlyph(android.graphics.Paint, String);
+    method public static boolean setBlendMode(android.graphics.Paint, androidx.core.graphics.BlendModeCompat?);
+  }
+
+  public final class PathSegment {
+    ctor public PathSegment(android.graphics.PointF, float, android.graphics.PointF, float);
+    method public android.graphics.PointF getEnd();
+    method public float getEndFraction();
+    method public android.graphics.PointF getStart();
+    method public float getStartFraction();
+  }
+
+  public final class PathUtils {
+    method @RequiresApi(26) public static java.util.Collection<androidx.core.graphics.PathSegment!> flatten(android.graphics.Path);
+    method @RequiresApi(26) public static java.util.Collection<androidx.core.graphics.PathSegment!> flatten(android.graphics.Path, @FloatRange(from=0) float);
+  }
+
+  public class TypefaceCompat {
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @VisibleForTesting public static void clearCache();
+    method public static android.graphics.Typeface create(android.content.Context, android.graphics.Typeface?, int);
+    method public static android.graphics.Typeface create(android.content.Context, android.graphics.Typeface?, @IntRange(from=1, to=1000) int, boolean);
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static android.graphics.Typeface? createFromFontInfo(android.content.Context, android.os.CancellationSignal?, androidx.core.provider.FontsContractCompat.FontInfo![], int);
+    method @Deprecated @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static android.graphics.Typeface? createFromResourcesFamilyXml(android.content.Context, androidx.core.content.res.FontResourcesParserCompat.FamilyResourceEntry, android.content.res.Resources, int, int, androidx.core.content.res.ResourcesCompat.FontCallback?, android.os.Handler?, boolean);
+    method @Deprecated @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static android.graphics.Typeface? createFromResourcesFontFile(android.content.Context, android.content.res.Resources, int, String!, int);
+    method @Deprecated @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static android.graphics.Typeface? findFromCache(android.content.res.Resources, int, int);
+  }
+
+  @RequiresApi(26) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public class TypefaceCompatApi26Impl {
+    ctor public TypefaceCompatApi26Impl();
+    method protected android.graphics.Typeface? createFromFamiliesWithDefault(Object!);
+    method public android.graphics.Typeface? createFromFontFamilyFilesResourceEntry(android.content.Context!, androidx.core.content.res.FontResourcesParserCompat.FontFamilyFilesResourceEntry!, android.content.res.Resources!, int);
+    method public android.graphics.Typeface? createFromFontInfo(android.content.Context!, android.os.CancellationSignal?, androidx.core.provider.FontsContractCompat.FontInfo![], int);
+    method public android.graphics.Typeface? createFromResourcesFontFile(android.content.Context!, android.content.res.Resources!, int, String!, int);
+    method protected java.lang.reflect.Method! obtainAbortCreationMethod(Class<?>!) throws java.lang.NoSuchMethodException;
+    method protected java.lang.reflect.Method! obtainAddFontFromAssetManagerMethod(Class<?>!) throws java.lang.NoSuchMethodException;
+    method protected java.lang.reflect.Method! obtainAddFontFromBufferMethod(Class<?>!) throws java.lang.NoSuchMethodException;
+    method protected java.lang.reflect.Method! obtainCreateFromFamiliesWithDefaultMethod(Class<?>!) throws java.lang.NoSuchMethodException;
+    method protected Class<?>! obtainFontFamily() throws java.lang.ClassNotFoundException;
+    method protected java.lang.reflect.Constructor<?>! obtainFontFamilyCtor(Class<?>!) throws java.lang.NoSuchMethodException;
+    method protected java.lang.reflect.Method! obtainFreezeMethod(Class<?>!) throws java.lang.NoSuchMethodException;
+    field protected final java.lang.reflect.Method! mAbortCreation;
+    field protected final java.lang.reflect.Method! mAddFontFromAssetManager;
+    field protected final java.lang.reflect.Method! mAddFontFromBuffer;
+    field protected final java.lang.reflect.Method! mCreateFromFamiliesWithDefault;
+    field protected final Class<?>! mFontFamily;
+    field protected final java.lang.reflect.Constructor<?>! mFontFamilyCtor;
+    field protected final java.lang.reflect.Method! mFreeze;
+  }
+
+  @RequiresApi(28) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public class TypefaceCompatApi28Impl extends androidx.core.graphics.TypefaceCompatApi26Impl {
+    ctor public TypefaceCompatApi28Impl();
+  }
+
+  @RequiresApi(29) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public class TypefaceCompatApi29Impl {
+    ctor public TypefaceCompatApi29Impl();
+    method public android.graphics.Typeface? createFromFontFamilyFilesResourceEntry(android.content.Context!, androidx.core.content.res.FontResourcesParserCompat.FontFamilyFilesResourceEntry!, android.content.res.Resources!, int);
+    method public android.graphics.Typeface? createFromFontInfo(android.content.Context!, android.os.CancellationSignal?, androidx.core.provider.FontsContractCompat.FontInfo![], int);
+    method protected android.graphics.Typeface! createFromInputStream(android.content.Context!, java.io.InputStream!);
+    method public android.graphics.Typeface? createFromResourcesFontFile(android.content.Context!, android.content.res.Resources!, int, String!, int);
+    method protected androidx.core.provider.FontsContractCompat.FontInfo! findBestInfo(androidx.core.provider.FontsContractCompat.FontInfo![]!, int);
+  }
+
+  @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public class TypefaceCompatUtil {
+    method public static void closeQuietly(java.io.Closeable?);
+    method @RequiresApi(19) public static java.nio.ByteBuffer? copyToDirectBuffer(android.content.Context, android.content.res.Resources, int);
+    method public static boolean copyToFile(java.io.File, android.content.res.Resources, int);
+    method public static boolean copyToFile(java.io.File, java.io.InputStream);
+    method public static java.io.File? getTempFile(android.content.Context);
+    method @RequiresApi(19) public static java.nio.ByteBuffer? mmap(android.content.Context, android.os.CancellationSignal?, android.net.Uri);
+  }
+
+}
+
+package androidx.core.graphics.drawable {
+
+  public final class DrawableCompat {
+    method public static void applyTheme(android.graphics.drawable.Drawable, android.content.res.Resources.Theme);
+    method public static boolean canApplyTheme(android.graphics.drawable.Drawable);
+    method public static void clearColorFilter(android.graphics.drawable.Drawable);
+    method public static int getAlpha(android.graphics.drawable.Drawable);
+    method public static android.graphics.ColorFilter? getColorFilter(android.graphics.drawable.Drawable);
+    method public static int getLayoutDirection(android.graphics.drawable.Drawable);
+    method public static void inflate(android.graphics.drawable.Drawable, android.content.res.Resources, org.xmlpull.v1.XmlPullParser, android.util.AttributeSet, android.content.res.Resources.Theme?) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
+    method public static boolean isAutoMirrored(android.graphics.drawable.Drawable);
+    method @Deprecated public static void jumpToCurrentState(android.graphics.drawable.Drawable);
+    method public static void setAutoMirrored(android.graphics.drawable.Drawable, boolean);
+    method public static void setHotspot(android.graphics.drawable.Drawable, float, float);
+    method public static void setHotspotBounds(android.graphics.drawable.Drawable, int, int, int, int);
+    method public static boolean setLayoutDirection(android.graphics.drawable.Drawable, int);
+    method public static void setTint(android.graphics.drawable.Drawable, @ColorInt int);
+    method public static void setTintList(android.graphics.drawable.Drawable, android.content.res.ColorStateList?);
+    method public static void setTintMode(android.graphics.drawable.Drawable, android.graphics.PorterDuff.Mode?);
+    method public static <T extends android.graphics.drawable.Drawable> T! unwrap(android.graphics.drawable.Drawable);
+    method public static android.graphics.drawable.Drawable wrap(android.graphics.drawable.Drawable);
+  }
+
+  @androidx.versionedparcelable.VersionedParcelize(allowSerialization=true, ignoreParcelables=true, isCustom=true, jetifyAs="android.support.v4.graphics.drawable.IconCompat") public class IconCompat extends androidx.versionedparcelable.CustomVersionedParcelable {
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public void addToShortcutIntent(android.content.Intent, android.graphics.drawable.Drawable?, android.content.Context);
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public void checkResource(android.content.Context);
+    method public static androidx.core.graphics.drawable.IconCompat? createFromBundle(android.os.Bundle);
+    method @RequiresApi(23) public static androidx.core.graphics.drawable.IconCompat? createFromIcon(android.content.Context, android.graphics.drawable.Icon);
+    method @RequiresApi(23) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static androidx.core.graphics.drawable.IconCompat? createFromIcon(android.graphics.drawable.Icon);
+    method @RequiresApi(23) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static androidx.core.graphics.drawable.IconCompat? createFromIconOrNullIfZeroResId(android.graphics.drawable.Icon);
+    method public static androidx.core.graphics.drawable.IconCompat createWithAdaptiveBitmap(android.graphics.Bitmap);
+    method public static androidx.core.graphics.drawable.IconCompat createWithAdaptiveBitmapContentUri(android.net.Uri);
+    method public static androidx.core.graphics.drawable.IconCompat createWithAdaptiveBitmapContentUri(String);
+    method public static androidx.core.graphics.drawable.IconCompat createWithBitmap(android.graphics.Bitmap);
+    method public static androidx.core.graphics.drawable.IconCompat createWithContentUri(android.net.Uri);
+    method public static androidx.core.graphics.drawable.IconCompat createWithContentUri(String);
+    method public static androidx.core.graphics.drawable.IconCompat createWithData(byte[], int, int);
+    method public static androidx.core.graphics.drawable.IconCompat createWithResource(android.content.Context, @DrawableRes int);
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static androidx.core.graphics.drawable.IconCompat createWithResource(android.content.res.Resources?, String, @DrawableRes int);
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public android.graphics.Bitmap? getBitmap();
+    method @DrawableRes public int getResId();
+    method public String getResPackage();
+    method public int getType();
+    method public android.net.Uri getUri();
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public java.io.InputStream? getUriInputStream(android.content.Context);
+    method public android.graphics.drawable.Drawable? loadDrawable(android.content.Context);
+    method public androidx.core.graphics.drawable.IconCompat setTint(@ColorInt int);
+    method public androidx.core.graphics.drawable.IconCompat setTintList(android.content.res.ColorStateList?);
+    method public androidx.core.graphics.drawable.IconCompat setTintMode(android.graphics.PorterDuff.Mode?);
+    method public android.os.Bundle toBundle();
+    method @Deprecated @RequiresApi(23) public android.graphics.drawable.Icon toIcon();
+    method @RequiresApi(23) public android.graphics.drawable.Icon toIcon(android.content.Context?);
+    field public static final int TYPE_ADAPTIVE_BITMAP = 5; // 0x5
+    field public static final int TYPE_BITMAP = 1; // 0x1
+    field public static final int TYPE_DATA = 3; // 0x3
+    field public static final int TYPE_RESOURCE = 2; // 0x2
+    field public static final int TYPE_UNKNOWN = -1; // 0xffffffff
+    field public static final int TYPE_URI = 4; // 0x4
+    field public static final int TYPE_URI_ADAPTIVE_BITMAP = 6; // 0x6
+    field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @androidx.versionedparcelable.ParcelField(value=1, defaultValue="androidx.core.graphics.drawable.IconCompat.TYPE_UNKNOWN") public int mType;
+  }
+
+  public abstract class RoundedBitmapDrawable extends android.graphics.drawable.Drawable {
+    method public void draw(android.graphics.Canvas);
+    method public final android.graphics.Bitmap? getBitmap();
+    method public float getCornerRadius();
+    method public int getGravity();
+    method public int getOpacity();
+    method public final android.graphics.Paint getPaint();
+    method public boolean hasAntiAlias();
+    method public boolean hasMipMap();
+    method public boolean isCircular();
+    method public void setAlpha(int);
+    method public void setAntiAlias(boolean);
+    method public void setCircular(boolean);
+    method public void setColorFilter(android.graphics.ColorFilter!);
+    method public void setCornerRadius(float);
+    method public void setDither(boolean);
+    method public void setGravity(int);
+    method public void setMipMap(boolean);
+    method public void setTargetDensity(android.graphics.Canvas);
+    method public void setTargetDensity(android.util.DisplayMetrics);
+    method public void setTargetDensity(int);
+  }
+
+  public final class RoundedBitmapDrawableFactory {
+    method public static androidx.core.graphics.drawable.RoundedBitmapDrawable create(android.content.res.Resources, android.graphics.Bitmap?);
+    method public static androidx.core.graphics.drawable.RoundedBitmapDrawable create(android.content.res.Resources, java.io.InputStream);
+    method public static androidx.core.graphics.drawable.RoundedBitmapDrawable create(android.content.res.Resources, String);
+  }
+
+  @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public interface TintAwareDrawable {
+    method public void setTint(@ColorInt int);
+    method public void setTintList(android.content.res.ColorStateList!);
+    method public void setTintMode(android.graphics.PorterDuff.Mode!);
+  }
+
+  @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public interface WrappedDrawable {
+    method public android.graphics.drawable.Drawable! getWrappedDrawable();
+    method public void setWrappedDrawable(android.graphics.drawable.Drawable!);
+  }
+
+}
+
+package androidx.core.hardware.display {
+
+  public final class DisplayManagerCompat {
+    method public android.view.Display? getDisplay(int);
+    method public android.view.Display![] getDisplays();
+    method public android.view.Display![] getDisplays(String?);
+    method public static androidx.core.hardware.display.DisplayManagerCompat getInstance(android.content.Context);
+    field public static final String DISPLAY_CATEGORY_PRESENTATION = "android.hardware.display.category.PRESENTATION";
+  }
+
+}
+
+package androidx.core.hardware.fingerprint {
+
+  @Deprecated public class FingerprintManagerCompat {
+    method @Deprecated @RequiresPermission(android.Manifest.permission.USE_FINGERPRINT) public void authenticate(androidx.core.hardware.fingerprint.FingerprintManagerCompat.CryptoObject?, int, androidx.core.os.CancellationSignal?, androidx.core.hardware.fingerprint.FingerprintManagerCompat.AuthenticationCallback, android.os.Handler?);
+    method @Deprecated public static androidx.core.hardware.fingerprint.FingerprintManagerCompat from(android.content.Context);
+    method @Deprecated @RequiresPermission(android.Manifest.permission.USE_FINGERPRINT) public boolean hasEnrolledFingerprints();
+    method @Deprecated @RequiresPermission(android.Manifest.permission.USE_FINGERPRINT) public boolean isHardwareDetected();
+  }
+
+  @Deprecated public abstract static class FingerprintManagerCompat.AuthenticationCallback {
+    ctor @Deprecated public FingerprintManagerCompat.AuthenticationCallback();
+    method @Deprecated public void onAuthenticationError(int, CharSequence!);
+    method @Deprecated public void onAuthenticationFailed();
+    method @Deprecated public void onAuthenticationHelp(int, CharSequence!);
+    method @Deprecated public void onAuthenticationSucceeded(androidx.core.hardware.fingerprint.FingerprintManagerCompat.AuthenticationResult!);
+  }
+
+  @Deprecated public static final class FingerprintManagerCompat.AuthenticationResult {
+    ctor @Deprecated public FingerprintManagerCompat.AuthenticationResult(androidx.core.hardware.fingerprint.FingerprintManagerCompat.CryptoObject!);
+    method @Deprecated public androidx.core.hardware.fingerprint.FingerprintManagerCompat.CryptoObject! getCryptoObject();
+  }
+
+  @Deprecated public static class FingerprintManagerCompat.CryptoObject {
+    ctor @Deprecated public FingerprintManagerCompat.CryptoObject(java.security.Signature);
+    ctor @Deprecated public FingerprintManagerCompat.CryptoObject(javax.crypto.Cipher);
+    ctor @Deprecated public FingerprintManagerCompat.CryptoObject(javax.crypto.Mac);
+    method @Deprecated public javax.crypto.Cipher? getCipher();
+    method @Deprecated public javax.crypto.Mac? getMac();
+    method @Deprecated public java.security.Signature? getSignature();
+  }
+
+}
+
+package androidx.core.internal.view {
+
+  @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public interface SupportMenu extends android.view.Menu {
+    method public void setGroupDividerEnabled(boolean);
+    field public static final int CATEGORY_MASK = -65536; // 0xffff0000
+    field public static final int CATEGORY_SHIFT = 16; // 0x10
+    field public static final int FLAG_KEEP_OPEN_ON_SUBMENU_OPENED = 4; // 0x4
+    field public static final int SUPPORTED_MODIFIERS_MASK = 69647; // 0x1100f
+    field public static final int USER_MASK = 65535; // 0xffff
+    field public static final int USER_SHIFT = 0; // 0x0
+  }
+
+  @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public interface SupportMenuItem extends android.view.MenuItem {
+    method public int getAlphabeticModifiers();
+    method public CharSequence? getContentDescription();
+    method public android.content.res.ColorStateList? getIconTintList();
+    method public android.graphics.PorterDuff.Mode? getIconTintMode();
+    method public int getNumericModifiers();
+    method public androidx.core.view.ActionProvider? getSupportActionProvider();
+    method public CharSequence? getTooltipText();
+    method public boolean requiresActionButton();
+    method public boolean requiresOverflow();
+    method public android.view.MenuItem setAlphabeticShortcut(char, int);
+    method public androidx.core.internal.view.SupportMenuItem setContentDescription(CharSequence?);
+    method public android.view.MenuItem setIconTintList(android.content.res.ColorStateList?);
+    method public android.view.MenuItem setIconTintMode(android.graphics.PorterDuff.Mode?);
+    method public android.view.MenuItem setNumericShortcut(char, int);
+    method public android.view.MenuItem setShortcut(char, char, int, int);
+    method public androidx.core.internal.view.SupportMenuItem setSupportActionProvider(androidx.core.view.ActionProvider?);
+    method public androidx.core.internal.view.SupportMenuItem setTooltipText(CharSequence?);
+    field public static final int SHOW_AS_ACTION_ALWAYS = 2; // 0x2
+    field public static final int SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW = 8; // 0x8
+    field public static final int SHOW_AS_ACTION_IF_ROOM = 1; // 0x1
+    field public static final int SHOW_AS_ACTION_NEVER = 0; // 0x0
+    field public static final int SHOW_AS_ACTION_WITH_TEXT = 4; // 0x4
+  }
+
+  @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public interface SupportSubMenu extends androidx.core.internal.view.SupportMenu android.view.SubMenu {
+  }
+
+}
+
+package androidx.core.location {
+
+  public abstract class GnssStatusCompat {
+    method @FloatRange(from=0, to=360) public abstract float getAzimuthDegrees(@IntRange(from=0) int);
+    method @FloatRange(from=0, to=63) public abstract float getBasebandCn0DbHz(@IntRange(from=0) int);
+    method @FloatRange(from=0) public abstract float getCarrierFrequencyHz(@IntRange(from=0) int);
+    method @FloatRange(from=0, to=63) public abstract float getCn0DbHz(@IntRange(from=0) int);
+    method public abstract int getConstellationType(@IntRange(from=0) int);
+    method @FloatRange(from=0xffffffa6, to=90) public abstract float getElevationDegrees(@IntRange(from=0) int);
+    method @IntRange(from=0) public abstract int getSatelliteCount();
+    method @IntRange(from=1, to=200) public abstract int getSvid(@IntRange(from=0) int);
+    method public abstract boolean hasAlmanacData(@IntRange(from=0) int);
+    method public abstract boolean hasBasebandCn0DbHz(@IntRange(from=0) int);
+    method public abstract boolean hasCarrierFrequencyHz(@IntRange(from=0) int);
+    method public abstract boolean hasEphemerisData(@IntRange(from=0) int);
+    method public abstract boolean usedInFix(@IntRange(from=0) int);
+    method @RequiresApi(android.os.Build.VERSION_CODES.N) public static androidx.core.location.GnssStatusCompat wrap(android.location.GnssStatus);
+    method public static androidx.core.location.GnssStatusCompat wrap(android.location.GpsStatus);
+    field public static final int CONSTELLATION_BEIDOU = 5; // 0x5
+    field public static final int CONSTELLATION_GALILEO = 6; // 0x6
+    field public static final int CONSTELLATION_GLONASS = 3; // 0x3
+    field public static final int CONSTELLATION_GPS = 1; // 0x1
+    field public static final int CONSTELLATION_IRNSS = 7; // 0x7
+    field public static final int CONSTELLATION_QZSS = 4; // 0x4
+    field public static final int CONSTELLATION_SBAS = 2; // 0x2
+    field public static final int CONSTELLATION_UNKNOWN = 0; // 0x0
+  }
+
+  public abstract static class GnssStatusCompat.Callback {
+    ctor public GnssStatusCompat.Callback();
+    method public void onFirstFix(@IntRange(from=0) int);
+    method public void onSatelliteStatusChanged(androidx.core.location.GnssStatusCompat);
+    method public void onStarted();
+    method public void onStopped();
+  }
+
+  public final class LocationCompat {
+    method public static float getBearingAccuracyDegrees(android.location.Location);
+    method public static long getElapsedRealtimeMillis(android.location.Location);
+    method public static long getElapsedRealtimeNanos(android.location.Location);
+    method @FloatRange(from=0.0) public static float getMslAltitudeAccuracyMeters(android.location.Location);
+    method public static double getMslAltitudeMeters(android.location.Location);
+    method public static float getSpeedAccuracyMetersPerSecond(android.location.Location);
+    method public static float getVerticalAccuracyMeters(android.location.Location);
+    method public static boolean hasBearingAccuracy(android.location.Location);
+    method public static boolean hasMslAltitude(android.location.Location);
+    method public static boolean hasMslAltitudeAccuracy(android.location.Location);
+    method public static boolean hasSpeedAccuracy(android.location.Location);
+    method public static boolean hasVerticalAccuracy(android.location.Location);
+    method public static boolean isMock(android.location.Location);
+    method public static void removeMslAltitude(android.location.Location);
+    method public static void removeMslAltitudeAccuracy(android.location.Location);
+    method public static void setBearingAccuracyDegrees(android.location.Location, float);
+    method public static void setMock(android.location.Location, boolean);
+    method public static void setMslAltitudeAccuracyMeters(android.location.Location, @FloatRange(from=0.0) float);
+    method public static void setMslAltitudeMeters(android.location.Location, double);
+    method public static void setSpeedAccuracyMetersPerSecond(android.location.Location, float);
+    method public static void setVerticalAccuracyMeters(android.location.Location, float);
+    field public static final String EXTRA_BEARING_ACCURACY = "bearingAccuracy";
+    field public static final String EXTRA_IS_MOCK = "mockLocation";
+    field public static final String EXTRA_MSL_ALTITUDE = "androidx.core.location.extra.MSL_ALTITUDE";
+    field public static final String EXTRA_MSL_ALTITUDE_ACCURACY = "androidx.core.location.extra.MSL_ALTITUDE_ACCURACY";
+    field public static final String EXTRA_SPEED_ACCURACY = "speedAccuracy";
+    field public static final String EXTRA_VERTICAL_ACCURACY = "verticalAccuracy";
+  }
+
+  public interface LocationListenerCompat extends android.location.LocationListener {
+    method public default void onStatusChanged(String, int, android.os.Bundle?);
+  }
+
+  public final class LocationManagerCompat {
+    method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public static void getCurrentLocation(android.location.LocationManager, String, androidx.core.os.CancellationSignal?, java.util.concurrent.Executor, androidx.core.util.Consumer<android.location.Location!>);
+    method public static String? getGnssHardwareModelName(android.location.LocationManager);
+    method public static int getGnssYearOfHardware(android.location.LocationManager);
+    method public static boolean hasProvider(android.location.LocationManager, String);
+    method public static boolean isLocationEnabled(android.location.LocationManager);
+    method @RequiresApi(android.os.Build.VERSION_CODES.N) @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public static boolean registerGnssMeasurementsCallback(android.location.LocationManager, android.location.GnssMeasurementsEvent.Callback, android.os.Handler);
+    method @RequiresApi(android.os.Build.VERSION_CODES.N) @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public static boolean registerGnssMeasurementsCallback(android.location.LocationManager, java.util.concurrent.Executor, android.location.GnssMeasurementsEvent.Callback);
+    method @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public static boolean registerGnssStatusCallback(android.location.LocationManager, androidx.core.location.GnssStatusCompat.Callback, android.os.Handler);
+    method @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public static boolean registerGnssStatusCallback(android.location.LocationManager, java.util.concurrent.Executor, androidx.core.location.GnssStatusCompat.Callback);
+    method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public static void removeUpdates(android.location.LocationManager, androidx.core.location.LocationListenerCompat);
+    method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public static void requestLocationUpdates(android.location.LocationManager, String, androidx.core.location.LocationRequestCompat, androidx.core.location.LocationListenerCompat, android.os.Looper);
+    method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public static void requestLocationUpdates(android.location.LocationManager, String, androidx.core.location.LocationRequestCompat, java.util.concurrent.Executor, androidx.core.location.LocationListenerCompat);
+    method @RequiresApi(android.os.Build.VERSION_CODES.N) public static void unregisterGnssMeasurementsCallback(android.location.LocationManager, android.location.GnssMeasurementsEvent.Callback);
+    method public static void unregisterGnssStatusCallback(android.location.LocationManager, androidx.core.location.GnssStatusCompat.Callback);
+  }
+
+  public final class LocationRequestCompat {
+    method @IntRange(from=1) public long getDurationMillis();
+    method @IntRange(from=0) public long getIntervalMillis();
+    method @IntRange(from=0) public long getMaxUpdateDelayMillis();
+    method @IntRange(from=1, to=java.lang.Integer.MAX_VALUE) public int getMaxUpdates();
+    method @FloatRange(from=0, to=java.lang.Float.MAX_VALUE) public float getMinUpdateDistanceMeters();
+    method @IntRange(from=0) public long getMinUpdateIntervalMillis();
+    method public int getQuality();
+    method @RequiresApi(31) public android.location.LocationRequest toLocationRequest();
+    method @RequiresApi(19) public android.location.LocationRequest? toLocationRequest(String);
+    field public static final long PASSIVE_INTERVAL = 9223372036854775807L; // 0x7fffffffffffffffL
+    field public static final int QUALITY_BALANCED_POWER_ACCURACY = 102; // 0x66
+    field public static final int QUALITY_HIGH_ACCURACY = 100; // 0x64
+    field public static final int QUALITY_LOW_POWER = 104; // 0x68
+  }
+
+  public static final class LocationRequestCompat.Builder {
+    ctor public LocationRequestCompat.Builder(androidx.core.location.LocationRequestCompat);
+    ctor public LocationRequestCompat.Builder(long);
+    method public androidx.core.location.LocationRequestCompat build();
+    method public androidx.core.location.LocationRequestCompat.Builder clearMinUpdateIntervalMillis();
+    method public androidx.core.location.LocationRequestCompat.Builder setDurationMillis(@IntRange(from=1) long);
+    method public androidx.core.location.LocationRequestCompat.Builder setIntervalMillis(@IntRange(from=0) long);
+    method public androidx.core.location.LocationRequestCompat.Builder setMaxUpdateDelayMillis(@IntRange(from=0) long);
+    method public androidx.core.location.LocationRequestCompat.Builder setMaxUpdates(@IntRange(from=1, to=java.lang.Integer.MAX_VALUE) int);
+    method public androidx.core.location.LocationRequestCompat.Builder setMinUpdateDistanceMeters(@FloatRange(from=0, to=java.lang.Float.MAX_VALUE) float);
+    method public androidx.core.location.LocationRequestCompat.Builder setMinUpdateIntervalMillis(@IntRange(from=0) long);
+    method public androidx.core.location.LocationRequestCompat.Builder setQuality(int);
+  }
+
+}
+
+package androidx.core.math {
+
+  public class MathUtils {
+    method public static int addExact(int, int);
+    method public static long addExact(long, long);
+    method public static double clamp(double, double, double);
+    method public static float clamp(float, float, float);
+    method public static int clamp(int, int, int);
+    method public static long clamp(long, long, long);
+    method public static int decrementExact(int);
+    method public static long decrementExact(long);
+    method public static int incrementExact(int);
+    method public static long incrementExact(long);
+    method public static int multiplyExact(int, int);
+    method public static long multiplyExact(long, long);
+    method public static int negateExact(int);
+    method public static long negateExact(long);
+    method public static int subtractExact(int, int);
+    method public static long subtractExact(long, long);
+    method public static int toIntExact(long);
+  }
+
+}
+
+package androidx.core.net {
+
+  public final class ConnectivityManagerCompat {
+    method @RequiresPermission(android.Manifest.permission.ACCESS_NETWORK_STATE) public static android.net.NetworkInfo? getNetworkInfoFromBroadcast(android.net.ConnectivityManager, android.content.Intent);
+    method @androidx.core.net.ConnectivityManagerCompat.RestrictBackgroundStatus public static int getRestrictBackgroundStatus(android.net.ConnectivityManager);
+    method @RequiresPermission(android.Manifest.permission.ACCESS_NETWORK_STATE) public static boolean isActiveNetworkMetered(android.net.ConnectivityManager);
+    field public static final int RESTRICT_BACKGROUND_STATUS_DISABLED = 1; // 0x1
+    field public static final int RESTRICT_BACKGROUND_STATUS_ENABLED = 3; // 0x3
+    field public static final int RESTRICT_BACKGROUND_STATUS_WHITELISTED = 2; // 0x2
+  }
+
+  @IntDef({androidx.core.net.ConnectivityManagerCompat.RESTRICT_BACKGROUND_STATUS_DISABLED, androidx.core.net.ConnectivityManagerCompat.RESTRICT_BACKGROUND_STATUS_WHITELISTED, androidx.core.net.ConnectivityManagerCompat.RESTRICT_BACKGROUND_STATUS_ENABLED}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface ConnectivityManagerCompat.RestrictBackgroundStatus {
+  }
+
+  public final class MailTo {
+    method public String? getBcc();
+    method public String? getBody();
+    method public String? getCc();
+    method public java.util.Map<java.lang.String!,java.lang.String!>? getHeaders();
+    method public String? getSubject();
+    method public String? getTo();
+    method public static boolean isMailTo(android.net.Uri?);
+    method public static boolean isMailTo(String?);
+    method public static androidx.core.net.MailTo parse(android.net.Uri) throws androidx.core.net.ParseException;
+    method public static androidx.core.net.MailTo parse(String) throws androidx.core.net.ParseException;
+    field public static final String MAILTO_SCHEME = "mailto:";
+  }
+
+  public class ParseException extends java.lang.RuntimeException {
+    field public final String response;
+  }
+
+  public final class TrafficStatsCompat {
+    method @Deprecated public static void clearThreadStatsTag();
+    method @Deprecated public static int getThreadStatsTag();
+    method @Deprecated public static void incrementOperationCount(int);
+    method @Deprecated public static void incrementOperationCount(int, int);
+    method @Deprecated public static void setThreadStatsTag(int);
+    method public static void tagDatagramSocket(java.net.DatagramSocket) throws java.net.SocketException;
+    method @Deprecated public static void tagSocket(java.net.Socket!) throws java.net.SocketException;
+    method public static void untagDatagramSocket(java.net.DatagramSocket) throws java.net.SocketException;
+    method @Deprecated public static void untagSocket(java.net.Socket!) throws java.net.SocketException;
+  }
+
+  public final class UriCompat {
+    method public static String toSafeString(android.net.Uri);
+  }
+
+}
+
+package androidx.core.os {
+
+  public class BuildCompat {
+    method @Deprecated @ChecksSdkIntAtLeast(api=android.os.Build.VERSION_CODES.N) public static boolean isAtLeastN();
+    method @Deprecated @ChecksSdkIntAtLeast(api=android.os.Build.VERSION_CODES.N_MR1) public static boolean isAtLeastNMR1();
+    method @Deprecated @ChecksSdkIntAtLeast(api=android.os.Build.VERSION_CODES.O) public static boolean isAtLeastO();
+    method @Deprecated @ChecksSdkIntAtLeast(api=android.os.Build.VERSION_CODES.O_MR1) public static boolean isAtLeastOMR1();
+    method @Deprecated @ChecksSdkIntAtLeast(api=android.os.Build.VERSION_CODES.P) public static boolean isAtLeastP();
+    method @Deprecated @ChecksSdkIntAtLeast(api=android.os.Build.VERSION_CODES.Q) public static boolean isAtLeastQ();
+    method @Deprecated @ChecksSdkIntAtLeast(api=android.os.Build.VERSION_CODES.R) public static boolean isAtLeastR();
+    method @Deprecated @ChecksSdkIntAtLeast(api=31, codename="S") public static boolean isAtLeastS();
+    method @Deprecated @ChecksSdkIntAtLeast(api=32, codename="Sv2") @androidx.core.os.BuildCompat.PrereleaseSdkCheck public static boolean isAtLeastSv2();
+    method @Deprecated @ChecksSdkIntAtLeast(api=33, codename="Tiramisu") @androidx.core.os.BuildCompat.PrereleaseSdkCheck public static boolean isAtLeastT();
+    method @ChecksSdkIntAtLeast(api=34, codename="UpsideDownCake") @androidx.core.os.BuildCompat.PrereleaseSdkCheck public static boolean isAtLeastU();
+    method @ChecksSdkIntAtLeast(codename="VanillaIceCream") @androidx.core.os.BuildCompat.PrereleaseSdkCheck public static boolean isAtLeastV();
+    field @ChecksSdkIntAtLeast(extension=android.os.ext.SdkExtensions.AD_SERVICES) public static final int AD_SERVICES_EXTENSION_INT;
+    field @ChecksSdkIntAtLeast(extension=android.os.Build.VERSION_CODES.R) public static final int R_EXTENSION_INT;
+    field @ChecksSdkIntAtLeast(extension=android.os.Build.VERSION_CODES.S) public static final int S_EXTENSION_INT;
+    field @ChecksSdkIntAtLeast(extension=android.os.Build.VERSION_CODES.TIRAMISU) public static final int T_EXTENSION_INT;
+  }
+
+  @RequiresOptIn @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) public static @interface BuildCompat.PrereleaseSdkCheck {
+  }
+
+  public final class BundleCompat {
+    method public static android.os.IBinder? getBinder(android.os.Bundle, String?);
+    method public static <T> T? getParcelable(android.os.Bundle, String?, Class<T!>);
+    method public static android.os.Parcelable![]? getParcelableArray(android.os.Bundle, String?, Class<? extends android.os.Parcelable>);
+    method public static <T> java.util.ArrayList<T!>? getParcelableArrayList(android.os.Bundle, String?, Class<? extends T>);
+    method public static <T> android.util.SparseArray<T!>? getSparseParcelableArray(android.os.Bundle, String?, Class<? extends T>);
+    method public static void putBinder(android.os.Bundle, String?, android.os.IBinder?);
+  }
+
+  public final class CancellationSignal {
+    ctor public CancellationSignal();
+    method public void cancel();
+    method public Object? getCancellationSignalObject();
+    method public boolean isCanceled();
+    method public void setOnCancelListener(androidx.core.os.CancellationSignal.OnCancelListener?);
+    method public void throwIfCanceled();
+  }
+
+  public static interface CancellationSignal.OnCancelListener {
+    method public void onCancel();
+  }
+
+  public final class ConfigurationCompat {
+    method public static androidx.core.os.LocaleListCompat getLocales(android.content.res.Configuration);
+    method public static void setLocales(android.content.res.Configuration, androidx.core.os.LocaleListCompat);
+  }
+
+  public final class EnvironmentCompat {
+    method public static String getStorageState(java.io.File);
+    field public static final String MEDIA_UNKNOWN = "unknown";
+  }
+
+  public final class ExecutorCompat {
+    method public static java.util.concurrent.Executor create(android.os.Handler);
+  }
+
+  public final class HandlerCompat {
+    method public static android.os.Handler createAsync(android.os.Looper);
+    method public static android.os.Handler createAsync(android.os.Looper, android.os.Handler.Callback);
+    method @RequiresApi(16) public static boolean hasCallbacks(android.os.Handler, Runnable);
+    method public static boolean postDelayed(android.os.Handler, Runnable, Object?, long);
+  }
+
+  public final class LocaleListCompat {
+    method public static androidx.core.os.LocaleListCompat create(java.util.Locale!...);
+    method public static androidx.core.os.LocaleListCompat forLanguageTags(String?);
+    method public java.util.Locale? get(int);
+    method @Size(min=1) public static androidx.core.os.LocaleListCompat getAdjustedDefault();
+    method @Size(min=1) public static androidx.core.os.LocaleListCompat getDefault();
+    method public static androidx.core.os.LocaleListCompat getEmptyLocaleList();
+    method public java.util.Locale? getFirstMatch(String![]);
+    method @IntRange(from=0xffffffff) public int indexOf(java.util.Locale?);
+    method public boolean isEmpty();
+    method @RequiresApi(21) public static boolean matchesLanguageAndScript(java.util.Locale, java.util.Locale);
+    method @IntRange(from=0) public int size();
+    method public String toLanguageTags();
+    method public Object? unwrap();
+    method @RequiresApi(24) public static androidx.core.os.LocaleListCompat wrap(android.os.LocaleList);
+    method @Deprecated @RequiresApi(24) public static androidx.core.os.LocaleListCompat! wrap(Object!);
+  }
+
+  public final class MessageCompat {
+    method public static boolean isAsynchronous(android.os.Message);
+    method public static void setAsynchronous(android.os.Message, boolean);
+  }
+
+  public class OperationCanceledException extends java.lang.RuntimeException {
+    ctor public OperationCanceledException();
+    ctor public OperationCanceledException(String?);
+  }
+
+  public final class ParcelCompat {
+    method public static <T> Object![]? readArray(android.os.Parcel, ClassLoader?, Class<T!>);
+    method public static <T> java.util.ArrayList<T!>? readArrayList(android.os.Parcel, ClassLoader?, Class<? extends T>);
+    method public static boolean readBoolean(android.os.Parcel);
+    method public static <K, V> java.util.HashMap<K!,V!>? readHashMap(android.os.Parcel, ClassLoader?, Class<? extends K>, Class<? extends V>);
+    method public static <T> void readList(android.os.Parcel, java.util.List<? super T>, ClassLoader?, Class<T!>);
+    method public static <K, V> void readMap(android.os.Parcel, java.util.Map<? super K,? super V>, ClassLoader?, Class<K!>, Class<V!>);
+    method public static <T extends android.os.Parcelable> T? readParcelable(android.os.Parcel, ClassLoader?, Class<T!>);
+    method @Deprecated public static <T> T![]? readParcelableArray(android.os.Parcel, ClassLoader?, Class<T!>);
+    method public static <T> android.os.Parcelable![]? readParcelableArrayTyped(android.os.Parcel, ClassLoader?, Class<T!>);
+    method @RequiresApi(30) public static <T> android.os.Parcelable.Creator<T!>? readParcelableCreator(android.os.Parcel, ClassLoader?, Class<T!>);
+    method @RequiresApi(api=android.os.Build.VERSION_CODES.Q) public static <T> java.util.List<T!> readParcelableList(android.os.Parcel, java.util.List<T!>, ClassLoader?, Class<T!>);
+    method public static <T extends java.io.Serializable> T? readSerializable(android.os.Parcel, ClassLoader?, Class<T!>);
+    method public static <T> android.util.SparseArray<T!>? readSparseArray(android.os.Parcel, ClassLoader?, Class<? extends T>);
+    method public static void writeBoolean(android.os.Parcel, boolean);
+  }
+
+  @Deprecated public final class ParcelableCompat {
+    method @Deprecated public static <T> android.os.Parcelable.Creator<T!>! newCreator(androidx.core.os.ParcelableCompatCreatorCallbacks<T!>!);
+  }
+
+  @Deprecated public interface ParcelableCompatCreatorCallbacks<T> {
+    method @Deprecated public T! createFromParcel(android.os.Parcel!, ClassLoader!);
+    method @Deprecated public T![]! newArray(int);
+  }
+
+  public final class ProcessCompat {
+    method public static boolean isApplicationUid(int);
+  }
+
+  @Deprecated public final class TraceCompat {
+    method @Deprecated public static void beginAsyncSection(String, int);
+    method @Deprecated public static void beginSection(String);
+    method @Deprecated public static void endAsyncSection(String, int);
+    method @Deprecated public static void endSection();
+    method @Deprecated public static boolean isEnabled();
+    method @Deprecated public static void setCounter(String, int);
+  }
+
+  @RequiresApi(17) public class UserHandleCompat {
+    method public static android.os.UserHandle getUserHandleForUid(int);
+  }
+
+  public class UserManagerCompat {
+    method public static boolean isUserUnlocked(android.content.Context);
+  }
+
+}
+
+package androidx.core.provider {
+
+  public final class DocumentsContractCompat {
+    method public static android.net.Uri? buildChildDocumentsUri(String, String?);
+    method public static android.net.Uri? buildChildDocumentsUriUsingTree(android.net.Uri, String);
+    method public static android.net.Uri? buildDocumentUri(String, String);
+    method public static android.net.Uri? buildDocumentUriUsingTree(android.net.Uri, String);
+    method public static android.net.Uri? buildTreeDocumentUri(String, String);
+    method public static android.net.Uri? createDocument(android.content.ContentResolver, android.net.Uri, String, String) throws java.io.FileNotFoundException;
+    method public static String? getDocumentId(android.net.Uri);
+    method public static String? getTreeDocumentId(android.net.Uri);
+    method public static boolean isDocumentUri(android.content.Context, android.net.Uri?);
+    method public static boolean isTreeUri(android.net.Uri);
+    method public static boolean removeDocument(android.content.ContentResolver, android.net.Uri, android.net.Uri) throws java.io.FileNotFoundException;
+    method public static android.net.Uri? renameDocument(android.content.ContentResolver, android.net.Uri, String) throws java.io.FileNotFoundException;
+  }
+
+  public static final class DocumentsContractCompat.DocumentCompat {
+    field public static final int FLAG_VIRTUAL_DOCUMENT = 512; // 0x200
+  }
+
+  public final class FontRequest {
+    ctor public FontRequest(String, String, String, @ArrayRes int);
+    ctor public FontRequest(String, String, String, java.util.List<java.util.List<byte[]!>!>);
+    method public java.util.List<java.util.List<byte[]!>!>? getCertificates();
+    method @ArrayRes public int getCertificatesArrayResId();
+    method @Deprecated @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public String! getIdentifier();
+    method public String getProviderAuthority();
+    method public String getProviderPackage();
+    method public String getQuery();
+  }
+
+  public class FontsContractCompat {
+    method public static android.graphics.Typeface? buildTypeface(android.content.Context, android.os.CancellationSignal?, androidx.core.provider.FontsContractCompat.FontInfo![]);
+    method public static androidx.core.provider.FontsContractCompat.FontFamilyResult fetchFonts(android.content.Context, android.os.CancellationSignal?, androidx.core.provider.FontRequest) throws android.content.pm.PackageManager.NameNotFoundException;
+    method @Deprecated @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static android.graphics.Typeface! getFontSync(android.content.Context!, androidx.core.provider.FontRequest!, androidx.core.content.res.ResourcesCompat.FontCallback?, android.os.Handler?, boolean, int, int);
+    method @Deprecated @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @VisibleForTesting public static android.content.pm.ProviderInfo? getProvider(android.content.pm.PackageManager, androidx.core.provider.FontRequest, android.content.res.Resources?) throws android.content.pm.PackageManager.NameNotFoundException;
+    method @Deprecated @RequiresApi(19) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static java.util.Map<android.net.Uri!,java.nio.ByteBuffer!>! prepareFontData(android.content.Context!, androidx.core.provider.FontsContractCompat.FontInfo![]!, android.os.CancellationSignal!);
+    method public static void requestFont(android.content.Context, androidx.core.provider.FontRequest, androidx.core.provider.FontsContractCompat.FontRequestCallback, android.os.Handler);
+    method @Deprecated @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static void resetCache();
+    field @Deprecated @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static final String PARCEL_FONT_RESULTS = "font_results";
+  }
+
+  public static final class FontsContractCompat.Columns implements android.provider.BaseColumns {
+    ctor public FontsContractCompat.Columns();
+    field public static final String FILE_ID = "file_id";
+    field public static final String ITALIC = "font_italic";
+    field public static final String RESULT_CODE = "result_code";
+    field public static final int RESULT_CODE_FONT_NOT_FOUND = 1; // 0x1
+    field public static final int RESULT_CODE_FONT_UNAVAILABLE = 2; // 0x2
+    field public static final int RESULT_CODE_MALFORMED_QUERY = 3; // 0x3
+    field public static final int RESULT_CODE_OK = 0; // 0x0
+    field public static final String TTC_INDEX = "font_ttc_index";
+    field public static final String VARIATION_SETTINGS = "font_variation_settings";
+    field public static final String WEIGHT = "font_weight";
+  }
+
+  public static class FontsContractCompat.FontFamilyResult {
+    ctor @Deprecated @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public FontsContractCompat.FontFamilyResult(int, androidx.core.provider.FontsContractCompat.FontInfo![]?);
+    method public androidx.core.provider.FontsContractCompat.FontInfo![]! getFonts();
+    method public int getStatusCode();
+    field public static final int STATUS_OK = 0; // 0x0
+    field public static final int STATUS_UNEXPECTED_DATA_PROVIDED = 2; // 0x2
+    field public static final int STATUS_WRONG_CERTIFICATES = 1; // 0x1
+  }
+
+  public static class FontsContractCompat.FontInfo {
+    ctor @Deprecated @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public FontsContractCompat.FontInfo(android.net.Uri, @IntRange(from=0) int, @IntRange(from=1, to=1000) int, boolean, int);
+    method public int getResultCode();
+    method @IntRange(from=0) public int getTtcIndex();
+    method public android.net.Uri getUri();
+    method @IntRange(from=1, to=1000) public int getWeight();
+    method public boolean isItalic();
+  }
+
+  public static class FontsContractCompat.FontRequestCallback {
+    ctor public FontsContractCompat.FontRequestCallback();
+    method public void onTypefaceRequestFailed(@androidx.core.provider.FontsContractCompat.FontRequestCallback.FontRequestFailReason int);
+    method public void onTypefaceRetrieved(android.graphics.Typeface!);
+    field public static final int FAIL_REASON_FONT_LOAD_ERROR = -3; // 0xfffffffd
+    field public static final int FAIL_REASON_FONT_NOT_FOUND = 1; // 0x1
+    field public static final int FAIL_REASON_FONT_UNAVAILABLE = 2; // 0x2
+    field public static final int FAIL_REASON_MALFORMED_QUERY = 3; // 0x3
+    field public static final int FAIL_REASON_PROVIDER_NOT_FOUND = -1; // 0xffffffff
+    field public static final int FAIL_REASON_SECURITY_VIOLATION = -4; // 0xfffffffc
+    field public static final int FAIL_REASON_WRONG_CERTIFICATES = -2; // 0xfffffffe
+    field @Deprecated @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static final int RESULT_OK = 0; // 0x0
+  }
+
+  @IntDef({androidx.core.provider.FontsContractCompat.FontRequestCallback.FAIL_REASON_PROVIDER_NOT_FOUND, androidx.core.provider.FontsContractCompat.FontRequestCallback.FAIL_REASON_FONT_LOAD_ERROR, androidx.core.provider.FontsContractCompat.FontRequestCallback.FAIL_REASON_FONT_NOT_FOUND, androidx.core.provider.FontsContractCompat.FontRequestCallback.FAIL_REASON_FONT_UNAVAILABLE, androidx.core.provider.FontsContractCompat.FontRequestCallback.FAIL_REASON_MALFORMED_QUERY, androidx.core.provider.FontsContractCompat.FontRequestCallback.FAIL_REASON_WRONG_CERTIFICATES, androidx.core.provider.FontsContractCompat.FontRequestCallback.FAIL_REASON_SECURITY_VIOLATION, androidx.core.provider.FontsContractCompat.FontRequestCallback.RESULT_OK}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface FontsContractCompat.FontRequestCallback.FontRequestFailReason {
+  }
+
+  @Deprecated @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public class SelfDestructiveThread {
+    ctor @Deprecated public SelfDestructiveThread(String!, int, int);
+    method @Deprecated @VisibleForTesting public int getGeneration();
+    method @Deprecated @VisibleForTesting public boolean isRunning();
+    method @Deprecated public <T> void postAndReply(java.util.concurrent.Callable<T!>!, androidx.core.provider.SelfDestructiveThread.ReplyCallback<T!>!);
+    method @Deprecated public <T> T! postAndWait(java.util.concurrent.Callable<T!>!, int) throws java.lang.InterruptedException;
+  }
+
+  @Deprecated public static interface SelfDestructiveThread.ReplyCallback<T> {
+    method @Deprecated public void onReply(T!);
+  }
+
+}
+
+package androidx.core.telephony {
+
+  @RequiresApi(22) public class SubscriptionManagerCompat {
+    method public static int getSlotIndex(int);
+  }
+
+  public class TelephonyManagerCompat {
+    method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public static String? getImei(android.telephony.TelephonyManager);
+    method public static int getSubscriptionId(android.telephony.TelephonyManager);
+  }
+
+}
+
+package androidx.core.telephony.mbms {
+
+  public final class MbmsHelper {
+    method public static CharSequence? getBestNameForService(android.content.Context, android.telephony.mbms.ServiceInfo);
+  }
+
+}
+
+package androidx.core.text {
+
+  public final class BidiFormatter {
+    method public static androidx.core.text.BidiFormatter! getInstance();
+    method public static androidx.core.text.BidiFormatter! getInstance(boolean);
+    method public static androidx.core.text.BidiFormatter! getInstance(java.util.Locale!);
+    method public boolean getStereoReset();
+    method public boolean isRtl(CharSequence!);
+    method public boolean isRtl(String!);
+    method public boolean isRtlContext();
+    method public CharSequence! unicodeWrap(CharSequence!);
+    method public CharSequence! unicodeWrap(CharSequence!, androidx.core.text.TextDirectionHeuristicCompat!);
+    method public CharSequence! unicodeWrap(CharSequence!, androidx.core.text.TextDirectionHeuristicCompat!, boolean);
+    method public CharSequence! unicodeWrap(CharSequence!, boolean);
+    method public String! unicodeWrap(String!);
+    method public String! unicodeWrap(String!, androidx.core.text.TextDirectionHeuristicCompat!);
+    method public String! unicodeWrap(String!, androidx.core.text.TextDirectionHeuristicCompat!, boolean);
+    method public String! unicodeWrap(String!, boolean);
+  }
+
+  public static final class BidiFormatter.Builder {
+    ctor public BidiFormatter.Builder();
+    ctor public BidiFormatter.Builder(boolean);
+    ctor public BidiFormatter.Builder(java.util.Locale!);
+    method public androidx.core.text.BidiFormatter! build();
+    method public androidx.core.text.BidiFormatter.Builder! setTextDirectionHeuristic(androidx.core.text.TextDirectionHeuristicCompat!);
+    method public androidx.core.text.BidiFormatter.Builder! stereoReset(boolean);
+  }
+
+  public final class HtmlCompat {
+    method public static android.text.Spanned fromHtml(String, int);
+    method public static android.text.Spanned fromHtml(String, int, android.text.Html.ImageGetter?, android.text.Html.TagHandler?);
+    method public static String toHtml(android.text.Spanned, int);
+    field public static final int FROM_HTML_MODE_COMPACT = 63; // 0x3f
+    field public static final int FROM_HTML_MODE_LEGACY = 0; // 0x0
+    field public static final int FROM_HTML_OPTION_USE_CSS_COLORS = 256; // 0x100
+    field public static final int FROM_HTML_SEPARATOR_LINE_BREAK_BLOCKQUOTE = 32; // 0x20
+    field public static final int FROM_HTML_SEPARATOR_LINE_BREAK_DIV = 16; // 0x10
+    field public static final int FROM_HTML_SEPARATOR_LINE_BREAK_HEADING = 2; // 0x2
+    field public static final int FROM_HTML_SEPARATOR_LINE_BREAK_LIST = 8; // 0x8
+    field public static final int FROM_HTML_SEPARATOR_LINE_BREAK_LIST_ITEM = 4; // 0x4
+    field public static final int FROM_HTML_SEPARATOR_LINE_BREAK_PARAGRAPH = 1; // 0x1
+    field public static final int TO_HTML_PARAGRAPH_LINES_CONSECUTIVE = 0; // 0x0
+    field public static final int TO_HTML_PARAGRAPH_LINES_INDIVIDUAL = 1; // 0x1
+  }
+
+  public final class ICUCompat {
+    method public static String? maximizeAndGetScript(java.util.Locale);
+  }
+
+  public class PrecomputedTextCompat implements android.text.Spannable {
+    method public char charAt(int);
+    method public static androidx.core.text.PrecomputedTextCompat! create(CharSequence, androidx.core.text.PrecomputedTextCompat.Params);
+    method @IntRange(from=0) public int getParagraphCount();
+    method @IntRange(from=0) public int getParagraphEnd(@IntRange(from=0) int);
+    method @IntRange(from=0) public int getParagraphStart(@IntRange(from=0) int);
+    method public androidx.core.text.PrecomputedTextCompat.Params getParams();
+    method @RequiresApi(28) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public android.text.PrecomputedText? getPrecomputedText();
+    method public int getSpanEnd(Object!);
+    method public int getSpanFlags(Object!);
+    method public int getSpanStart(Object!);
+    method public <T> T![]! getSpans(int, int, Class<T!>!);
+    method @UiThread public static java.util.concurrent.Future<androidx.core.text.PrecomputedTextCompat!>! getTextFuture(CharSequence, androidx.core.text.PrecomputedTextCompat.Params, java.util.concurrent.Executor?);
+    method public int length();
+    method public int nextSpanTransition(int, int, Class!);
+    method public void removeSpan(Object!);
+    method public void setSpan(Object!, int, int, int);
+    method public CharSequence! subSequence(int, int);
+  }
+
+  public static final class PrecomputedTextCompat.Params {
+    ctor @RequiresApi(28) public PrecomputedTextCompat.Params(android.text.PrecomputedText.Params);
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public boolean equalsWithoutTextDirection(androidx.core.text.PrecomputedTextCompat.Params);
+    method @RequiresApi(23) public int getBreakStrategy();
+    method @RequiresApi(23) public int getHyphenationFrequency();
+    method @RequiresApi(18) public android.text.TextDirectionHeuristic? getTextDirection();
+    method public android.text.TextPaint getTextPaint();
+  }
+
+  public static class PrecomputedTextCompat.Params.Builder {
+    ctor public PrecomputedTextCompat.Params.Builder(android.text.TextPaint);
+    method public androidx.core.text.PrecomputedTextCompat.Params build();
+    method @RequiresApi(23) public androidx.core.text.PrecomputedTextCompat.Params.Builder! setBreakStrategy(int);
+    method @RequiresApi(23) public androidx.core.text.PrecomputedTextCompat.Params.Builder! setHyphenationFrequency(int);
+    method @RequiresApi(18) public androidx.core.text.PrecomputedTextCompat.Params.Builder! setTextDirection(android.text.TextDirectionHeuristic);
+  }
+
+  public interface TextDirectionHeuristicCompat {
+    method public boolean isRtl(char[]!, int, int);
+    method public boolean isRtl(CharSequence!, int, int);
+  }
+
+  public final class TextDirectionHeuristicsCompat {
+    field public static final androidx.core.text.TextDirectionHeuristicCompat! ANYRTL_LTR;
+    field public static final androidx.core.text.TextDirectionHeuristicCompat! FIRSTSTRONG_LTR;
+    field public static final androidx.core.text.TextDirectionHeuristicCompat! FIRSTSTRONG_RTL;
+    field public static final androidx.core.text.TextDirectionHeuristicCompat! LOCALE;
+    field public static final androidx.core.text.TextDirectionHeuristicCompat! LTR;
+    field public static final androidx.core.text.TextDirectionHeuristicCompat! RTL;
+  }
+
+  public final class TextUtilsCompat {
+    method public static int getLayoutDirectionFromLocale(java.util.Locale?);
+    method public static String htmlEncode(String);
+  }
+
+}
+
+package androidx.core.text.method {
+
+  public class LinkMovementMethodCompat extends android.text.method.LinkMovementMethod {
+    method public static androidx.core.text.method.LinkMovementMethodCompat getInstance();
+  }
+
+}
+
+package androidx.core.text.util {
+
+  public final class LinkifyCompat {
+    method public static boolean addLinks(android.text.Spannable, @androidx.core.text.util.LinkifyCompat.LinkifyMask int);
+    method public static boolean addLinks(android.text.Spannable, java.util.regex.Pattern, String?);
+    method public static boolean addLinks(android.text.Spannable, java.util.regex.Pattern, String?, android.text.util.Linkify.MatchFilter?, android.text.util.Linkify.TransformFilter?);
+    method public static boolean addLinks(android.text.Spannable, java.util.regex.Pattern, String?, String![]?, android.text.util.Linkify.MatchFilter?, android.text.util.Linkify.TransformFilter?);
+    method public static boolean addLinks(android.widget.TextView, @androidx.core.text.util.LinkifyCompat.LinkifyMask int);
+    method public static void addLinks(android.widget.TextView, java.util.regex.Pattern, String?);
+    method public static void addLinks(android.widget.TextView, java.util.regex.Pattern, String?, android.text.util.Linkify.MatchFilter?, android.text.util.Linkify.TransformFilter?);
+    method public static void addLinks(android.widget.TextView, java.util.regex.Pattern, String?, String![]?, android.text.util.Linkify.MatchFilter?, android.text.util.Linkify.TransformFilter?);
+  }
+
+  @IntDef(flag=true, value={android.text.util.Linkify.WEB_URLS, android.text.util.Linkify.EMAIL_ADDRESSES, android.text.util.Linkify.PHONE_NUMBERS, android.text.util.Linkify.MAP_ADDRESSES, android.text.util.Linkify.ALL}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface LinkifyCompat.LinkifyMask {
+  }
+
+}
+
+package androidx.core.util {
+
+  public class AtomicFile {
+    ctor public AtomicFile(java.io.File);
+    method public void delete();
+    method public void failWrite(java.io.FileOutputStream?);
+    method public void finishWrite(java.io.FileOutputStream?);
+    method public java.io.File getBaseFile();
+    method public java.io.FileInputStream openRead() throws java.io.FileNotFoundException;
+    method public byte[] readFully() throws java.io.IOException;
+    method public java.io.FileOutputStream startWrite() throws java.io.IOException;
+  }
+
+  public interface Consumer<T> {
+    method public void accept(T!);
+  }
+
+  @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public class DebugUtils {
+    method public static void buildShortClassTag(Object!, StringBuilder!);
+  }
+
+  @Deprecated @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public class LogWriter extends java.io.Writer {
+    ctor @Deprecated public LogWriter(String!);
+    method @Deprecated public void close();
+    method @Deprecated public void flush();
+    method @Deprecated public void write(char[]!, int, int);
+  }
+
+  public class ObjectsCompat {
+    method public static boolean equals(Object?, Object?);
+    method public static int hash(java.lang.Object!...);
+    method public static int hashCode(Object?);
+    method public static <T> T requireNonNull(T?);
+    method public static <T> T requireNonNull(T?, String);
+    method public static String? toString(Object?, String?);
+  }
+
+  public class Pair<F, S> {
+    ctor public Pair(F!, S!);
+    method public static <A, B> androidx.core.util.Pair<A!,B!> create(A!, B!);
+    field public final F! first;
+    field public final S! second;
+  }
+
+  public final class PatternsCompat {
+    field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static final java.util.regex.Pattern AUTOLINK_EMAIL_ADDRESS;
+    field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static final java.util.regex.Pattern AUTOLINK_WEB_URL;
+    field public static final java.util.regex.Pattern DOMAIN_NAME;
+    field public static final java.util.regex.Pattern EMAIL_ADDRESS;
+    field public static final java.util.regex.Pattern IP_ADDRESS;
+    field public static final java.util.regex.Pattern WEB_URL;
+  }
+
+  public final class Pools {
+  }
+
+  public static interface Pools.Pool<T> {
+    method public T? acquire();
+    method public boolean release(T);
+  }
+
+  public static class Pools.SimplePool<T> implements androidx.core.util.Pools.Pool<T> {
+    ctor public Pools.SimplePool(int);
+    method public T! acquire();
+    method public boolean release(T);
+  }
+
+  public static class Pools.SynchronizedPool<T> extends androidx.core.util.Pools.SimplePool<T> {
+    ctor public Pools.SynchronizedPool(int);
+  }
+
+  @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public final class Preconditions {
+    method public static void checkArgument(boolean);
+    method public static void checkArgument(boolean, Object);
+    method public static void checkArgument(boolean, String, java.lang.Object!...);
+    method public static float checkArgumentFinite(float, String);
+    method public static double checkArgumentInRange(double, double, double, String);
+    method public static float checkArgumentInRange(float, float, float, String);
+    method public static int checkArgumentInRange(int, int, int, String);
+    method public static long checkArgumentInRange(long, long, long, String);
+    method @IntRange(from=0) public static int checkArgumentNonnegative(int);
+    method @IntRange(from=0) public static int checkArgumentNonnegative(int, String?);
+    method public static int checkFlagsArgument(int, int);
+    method public static <T> T checkNotNull(T?);
+    method public static <T> T checkNotNull(T?, Object);
+    method public static void checkState(boolean);
+    method public static void checkState(boolean, String?);
+    method public static <T extends java.lang.CharSequence> T checkStringNotEmpty(T?);
+    method public static <T extends java.lang.CharSequence> T checkStringNotEmpty(T?, Object);
+    method public static <T extends java.lang.CharSequence> T checkStringNotEmpty(T?, String, java.lang.Object!...);
+  }
+
+  public interface Predicate<T> {
+    method public default androidx.core.util.Predicate<T!>! and(androidx.core.util.Predicate<? super T>!);
+    method public static <T> androidx.core.util.Predicate<T!>! isEqual(Object!);
+    method public default androidx.core.util.Predicate<T!>! negate();
+    method public static <T> androidx.core.util.Predicate<T!>! not(androidx.core.util.Predicate<? super T>!);
+    method public default androidx.core.util.Predicate<T!>! or(androidx.core.util.Predicate<? super T>!);
+    method public boolean test(T!);
+  }
+
+  public final class SizeFCompat {
+    ctor public SizeFCompat(float, float);
+    method public float getHeight();
+    method public float getWidth();
+    method @RequiresApi(21) public android.util.SizeF toSizeF();
+    method @RequiresApi(21) public static androidx.core.util.SizeFCompat toSizeFCompat(android.util.SizeF);
+  }
+
+  public interface Supplier<T> {
+    method public T! get();
+  }
+
+  @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public final class TimeUtils {
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static void formatDuration(long, java.io.PrintWriter!);
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static void formatDuration(long, java.io.PrintWriter!, int);
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static void formatDuration(long, StringBuilder!);
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static void formatDuration(long, long, java.io.PrintWriter!);
+    field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static final int HUNDRED_DAY_FIELD_LEN = 19; // 0x13
+  }
+
+}
+
+package androidx.core.view {
+
+  public class AccessibilityDelegateCompat {
+    ctor public AccessibilityDelegateCompat();
+    ctor @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public AccessibilityDelegateCompat(android.view.View.AccessibilityDelegate);
+    method public boolean dispatchPopulateAccessibilityEvent(android.view.View, android.view.accessibility.AccessibilityEvent);
+    method public androidx.core.view.accessibility.AccessibilityNodeProviderCompat? getAccessibilityNodeProvider(android.view.View);
+    method public void onInitializeAccessibilityEvent(android.view.View, android.view.accessibility.AccessibilityEvent);
+    method public void onInitializeAccessibilityNodeInfo(android.view.View, androidx.core.view.accessibility.AccessibilityNodeInfoCompat);
+    method public void onPopulateAccessibilityEvent(android.view.View, android.view.accessibility.AccessibilityEvent);
+    method public boolean onRequestSendAccessibilityEvent(android.view.ViewGroup, android.view.View, android.view.accessibility.AccessibilityEvent);
+    method public boolean performAccessibilityAction(android.view.View, int, android.os.Bundle?);
+    method public void sendAccessibilityEvent(android.view.View, int);
+    method public void sendAccessibilityEventUnchecked(android.view.View, android.view.accessibility.AccessibilityEvent);
+  }
+
+  public abstract class ActionProvider {
+    ctor public ActionProvider(android.content.Context);
+    method public android.content.Context getContext();
+    method public boolean hasSubMenu();
+    method public boolean isVisible();
+    method public abstract android.view.View onCreateActionView();
+    method public android.view.View onCreateActionView(android.view.MenuItem);
+    method public boolean onPerformDefaultAction();
+    method public void onPrepareSubMenu(android.view.SubMenu);
+    method public boolean overridesItemVisibility();
+    method public void refreshVisibility();
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public void reset();
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public void setSubUiVisibilityListener(androidx.core.view.ActionProvider.SubUiVisibilityListener?);
+    method public void setVisibilityListener(androidx.core.view.ActionProvider.VisibilityListener?);
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public void subUiVisibilityChanged(boolean);
+  }
+
+  @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static interface ActionProvider.SubUiVisibilityListener {
+    method public void onSubUiVisibilityChanged(boolean);
+  }
+
+  public static interface ActionProvider.VisibilityListener {
+    method public void onActionProviderVisibilityChanged(boolean);
+  }
+
+  public final class ContentInfoCompat {
+    method public android.content.ClipData getClip();
+    method public android.os.Bundle? getExtras();
+    method @androidx.core.view.ContentInfoCompat.Flags public int getFlags();
+    method public android.net.Uri? getLinkUri();
+    method @androidx.core.view.ContentInfoCompat.Source public int getSource();
+    method @RequiresApi(31) public static android.util.Pair<android.view.ContentInfo!,android.view.ContentInfo!> partition(android.view.ContentInfo, java.util.function.Predicate<android.content.ClipData.Item!>);
+    method public android.util.Pair<androidx.core.view.ContentInfoCompat!,androidx.core.view.ContentInfoCompat!> partition(androidx.core.util.Predicate<android.content.ClipData.Item!>);
+    method @RequiresApi(31) public android.view.ContentInfo toContentInfo();
+    method @RequiresApi(31) public static androidx.core.view.ContentInfoCompat toContentInfoCompat(android.view.ContentInfo);
+    field public static final int FLAG_CONVERT_TO_PLAIN_TEXT = 1; // 0x1
+    field public static final int SOURCE_APP = 0; // 0x0
+    field public static final int SOURCE_AUTOFILL = 4; // 0x4
+    field public static final int SOURCE_CLIPBOARD = 1; // 0x1
+    field public static final int SOURCE_DRAG_AND_DROP = 3; // 0x3
+    field public static final int SOURCE_INPUT_METHOD = 2; // 0x2
+    field public static final int SOURCE_PROCESS_TEXT = 5; // 0x5
+  }
+
+  public static final class ContentInfoCompat.Builder {
+    ctor public ContentInfoCompat.Builder(android.content.ClipData, @androidx.core.view.ContentInfoCompat.Source int);
+    ctor public ContentInfoCompat.Builder(androidx.core.view.ContentInfoCompat);
+    method public androidx.core.view.ContentInfoCompat build();
+    method public androidx.core.view.ContentInfoCompat.Builder setClip(android.content.ClipData);
+    method public androidx.core.view.ContentInfoCompat.Builder setExtras(android.os.Bundle?);
+    method public androidx.core.view.ContentInfoCompat.Builder setFlags(@androidx.core.view.ContentInfoCompat.Flags int);
+    method public androidx.core.view.ContentInfoCompat.Builder setLinkUri(android.net.Uri?);
+    method public androidx.core.view.ContentInfoCompat.Builder setSource(@androidx.core.view.ContentInfoCompat.Source int);
+  }
+
+  @IntDef(flag=true, value={androidx.core.view.ContentInfoCompat.FLAG_CONVERT_TO_PLAIN_TEXT}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface ContentInfoCompat.Flags {
+  }
+
+  @IntDef({androidx.core.view.ContentInfoCompat.SOURCE_APP, androidx.core.view.ContentInfoCompat.SOURCE_CLIPBOARD, androidx.core.view.ContentInfoCompat.SOURCE_INPUT_METHOD, androidx.core.view.ContentInfoCompat.SOURCE_DRAG_AND_DROP, androidx.core.view.ContentInfoCompat.SOURCE_AUTOFILL, androidx.core.view.ContentInfoCompat.SOURCE_PROCESS_TEXT}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface ContentInfoCompat.Source {
+  }
+
+  public final class DisplayCompat {
+    method public static androidx.core.view.DisplayCompat.ModeCompat getMode(android.content.Context, android.view.Display);
+    method public static androidx.core.view.DisplayCompat.ModeCompat![] getSupportedModes(android.content.Context, android.view.Display);
+  }
+
+  public static final class DisplayCompat.ModeCompat {
+    method public int getPhysicalHeight();
+    method public int getPhysicalWidth();
+    method @Deprecated public boolean isNative();
+    method @RequiresApi(android.os.Build.VERSION_CODES.M) public android.view.Display.Mode? toMode();
+  }
+
+  public final class DisplayCutoutCompat {
+    ctor public DisplayCutoutCompat(android.graphics.Rect?, java.util.List<android.graphics.Rect!>?);
+    ctor public DisplayCutoutCompat(androidx.core.graphics.Insets, android.graphics.Rect?, android.graphics.Rect?, android.graphics.Rect?, android.graphics.Rect?, androidx.core.graphics.Insets);
+    method public java.util.List<android.graphics.Rect!> getBoundingRects();
+    method public int getSafeInsetBottom();
+    method public int getSafeInsetLeft();
+    method public int getSafeInsetRight();
+    method public int getSafeInsetTop();
+    method public androidx.core.graphics.Insets getWaterfallInsets();
+  }
+
+  public final class DragAndDropPermissionsCompat {
+    method public void release();
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static androidx.core.view.DragAndDropPermissionsCompat? request(android.app.Activity, android.view.DragEvent);
+  }
+
+  public class DragStartHelper {
+    ctor public DragStartHelper(android.view.View, androidx.core.view.DragStartHelper.OnDragStartListener);
+    method public void attach();
+    method public void detach();
+    method public void getTouchPosition(android.graphics.Point);
+    method public boolean onLongClick(android.view.View);
+    method public boolean onTouch(android.view.View, android.view.MotionEvent);
+  }
+
+  public static interface DragStartHelper.OnDragStartListener {
+    method public boolean onDragStart(android.view.View, androidx.core.view.DragStartHelper);
+  }
+
+  public final class GestureDetectorCompat {
+    ctor public GestureDetectorCompat(android.content.Context, android.view.GestureDetector.OnGestureListener);
+    ctor public GestureDetectorCompat(android.content.Context, android.view.GestureDetector.OnGestureListener, android.os.Handler?);
+    method public boolean isLongpressEnabled();
+    method public boolean onTouchEvent(android.view.MotionEvent);
+    method public void setIsLongpressEnabled(boolean);
+    method public void setOnDoubleTapListener(android.view.GestureDetector.OnDoubleTapListener?);
+  }
+
+  public final class GravityCompat {
+    method public static void apply(int, int, int, android.graphics.Rect, android.graphics.Rect, int);
+    method public static void apply(int, int, int, android.graphics.Rect, int, int, android.graphics.Rect, int);
+    method public static void applyDisplay(int, android.graphics.Rect, android.graphics.Rect, int);
+    method public static int getAbsoluteGravity(int, int);
+    field public static final int END = 8388613; // 0x800005
+    field public static final int RELATIVE_HORIZONTAL_GRAVITY_MASK = 8388615; // 0x800007
+    field public static final int RELATIVE_LAYOUT_DIRECTION = 8388608; // 0x800000
+    field public static final int START = 8388611; // 0x800003
+  }
+
+  public final class HapticFeedbackConstantsCompat {
+    field public static final int CLOCK_TICK = 4; // 0x4
+    field public static final int CONFIRM = 16; // 0x10
+    field public static final int CONTEXT_CLICK = 6; // 0x6
+    field public static final int DRAG_START = 25; // 0x19
+    field public static final int FLAG_IGNORE_VIEW_SETTING = 1; // 0x1
+    field public static final int GESTURE_END = 13; // 0xd
+    field public static final int GESTURE_START = 12; // 0xc
+    field public static final int GESTURE_THRESHOLD_ACTIVATE = 23; // 0x17
+    field public static final int GESTURE_THRESHOLD_DEACTIVATE = 24; // 0x18
+    field public static final int KEYBOARD_PRESS = 3; // 0x3
+    field public static final int KEYBOARD_RELEASE = 7; // 0x7
+    field public static final int KEYBOARD_TAP = 3; // 0x3
+    field public static final int LONG_PRESS = 0; // 0x0
+    field public static final int NO_HAPTICS = -1; // 0xffffffff
+    field public static final int REJECT = 17; // 0x11
+    field public static final int SEGMENT_FREQUENT_TICK = 27; // 0x1b
+    field public static final int SEGMENT_TICK = 26; // 0x1a
+    field public static final int TEXT_HANDLE_MOVE = 9; // 0x9
+    field public static final int TOGGLE_OFF = 22; // 0x16
+    field public static final int TOGGLE_ON = 21; // 0x15
+    field public static final int VIRTUAL_KEY = 1; // 0x1
+    field public static final int VIRTUAL_KEY_RELEASE = 8; // 0x8
+  }
+
+  public final class InputDeviceCompat {
+    field public static final int SOURCE_ANY = -256; // 0xffffff00
+    field public static final int SOURCE_CLASS_BUTTON = 1; // 0x1
+    field public static final int SOURCE_CLASS_JOYSTICK = 16; // 0x10
+    field public static final int SOURCE_CLASS_MASK = 255; // 0xff
+    field public static final int SOURCE_CLASS_NONE = 0; // 0x0
+    field public static final int SOURCE_CLASS_POINTER = 2; // 0x2
+    field public static final int SOURCE_CLASS_POSITION = 8; // 0x8
+    field public static final int SOURCE_CLASS_TRACKBALL = 4; // 0x4
+    field public static final int SOURCE_DPAD = 513; // 0x201
+    field public static final int SOURCE_GAMEPAD = 1025; // 0x401
+    field public static final int SOURCE_HDMI = 33554433; // 0x2000001
+    field public static final int SOURCE_JOYSTICK = 16777232; // 0x1000010
+    field public static final int SOURCE_KEYBOARD = 257; // 0x101
+    field public static final int SOURCE_MOUSE = 8194; // 0x2002
+    field public static final int SOURCE_ROTARY_ENCODER = 4194304; // 0x400000
+    field public static final int SOURCE_STYLUS = 16386; // 0x4002
+    field public static final int SOURCE_TOUCHPAD = 1048584; // 0x100008
+    field public static final int SOURCE_TOUCHSCREEN = 4098; // 0x1002
+    field public static final int SOURCE_TOUCH_NAVIGATION = 2097152; // 0x200000
+    field public static final int SOURCE_TRACKBALL = 65540; // 0x10004
+    field public static final int SOURCE_UNKNOWN = 0; // 0x0
+  }
+
+  @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public class KeyEventDispatcher {
+    method public static boolean dispatchBeforeHierarchy(android.view.View, android.view.KeyEvent);
+    method public static boolean dispatchKeyEvent(androidx.core.view.KeyEventDispatcher.Component, android.view.View?, android.view.Window.Callback?, android.view.KeyEvent);
+  }
+
+  public static interface KeyEventDispatcher.Component {
+    method public boolean superDispatchKeyEvent(android.view.KeyEvent);
+  }
+
+  public final class LayoutInflaterCompat {
+    method @Deprecated public static androidx.core.view.LayoutInflaterFactory! getFactory(android.view.LayoutInflater!);
+    method @Deprecated public static void setFactory(android.view.LayoutInflater, androidx.core.view.LayoutInflaterFactory);
+    method public static void setFactory2(android.view.LayoutInflater, android.view.LayoutInflater.Factory2);
+  }
+
+  @Deprecated public interface LayoutInflaterFactory {
+    method @Deprecated public android.view.View! onCreateView(android.view.View!, String!, android.content.Context!, android.util.AttributeSet!);
+  }
+
+  public final class MarginLayoutParamsCompat {
+    method public static int getLayoutDirection(android.view.ViewGroup.MarginLayoutParams);
+    method public static int getMarginEnd(android.view.ViewGroup.MarginLayoutParams);
+    method public static int getMarginStart(android.view.ViewGroup.MarginLayoutParams);
+    method public static boolean isMarginRelative(android.view.ViewGroup.MarginLayoutParams);
+    method public static void resolveLayoutDirection(android.view.ViewGroup.MarginLayoutParams, int);
+    method public static void setLayoutDirection(android.view.ViewGroup.MarginLayoutParams, int);
+    method public static void setMarginEnd(android.view.ViewGroup.MarginLayoutParams, int);
+    method public static void setMarginStart(android.view.ViewGroup.MarginLayoutParams, int);
+  }
+
+  public final class MenuCompat {
+    method public static void setGroupDividerEnabled(android.view.Menu, boolean);
+    method @Deprecated public static void setShowAsAction(android.view.MenuItem!, int);
+  }
+
+  public interface MenuHost {
+    method public void addMenuProvider(androidx.core.view.MenuProvider);
+    method public void addMenuProvider(androidx.core.view.MenuProvider, androidx.lifecycle.LifecycleOwner);
+    method public void addMenuProvider(androidx.core.view.MenuProvider, androidx.lifecycle.LifecycleOwner, androidx.lifecycle.Lifecycle.State);
+    method public void invalidateMenu();
+    method public void removeMenuProvider(androidx.core.view.MenuProvider);
+  }
+
+  public class MenuHostHelper {
+    ctor public MenuHostHelper(Runnable);
+    method public void addMenuProvider(androidx.core.view.MenuProvider);
+    method public void addMenuProvider(androidx.core.view.MenuProvider, androidx.lifecycle.LifecycleOwner);
+    method public void addMenuProvider(androidx.core.view.MenuProvider, androidx.lifecycle.LifecycleOwner, androidx.lifecycle.Lifecycle.State);
+    method public void onCreateMenu(android.view.Menu, android.view.MenuInflater);
+    method public void onMenuClosed(android.view.Menu);
+    method public boolean onMenuItemSelected(android.view.MenuItem);
+    method public void onPrepareMenu(android.view.Menu);
+    method public void removeMenuProvider(androidx.core.view.MenuProvider);
+  }
+
+  public final class MenuItemCompat {
+    method @Deprecated public static boolean collapseActionView(android.view.MenuItem!);
+    method @Deprecated public static boolean expandActionView(android.view.MenuItem!);
+    method public static androidx.core.view.ActionProvider? getActionProvider(android.view.MenuItem);
+    method @Deprecated public static android.view.View! getActionView(android.view.MenuItem!);
+    method public static int getAlphabeticModifiers(android.view.MenuItem);
+    method public static CharSequence? getContentDescription(android.view.MenuItem);
+    method public static android.content.res.ColorStateList? getIconTintList(android.view.MenuItem);
+    method public static android.graphics.PorterDuff.Mode? getIconTintMode(android.view.MenuItem);
+    method public static int getNumericModifiers(android.view.MenuItem);
+    method public static CharSequence? getTooltipText(android.view.MenuItem);
+    method @Deprecated public static boolean isActionViewExpanded(android.view.MenuItem!);
+    method public static android.view.MenuItem? setActionProvider(android.view.MenuItem, androidx.core.view.ActionProvider?);
+    method @Deprecated public static android.view.MenuItem! setActionView(android.view.MenuItem!, android.view.View!);
+    method @Deprecated public static android.view.MenuItem! setActionView(android.view.MenuItem!, int);
+    method public static void setAlphabeticShortcut(android.view.MenuItem, char, int);
+    method public static void setContentDescription(android.view.MenuItem, CharSequence?);
+    method public static void setIconTintList(android.view.MenuItem, android.content.res.ColorStateList?);
+    method public static void setIconTintMode(android.view.MenuItem, android.graphics.PorterDuff.Mode?);
+    method public static void setNumericShortcut(android.view.MenuItem, char, int);
+    method @Deprecated public static android.view.MenuItem! setOnActionExpandListener(android.view.MenuItem!, androidx.core.view.MenuItemCompat.OnActionExpandListener!);
+    method public static void setShortcut(android.view.MenuItem, char, char, int, int);
+    method @Deprecated public static void setShowAsAction(android.view.MenuItem!, int);
+    method public static void setTooltipText(android.view.MenuItem, CharSequence?);
+    field @Deprecated public static final int SHOW_AS_ACTION_ALWAYS = 2; // 0x2
+    field @Deprecated public static final int SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW = 8; // 0x8
+    field @Deprecated public static final int SHOW_AS_ACTION_IF_ROOM = 1; // 0x1
+    field @Deprecated public static final int SHOW_AS_ACTION_NEVER = 0; // 0x0
+    field @Deprecated public static final int SHOW_AS_ACTION_WITH_TEXT = 4; // 0x4
+  }
+
+  @Deprecated public static interface MenuItemCompat.OnActionExpandListener {
+    method @Deprecated public boolean onMenuItemActionCollapse(android.view.MenuItem!);
+    method @Deprecated public boolean onMenuItemActionExpand(android.view.MenuItem!);
+  }
+
+  public interface MenuProvider {
+    method public void onCreateMenu(android.view.Menu, android.view.MenuInflater);
+    method public default void onMenuClosed(android.view.Menu);
+    method public boolean onMenuItemSelected(android.view.MenuItem);
+    method public default void onPrepareMenu(android.view.Menu);
+  }
+
+  public final class MotionEventCompat {
+    method @Deprecated public static int findPointerIndex(android.view.MotionEvent!, int);
+    method @Deprecated public static int getActionIndex(android.view.MotionEvent!);
+    method @Deprecated public static int getActionMasked(android.view.MotionEvent!);
+    method @Deprecated public static float getAxisValue(android.view.MotionEvent!, int);
+    method @Deprecated public static float getAxisValue(android.view.MotionEvent!, int, int);
+    method @Deprecated public static int getButtonState(android.view.MotionEvent!);
+    method @Deprecated public static int getPointerCount(android.view.MotionEvent!);
+    method @Deprecated public static int getPointerId(android.view.MotionEvent!, int);
+    method @Deprecated public static int getSource(android.view.MotionEvent!);
+    method @Deprecated public static float getX(android.view.MotionEvent!, int);
+    method @Deprecated public static float getY(android.view.MotionEvent!, int);
+    method public static boolean isFromSource(android.view.MotionEvent, int);
+    field @Deprecated public static final int ACTION_HOVER_ENTER = 9; // 0x9
+    field @Deprecated public static final int ACTION_HOVER_EXIT = 10; // 0xa
+    field @Deprecated public static final int ACTION_HOVER_MOVE = 7; // 0x7
+    field @Deprecated public static final int ACTION_MASK = 255; // 0xff
+    field @Deprecated public static final int ACTION_POINTER_DOWN = 5; // 0x5
+    field @Deprecated public static final int ACTION_POINTER_INDEX_MASK = 65280; // 0xff00
+    field @Deprecated public static final int ACTION_POINTER_INDEX_SHIFT = 8; // 0x8
+    field @Deprecated public static final int ACTION_POINTER_UP = 6; // 0x6
+    field @Deprecated public static final int ACTION_SCROLL = 8; // 0x8
+    field @Deprecated public static final int AXIS_BRAKE = 23; // 0x17
+    field @Deprecated public static final int AXIS_DISTANCE = 24; // 0x18
+    field @Deprecated public static final int AXIS_GAS = 22; // 0x16
+    field @Deprecated public static final int AXIS_GENERIC_1 = 32; // 0x20
+    field @Deprecated public static final int AXIS_GENERIC_10 = 41; // 0x29
+    field @Deprecated public static final int AXIS_GENERIC_11 = 42; // 0x2a
+    field @Deprecated public static final int AXIS_GENERIC_12 = 43; // 0x2b
+    field @Deprecated public static final int AXIS_GENERIC_13 = 44; // 0x2c
+    field @Deprecated public static final int AXIS_GENERIC_14 = 45; // 0x2d
+    field @Deprecated public static final int AXIS_GENERIC_15 = 46; // 0x2e
+    field @Deprecated public static final int AXIS_GENERIC_16 = 47; // 0x2f
+    field @Deprecated public static final int AXIS_GENERIC_2 = 33; // 0x21
+    field @Deprecated public static final int AXIS_GENERIC_3 = 34; // 0x22
+    field @Deprecated public static final int AXIS_GENERIC_4 = 35; // 0x23
+    field @Deprecated public static final int AXIS_GENERIC_5 = 36; // 0x24
+    field @Deprecated public static final int AXIS_GENERIC_6 = 37; // 0x25
+    field @Deprecated public static final int AXIS_GENERIC_7 = 38; // 0x26
+    field @Deprecated public static final int AXIS_GENERIC_8 = 39; // 0x27
+    field @Deprecated public static final int AXIS_GENERIC_9 = 40; // 0x28
+    field @Deprecated public static final int AXIS_HAT_X = 15; // 0xf
+    field @Deprecated public static final int AXIS_HAT_Y = 16; // 0x10
+    field @Deprecated public static final int AXIS_HSCROLL = 10; // 0xa
+    field @Deprecated public static final int AXIS_LTRIGGER = 17; // 0x11
+    field @Deprecated public static final int AXIS_ORIENTATION = 8; // 0x8
+    field @Deprecated public static final int AXIS_PRESSURE = 2; // 0x2
+    field public static final int AXIS_RELATIVE_X = 27; // 0x1b
+    field public static final int AXIS_RELATIVE_Y = 28; // 0x1c
+    field @Deprecated public static final int AXIS_RTRIGGER = 18; // 0x12
+    field @Deprecated public static final int AXIS_RUDDER = 20; // 0x14
+    field @Deprecated public static final int AXIS_RX = 12; // 0xc
+    field @Deprecated public static final int AXIS_RY = 13; // 0xd
+    field @Deprecated public static final int AXIS_RZ = 14; // 0xe
+    field public static final int AXIS_SCROLL = 26; // 0x1a
+    field @Deprecated public static final int AXIS_SIZE = 3; // 0x3
+    field @Deprecated public static final int AXIS_THROTTLE = 19; // 0x13
+    field @Deprecated public static final int AXIS_TILT = 25; // 0x19
+    field @Deprecated public static final int AXIS_TOOL_MAJOR = 6; // 0x6
+    field @Deprecated public static final int AXIS_TOOL_MINOR = 7; // 0x7
+    field @Deprecated public static final int AXIS_TOUCH_MAJOR = 4; // 0x4
+    field @Deprecated public static final int AXIS_TOUCH_MINOR = 5; // 0x5
+    field @Deprecated public static final int AXIS_VSCROLL = 9; // 0x9
+    field @Deprecated public static final int AXIS_WHEEL = 21; // 0x15
+    field @Deprecated public static final int AXIS_X = 0; // 0x0
+    field @Deprecated public static final int AXIS_Y = 1; // 0x1
+    field @Deprecated public static final int AXIS_Z = 11; // 0xb
+    field @Deprecated public static final int BUTTON_PRIMARY = 1; // 0x1
+  }
+
+  public interface NestedScrollingChild {
+    method public boolean dispatchNestedFling(float, float, boolean);
+    method public boolean dispatchNestedPreFling(float, float);
+    method public boolean dispatchNestedPreScroll(int, int, int[]?, int[]?);
+    method public boolean dispatchNestedScroll(int, int, int, int, int[]?);
+    method public boolean hasNestedScrollingParent();
+    method public boolean isNestedScrollingEnabled();
+    method public void setNestedScrollingEnabled(boolean);
+    method public boolean startNestedScroll(@androidx.core.view.ViewCompat.ScrollAxis int);
+    method public void stopNestedScroll();
+  }
+
+  public interface NestedScrollingChild2 extends androidx.core.view.NestedScrollingChild {
+    method public boolean dispatchNestedPreScroll(int, int, int[]?, int[]?, @androidx.core.view.ViewCompat.NestedScrollType int);
+    method public boolean dispatchNestedScroll(int, int, int, int, int[]?, @androidx.core.view.ViewCompat.NestedScrollType int);
+    method public boolean hasNestedScrollingParent(@androidx.core.view.ViewCompat.NestedScrollType int);
+    method public boolean startNestedScroll(@androidx.core.view.ViewCompat.ScrollAxis int, @androidx.core.view.ViewCompat.NestedScrollType int);
+    method public void stopNestedScroll(@androidx.core.view.ViewCompat.NestedScrollType int);
+  }
+
+  public interface NestedScrollingChild3 extends androidx.core.view.NestedScrollingChild2 {
+    method public void dispatchNestedScroll(int, int, int, int, int[]?, @androidx.core.view.ViewCompat.NestedScrollType int, int[]);
+  }
+
+  public class NestedScrollingChildHelper {
+    ctor public NestedScrollingChildHelper(android.view.View);
+    method public boolean dispatchNestedFling(float, float, boolean);
+    method public boolean dispatchNestedPreFling(float, float);
+    method public boolean dispatchNestedPreScroll(int, int, int[]?, int[]?);
+    method public boolean dispatchNestedPreScroll(int, int, int[]?, int[]?, @androidx.core.view.ViewCompat.NestedScrollType int);
+    method public boolean dispatchNestedScroll(int, int, int, int, int[]?);
+    method public boolean dispatchNestedScroll(int, int, int, int, int[]?, @androidx.core.view.ViewCompat.NestedScrollType int);
+    method public void dispatchNestedScroll(int, int, int, int, int[]?, @androidx.core.view.ViewCompat.NestedScrollType int, int[]?);
+    method public boolean hasNestedScrollingParent();
+    method public boolean hasNestedScrollingParent(@androidx.core.view.ViewCompat.NestedScrollType int);
+    method public boolean isNestedScrollingEnabled();
+    method public void onDetachedFromWindow();
+    method public void onStopNestedScroll(android.view.View);
+    method public void setNestedScrollingEnabled(boolean);
+    method public boolean startNestedScroll(@androidx.core.view.ViewCompat.ScrollAxis int);
+    method public boolean startNestedScroll(@androidx.core.view.ViewCompat.ScrollAxis int, @androidx.core.view.ViewCompat.NestedScrollType int);
+    method public void stopNestedScroll();
+    method public void stopNestedScroll(@androidx.core.view.ViewCompat.NestedScrollType int);
+  }
+
+  public interface NestedScrollingParent {
+    method @androidx.core.view.ViewCompat.ScrollAxis public int getNestedScrollAxes();
+    method public boolean onNestedFling(android.view.View, float, float, boolean);
+    method public boolean onNestedPreFling(android.view.View, float, float);
+    method public void onNestedPreScroll(android.view.View, int, int, int[]);
+    method public void onNestedScroll(android.view.View, int, int, int, int);
+    method public void onNestedScrollAccepted(android.view.View, android.view.View, @androidx.core.view.ViewCompat.ScrollAxis int);
+    method public boolean onStartNestedScroll(android.view.View, android.view.View, @androidx.core.view.ViewCompat.ScrollAxis int);
+    method public void onStopNestedScroll(android.view.View);
+  }
+
+  public interface NestedScrollingParent2 extends androidx.core.view.NestedScrollingParent {
+    method public void onNestedPreScroll(android.view.View, int, int, int[], @androidx.core.view.ViewCompat.NestedScrollType int);
+    method public void onNestedScroll(android.view.View, int, int, int, int, @androidx.core.view.ViewCompat.NestedScrollType int);
+    method public void onNestedScrollAccepted(android.view.View, android.view.View, @androidx.core.view.ViewCompat.ScrollAxis int, @androidx.core.view.ViewCompat.NestedScrollType int);
+    method public boolean onStartNestedScroll(android.view.View, android.view.View, @androidx.core.view.ViewCompat.ScrollAxis int, @androidx.core.view.ViewCompat.NestedScrollType int);
+    method public void onStopNestedScroll(android.view.View, @androidx.core.view.ViewCompat.NestedScrollType int);
+  }
+
+  public interface NestedScrollingParent3 extends androidx.core.view.NestedScrollingParent2 {
+    method public void onNestedScroll(android.view.View, int, int, int, int, @androidx.core.view.ViewCompat.NestedScrollType int, int[]);
+  }
+
+  public class NestedScrollingParentHelper {
+    ctor public NestedScrollingParentHelper(android.view.ViewGroup);
+    method @androidx.core.view.ViewCompat.ScrollAxis public int getNestedScrollAxes();
+    method public void onNestedScrollAccepted(android.view.View, android.view.View, @androidx.core.view.ViewCompat.ScrollAxis int);
+    method public void onNestedScrollAccepted(android.view.View, android.view.View, @androidx.core.view.ViewCompat.ScrollAxis int, @androidx.core.view.ViewCompat.NestedScrollType int);
+    method public void onStopNestedScroll(android.view.View);
+    method public void onStopNestedScroll(android.view.View, @androidx.core.view.ViewCompat.NestedScrollType int);
+  }
+
+  public interface OnApplyWindowInsetsListener {
+    method public androidx.core.view.WindowInsetsCompat onApplyWindowInsets(android.view.View, androidx.core.view.WindowInsetsCompat);
+  }
+
+  public interface OnReceiveContentListener {
+    method public androidx.core.view.ContentInfoCompat? onReceiveContent(android.view.View, androidx.core.view.ContentInfoCompat);
+  }
+
+  public interface OnReceiveContentViewBehavior {
+    method public androidx.core.view.ContentInfoCompat? onReceiveContent(androidx.core.view.ContentInfoCompat);
+  }
+
+  public final class OneShotPreDrawListener implements android.view.View.OnAttachStateChangeListener android.view.ViewTreeObserver.OnPreDrawListener {
+    method public static androidx.core.view.OneShotPreDrawListener add(android.view.View, Runnable);
+    method public boolean onPreDraw();
+    method public void onViewAttachedToWindow(android.view.View);
+    method public void onViewDetachedFromWindow(android.view.View);
+    method public void removeListener();
+  }
+
+  public final class PointerIconCompat {
+    method public static androidx.core.view.PointerIconCompat create(android.graphics.Bitmap, float, float);
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public Object? getPointerIcon();
+    method public static androidx.core.view.PointerIconCompat getSystemIcon(android.content.Context, int);
+    method public static androidx.core.view.PointerIconCompat load(android.content.res.Resources, int);
+    field public static final int TYPE_ALIAS = 1010; // 0x3f2
+    field public static final int TYPE_ALL_SCROLL = 1013; // 0x3f5
+    field public static final int TYPE_ARROW = 1000; // 0x3e8
+    field public static final int TYPE_CELL = 1006; // 0x3ee
+    field public static final int TYPE_CONTEXT_MENU = 1001; // 0x3e9
+    field public static final int TYPE_COPY = 1011; // 0x3f3
+    field public static final int TYPE_CROSSHAIR = 1007; // 0x3ef
+    field public static final int TYPE_DEFAULT = 1000; // 0x3e8
+    field public static final int TYPE_GRAB = 1020; // 0x3fc
+    field public static final int TYPE_GRABBING = 1021; // 0x3fd
+    field public static final int TYPE_HAND = 1002; // 0x3ea
+    field public static final int TYPE_HELP = 1003; // 0x3eb
+    field public static final int TYPE_HORIZONTAL_DOUBLE_ARROW = 1014; // 0x3f6
+    field public static final int TYPE_NO_DROP = 1012; // 0x3f4
+    field public static final int TYPE_NULL = 0; // 0x0
+    field public static final int TYPE_TEXT = 1008; // 0x3f0
+    field public static final int TYPE_TOP_LEFT_DIAGONAL_DOUBLE_ARROW = 1017; // 0x3f9
+    field public static final int TYPE_TOP_RIGHT_DIAGONAL_DOUBLE_ARROW = 1016; // 0x3f8
+    field public static final int TYPE_VERTICAL_DOUBLE_ARROW = 1015; // 0x3f7
+    field public static final int TYPE_VERTICAL_TEXT = 1009; // 0x3f1
+    field public static final int TYPE_WAIT = 1004; // 0x3ec
+    field public static final int TYPE_ZOOM_IN = 1018; // 0x3fa
+    field public static final int TYPE_ZOOM_OUT = 1019; // 0x3fb
+  }
+
+  public final class ScaleGestureDetectorCompat {
+    method public static boolean isQuickScaleEnabled(android.view.ScaleGestureDetector);
+    method @Deprecated public static boolean isQuickScaleEnabled(Object!);
+    method public static void setQuickScaleEnabled(android.view.ScaleGestureDetector, boolean);
+    method @Deprecated public static void setQuickScaleEnabled(Object!, boolean);
+  }
+
+  public interface ScrollingView {
+    method public int computeHorizontalScrollExtent();
+    method public int computeHorizontalScrollOffset();
+    method public int computeHorizontalScrollRange();
+    method public int computeVerticalScrollExtent();
+    method public int computeVerticalScrollOffset();
+    method public int computeVerticalScrollRange();
+  }
+
+  public final class SoftwareKeyboardControllerCompat {
+    ctor public SoftwareKeyboardControllerCompat(android.view.View);
+    method public void hide();
+    method public void show();
+  }
+
+  public interface TintableBackgroundView {
+    method public android.content.res.ColorStateList? getSupportBackgroundTintList();
+    method public android.graphics.PorterDuff.Mode? getSupportBackgroundTintMode();
+    method public void setSupportBackgroundTintList(android.content.res.ColorStateList?);
+    method public void setSupportBackgroundTintMode(android.graphics.PorterDuff.Mode?);
+  }
+
+  @Deprecated public final class VelocityTrackerCompat {
+    method @Deprecated public static float getXVelocity(android.view.VelocityTracker!, int);
+    method @Deprecated public static float getYVelocity(android.view.VelocityTracker!, int);
+  }
+
+  public class ViewCompat {
+    ctor @Deprecated protected ViewCompat();
+    method public static int addAccessibilityAction(android.view.View, CharSequence, androidx.core.view.accessibility.AccessibilityViewCommand);
+    method public static void addKeyboardNavigationClusters(android.view.View, java.util.Collection<android.view.View!>, int);
+    method public static void addOnUnhandledKeyEventListener(android.view.View, androidx.core.view.ViewCompat.OnUnhandledKeyEventListenerCompat);
+    method public static androidx.core.view.ViewPropertyAnimatorCompat animate(android.view.View);
+    method @Deprecated public static boolean canScrollHorizontally(android.view.View!, int);
+    method @Deprecated public static boolean canScrollVertically(android.view.View!, int);
+    method public static void cancelDragAndDrop(android.view.View);
+    method @Deprecated public static int combineMeasuredStates(int, int);
+    method public static androidx.core.view.WindowInsetsCompat computeSystemWindowInsets(android.view.View, androidx.core.view.WindowInsetsCompat, android.graphics.Rect);
+    method public static androidx.core.view.WindowInsetsCompat dispatchApplyWindowInsets(android.view.View, androidx.core.view.WindowInsetsCompat);
+    method public static void dispatchFinishTemporaryDetach(android.view.View);
+    method public static boolean dispatchNestedFling(android.view.View, float, float, boolean);
+    method public static boolean dispatchNestedPreFling(android.view.View, float, float);
+    method public static boolean dispatchNestedPreScroll(android.view.View, int, int, int[]?, int[]?);
+    method public static boolean dispatchNestedPreScroll(android.view.View, int, int, int[]?, int[]?, @androidx.core.view.ViewCompat.NestedScrollType int);
+    method public static boolean dispatchNestedScroll(android.view.View, int, int, int, int, int[]?);
+    method public static boolean dispatchNestedScroll(android.view.View, int, int, int, int, int[]?, @androidx.core.view.ViewCompat.NestedScrollType int);
+    method public static void dispatchNestedScroll(android.view.View, int, int, int, int, int[]?, @androidx.core.view.ViewCompat.NestedScrollType int, int[]);
+    method public static void dispatchStartTemporaryDetach(android.view.View);
+    method public static void enableAccessibleClickableSpanSupport(android.view.View);
+    method public static int generateViewId();
+    method public static androidx.core.view.AccessibilityDelegateCompat? getAccessibilityDelegate(android.view.View);
+    method public static int getAccessibilityLiveRegion(android.view.View);
+    method public static androidx.core.view.accessibility.AccessibilityNodeProviderCompat? getAccessibilityNodeProvider(android.view.View);
+    method @UiThread public static CharSequence? getAccessibilityPaneTitle(android.view.View);
+    method @Deprecated public static float getAlpha(android.view.View!);
+    method public static androidx.core.view.autofill.AutofillIdCompat? getAutofillId(android.view.View);
+    method public static android.content.res.ColorStateList? getBackgroundTintList(android.view.View);
+    method public static android.graphics.PorterDuff.Mode? getBackgroundTintMode(android.view.View);
+    method public static android.graphics.Rect? getClipBounds(android.view.View);
+    method public static androidx.core.view.contentcapture.ContentCaptureSessionCompat? getContentCaptureSession(android.view.View);
+    method public static android.view.Display? getDisplay(android.view.View);
+    method public static float getElevation(android.view.View);
+    method public static boolean getFitsSystemWindows(android.view.View);
+    method public static int getImportantForAccessibility(android.view.View);
+    method public static int getImportantForAutofill(android.view.View);
+    method public static int getImportantForContentCapture(android.view.View);
+    method public static int getLabelFor(android.view.View);
+    method @Deprecated public static int getLayerType(android.view.View!);
+    method public static int getLayoutDirection(android.view.View);
+    method @Deprecated public static android.graphics.Matrix? getMatrix(android.view.View!);
+    method @Deprecated public static int getMeasuredHeightAndState(android.view.View!);
+    method @Deprecated public static int getMeasuredState(android.view.View!);
+    method @Deprecated public static int getMeasuredWidthAndState(android.view.View!);
+    method public static int getMinimumHeight(android.view.View);
+    method public static int getMinimumWidth(android.view.View);
+    method public static int getNextClusterForwardId(android.view.View);
+    method public static String![]? getOnReceiveContentMimeTypes(android.view.View);
+    method @Deprecated public static int getOverScrollMode(android.view.View!);
+    method @Px public static int getPaddingEnd(android.view.View);
+    method @Px public static int getPaddingStart(android.view.View);
+    method public static android.view.ViewParent? getParentForAccessibility(android.view.View);
+    method @Deprecated public static float getPivotX(android.view.View!);
+    method @Deprecated public static float getPivotY(android.view.View!);
+    method public static androidx.core.view.WindowInsetsCompat? getRootWindowInsets(android.view.View);
+    method @Deprecated public static float getRotation(android.view.View!);
+    method @Deprecated public static float getRotationX(android.view.View!);
+    method @Deprecated public static float getRotationY(android.view.View!);
+    method @Deprecated public static float getScaleX(android.view.View!);
+    method @Deprecated public static float getScaleY(android.view.View!);
+    method public static int getScrollIndicators(android.view.View);
+    method @UiThread public static CharSequence? getStateDescription(android.view.View);
+    method public static java.util.List<android.graphics.Rect!> getSystemGestureExclusionRects(android.view.View);
+    method public static String? getTransitionName(android.view.View);
+    method @Deprecated public static float getTranslationX(android.view.View!);
+    method @Deprecated public static float getTranslationY(android.view.View!);
+    method public static float getTranslationZ(android.view.View);
+    method @Deprecated public static androidx.core.view.WindowInsetsControllerCompat? getWindowInsetsController(android.view.View);
+    method @Deprecated public static int getWindowSystemUiVisibility(android.view.View);
+    method @Deprecated public static float getX(android.view.View!);
+    method @Deprecated public static float getY(android.view.View!);
+    method public static float getZ(android.view.View);
+    method public static boolean hasAccessibilityDelegate(android.view.View);
+    method public static boolean hasExplicitFocusable(android.view.View);
+    method public static boolean hasNestedScrollingParent(android.view.View);
+    method public static boolean hasNestedScrollingParent(android.view.View, @androidx.core.view.ViewCompat.NestedScrollType int);
+    method public static boolean hasOnClickListeners(android.view.View);
+    method public static boolean hasOverlappingRendering(android.view.View);
+    method public static boolean hasTransientState(android.view.View);
+    method @UiThread public static boolean isAccessibilityHeading(android.view.View);
+    method public static boolean isAttachedToWindow(android.view.View);
+    method public static boolean isFocusedByDefault(android.view.View);
+    method public static boolean isImportantForAccessibility(android.view.View);
+    method public static boolean isImportantForAutofill(android.view.View);
+    method public static boolean isImportantForContentCapture(android.view.View);
+    method public static boolean isInLayout(android.view.View);
+    method public static boolean isKeyboardNavigationCluster(android.view.View);
+    method public static boolean isLaidOut(android.view.View);
+    method public static boolean isLayoutDirectionResolved(android.view.View);
+    method public static boolean isNestedScrollingEnabled(android.view.View);
+    method @Deprecated public static boolean isOpaque(android.view.View!);
+    method public static boolean isPaddingRelative(android.view.View);
+    method @UiThread public static boolean isScreenReaderFocusable(android.view.View);
+    method @Deprecated public static void jumpDrawablesToCurrentState(android.view.View!);
+    method public static android.view.View? keyboardNavigationClusterSearch(android.view.View, android.view.View?, @androidx.core.view.ViewCompat.FocusDirection int);
+    method public static void offsetLeftAndRight(android.view.View, int);
+    method public static void offsetTopAndBottom(android.view.View, int);
+    method public static androidx.core.view.WindowInsetsCompat onApplyWindowInsets(android.view.View, androidx.core.view.WindowInsetsCompat);
+    method @Deprecated public static void onInitializeAccessibilityEvent(android.view.View!, android.view.accessibility.AccessibilityEvent!);
+    method public static void onInitializeAccessibilityNodeInfo(android.view.View, androidx.core.view.accessibility.AccessibilityNodeInfoCompat);
+    method @Deprecated public static void onPopulateAccessibilityEvent(android.view.View!, android.view.accessibility.AccessibilityEvent!);
+    method public static boolean performAccessibilityAction(android.view.View, int, android.os.Bundle?);
+    method public static boolean performHapticFeedback(android.view.View, int);
+    method public static boolean performHapticFeedback(android.view.View, int, int);
+    method public static androidx.core.view.ContentInfoCompat? performReceiveContent(android.view.View, androidx.core.view.ContentInfoCompat);
+    method public static void postInvalidateOnAnimation(android.view.View);
+    method public static void postInvalidateOnAnimation(android.view.View, int, int, int, int);
+    method public static void postOnAnimation(android.view.View, Runnable);
+    method public static void postOnAnimationDelayed(android.view.View, Runnable, long);
+    method public static void removeAccessibilityAction(android.view.View, int);
+    method public static void removeOnUnhandledKeyEventListener(android.view.View, androidx.core.view.ViewCompat.OnUnhandledKeyEventListenerCompat);
+    method public static void replaceAccessibilityAction(android.view.View, androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat, CharSequence?, androidx.core.view.accessibility.AccessibilityViewCommand?);
+    method public static void requestApplyInsets(android.view.View);
+    method public static <T extends android.view.View> T requireViewById(android.view.View, @IdRes int);
+    method @Deprecated public static int resolveSizeAndState(int, int, int);
+    method public static boolean restoreDefaultFocus(android.view.View);
+    method public static void saveAttributeDataForStyleable(android.view.View, android.content.Context, int[], android.util.AttributeSet?, android.content.res.TypedArray, int, int);
+    method public static void setAccessibilityDelegate(android.view.View, androidx.core.view.AccessibilityDelegateCompat?);
+    method @UiThread public static void setAccessibilityHeading(android.view.View, boolean);
+    method public static void setAccessibilityLiveRegion(android.view.View, int);
+    method @UiThread public static void setAccessibilityPaneTitle(android.view.View, CharSequence?);
+    method @Deprecated public static void setActivated(android.view.View!, boolean);
+    method @Deprecated public static void setAlpha(android.view.View!, @FloatRange(from=0.0, to=1.0) float);
+    method public static void setAutofillHints(android.view.View, java.lang.String!...);
+    method public static void setAutofillId(android.view.View, androidx.core.view.autofill.AutofillIdCompat?);
+    method public static void setBackground(android.view.View, android.graphics.drawable.Drawable?);
+    method public static void setBackgroundTintList(android.view.View, android.content.res.ColorStateList?);
+    method public static void setBackgroundTintMode(android.view.View, android.graphics.PorterDuff.Mode?);
+    method @Deprecated public static void setChildrenDrawingOrderEnabled(android.view.ViewGroup!, boolean);
+    method public static void setClipBounds(android.view.View, android.graphics.Rect?);
+    method public static void setContentCaptureSession(android.view.View, androidx.core.view.contentcapture.ContentCaptureSessionCompat?);
+    method public static void setElevation(android.view.View, float);
+    method @Deprecated public static void setFitsSystemWindows(android.view.View!, boolean);
+    method public static void setFocusedByDefault(android.view.View, boolean);
+    method public static void setHasTransientState(android.view.View, boolean);
+    method @UiThread public static void setImportantForAccessibility(android.view.View, int);
+    method public static void setImportantForAutofill(android.view.View, int);
+    method public static void setImportantForContentCapture(android.view.View, int);
+    method public static void setKeyboardNavigationCluster(android.view.View, boolean);
+    method public static void setLabelFor(android.view.View, @IdRes int);
+    method public static void setLayerPaint(android.view.View, android.graphics.Paint?);
+    method @Deprecated public static void setLayerType(android.view.View!, int, android.graphics.Paint!);
+    method public static void setLayoutDirection(android.view.View, int);
+    method public static void setNestedScrollingEnabled(android.view.View, boolean);
+    method public static void setNextClusterForwardId(android.view.View, int);
+    method public static void setOnApplyWindowInsetsListener(android.view.View, androidx.core.view.OnApplyWindowInsetsListener?);
+    method public static void setOnReceiveContentListener(android.view.View, String![]?, androidx.core.view.OnReceiveContentListener?);
+    method @Deprecated public static void setOverScrollMode(android.view.View!, int);
+    method public static void setPaddingRelative(android.view.View, @Px int, @Px int, @Px int, @Px int);
+    method @Deprecated public static void setPivotX(android.view.View!, float);
+    method @Deprecated public static void setPivotY(android.view.View!, float);
+    method public static void setPointerIcon(android.view.View, androidx.core.view.PointerIconCompat?);
+    method @Deprecated public static void setRotation(android.view.View!, float);
+    method @Deprecated public static void setRotationX(android.view.View!, float);
+    method @Deprecated public static void setRotationY(android.view.View!, float);
+    method @Deprecated public static void setSaveFromParentEnabled(android.view.View!, boolean);
+    method @Deprecated public static void setScaleX(android.view.View!, float);
+    method @Deprecated public static void setScaleY(android.view.View!, float);
+    method @UiThread public static void setScreenReaderFocusable(android.view.View, boolean);
+    method public static void setScrollIndicators(android.view.View, @androidx.core.view.ViewCompat.ScrollIndicators int);
+    method public static void setScrollIndicators(android.view.View, @androidx.core.view.ViewCompat.ScrollIndicators int, @androidx.core.view.ViewCompat.ScrollIndicators int);
+    method @UiThread public static void setStateDescription(android.view.View, CharSequence?);
+    method public static void setSystemGestureExclusionRects(android.view.View, java.util.List<android.graphics.Rect!>);
+    method public static void setTooltipText(android.view.View, CharSequence?);
+    method public static void setTransitionName(android.view.View, String?);
+    method @Deprecated public static void setTranslationX(android.view.View!, float);
+    method @Deprecated public static void setTranslationY(android.view.View!, float);
+    method public static void setTranslationZ(android.view.View, float);
+    method public static void setWindowInsetsAnimationCallback(android.view.View, androidx.core.view.WindowInsetsAnimationCompat.Callback?);
+    method @Deprecated public static void setX(android.view.View!, float);
+    method @Deprecated public static void setY(android.view.View!, float);
+    method public static void setZ(android.view.View, float);
+    method public static boolean startDragAndDrop(android.view.View, android.content.ClipData?, android.view.View.DragShadowBuilder, Object?, int);
+    method public static boolean startNestedScroll(android.view.View, @androidx.core.view.ViewCompat.ScrollAxis int);
+    method public static boolean startNestedScroll(android.view.View, @androidx.core.view.ViewCompat.ScrollAxis int, @androidx.core.view.ViewCompat.NestedScrollType int);
+    method public static void stopNestedScroll(android.view.View);
+    method public static void stopNestedScroll(android.view.View, @androidx.core.view.ViewCompat.NestedScrollType int);
+    method public static void updateDragShadow(android.view.View, android.view.View.DragShadowBuilder);
+    field public static final int ACCESSIBILITY_LIVE_REGION_ASSERTIVE = 2; // 0x2
+    field public static final int ACCESSIBILITY_LIVE_REGION_NONE = 0; // 0x0
+    field public static final int ACCESSIBILITY_LIVE_REGION_POLITE = 1; // 0x1
+    field public static final int IMPORTANT_FOR_ACCESSIBILITY_AUTO = 0; // 0x0
+    field public static final int IMPORTANT_FOR_ACCESSIBILITY_NO = 2; // 0x2
+    field public static final int IMPORTANT_FOR_ACCESSIBILITY_NO_HIDE_DESCENDANTS = 4; // 0x4
+    field public static final int IMPORTANT_FOR_ACCESSIBILITY_YES = 1; // 0x1
+    field public static final int IMPORTANT_FOR_CONTENT_CAPTURE_AUTO = 0; // 0x0
+    field public static final int IMPORTANT_FOR_CONTENT_CAPTURE_NO = 2; // 0x2
+    field public static final int IMPORTANT_FOR_CONTENT_CAPTURE_NO_EXCLUDE_DESCENDANTS = 8; // 0x8
+    field public static final int IMPORTANT_FOR_CONTENT_CAPTURE_YES = 1; // 0x1
+    field public static final int IMPORTANT_FOR_CONTENT_CAPTURE_YES_EXCLUDE_DESCENDANTS = 4; // 0x4
+    field @Deprecated public static final int LAYER_TYPE_HARDWARE = 2; // 0x2
+    field @Deprecated public static final int LAYER_TYPE_NONE = 0; // 0x0
+    field @Deprecated public static final int LAYER_TYPE_SOFTWARE = 1; // 0x1
+    field public static final int LAYOUT_DIRECTION_INHERIT = 2; // 0x2
+    field public static final int LAYOUT_DIRECTION_LOCALE = 3; // 0x3
+    field public static final int LAYOUT_DIRECTION_LTR = 0; // 0x0
+    field public static final int LAYOUT_DIRECTION_RTL = 1; // 0x1
+    field @Deprecated public static final int MEASURED_HEIGHT_STATE_SHIFT = 16; // 0x10
+    field @Deprecated public static final int MEASURED_SIZE_MASK = 16777215; // 0xffffff
+    field @Deprecated public static final int MEASURED_STATE_MASK = -16777216; // 0xff000000
+    field @Deprecated public static final int MEASURED_STATE_TOO_SMALL = 16777216; // 0x1000000
+    field @Deprecated public static final int OVER_SCROLL_ALWAYS = 0; // 0x0
+    field @Deprecated public static final int OVER_SCROLL_IF_CONTENT_SCROLLS = 1; // 0x1
+    field @Deprecated public static final int OVER_SCROLL_NEVER = 2; // 0x2
+    field public static final int SCROLL_AXIS_HORIZONTAL = 1; // 0x1
+    field public static final int SCROLL_AXIS_NONE = 0; // 0x0
+    field public static final int SCROLL_AXIS_VERTICAL = 2; // 0x2
+    field public static final int SCROLL_INDICATOR_BOTTOM = 2; // 0x2
+    field public static final int SCROLL_INDICATOR_END = 32; // 0x20
+    field public static final int SCROLL_INDICATOR_LEFT = 4; // 0x4
+    field public static final int SCROLL_INDICATOR_RIGHT = 8; // 0x8
+    field public static final int SCROLL_INDICATOR_START = 16; // 0x10
+    field public static final int SCROLL_INDICATOR_TOP = 1; // 0x1
+    field public static final int TYPE_NON_TOUCH = 1; // 0x1
+    field public static final int TYPE_TOUCH = 0; // 0x0
+  }
+
+  @IntDef({android.view.View.FOCUS_LEFT, android.view.View.FOCUS_UP, android.view.View.FOCUS_RIGHT, android.view.View.FOCUS_DOWN, android.view.View.FOCUS_FORWARD, android.view.View.FOCUS_BACKWARD}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface ViewCompat.FocusDirection {
+  }
+
+  @IntDef({android.view.View.FOCUS_LEFT, android.view.View.FOCUS_UP, android.view.View.FOCUS_RIGHT, android.view.View.FOCUS_DOWN}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface ViewCompat.FocusRealDirection {
+  }
+
+  @IntDef({android.view.View.FOCUS_FORWARD, android.view.View.FOCUS_BACKWARD}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface ViewCompat.FocusRelativeDirection {
+  }
+
+  @IntDef({androidx.core.view.ViewCompat.TYPE_TOUCH, androidx.core.view.ViewCompat.TYPE_NON_TOUCH}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface ViewCompat.NestedScrollType {
+  }
+
+  public static interface ViewCompat.OnUnhandledKeyEventListenerCompat {
+    method public boolean onUnhandledKeyEvent(android.view.View, android.view.KeyEvent);
+  }
+
+  @IntDef(value={androidx.core.view.ViewCompat.SCROLL_AXIS_NONE, androidx.core.view.ViewCompat.SCROLL_AXIS_HORIZONTAL, androidx.core.view.ViewCompat.SCROLL_AXIS_VERTICAL}, flag=true) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface ViewCompat.ScrollAxis {
+  }
+
+  @IntDef(flag=true, value={androidx.core.view.ViewCompat.SCROLL_INDICATOR_TOP, androidx.core.view.ViewCompat.SCROLL_INDICATOR_BOTTOM, androidx.core.view.ViewCompat.SCROLL_INDICATOR_LEFT, androidx.core.view.ViewCompat.SCROLL_INDICATOR_RIGHT, androidx.core.view.ViewCompat.SCROLL_INDICATOR_START, androidx.core.view.ViewCompat.SCROLL_INDICATOR_END}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface ViewCompat.ScrollIndicators {
+  }
+
+  public final class ViewConfigurationCompat {
+    method public static float getScaledHorizontalScrollFactor(android.view.ViewConfiguration, android.content.Context);
+    method public static int getScaledHoverSlop(android.view.ViewConfiguration);
+    method @Deprecated public static int getScaledPagingTouchSlop(android.view.ViewConfiguration!);
+    method public static float getScaledVerticalScrollFactor(android.view.ViewConfiguration, android.content.Context);
+    method @Deprecated public static boolean hasPermanentMenuKey(android.view.ViewConfiguration!);
+    method public static boolean shouldShowMenuShortcutsWhenKeyboardPresent(android.view.ViewConfiguration, android.content.Context);
+  }
+
+  public final class ViewGroupCompat {
+    method public static int getLayoutMode(android.view.ViewGroup);
+    method @androidx.core.view.ViewCompat.ScrollAxis public static int getNestedScrollAxes(android.view.ViewGroup);
+    method public static boolean isTransitionGroup(android.view.ViewGroup);
+    method @Deprecated public static boolean onRequestSendAccessibilityEvent(android.view.ViewGroup!, android.view.View!, android.view.accessibility.AccessibilityEvent!);
+    method public static void setLayoutMode(android.view.ViewGroup, int);
+    method @Deprecated public static void setMotionEventSplittingEnabled(android.view.ViewGroup!, boolean);
+    method public static void setTransitionGroup(android.view.ViewGroup, boolean);
+    field public static final int LAYOUT_MODE_CLIP_BOUNDS = 0; // 0x0
+    field public static final int LAYOUT_MODE_OPTICAL_BOUNDS = 1; // 0x1
+  }
+
+  public final class ViewParentCompat {
+    method public static void notifySubtreeAccessibilityStateChanged(android.view.ViewParent, android.view.View, android.view.View, int);
+    method public static boolean onNestedFling(android.view.ViewParent, android.view.View, float, float, boolean);
+    method public static boolean onNestedPreFling(android.view.ViewParent, android.view.View, float, float);
+    method public static void onNestedPreScroll(android.view.ViewParent, android.view.View, int, int, int[]);
+    method public static void onNestedPreScroll(android.view.ViewParent, android.view.View, int, int, int[], int);
+    method public static void onNestedScroll(android.view.ViewParent, android.view.View, int, int, int, int);
+    method public static void onNestedScroll(android.view.ViewParent, android.view.View, int, int, int, int, int);
+    method public static void onNestedScroll(android.view.ViewParent, android.view.View, int, int, int, int, int, int[]);
+    method public static void onNestedScrollAccepted(android.view.ViewParent, android.view.View, android.view.View, int);
+    method public static void onNestedScrollAccepted(android.view.ViewParent, android.view.View, android.view.View, int, int);
+    method public static boolean onStartNestedScroll(android.view.ViewParent, android.view.View, android.view.View, int);
+    method public static boolean onStartNestedScroll(android.view.ViewParent, android.view.View, android.view.View, int, int);
+    method public static void onStopNestedScroll(android.view.ViewParent, android.view.View);
+    method public static void onStopNestedScroll(android.view.ViewParent, android.view.View, int);
+    method @Deprecated public static boolean requestSendAccessibilityEvent(android.view.ViewParent!, android.view.View!, android.view.accessibility.AccessibilityEvent!);
+  }
+
+  public final class ViewPropertyAnimatorCompat {
+    method public androidx.core.view.ViewPropertyAnimatorCompat alpha(float);
+    method public androidx.core.view.ViewPropertyAnimatorCompat alphaBy(float);
+    method public void cancel();
+    method public long getDuration();
+    method public android.view.animation.Interpolator? getInterpolator();
+    method public long getStartDelay();
+    method public androidx.core.view.ViewPropertyAnimatorCompat rotation(float);
+    method public androidx.core.view.ViewPropertyAnimatorCompat rotationBy(float);
+    method public androidx.core.view.ViewPropertyAnimatorCompat rotationX(float);
+    method public androidx.core.view.ViewPropertyAnimatorCompat rotationXBy(float);
+    method public androidx.core.view.ViewPropertyAnimatorCompat rotationY(float);
+    method public androidx.core.view.ViewPropertyAnimatorCompat rotationYBy(float);
+    method public androidx.core.view.ViewPropertyAnimatorCompat scaleX(float);
+    method public androidx.core.view.ViewPropertyAnimatorCompat scaleXBy(float);
+    method public androidx.core.view.ViewPropertyAnimatorCompat scaleY(float);
+    method public androidx.core.view.ViewPropertyAnimatorCompat scaleYBy(float);
+    method public androidx.core.view.ViewPropertyAnimatorCompat setDuration(long);
+    method public androidx.core.view.ViewPropertyAnimatorCompat setInterpolator(android.view.animation.Interpolator?);
+    method public androidx.core.view.ViewPropertyAnimatorCompat setListener(androidx.core.view.ViewPropertyAnimatorListener?);
+    method public androidx.core.view.ViewPropertyAnimatorCompat setStartDelay(long);
+    method public androidx.core.view.ViewPropertyAnimatorCompat setUpdateListener(androidx.core.view.ViewPropertyAnimatorUpdateListener?);
+    method public void start();
+    method public androidx.core.view.ViewPropertyAnimatorCompat translationX(float);
+    method public androidx.core.view.ViewPropertyAnimatorCompat translationXBy(float);
+    method public androidx.core.view.ViewPropertyAnimatorCompat translationY(float);
+    method public androidx.core.view.ViewPropertyAnimatorCompat translationYBy(float);
+    method public androidx.core.view.ViewPropertyAnimatorCompat translationZ(float);
+    method public androidx.core.view.ViewPropertyAnimatorCompat translationZBy(float);
+    method public androidx.core.view.ViewPropertyAnimatorCompat withEndAction(Runnable);
+    method public androidx.core.view.ViewPropertyAnimatorCompat withLayer();
+    method public androidx.core.view.ViewPropertyAnimatorCompat withStartAction(Runnable);
+    method public androidx.core.view.ViewPropertyAnimatorCompat x(float);
+    method public androidx.core.view.ViewPropertyAnimatorCompat xBy(float);
+    method public androidx.core.view.ViewPropertyAnimatorCompat y(float);
+    method public androidx.core.view.ViewPropertyAnimatorCompat yBy(float);
+    method public androidx.core.view.ViewPropertyAnimatorCompat z(float);
+    method public androidx.core.view.ViewPropertyAnimatorCompat zBy(float);
+  }
+
+  public interface ViewPropertyAnimatorListener {
+    method public void onAnimationCancel(android.view.View);
+    method public void onAnimationEnd(android.view.View);
+    method public void onAnimationStart(android.view.View);
+  }
+
+  public class ViewPropertyAnimatorListenerAdapter implements androidx.core.view.ViewPropertyAnimatorListener {
+    ctor public ViewPropertyAnimatorListenerAdapter();
+    method public void onAnimationCancel(android.view.View);
+    method public void onAnimationEnd(android.view.View);
+    method public void onAnimationStart(android.view.View);
+  }
+
+  public interface ViewPropertyAnimatorUpdateListener {
+    method public void onAnimationUpdate(android.view.View);
+  }
+
+  public class ViewStructureCompat {
+    method public void setClassName(String);
+    method public void setContentDescription(CharSequence);
+    method public void setDimens(int, int, int, int, int, int);
+    method public void setText(CharSequence);
+    method @RequiresApi(23) public android.view.ViewStructure toViewStructure();
+    method @RequiresApi(23) public static androidx.core.view.ViewStructureCompat toViewStructureCompat(android.view.ViewStructure);
+  }
+
+  public final class WindowCompat {
+    method public static androidx.core.view.WindowInsetsControllerCompat getInsetsController(android.view.Window, android.view.View);
+    method public static <T extends android.view.View> T requireViewById(android.view.Window, @IdRes int);
+    method public static void setDecorFitsSystemWindows(android.view.Window, boolean);
+    field public static final int FEATURE_ACTION_BAR = 8; // 0x8
+    field public static final int FEATURE_ACTION_BAR_OVERLAY = 9; // 0x9
+    field public static final int FEATURE_ACTION_MODE_OVERLAY = 10; // 0xa
+  }
+
+  public final class WindowInsetsAnimationCompat {
+    ctor public WindowInsetsAnimationCompat(@androidx.core.view.WindowInsetsCompat.Type.InsetsType int, android.view.animation.Interpolator?, long);
+    method @FloatRange(from=0.0f, to=1.0f) public float getAlpha();
+    method public long getDurationMillis();
+    method @FloatRange(from=0.0f, to=1.0f) public float getFraction();
+    method public float getInterpolatedFraction();
+    method public android.view.animation.Interpolator? getInterpolator();
+    method @androidx.core.view.WindowInsetsCompat.Type.InsetsType public int getTypeMask();
+    method public void setAlpha(@FloatRange(from=0.0f, to=1.0f) float);
+    method public void setFraction(@FloatRange(from=0.0f, to=1.0f) float);
+  }
+
+  public static final class WindowInsetsAnimationCompat.BoundsCompat {
+    ctor public WindowInsetsAnimationCompat.BoundsCompat(androidx.core.graphics.Insets, androidx.core.graphics.Insets);
+    method public androidx.core.graphics.Insets getLowerBound();
+    method public androidx.core.graphics.Insets getUpperBound();
+    method public androidx.core.view.WindowInsetsAnimationCompat.BoundsCompat inset(androidx.core.graphics.Insets);
+    method @RequiresApi(30) public android.view.WindowInsetsAnimation.Bounds toBounds();
+    method @RequiresApi(30) public static androidx.core.view.WindowInsetsAnimationCompat.BoundsCompat toBoundsCompat(android.view.WindowInsetsAnimation.Bounds);
+  }
+
+  public abstract static class WindowInsetsAnimationCompat.Callback {
+    ctor public WindowInsetsAnimationCompat.Callback(@androidx.core.view.WindowInsetsAnimationCompat.Callback.DispatchMode int);
+    method @androidx.core.view.WindowInsetsAnimationCompat.Callback.DispatchMode public final int getDispatchMode();
+    method public void onEnd(androidx.core.view.WindowInsetsAnimationCompat);
+    method public void onPrepare(androidx.core.view.WindowInsetsAnimationCompat);
+    method public abstract androidx.core.view.WindowInsetsCompat onProgress(androidx.core.view.WindowInsetsCompat, java.util.List<androidx.core.view.WindowInsetsAnimationCompat!>);
+    method public androidx.core.view.WindowInsetsAnimationCompat.BoundsCompat onStart(androidx.core.view.WindowInsetsAnimationCompat, androidx.core.view.WindowInsetsAnimationCompat.BoundsCompat);
+    field public static final int DISPATCH_MODE_CONTINUE_ON_SUBTREE = 1; // 0x1
+    field public static final int DISPATCH_MODE_STOP = 0; // 0x0
+  }
+
+  @IntDef({androidx.core.view.WindowInsetsAnimationCompat.Callback.DISPATCH_MODE_STOP, androidx.core.view.WindowInsetsAnimationCompat.Callback.DISPATCH_MODE_CONTINUE_ON_SUBTREE}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface WindowInsetsAnimationCompat.Callback.DispatchMode {
+  }
+
+  public interface WindowInsetsAnimationControlListenerCompat {
+    method public void onCancelled(androidx.core.view.WindowInsetsAnimationControllerCompat?);
+    method public void onFinished(androidx.core.view.WindowInsetsAnimationControllerCompat);
+    method public void onReady(androidx.core.view.WindowInsetsAnimationControllerCompat, @androidx.core.view.WindowInsetsCompat.Type.InsetsType int);
+  }
+
+  public final class WindowInsetsAnimationControllerCompat {
+    method public void finish(boolean);
+    method public float getCurrentAlpha();
+    method @FloatRange(from=0.0f, to=1.0f) public float getCurrentFraction();
+    method public androidx.core.graphics.Insets getCurrentInsets();
+    method public androidx.core.graphics.Insets getHiddenStateInsets();
+    method public androidx.core.graphics.Insets getShownStateInsets();
+    method @androidx.core.view.WindowInsetsCompat.Type.InsetsType public int getTypes();
+    method public boolean isCancelled();
+    method public boolean isFinished();
+    method public boolean isReady();
+    method public void setInsetsAndAlpha(androidx.core.graphics.Insets?, @FloatRange(from=0.0f, to=1.0f) float, @FloatRange(from=0.0f, to=1.0f) float);
+  }
+
+  public class WindowInsetsCompat {
+    ctor public WindowInsetsCompat(androidx.core.view.WindowInsetsCompat?);
+    method @Deprecated public androidx.core.view.WindowInsetsCompat consumeDisplayCutout();
+    method @Deprecated public androidx.core.view.WindowInsetsCompat consumeStableInsets();
+    method @Deprecated public androidx.core.view.WindowInsetsCompat consumeSystemWindowInsets();
+    method public androidx.core.view.DisplayCutoutCompat? getDisplayCutout();
+    method public androidx.core.graphics.Insets getInsets(@androidx.core.view.WindowInsetsCompat.Type.InsetsType int);
+    method public androidx.core.graphics.Insets getInsetsIgnoringVisibility(@androidx.core.view.WindowInsetsCompat.Type.InsetsType int);
+    method @Deprecated public androidx.core.graphics.Insets getMandatorySystemGestureInsets();
+    method @Deprecated public int getStableInsetBottom();
+    method @Deprecated public int getStableInsetLeft();
+    method @Deprecated public int getStableInsetRight();
+    method @Deprecated public int getStableInsetTop();
+    method @Deprecated public androidx.core.graphics.Insets getStableInsets();
+    method @Deprecated public androidx.core.graphics.Insets getSystemGestureInsets();
+    method @Deprecated public int getSystemWindowInsetBottom();
+    method @Deprecated public int getSystemWindowInsetLeft();
+    method @Deprecated public int getSystemWindowInsetRight();
+    method @Deprecated public int getSystemWindowInsetTop();
+    method @Deprecated public androidx.core.graphics.Insets getSystemWindowInsets();
+    method @Deprecated public androidx.core.graphics.Insets getTappableElementInsets();
+    method public boolean hasInsets();
+    method @Deprecated public boolean hasStableInsets();
+    method @Deprecated public boolean hasSystemWindowInsets();
+    method public androidx.core.view.WindowInsetsCompat inset(androidx.core.graphics.Insets);
+    method public androidx.core.view.WindowInsetsCompat inset(@IntRange(from=0) int, @IntRange(from=0) int, @IntRange(from=0) int, @IntRange(from=0) int);
+    method public boolean isConsumed();
+    method public boolean isRound();
+    method public boolean isVisible(@androidx.core.view.WindowInsetsCompat.Type.InsetsType int);
+    method @Deprecated public androidx.core.view.WindowInsetsCompat replaceSystemWindowInsets(android.graphics.Rect);
+    method @Deprecated public androidx.core.view.WindowInsetsCompat replaceSystemWindowInsets(int, int, int, int);
+    method @RequiresApi(20) public android.view.WindowInsets? toWindowInsets();
+    method @RequiresApi(20) public static androidx.core.view.WindowInsetsCompat toWindowInsetsCompat(android.view.WindowInsets);
+    method @RequiresApi(20) public static androidx.core.view.WindowInsetsCompat toWindowInsetsCompat(android.view.WindowInsets, android.view.View?);
+    field public static final androidx.core.view.WindowInsetsCompat CONSUMED;
+  }
+
+  public static final class WindowInsetsCompat.Builder {
+    ctor public WindowInsetsCompat.Builder();
+    ctor public WindowInsetsCompat.Builder(androidx.core.view.WindowInsetsCompat);
+    method public androidx.core.view.WindowInsetsCompat build();
+    method public androidx.core.view.WindowInsetsCompat.Builder setDisplayCutout(androidx.core.view.DisplayCutoutCompat?);
+    method public androidx.core.view.WindowInsetsCompat.Builder setInsets(@androidx.core.view.WindowInsetsCompat.Type.InsetsType int, androidx.core.graphics.Insets);
+    method public androidx.core.view.WindowInsetsCompat.Builder setInsetsIgnoringVisibility(@androidx.core.view.WindowInsetsCompat.Type.InsetsType int, androidx.core.graphics.Insets);
+    method @Deprecated public androidx.core.view.WindowInsetsCompat.Builder setMandatorySystemGestureInsets(androidx.core.graphics.Insets);
+    method @Deprecated public androidx.core.view.WindowInsetsCompat.Builder setStableInsets(androidx.core.graphics.Insets);
+    method @Deprecated public androidx.core.view.WindowInsetsCompat.Builder setSystemGestureInsets(androidx.core.graphics.Insets);
+    method @Deprecated public androidx.core.view.WindowInsetsCompat.Builder setSystemWindowInsets(androidx.core.graphics.Insets);
+    method @Deprecated public androidx.core.view.WindowInsetsCompat.Builder setTappableElementInsets(androidx.core.graphics.Insets);
+    method public androidx.core.view.WindowInsetsCompat.Builder setVisible(@androidx.core.view.WindowInsetsCompat.Type.InsetsType int, boolean);
+  }
+
+  public static final class WindowInsetsCompat.Type {
+    method @androidx.core.view.WindowInsetsCompat.Type.InsetsType public static int captionBar();
+    method @androidx.core.view.WindowInsetsCompat.Type.InsetsType public static int displayCutout();
+    method @androidx.core.view.WindowInsetsCompat.Type.InsetsType public static int ime();
+    method @androidx.core.view.WindowInsetsCompat.Type.InsetsType public static int mandatorySystemGestures();
+    method @androidx.core.view.WindowInsetsCompat.Type.InsetsType public static int navigationBars();
+    method @androidx.core.view.WindowInsetsCompat.Type.InsetsType public static int statusBars();
+    method @androidx.core.view.WindowInsetsCompat.Type.InsetsType public static int systemBars();
+    method @androidx.core.view.WindowInsetsCompat.Type.InsetsType public static int systemGestures();
+    method @androidx.core.view.WindowInsetsCompat.Type.InsetsType public static int tappableElement();
+  }
+
+  @IntDef(flag=true, value={0x1, 0x2, 0x4, 0x8, 0x100, 0x10, 0x20, 0x40, 0x80}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface WindowInsetsCompat.Type.InsetsType {
+  }
+
+  public final class WindowInsetsControllerCompat {
+    ctor public WindowInsetsControllerCompat(android.view.Window, android.view.View);
+    method public void addOnControllableInsetsChangedListener(androidx.core.view.WindowInsetsControllerCompat.OnControllableInsetsChangedListener);
+    method public void controlWindowInsetsAnimation(@androidx.core.view.WindowInsetsCompat.Type.InsetsType int, long, android.view.animation.Interpolator?, android.os.CancellationSignal?, androidx.core.view.WindowInsetsAnimationControlListenerCompat);
+    method public int getSystemBarsBehavior();
+    method public void hide(@androidx.core.view.WindowInsetsCompat.Type.InsetsType int);
+    method public boolean isAppearanceLightNavigationBars();
+    method public boolean isAppearanceLightStatusBars();
+    method public void removeOnControllableInsetsChangedListener(androidx.core.view.WindowInsetsControllerCompat.OnControllableInsetsChangedListener);
+    method public void setAppearanceLightNavigationBars(boolean);
+    method public void setAppearanceLightStatusBars(boolean);
+    method public void setSystemBarsBehavior(int);
+    method public void show(@androidx.core.view.WindowInsetsCompat.Type.InsetsType int);
+    method @Deprecated @RequiresApi(30) public static androidx.core.view.WindowInsetsControllerCompat toWindowInsetsControllerCompat(android.view.WindowInsetsController);
+    field public static final int BEHAVIOR_DEFAULT = 1; // 0x1
+    field @Deprecated public static final int BEHAVIOR_SHOW_BARS_BY_SWIPE = 1; // 0x1
+    field @Deprecated public static final int BEHAVIOR_SHOW_BARS_BY_TOUCH = 0; // 0x0
+    field public static final int BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE = 2; // 0x2
+  }
+
+  public static interface WindowInsetsControllerCompat.OnControllableInsetsChangedListener {
+    method public void onControllableInsetsChanged(androidx.core.view.WindowInsetsControllerCompat, @androidx.core.view.WindowInsetsCompat.Type.InsetsType int);
+  }
+
+}
+
+package androidx.core.view.accessibility {
+
+  public final class AccessibilityClickableSpanCompat extends android.text.style.ClickableSpan {
+    ctor @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public AccessibilityClickableSpanCompat(int, androidx.core.view.accessibility.AccessibilityNodeInfoCompat, int);
+    method public void onClick(android.view.View);
+    field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static final String SPAN_ID = "ACCESSIBILITY_CLICKABLE_SPAN_ID";
+  }
+
+  public final class AccessibilityEventCompat {
+    method @Deprecated public static void appendRecord(android.view.accessibility.AccessibilityEvent!, androidx.core.view.accessibility.AccessibilityRecordCompat!);
+    method @Deprecated public static androidx.core.view.accessibility.AccessibilityRecordCompat! asRecord(android.view.accessibility.AccessibilityEvent!);
+    method public static int getAction(android.view.accessibility.AccessibilityEvent);
+    method @androidx.core.view.accessibility.AccessibilityEventCompat.ContentChangeType public static int getContentChangeTypes(android.view.accessibility.AccessibilityEvent);
+    method public static int getMovementGranularity(android.view.accessibility.AccessibilityEvent);
+    method @Deprecated public static androidx.core.view.accessibility.AccessibilityRecordCompat! getRecord(android.view.accessibility.AccessibilityEvent!, int);
+    method @Deprecated public static int getRecordCount(android.view.accessibility.AccessibilityEvent!);
+    method public static void setAction(android.view.accessibility.AccessibilityEvent, int);
+    method public static void setContentChangeTypes(android.view.accessibility.AccessibilityEvent, @androidx.core.view.accessibility.AccessibilityEventCompat.ContentChangeType int);
+    method public static void setMovementGranularity(android.view.accessibility.AccessibilityEvent, int);
+    field public static final int CONTENT_CHANGE_TYPE_CONTENT_DESCRIPTION = 4; // 0x4
+    field public static final int CONTENT_CHANGE_TYPE_DRAG_CANCELLED = 512; // 0x200
+    field public static final int CONTENT_CHANGE_TYPE_DRAG_DROPPED = 256; // 0x100
+    field public static final int CONTENT_CHANGE_TYPE_DRAG_STARTED = 128; // 0x80
+    field public static final int CONTENT_CHANGE_TYPE_PANE_APPEARED = 16; // 0x10
+    field public static final int CONTENT_CHANGE_TYPE_PANE_DISAPPEARED = 32; // 0x20
+    field public static final int CONTENT_CHANGE_TYPE_PANE_TITLE = 8; // 0x8
+    field public static final int CONTENT_CHANGE_TYPE_STATE_DESCRIPTION = 64; // 0x40
+    field public static final int CONTENT_CHANGE_TYPE_SUBTREE = 1; // 0x1
+    field public static final int CONTENT_CHANGE_TYPE_TEXT = 2; // 0x2
+    field public static final int CONTENT_CHANGE_TYPE_UNDEFINED = 0; // 0x0
+    field public static final int TYPES_ALL_MASK = -1; // 0xffffffff
+    field public static final int TYPE_ANNOUNCEMENT = 16384; // 0x4000
+    field public static final int TYPE_ASSIST_READING_CONTEXT = 16777216; // 0x1000000
+    field public static final int TYPE_GESTURE_DETECTION_END = 524288; // 0x80000
+    field public static final int TYPE_GESTURE_DETECTION_START = 262144; // 0x40000
+    field @Deprecated public static final int TYPE_TOUCH_EXPLORATION_GESTURE_END = 1024; // 0x400
+    field @Deprecated public static final int TYPE_TOUCH_EXPLORATION_GESTURE_START = 512; // 0x200
+    field public static final int TYPE_TOUCH_INTERACTION_END = 2097152; // 0x200000
+    field public static final int TYPE_TOUCH_INTERACTION_START = 1048576; // 0x100000
+    field public static final int TYPE_VIEW_ACCESSIBILITY_FOCUSED = 32768; // 0x8000
+    field public static final int TYPE_VIEW_ACCESSIBILITY_FOCUS_CLEARED = 65536; // 0x10000
+    field public static final int TYPE_VIEW_CONTEXT_CLICKED = 8388608; // 0x800000
+    field @Deprecated public static final int TYPE_VIEW_HOVER_ENTER = 128; // 0x80
+    field @Deprecated public static final int TYPE_VIEW_HOVER_EXIT = 256; // 0x100
+    field @Deprecated public static final int TYPE_VIEW_SCROLLED = 4096; // 0x1000
+    field @Deprecated public static final int TYPE_VIEW_TEXT_SELECTION_CHANGED = 8192; // 0x2000
+    field public static final int TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY = 131072; // 0x20000
+    field public static final int TYPE_WINDOWS_CHANGED = 4194304; // 0x400000
+    field @Deprecated public static final int TYPE_WINDOW_CONTENT_CHANGED = 2048; // 0x800
+  }
+
+  @IntDef(flag=true, value={androidx.core.view.accessibility.AccessibilityEventCompat.CONTENT_CHANGE_TYPE_CONTENT_DESCRIPTION, androidx.core.view.accessibility.AccessibilityEventCompat.CONTENT_CHANGE_TYPE_STATE_DESCRIPTION, androidx.core.view.accessibility.AccessibilityEventCompat.CONTENT_CHANGE_TYPE_SUBTREE, androidx.core.view.accessibility.AccessibilityEventCompat.CONTENT_CHANGE_TYPE_TEXT, androidx.core.view.accessibility.AccessibilityEventCompat.CONTENT_CHANGE_TYPE_UNDEFINED, androidx.core.view.accessibility.AccessibilityEventCompat.CONTENT_CHANGE_TYPE_DRAG_STARTED, androidx.core.view.accessibility.AccessibilityEventCompat.CONTENT_CHANGE_TYPE_DRAG_DROPPED, androidx.core.view.accessibility.AccessibilityEventCompat.CONTENT_CHANGE_TYPE_DRAG_CANCELLED}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface AccessibilityEventCompat.ContentChangeType {
+  }
+
+  public final class AccessibilityManagerCompat {
+    method @Deprecated public static boolean addAccessibilityStateChangeListener(android.view.accessibility.AccessibilityManager!, androidx.core.view.accessibility.AccessibilityManagerCompat.AccessibilityStateChangeListener!);
+    method public static boolean addTouchExplorationStateChangeListener(android.view.accessibility.AccessibilityManager, androidx.core.view.accessibility.AccessibilityManagerCompat.TouchExplorationStateChangeListener);
+    method @Deprecated public static java.util.List<android.accessibilityservice.AccessibilityServiceInfo!>! getEnabledAccessibilityServiceList(android.view.accessibility.AccessibilityManager!, int);
+    method @Deprecated public static java.util.List<android.accessibilityservice.AccessibilityServiceInfo!>! getInstalledAccessibilityServiceList(android.view.accessibility.AccessibilityManager!);
+    method @Deprecated public static boolean isTouchExplorationEnabled(android.view.accessibility.AccessibilityManager!);
+    method @Deprecated public static boolean removeAccessibilityStateChangeListener(android.view.accessibility.AccessibilityManager!, androidx.core.view.accessibility.AccessibilityManagerCompat.AccessibilityStateChangeListener!);
+    method public static boolean removeTouchExplorationStateChangeListener(android.view.accessibility.AccessibilityManager, androidx.core.view.accessibility.AccessibilityManagerCompat.TouchExplorationStateChangeListener);
+  }
+
+  @Deprecated public static interface AccessibilityManagerCompat.AccessibilityStateChangeListener {
+    method @Deprecated public void onAccessibilityStateChanged(boolean);
+  }
+
+  @Deprecated public abstract static class AccessibilityManagerCompat.AccessibilityStateChangeListenerCompat implements androidx.core.view.accessibility.AccessibilityManagerCompat.AccessibilityStateChangeListener {
+    ctor @Deprecated public AccessibilityManagerCompat.AccessibilityStateChangeListenerCompat();
+  }
+
+  public static interface AccessibilityManagerCompat.TouchExplorationStateChangeListener {
+    method public void onTouchExplorationStateChanged(boolean);
+  }
+
+  public class AccessibilityNodeInfoCompat {
+    ctor @Deprecated public AccessibilityNodeInfoCompat(Object!);
+    method public void addAction(androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat!);
+    method public void addAction(int);
+    method public void addChild(android.view.View!);
+    method public void addChild(android.view.View!, int);
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public void addSpansToExtras(CharSequence!, android.view.View!);
+    method public boolean canOpenPopup();
+    method public java.util.List<androidx.core.view.accessibility.AccessibilityNodeInfoCompat!>! findAccessibilityNodeInfosByText(String!);
+    method public java.util.List<androidx.core.view.accessibility.AccessibilityNodeInfoCompat!>! findAccessibilityNodeInfosByViewId(String!);
+    method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat! findFocus(int);
+    method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat! focusSearch(int);
+    method public java.util.List<androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat!>! getActionList();
+    method @Deprecated public int getActions();
+    method public java.util.List<java.lang.String!> getAvailableExtraData();
+    method @Deprecated public void getBoundsInParent(android.graphics.Rect!);
+    method public void getBoundsInScreen(android.graphics.Rect!);
+    method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat! getChild(int);
+    method public int getChildCount();
+    method public CharSequence! getClassName();
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static android.text.style.ClickableSpan![]! getClickableSpans(CharSequence!);
+    method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat.CollectionInfoCompat! getCollectionInfo();
+    method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat.CollectionItemInfoCompat! getCollectionItemInfo();
+    method public CharSequence! getContentDescription();
+    method public int getDrawingOrder();
+    method public CharSequence! getError();
+    method public android.view.accessibility.AccessibilityNodeInfo.ExtraRenderingInfo? getExtraRenderingInfo();
+    method public android.os.Bundle! getExtras();
+    method public CharSequence? getHintText();
+    method @Deprecated public Object! getInfo();
+    method public int getInputType();
+    method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat! getLabelFor();
+    method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat! getLabeledBy();
+    method public int getLiveRegion();
+    method public int getMaxTextLength();
+    method public long getMinDurationBetweenContentChangesMillis();
+    method public int getMovementGranularities();
+    method public CharSequence! getPackageName();
+    method public CharSequence? getPaneTitle();
+    method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat! getParent();
+    method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat.RangeInfoCompat! getRangeInfo();
+    method public CharSequence? getRoleDescription();
+    method public CharSequence? getStateDescription();
+    method public CharSequence! getText();
+    method public int getTextSelectionEnd();
+    method public int getTextSelectionStart();
+    method public CharSequence? getTooltipText();
+    method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat.TouchDelegateInfoCompat? getTouchDelegateInfo();
+    method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat! getTraversalAfter();
+    method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat! getTraversalBefore();
+    method public String? getUniqueId();
+    method public String! getViewIdResourceName();
+    method public androidx.core.view.accessibility.AccessibilityWindowInfoCompat! getWindow();
+    method public int getWindowId();
+    method public boolean hasRequestInitialAccessibilityFocus();
+    method public boolean isAccessibilityFocused();
+    method public boolean isCheckable();
+    method public boolean isChecked();
+    method public boolean isClickable();
+    method public boolean isContentInvalid();
+    method public boolean isContextClickable();
+    method public boolean isDismissable();
+    method public boolean isEditable();
+    method public boolean isEnabled();
+    method public boolean isFocusable();
+    method public boolean isFocused();
+    method public boolean isHeading();
+    method public boolean isImportantForAccessibility();
+    method public boolean isLongClickable();
+    method public boolean isMultiLine();
+    method public boolean isPassword();
+    method public boolean isScreenReaderFocusable();
+    method public boolean isScrollable();
+    method public boolean isSelected();
+    method public boolean isShowingHintText();
+    method public boolean isTextEntryKey();
+    method public boolean isTextSelectable();
+    method public boolean isVisibleToUser();
+    method public static androidx.core.view.accessibility.AccessibilityNodeInfoCompat! obtain();
+    method public static androidx.core.view.accessibility.AccessibilityNodeInfoCompat! obtain(android.view.View!);
+    method public static androidx.core.view.accessibility.AccessibilityNodeInfoCompat! obtain(android.view.View!, int);
+    method public static androidx.core.view.accessibility.AccessibilityNodeInfoCompat! obtain(androidx.core.view.accessibility.AccessibilityNodeInfoCompat!);
+    method public boolean performAction(int);
+    method public boolean performAction(int, android.os.Bundle!);
+    method @Deprecated public void recycle();
+    method public boolean refresh();
+    method public boolean removeAction(androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat!);
+    method public boolean removeChild(android.view.View!);
+    method public boolean removeChild(android.view.View!, int);
+    method public void setAccessibilityFocused(boolean);
+    method public void setAvailableExtraData(java.util.List<java.lang.String!>);
+    method @Deprecated public void setBoundsInParent(android.graphics.Rect!);
+    method public void setBoundsInScreen(android.graphics.Rect!);
+    method public void setCanOpenPopup(boolean);
+    method public void setCheckable(boolean);
+    method public void setChecked(boolean);
+    method public void setClassName(CharSequence!);
+    method public void setClickable(boolean);
+    method public void setCollectionInfo(Object!);
+    method public void setCollectionItemInfo(Object!);
+    method public void setContentDescription(CharSequence!);
+    method public void setContentInvalid(boolean);
+    method public void setContextClickable(boolean);
+    method public void setDismissable(boolean);
+    method public void setDrawingOrder(int);
+    method public void setEditable(boolean);
+    method public void setEnabled(boolean);
+    method public void setError(CharSequence!);
+    method public void setFocusable(boolean);
+    method public void setFocused(boolean);
+    method public void setHeading(boolean);
+    method public void setHintText(CharSequence?);
+    method public void setImportantForAccessibility(boolean);
+    method public void setInputType(int);
+    method public void setLabelFor(android.view.View!);
+    method public void setLabelFor(android.view.View!, int);
+    method public void setLabeledBy(android.view.View!);
+    method public void setLabeledBy(android.view.View!, int);
+    method public void setLiveRegion(int);
+    method public void setLongClickable(boolean);
+    method public void setMaxTextLength(int);
+    method public void setMinDurationBetweenContentChangesMillis(long);
+    method public void setMovementGranularities(int);
+    method public void setMultiLine(boolean);
+    method public void setPackageName(CharSequence!);
+    method public void setPaneTitle(CharSequence?);
+    method public void setParent(android.view.View!);
+    method public void setParent(android.view.View!, int);
+    method public void setPassword(boolean);
+    method public void setRangeInfo(androidx.core.view.accessibility.AccessibilityNodeInfoCompat.RangeInfoCompat!);
+    method public void setRequestInitialAccessibilityFocus(boolean);
+    method public void setRoleDescription(CharSequence?);
+    method public void setScreenReaderFocusable(boolean);
+    method public void setScrollable(boolean);
+    method public void setSelected(boolean);
+    method public void setShowingHintText(boolean);
+    method public void setSource(android.view.View!);
+    method public void setSource(android.view.View!, int);
+    method public void setStateDescription(CharSequence?);
+    method public void setText(CharSequence!);
+    method public void setTextEntryKey(boolean);
+    method public void setTextSelectable(boolean);
+    method public void setTextSelection(int, int);
+    method public void setTooltipText(CharSequence?);
+    method public void setTouchDelegateInfo(androidx.core.view.accessibility.AccessibilityNodeInfoCompat.TouchDelegateInfoCompat);
+    method public void setTraversalAfter(android.view.View!);
+    method public void setTraversalAfter(android.view.View!, int);
+    method public void setTraversalBefore(android.view.View!);
+    method public void setTraversalBefore(android.view.View!, int);
+    method public void setUniqueId(String?);
+    method public void setViewIdResourceName(String!);
+    method public void setVisibleToUser(boolean);
+    method public android.view.accessibility.AccessibilityNodeInfo! unwrap();
+    method public static androidx.core.view.accessibility.AccessibilityNodeInfoCompat! wrap(android.view.accessibility.AccessibilityNodeInfo);
+    field public static final int ACTION_ACCESSIBILITY_FOCUS = 64; // 0x40
+    field public static final String ACTION_ARGUMENT_COLUMN_INT = "android.view.accessibility.action.ARGUMENT_COLUMN_INT";
+    field public static final String ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN = "ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN";
+    field public static final String ACTION_ARGUMENT_HTML_ELEMENT_STRING = "ACTION_ARGUMENT_HTML_ELEMENT_STRING";
+    field public static final String ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT = "ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT";
+    field public static final String ACTION_ARGUMENT_MOVE_WINDOW_X = "ACTION_ARGUMENT_MOVE_WINDOW_X";
+    field public static final String ACTION_ARGUMENT_MOVE_WINDOW_Y = "ACTION_ARGUMENT_MOVE_WINDOW_Y";
+    field public static final String ACTION_ARGUMENT_PRESS_AND_HOLD_DURATION_MILLIS_INT = "android.view.accessibility.action.ARGUMENT_PRESS_AND_HOLD_DURATION_MILLIS_INT";
+    field public static final String ACTION_ARGUMENT_PROGRESS_VALUE = "android.view.accessibility.action.ARGUMENT_PROGRESS_VALUE";
+    field public static final String ACTION_ARGUMENT_ROW_INT = "android.view.accessibility.action.ARGUMENT_ROW_INT";
+    field public static final String ACTION_ARGUMENT_SELECTION_END_INT = "ACTION_ARGUMENT_SELECTION_END_INT";
+    field public static final String ACTION_ARGUMENT_SELECTION_START_INT = "ACTION_ARGUMENT_SELECTION_START_INT";
+    field public static final String ACTION_ARGUMENT_SET_TEXT_CHARSEQUENCE = "ACTION_ARGUMENT_SET_TEXT_CHARSEQUENCE";
+    field public static final int ACTION_CLEAR_ACCESSIBILITY_FOCUS = 128; // 0x80
+    field public static final int ACTION_CLEAR_FOCUS = 2; // 0x2
+    field public static final int ACTION_CLEAR_SELECTION = 8; // 0x8
+    field public static final int ACTION_CLICK = 16; // 0x10
+    field public static final int ACTION_COLLAPSE = 524288; // 0x80000
+    field public static final int ACTION_COPY = 16384; // 0x4000
+    field public static final int ACTION_CUT = 65536; // 0x10000
+    field public static final int ACTION_DISMISS = 1048576; // 0x100000
+    field public static final int ACTION_EXPAND = 262144; // 0x40000
+    field public static final int ACTION_FOCUS = 1; // 0x1
+    field public static final int ACTION_LONG_CLICK = 32; // 0x20
+    field public static final int ACTION_NEXT_AT_MOVEMENT_GRANULARITY = 256; // 0x100
+    field public static final int ACTION_NEXT_HTML_ELEMENT = 1024; // 0x400
+    field public static final int ACTION_PASTE = 32768; // 0x8000
+    field public static final int ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY = 512; // 0x200
+    field public static final int ACTION_PREVIOUS_HTML_ELEMENT = 2048; // 0x800
+    field public static final int ACTION_SCROLL_BACKWARD = 8192; // 0x2000
+    field public static final int ACTION_SCROLL_FORWARD = 4096; // 0x1000
+    field public static final int ACTION_SELECT = 4; // 0x4
+    field public static final int ACTION_SET_SELECTION = 131072; // 0x20000
+    field public static final int ACTION_SET_TEXT = 2097152; // 0x200000
+    field public static final String EXTRA_DATA_TEXT_CHARACTER_LOCATION_ARG_LENGTH = "android.core.view.accessibility.extra.DATA_TEXT_CHARACTER_LOCATION_ARG_LENGTH";
+    field public static final int EXTRA_DATA_TEXT_CHARACTER_LOCATION_ARG_MAX_LENGTH = 20000; // 0x4e20
+    field public static final String EXTRA_DATA_TEXT_CHARACTER_LOCATION_ARG_START_INDEX = "android.core.view.accessibility.extra.DATA_TEXT_CHARACTER_LOCATION_ARG_START_INDEX";
+    field public static final String EXTRA_DATA_TEXT_CHARACTER_LOCATION_KEY = "android.core.view.accessibility.extra.DATA_TEXT_CHARACTER_LOCATION_KEY";
+    field public static final int FOCUS_ACCESSIBILITY = 2; // 0x2
+    field public static final int FOCUS_INPUT = 1; // 0x1
+    field public static final int MOVEMENT_GRANULARITY_CHARACTER = 1; // 0x1
+    field public static final int MOVEMENT_GRANULARITY_LINE = 4; // 0x4
+    field public static final int MOVEMENT_GRANULARITY_PAGE = 16; // 0x10
+    field public static final int MOVEMENT_GRANULARITY_PARAGRAPH = 8; // 0x8
+    field public static final int MOVEMENT_GRANULARITY_WORD = 2; // 0x2
+    field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public int mParentVirtualDescendantId;
+  }
+
+  public static class AccessibilityNodeInfoCompat.AccessibilityActionCompat {
+    ctor public AccessibilityNodeInfoCompat.AccessibilityActionCompat(int, CharSequence!);
+    ctor @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public AccessibilityNodeInfoCompat.AccessibilityActionCompat(int, CharSequence!, androidx.core.view.accessibility.AccessibilityViewCommand!);
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! createReplacementAction(CharSequence!, androidx.core.view.accessibility.AccessibilityViewCommand!);
+    method public int getId();
+    method public CharSequence! getLabel();
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public boolean perform(android.view.View!, android.os.Bundle!);
+    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_ACCESSIBILITY_FOCUS;
+    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_CLEAR_ACCESSIBILITY_FOCUS;
+    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_CLEAR_FOCUS;
+    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_CLEAR_SELECTION;
+    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_CLICK;
+    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_COLLAPSE;
+    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_CONTEXT_CLICK;
+    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_COPY;
+    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_CUT;
+    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_DISMISS;
+    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat ACTION_DRAG_CANCEL;
+    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat ACTION_DRAG_DROP;
+    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat ACTION_DRAG_START;
+    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_EXPAND;
+    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_FOCUS;
+    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_HIDE_TOOLTIP;
+    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat ACTION_IME_ENTER;
+    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_LONG_CLICK;
+    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_MOVE_WINDOW;
+    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_NEXT_AT_MOVEMENT_GRANULARITY;
+    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_NEXT_HTML_ELEMENT;
+    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat ACTION_PAGE_DOWN;
+    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat ACTION_PAGE_LEFT;
+    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat ACTION_PAGE_RIGHT;
+    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat ACTION_PAGE_UP;
+    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_PASTE;
+    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat ACTION_PRESS_AND_HOLD;
+    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY;
+    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_PREVIOUS_HTML_ELEMENT;
+    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_SCROLL_BACKWARD;
+    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_SCROLL_DOWN;
+    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_SCROLL_FORWARD;
+    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_SCROLL_LEFT;
+    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_SCROLL_RIGHT;
+    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_SCROLL_TO_POSITION;
+    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_SCROLL_UP;
+    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_SELECT;
+    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_SET_PROGRESS;
+    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_SET_SELECTION;
+    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_SET_TEXT;
+    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_SHOW_ON_SCREEN;
+    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat ACTION_SHOW_TEXT_SUGGESTIONS;
+    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_SHOW_TOOLTIP;
+    field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) protected final androidx.core.view.accessibility.AccessibilityViewCommand! mCommand;
+  }
+
+  public static class AccessibilityNodeInfoCompat.CollectionInfoCompat {
+    method public int getColumnCount();
+    method public int getRowCount();
+    method public int getSelectionMode();
+    method public boolean isHierarchical();
+    method public static androidx.core.view.accessibility.AccessibilityNodeInfoCompat.CollectionInfoCompat! obtain(int, int, boolean);
+    method public static androidx.core.view.accessibility.AccessibilityNodeInfoCompat.CollectionInfoCompat! obtain(int, int, boolean, int);
+    field public static final int SELECTION_MODE_MULTIPLE = 2; // 0x2
+    field public static final int SELECTION_MODE_NONE = 0; // 0x0
+    field public static final int SELECTION_MODE_SINGLE = 1; // 0x1
+  }
+
+  public static class AccessibilityNodeInfoCompat.CollectionItemInfoCompat {
+    method public int getColumnIndex();
+    method public int getColumnSpan();
+    method public int getRowIndex();
+    method public int getRowSpan();
+    method @Deprecated public boolean isHeading();
+    method public boolean isSelected();
+    method public static androidx.core.view.accessibility.AccessibilityNodeInfoCompat.CollectionItemInfoCompat! obtain(int, int, int, int, boolean);
+    method public static androidx.core.view.accessibility.AccessibilityNodeInfoCompat.CollectionItemInfoCompat! obtain(int, int, int, int, boolean, boolean);
+  }
+
+  public static class AccessibilityNodeInfoCompat.RangeInfoCompat {
+    method public float getCurrent();
+    method public float getMax();
+    method public float getMin();
+    method public int getType();
+    method public static androidx.core.view.accessibility.AccessibilityNodeInfoCompat.RangeInfoCompat! obtain(int, float, float, float);
+    field public static final int RANGE_TYPE_FLOAT = 1; // 0x1
+    field public static final int RANGE_TYPE_INT = 0; // 0x0
+    field public static final int RANGE_TYPE_PERCENT = 2; // 0x2
+  }
+
+  public static final class AccessibilityNodeInfoCompat.TouchDelegateInfoCompat {
+    ctor public AccessibilityNodeInfoCompat.TouchDelegateInfoCompat(java.util.Map<android.graphics.Region!,android.view.View!>);
+    method public android.graphics.Region? getRegionAt(@IntRange(from=0) int);
+    method @IntRange(from=0) public int getRegionCount();
+    method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat? getTargetForRegion(android.graphics.Region);
+  }
+
+  public class AccessibilityNodeProviderCompat {
+    ctor public AccessibilityNodeProviderCompat();
+    ctor public AccessibilityNodeProviderCompat(Object?);
+    method public void addExtraDataToAccessibilityNodeInfo(int, androidx.core.view.accessibility.AccessibilityNodeInfoCompat, String, android.os.Bundle?);
+    method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat? createAccessibilityNodeInfo(int);
+    method public java.util.List<androidx.core.view.accessibility.AccessibilityNodeInfoCompat!>? findAccessibilityNodeInfosByText(String, int);
+    method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat? findFocus(int);
+    method public Object? getProvider();
+    method public boolean performAction(int, int, android.os.Bundle?);
+    field public static final int HOST_VIEW_ID = -1; // 0xffffffff
+  }
+
+  public class AccessibilityRecordCompat {
+    ctor @Deprecated public AccessibilityRecordCompat(Object!);
+    method @Deprecated public boolean equals(Object?);
+    method @Deprecated public int getAddedCount();
+    method @Deprecated public CharSequence! getBeforeText();
+    method @Deprecated public CharSequence! getClassName();
+    method @Deprecated public CharSequence! getContentDescription();
+    method @Deprecated public int getCurrentItemIndex();
+    method @Deprecated public int getFromIndex();
+    method @Deprecated public Object! getImpl();
+    method @Deprecated public int getItemCount();
+    method @Deprecated public int getMaxScrollX();
+    method public static int getMaxScrollX(android.view.accessibility.AccessibilityRecord);
+    method @Deprecated public int getMaxScrollY();
+    method public static int getMaxScrollY(android.view.accessibility.AccessibilityRecord);
+    method @Deprecated public android.os.Parcelable! getParcelableData();
+    method @Deprecated public int getRemovedCount();
+    method @Deprecated public int getScrollX();
+    method @Deprecated public int getScrollY();
+    method @Deprecated public androidx.core.view.accessibility.AccessibilityNodeInfoCompat! getSource();
+    method @Deprecated public java.util.List<java.lang.CharSequence!>! getText();
+    method @Deprecated public int getToIndex();
+    method @Deprecated public int getWindowId();
+    method @Deprecated public int hashCode();
+    method @Deprecated public boolean isChecked();
+    method @Deprecated public boolean isEnabled();
+    method @Deprecated public boolean isFullScreen();
+    method @Deprecated public boolean isPassword();
+    method @Deprecated public boolean isScrollable();
+    method @Deprecated public static androidx.core.view.accessibility.AccessibilityRecordCompat! obtain();
+    method @Deprecated public static androidx.core.view.accessibility.AccessibilityRecordCompat! obtain(androidx.core.view.accessibility.AccessibilityRecordCompat!);
+    method @Deprecated public void recycle();
+    method @Deprecated public void setAddedCount(int);
+    method @Deprecated public void setBeforeText(CharSequence!);
+    method @Deprecated public void setChecked(boolean);
+    method @Deprecated public void setClassName(CharSequence!);
+    method @Deprecated public void setContentDescription(CharSequence!);
+    method @Deprecated public void setCurrentItemIndex(int);
+    method @Deprecated public void setEnabled(boolean);
+    method @Deprecated public void setFromIndex(int);
+    method @Deprecated public void setFullScreen(boolean);
+    method @Deprecated public void setItemCount(int);
+    method public static void setMaxScrollX(android.view.accessibility.AccessibilityRecord, int);
+    method @Deprecated public void setMaxScrollX(int);
+    method public static void setMaxScrollY(android.view.accessibility.AccessibilityRecord, int);
+    method @Deprecated public void setMaxScrollY(int);
+    method @Deprecated public void setParcelableData(android.os.Parcelable!);
+    method @Deprecated public void setPassword(boolean);
+    method @Deprecated public void setRemovedCount(int);
+    method @Deprecated public void setScrollX(int);
+    method @Deprecated public void setScrollY(int);
+    method @Deprecated public void setScrollable(boolean);
+    method public static void setSource(android.view.accessibility.AccessibilityRecord, android.view.View?, int);
+    method @Deprecated public void setSource(android.view.View!);
+    method @Deprecated public void setSource(android.view.View!, int);
+    method @Deprecated public void setToIndex(int);
+  }
+
+  public interface AccessibilityViewCommand {
+    method public boolean perform(android.view.View, androidx.core.view.accessibility.AccessibilityViewCommand.CommandArguments?);
+  }
+
+  public abstract static class AccessibilityViewCommand.CommandArguments {
+    ctor public AccessibilityViewCommand.CommandArguments();
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public void setBundle(android.os.Bundle?);
+  }
+
+  public static final class AccessibilityViewCommand.MoveAtGranularityArguments extends androidx.core.view.accessibility.AccessibilityViewCommand.CommandArguments {
+    ctor public AccessibilityViewCommand.MoveAtGranularityArguments();
+    method public boolean getExtendSelection();
+    method public int getGranularity();
+  }
+
+  public static final class AccessibilityViewCommand.MoveHtmlArguments extends androidx.core.view.accessibility.AccessibilityViewCommand.CommandArguments {
+    ctor public AccessibilityViewCommand.MoveHtmlArguments();
+    method public String? getHTMLElement();
+  }
+
+  public static final class AccessibilityViewCommand.MoveWindowArguments extends androidx.core.view.accessibility.AccessibilityViewCommand.CommandArguments {
+    ctor public AccessibilityViewCommand.MoveWindowArguments();
+    method public int getX();
+    method public int getY();
+  }
+
+  public static final class AccessibilityViewCommand.ScrollToPositionArguments extends androidx.core.view.accessibility.AccessibilityViewCommand.CommandArguments {
+    ctor public AccessibilityViewCommand.ScrollToPositionArguments();
+    method public int getColumn();
+    method public int getRow();
+  }
+
+  public static final class AccessibilityViewCommand.SetProgressArguments extends androidx.core.view.accessibility.AccessibilityViewCommand.CommandArguments {
+    ctor public AccessibilityViewCommand.SetProgressArguments();
+    method public float getProgress();
+  }
+
+  public static final class AccessibilityViewCommand.SetSelectionArguments extends androidx.core.view.accessibility.AccessibilityViewCommand.CommandArguments {
+    ctor public AccessibilityViewCommand.SetSelectionArguments();
+    method public int getEnd();
+    method public int getStart();
+  }
+
+  public static final class AccessibilityViewCommand.SetTextArguments extends androidx.core.view.accessibility.AccessibilityViewCommand.CommandArguments {
+    ctor public AccessibilityViewCommand.SetTextArguments();
+    method public CharSequence? getText();
+  }
+
+  public class AccessibilityWindowInfoCompat {
+    method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat? getAnchor();
+    method public void getBoundsInScreen(android.graphics.Rect);
+    method public androidx.core.view.accessibility.AccessibilityWindowInfoCompat? getChild(int);
+    method public int getChildCount();
+    method public int getDisplayId();
+    method public int getId();
+    method public int getLayer();
+    method public androidx.core.view.accessibility.AccessibilityWindowInfoCompat? getParent();
+    method public void getRegionInScreen(android.graphics.Region);
+    method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat? getRoot();
+    method public CharSequence? getTitle();
+    method public int getType();
+    method public boolean isAccessibilityFocused();
+    method public boolean isActive();
+    method public boolean isFocused();
+    method public boolean isInPictureInPictureMode();
+    method public static androidx.core.view.accessibility.AccessibilityWindowInfoCompat? obtain();
+    method public static androidx.core.view.accessibility.AccessibilityWindowInfoCompat? obtain(androidx.core.view.accessibility.AccessibilityWindowInfoCompat?);
+    method @Deprecated public void recycle();
+    method public android.view.accessibility.AccessibilityWindowInfo? unwrap();
+    field public static final int TYPE_ACCESSIBILITY_OVERLAY = 4; // 0x4
+    field public static final int TYPE_APPLICATION = 1; // 0x1
+    field public static final int TYPE_INPUT_METHOD = 2; // 0x2
+    field public static final int TYPE_SPLIT_SCREEN_DIVIDER = 5; // 0x5
+    field public static final int TYPE_SYSTEM = 3; // 0x3
+  }
+
+}
+
+package androidx.core.view.animation {
+
+  public final class PathInterpolatorCompat {
+    method public static android.view.animation.Interpolator create(android.graphics.Path);
+    method public static android.view.animation.Interpolator create(float, float);
+    method public static android.view.animation.Interpolator create(float, float, float, float);
+  }
+
+}
+
+package androidx.core.view.autofill {
+
+  public class AutofillIdCompat {
+    method @RequiresApi(26) public android.view.autofill.AutofillId toAutofillId();
+    method @RequiresApi(26) public static androidx.core.view.autofill.AutofillIdCompat toAutofillIdCompat(android.view.autofill.AutofillId);
+  }
+
+}
+
+package androidx.core.view.contentcapture {
+
+  public class ContentCaptureSessionCompat {
+    method public android.view.autofill.AutofillId? newAutofillId(long);
+    method public androidx.core.view.ViewStructureCompat? newVirtualViewStructure(android.view.autofill.AutofillId, long);
+    method public void notifyViewTextChanged(android.view.autofill.AutofillId, CharSequence?);
+    method public void notifyViewsAppeared(java.util.List<android.view.ViewStructure!>);
+    method public void notifyViewsDisappeared(long[]);
+    method @RequiresApi(29) public android.view.contentcapture.ContentCaptureSession toContentCaptureSession();
+    method @RequiresApi(29) public static androidx.core.view.contentcapture.ContentCaptureSessionCompat toContentCaptureSessionCompat(android.view.contentcapture.ContentCaptureSession, android.view.View);
+  }
+
+}
+
+package androidx.core.view.inputmethod {
+
+  public final class EditorInfoCompat {
+    ctor @Deprecated public EditorInfoCompat();
+    method public static String![] getContentMimeTypes(android.view.inputmethod.EditorInfo);
+    method public static CharSequence? getInitialSelectedText(android.view.inputmethod.EditorInfo, int);
+    method public static CharSequence? getInitialTextAfterCursor(android.view.inputmethod.EditorInfo, int, int);
+    method public static CharSequence? getInitialTextBeforeCursor(android.view.inputmethod.EditorInfo, int, int);
+    method public static void setContentMimeTypes(android.view.inputmethod.EditorInfo, String![]?);
+    method public static void setInitialSurroundingSubText(android.view.inputmethod.EditorInfo, CharSequence, int);
+    method public static void setInitialSurroundingText(android.view.inputmethod.EditorInfo, CharSequence);
+    field public static final int IME_FLAG_FORCE_ASCII = -2147483648; // 0x80000000
+    field public static final int IME_FLAG_NO_PERSONALIZED_LEARNING = 16777216; // 0x1000000
+  }
+
+  public final class InputConnectionCompat {
+    ctor @Deprecated public InputConnectionCompat();
+    method public static boolean commitContent(android.view.inputmethod.InputConnection, android.view.inputmethod.EditorInfo, androidx.core.view.inputmethod.InputContentInfoCompat, int, android.os.Bundle?);
+    method @Deprecated public static android.view.inputmethod.InputConnection createWrapper(android.view.inputmethod.InputConnection, android.view.inputmethod.EditorInfo, androidx.core.view.inputmethod.InputConnectionCompat.OnCommitContentListener);
+    method public static android.view.inputmethod.InputConnection createWrapper(android.view.View, android.view.inputmethod.InputConnection, android.view.inputmethod.EditorInfo);
+    field public static final int INPUT_CONTENT_GRANT_READ_URI_PERMISSION = 1; // 0x1
+  }
+
+  public static interface InputConnectionCompat.OnCommitContentListener {
+    method public boolean onCommitContent(androidx.core.view.inputmethod.InputContentInfoCompat, int, android.os.Bundle?);
+  }
+
+  public final class InputContentInfoCompat {
+    ctor public InputContentInfoCompat(android.net.Uri, android.content.ClipDescription, android.net.Uri?);
+    method public android.net.Uri getContentUri();
+    method public android.content.ClipDescription getDescription();
+    method public android.net.Uri? getLinkUri();
+    method public void releasePermission();
+    method public void requestPermission();
+    method public Object? unwrap();
+    method public static androidx.core.view.inputmethod.InputContentInfoCompat? wrap(Object?);
+  }
+
+}
+
+package androidx.core.widget {
+
+  public abstract class AutoScrollHelper implements android.view.View.OnTouchListener {
+    ctor public AutoScrollHelper(android.view.View);
+    method public abstract boolean canTargetScrollHorizontally(int);
+    method public abstract boolean canTargetScrollVertically(int);
+    method public boolean isEnabled();
+    method public boolean isExclusive();
+    method public boolean onTouch(android.view.View!, android.view.MotionEvent!);
+    method public abstract void scrollTargetBy(int, int);
+    method public androidx.core.widget.AutoScrollHelper setActivationDelay(int);
+    method public androidx.core.widget.AutoScrollHelper setEdgeType(int);
+    method public androidx.core.widget.AutoScrollHelper! setEnabled(boolean);
+    method public androidx.core.widget.AutoScrollHelper! setExclusive(boolean);
+    method public androidx.core.widget.AutoScrollHelper setMaximumEdges(float, float);
+    method public androidx.core.widget.AutoScrollHelper setMaximumVelocity(float, float);
+    method public androidx.core.widget.AutoScrollHelper setMinimumVelocity(float, float);
+    method public androidx.core.widget.AutoScrollHelper setRampDownDuration(int);
+    method public androidx.core.widget.AutoScrollHelper setRampUpDuration(int);
+    method public androidx.core.widget.AutoScrollHelper setRelativeEdges(float, float);
+    method public androidx.core.widget.AutoScrollHelper setRelativeVelocity(float, float);
+    field public static final int EDGE_TYPE_INSIDE = 0; // 0x0
+    field public static final int EDGE_TYPE_INSIDE_EXTEND = 1; // 0x1
+    field public static final int EDGE_TYPE_OUTSIDE = 2; // 0x2
+    field public static final float NO_MAX = 3.4028235E38f;
+    field public static final float NO_MIN = 0.0f;
+    field public static final float RELATIVE_UNSPECIFIED = 0.0f;
+  }
+
+  @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public interface AutoSizeableTextView {
+    method public int getAutoSizeMaxTextSize();
+    method public int getAutoSizeMinTextSize();
+    method public int getAutoSizeStepGranularity();
+    method public int[]! getAutoSizeTextAvailableSizes();
+    method @androidx.core.widget.TextViewCompat.AutoSizeTextType public int getAutoSizeTextType();
+    method public void setAutoSizeTextTypeUniformWithConfiguration(int, int, int, int) throws java.lang.IllegalArgumentException;
+    method public void setAutoSizeTextTypeUniformWithPresetSizes(int[], int) throws java.lang.IllegalArgumentException;
+    method public void setAutoSizeTextTypeWithDefaults(@androidx.core.widget.TextViewCompat.AutoSizeTextType int);
+    field @Deprecated @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static final boolean PLATFORM_SUPPORTS_AUTOSIZE;
+  }
+
+  public final class CheckedTextViewCompat {
+    method public static android.graphics.drawable.Drawable? getCheckMarkDrawable(android.widget.CheckedTextView);
+    method public static android.content.res.ColorStateList? getCheckMarkTintList(android.widget.CheckedTextView);
+    method public static android.graphics.PorterDuff.Mode? getCheckMarkTintMode(android.widget.CheckedTextView);
+    method public static void setCheckMarkTintList(android.widget.CheckedTextView, android.content.res.ColorStateList?);
+    method public static void setCheckMarkTintMode(android.widget.CheckedTextView, android.graphics.PorterDuff.Mode?);
+  }
+
+  public final class CompoundButtonCompat {
+    method public static android.graphics.drawable.Drawable? getButtonDrawable(android.widget.CompoundButton);
+    method public static android.content.res.ColorStateList? getButtonTintList(android.widget.CompoundButton);
+    method public static android.graphics.PorterDuff.Mode? getButtonTintMode(android.widget.CompoundButton);
+    method public static void setButtonTintList(android.widget.CompoundButton, android.content.res.ColorStateList?);
+    method public static void setButtonTintMode(android.widget.CompoundButton, android.graphics.PorterDuff.Mode?);
+  }
+
+  public class ContentLoadingProgressBar extends android.widget.ProgressBar {
+    ctor public ContentLoadingProgressBar(android.content.Context);
+    ctor public ContentLoadingProgressBar(android.content.Context, android.util.AttributeSet?);
+    method public void hide();
+    method public void onAttachedToWindow();
+    method public void onDetachedFromWindow();
+    method public void show();
+  }
+
+  public final class EdgeEffectCompat {
+    ctor @Deprecated public EdgeEffectCompat(android.content.Context!);
+    method public static android.widget.EdgeEffect create(android.content.Context, android.util.AttributeSet?);
+    method @Deprecated public boolean draw(android.graphics.Canvas!);
+    method @Deprecated public void finish();
+    method public static float getDistance(android.widget.EdgeEffect);
+    method @Deprecated public boolean isFinished();
+    method @Deprecated public boolean onAbsorb(int);
+    method public static void onPull(android.widget.EdgeEffect, float, float);
+    method @Deprecated public boolean onPull(float);
+    method @Deprecated public boolean onPull(float, float);
+    method public static float onPullDistance(android.widget.EdgeEffect, float, float);
+    method @Deprecated public boolean onRelease();
+    method @Deprecated public void setSize(int, int);
+  }
+
+  public class ImageViewCompat {
+    method public static android.content.res.ColorStateList? getImageTintList(android.widget.ImageView);
+    method public static android.graphics.PorterDuff.Mode? getImageTintMode(android.widget.ImageView);
+    method public static void setImageTintList(android.widget.ImageView, android.content.res.ColorStateList?);
+    method public static void setImageTintMode(android.widget.ImageView, android.graphics.PorterDuff.Mode?);
+  }
+
+  public final class ListPopupWindowCompat {
+    method public static android.view.View.OnTouchListener? createDragToOpenListener(android.widget.ListPopupWindow, android.view.View);
+    method @Deprecated public static android.view.View.OnTouchListener! createDragToOpenListener(Object!, android.view.View!);
+  }
+
+  public class ListViewAutoScrollHelper extends androidx.core.widget.AutoScrollHelper {
+    ctor public ListViewAutoScrollHelper(android.widget.ListView);
+    method public boolean canTargetScrollHorizontally(int);
+    method public boolean canTargetScrollVertically(int);
+    method public void scrollTargetBy(int, int);
+  }
+
+  public final class ListViewCompat {
+    method public static boolean canScrollList(android.widget.ListView, int);
+    method public static void scrollListBy(android.widget.ListView, int);
+  }
+
+  public class NestedScrollView extends android.widget.FrameLayout implements androidx.core.view.NestedScrollingChild3 androidx.core.view.NestedScrollingParent3 androidx.core.view.ScrollingView {
+    ctor public NestedScrollView(android.content.Context);
+    ctor public NestedScrollView(android.content.Context, android.util.AttributeSet?);
+    ctor public NestedScrollView(android.content.Context, android.util.AttributeSet?, int);
+    method public boolean arrowScroll(int);
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public int computeHorizontalScrollExtent();
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public int computeHorizontalScrollOffset();
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public int computeHorizontalScrollRange();
+    method protected int computeScrollDeltaToGetChildRectOnScreen(android.graphics.Rect!);
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public int computeVerticalScrollExtent();
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public int computeVerticalScrollOffset();
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public int computeVerticalScrollRange();
+    method public boolean dispatchNestedPreScroll(int, int, int[]?, int[]?, int);
+    method public boolean dispatchNestedScroll(int, int, int, int, int[]?, int);
+    method public void dispatchNestedScroll(int, int, int, int, int[]?, int, int[]);
+    method public boolean executeKeyEvent(android.view.KeyEvent);
+    method public void fling(int);
+    method public boolean fullScroll(int);
+    method public int getMaxScrollAmount();
+    method public boolean hasNestedScrollingParent(int);
+    method public boolean isFillViewport();
+    method public boolean isSmoothScrollingEnabled();
+    method public void onAttachedToWindow();
+    method public void onNestedPreScroll(android.view.View, int, int, int[], int);
+    method public void onNestedScroll(android.view.View, int, int, int, int, int);
+    method public void onNestedScroll(android.view.View, int, int, int, int, int, int[]);
+    method public void onNestedScrollAccepted(android.view.View, android.view.View, int, int);
+    method public boolean onStartNestedScroll(android.view.View, android.view.View, int, int);
+    method public void onStopNestedScroll(android.view.View, int);
+    method public boolean pageScroll(int);
+    method public void setFillViewport(boolean);
+    method public void setOnScrollChangeListener(androidx.core.widget.NestedScrollView.OnScrollChangeListener?);
+    method public void setSmoothScrollingEnabled(boolean);
+    method public final void smoothScrollBy(int, int);
+    method public final void smoothScrollBy(int, int, int);
+    method public final void smoothScrollTo(int, int);
+    method public final void smoothScrollTo(int, int, int);
+    method public boolean startNestedScroll(int, int);
+    method public void stopNestedScroll(int);
+  }
+
+  public static interface NestedScrollView.OnScrollChangeListener {
+    method public void onScrollChange(androidx.core.widget.NestedScrollView, int, int, int, int);
+  }
+
+  public final class PopupMenuCompat {
+    method public static android.view.View.OnTouchListener? getDragToOpenListener(Object);
+  }
+
+  public final class PopupWindowCompat {
+    method public static boolean getOverlapAnchor(android.widget.PopupWindow);
+    method public static int getWindowLayoutType(android.widget.PopupWindow);
+    method public static void setOverlapAnchor(android.widget.PopupWindow, boolean);
+    method public static void setWindowLayoutType(android.widget.PopupWindow, int);
+    method public static void showAsDropDown(android.widget.PopupWindow, android.view.View, int, int, int);
+  }
+
+  @Deprecated public final class ScrollerCompat {
+    method @Deprecated public void abortAnimation();
+    method @Deprecated public boolean computeScrollOffset();
+    method @Deprecated public static androidx.core.widget.ScrollerCompat! create(android.content.Context!);
+    method @Deprecated public static androidx.core.widget.ScrollerCompat! create(android.content.Context!, android.view.animation.Interpolator!);
+    method @Deprecated public void fling(int, int, int, int, int, int, int, int);
+    method @Deprecated public void fling(int, int, int, int, int, int, int, int, int, int);
+    method @Deprecated public float getCurrVelocity();
+    method @Deprecated public int getCurrX();
+    method @Deprecated public int getCurrY();
+    method @Deprecated public int getFinalX();
+    method @Deprecated public int getFinalY();
+    method @Deprecated public boolean isFinished();
+    method @Deprecated public boolean isOverScrolled();
+    method @Deprecated public void notifyHorizontalEdgeReached(int, int, int);
+    method @Deprecated public void notifyVerticalEdgeReached(int, int, int);
+    method @Deprecated public boolean springBack(int, int, int, int, int, int);
+    method @Deprecated public void startScroll(int, int, int, int);
+    method @Deprecated public void startScroll(int, int, int, int, int);
+  }
+
+  public final class TextViewCompat {
+    method public static int getAutoSizeMaxTextSize(android.widget.TextView);
+    method public static int getAutoSizeMinTextSize(android.widget.TextView);
+    method public static int getAutoSizeStepGranularity(android.widget.TextView);
+    method public static int[] getAutoSizeTextAvailableSizes(android.widget.TextView);
+    method public static int getAutoSizeTextType(android.widget.TextView);
+    method public static android.content.res.ColorStateList? getCompoundDrawableTintList(android.widget.TextView);
+    method public static android.graphics.PorterDuff.Mode? getCompoundDrawableTintMode(android.widget.TextView);
+    method public static android.graphics.drawable.Drawable![] getCompoundDrawablesRelative(android.widget.TextView);
+    method public static int getFirstBaselineToTopHeight(android.widget.TextView);
+    method public static int getLastBaselineToBottomHeight(android.widget.TextView);
+    method public static int getMaxLines(android.widget.TextView);
+    method public static int getMinLines(android.widget.TextView);
+    method public static androidx.core.text.PrecomputedTextCompat.Params getTextMetricsParams(android.widget.TextView);
+    method public static void setAutoSizeTextTypeUniformWithConfiguration(android.widget.TextView, int, int, int, int) throws java.lang.IllegalArgumentException;
+    method public static void setAutoSizeTextTypeUniformWithPresetSizes(android.widget.TextView, int[], int) throws java.lang.IllegalArgumentException;
+    method public static void setAutoSizeTextTypeWithDefaults(android.widget.TextView, int);
+    method public static void setCompoundDrawableTintList(android.widget.TextView, android.content.res.ColorStateList?);
+    method public static void setCompoundDrawableTintMode(android.widget.TextView, android.graphics.PorterDuff.Mode?);
+    method public static void setCompoundDrawablesRelative(android.widget.TextView, android.graphics.drawable.Drawable?, android.graphics.drawable.Drawable?, android.graphics.drawable.Drawable?, android.graphics.drawable.Drawable?);
+    method public static void setCompoundDrawablesRelativeWithIntrinsicBounds(android.widget.TextView, android.graphics.drawable.Drawable?, android.graphics.drawable.Drawable?, android.graphics.drawable.Drawable?, android.graphics.drawable.Drawable?);
+    method public static void setCompoundDrawablesRelativeWithIntrinsicBounds(android.widget.TextView, @DrawableRes int, @DrawableRes int, @DrawableRes int, @DrawableRes int);
+    method public static void setCustomSelectionActionModeCallback(android.widget.TextView, android.view.ActionMode.Callback);
+    method public static void setFirstBaselineToTopHeight(android.widget.TextView, @IntRange(from=0) @Px int);
+    method public static void setLastBaselineToBottomHeight(android.widget.TextView, @IntRange(from=0) @Px int);
+    method public static void setLineHeight(android.widget.TextView, @IntRange(from=0) @Px int);
+    method public static void setPrecomputedText(android.widget.TextView, androidx.core.text.PrecomputedTextCompat);
+    method public static void setTextAppearance(android.widget.TextView, @StyleRes int);
+    method public static void setTextMetricsParams(android.widget.TextView, androidx.core.text.PrecomputedTextCompat.Params);
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static android.view.ActionMode.Callback? unwrapCustomSelectionActionModeCallback(android.view.ActionMode.Callback?);
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static android.view.ActionMode.Callback? wrapCustomSelectionActionModeCallback(android.widget.TextView, android.view.ActionMode.Callback?);
+    field public static final int AUTO_SIZE_TEXT_TYPE_NONE = 0; // 0x0
+    field public static final int AUTO_SIZE_TEXT_TYPE_UNIFORM = 1; // 0x1
+  }
+
+  @IntDef({androidx.core.widget.TextViewCompat.AUTO_SIZE_TEXT_TYPE_NONE, androidx.core.widget.TextViewCompat.AUTO_SIZE_TEXT_TYPE_UNIFORM}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface TextViewCompat.AutoSizeTextType {
+  }
+
+  @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public final class TextViewOnReceiveContentListener implements androidx.core.view.OnReceiveContentListener {
+    ctor public TextViewOnReceiveContentListener();
+    method public androidx.core.view.ContentInfoCompat? onReceiveContent(android.view.View, androidx.core.view.ContentInfoCompat);
+  }
+
+  @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public interface TintableCheckedTextView {
+    method public android.content.res.ColorStateList? getSupportCheckMarkTintList();
+    method public android.graphics.PorterDuff.Mode? getSupportCheckMarkTintMode();
+    method public void setSupportCheckMarkTintList(android.content.res.ColorStateList?);
+    method public void setSupportCheckMarkTintMode(android.graphics.PorterDuff.Mode?);
+  }
+
+  public interface TintableCompoundButton {
+    method public android.content.res.ColorStateList? getSupportButtonTintList();
+    method public android.graphics.PorterDuff.Mode? getSupportButtonTintMode();
+    method public void setSupportButtonTintList(android.content.res.ColorStateList?);
+    method public void setSupportButtonTintMode(android.graphics.PorterDuff.Mode?);
+  }
+
+  public interface TintableCompoundDrawablesView {
+    method public android.content.res.ColorStateList? getSupportCompoundDrawablesTintList();
+    method public android.graphics.PorterDuff.Mode? getSupportCompoundDrawablesTintMode();
+    method public void setSupportCompoundDrawablesTintList(android.content.res.ColorStateList?);
+    method public void setSupportCompoundDrawablesTintMode(android.graphics.PorterDuff.Mode?);
+  }
+
+  @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public interface TintableImageSourceView {
+    method public android.content.res.ColorStateList? getSupportImageTintList();
+    method public android.graphics.PorterDuff.Mode? getSupportImageTintMode();
+    method public void setSupportImageTintList(android.content.res.ColorStateList?);
+    method public void setSupportImageTintMode(android.graphics.PorterDuff.Mode?);
+  }
+
+}
+
diff --git a/core/core/api/restricted_current.txt b/core/core/api/restricted_current.txt
index 5f1829e..29edb7b 100644
--- a/core/core/api/restricted_current.txt
+++ b/core/core/api/restricted_current.txt
@@ -2195,12 +2195,19 @@
     method @Deprecated @ChecksSdkIntAtLeast(api=android.os.Build.VERSION_CODES.Q) public static boolean isAtLeastQ();
     method @Deprecated @ChecksSdkIntAtLeast(api=android.os.Build.VERSION_CODES.R) public static boolean isAtLeastR();
     method @Deprecated @ChecksSdkIntAtLeast(api=31, codename="S") public static boolean isAtLeastS();
+    method @Deprecated @ChecksSdkIntAtLeast(api=32, codename="Sv2") @androidx.core.os.BuildCompat.PrereleaseSdkCheck public static boolean isAtLeastSv2();
+    method @Deprecated @ChecksSdkIntAtLeast(api=33, codename="Tiramisu") @androidx.core.os.BuildCompat.PrereleaseSdkCheck public static boolean isAtLeastT();
+    method @ChecksSdkIntAtLeast(api=34, codename="UpsideDownCake") @androidx.core.os.BuildCompat.PrereleaseSdkCheck public static boolean isAtLeastU();
+    method @ChecksSdkIntAtLeast(codename="VanillaIceCream") @androidx.core.os.BuildCompat.PrereleaseSdkCheck public static boolean isAtLeastV();
     field @ChecksSdkIntAtLeast(extension=android.os.ext.SdkExtensions.AD_SERVICES) public static final int AD_SERVICES_EXTENSION_INT;
     field @ChecksSdkIntAtLeast(extension=android.os.Build.VERSION_CODES.R) public static final int R_EXTENSION_INT;
     field @ChecksSdkIntAtLeast(extension=android.os.Build.VERSION_CODES.S) public static final int S_EXTENSION_INT;
     field @ChecksSdkIntAtLeast(extension=android.os.Build.VERSION_CODES.TIRAMISU) public static final int T_EXTENSION_INT;
   }
 
+  @RequiresOptIn @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) public static @interface BuildCompat.PrereleaseSdkCheck {
+  }
+
   public final class BundleCompat {
     method public static android.os.IBinder? getBinder(android.os.Bundle, String?);
     method public static <T> T? getParcelable(android.os.Bundle, String?, Class<T!>);
diff --git a/core/core/src/androidTest/java/androidx/core/view/DragStartHelperTest.java b/core/core/src/androidTest/java/androidx/core/view/DragStartHelperTest.java
index b32fa94..0dfb788 100644
--- a/core/core/src/androidTest/java/androidx/core/view/DragStartHelperTest.java
+++ b/core/core/src/androidTest/java/androidx/core/view/DragStartHelperTest.java
@@ -375,4 +375,23 @@
                 eq(mDragSource), eq(helper), argThat(new TouchPositionMatcher(0, 0)));
         verifyNoMoreInteractions(listener);
     }
+
+    @LargeTest
+    @Test
+    public void mouseDragThenLongPress() throws Throwable {
+        final DragStartListener listener = createListener(true);
+        final DragStartHelper helper = createDragStartHelper(listener);
+        helper.attach();
+
+        sendMouseEvent(MotionEvent.ACTION_DOWN, MotionEvent.BUTTON_PRIMARY, mDragSource, 0, 0);
+        sendMouseEvent(MotionEvent.ACTION_MOVE, MotionEvent.BUTTON_PRIMARY, mDragSource, 1, 2);
+
+        verify(listener, times(1)).onDragStart(
+                eq(mDragSource), eq(helper), argThat(new TouchPositionMatcher(mDragSource, 1, 2)));
+
+        waitForLongPress();
+
+        // Long press doesn't triggers OnDragStart for a second time.
+        verifyNoMoreInteractions(listener);
+    }
 }
diff --git a/core/core/src/main/java/androidx/core/view/DragStartHelper.java b/core/core/src/main/java/androidx/core/view/DragStartHelper.java
index ed099dc..0c6db11 100644
--- a/core/core/src/main/java/androidx/core/view/DragStartHelper.java
+++ b/core/core/src/main/java/androidx/core/view/DragStartHelper.java
@@ -169,7 +169,12 @@
      * @return true if the callback consumed the long click, false otherwise.
      */
     public boolean onLongClick(@NonNull View v) {
-        return mListener.onDragStart(v, this);
+        if (mDragging) {
+            // Ignore long click once the drag operation is in progress.
+            return true;
+        }
+        mDragging = mListener.onDragStart(v, this);
+        return mDragging;
     }
 
     /**
diff --git a/credentials/credentials-play-services-auth/src/main/java/androidx/credentials/playservices/controllers/CreatePublicKeyCredential/PublicKeyCredentialControllerUtility.kt b/credentials/credentials-play-services-auth/src/main/java/androidx/credentials/playservices/controllers/CreatePublicKeyCredential/PublicKeyCredentialControllerUtility.kt
index 893b7e6..1d1ffc2 100644
--- a/credentials/credentials-play-services-auth/src/main/java/androidx/credentials/playservices/controllers/CreatePublicKeyCredential/PublicKeyCredentialControllerUtility.kt
+++ b/credentials/credentials-play-services-auth/src/main/java/androidx/credentials/playservices/controllers/CreatePublicKeyCredential/PublicKeyCredentialControllerUtility.kt
@@ -560,7 +560,8 @@
             ErrorCode.ATTESTATION_NOT_PRIVATE_ERR to NotReadableError(),
             ErrorCode.CONSTRAINT_ERR to ConstraintError(),
             ErrorCode.DATA_ERR to DataError(),
-            ErrorCode.ENCODING_ERR to InvalidStateError(),
+            ErrorCode.INVALID_STATE_ERR to InvalidStateError(),
+            ErrorCode.ENCODING_ERR to EncodingError(),
             ErrorCode.NETWORK_ERR to NetworkError(),
             ErrorCode.NOT_ALLOWED_ERR to NotAllowedError(),
             ErrorCode.NOT_SUPPORTED_ERR to NotSupportedError(),
diff --git a/credentials/credentials/api/public_plus_experimental_current.txt b/credentials/credentials/api/public_plus_experimental_current.txt
deleted file mode 100644
index 5f71623..0000000
--- a/credentials/credentials/api/public_plus_experimental_current.txt
+++ /dev/null
@@ -1,456 +0,0 @@
-// Signature format: 4.0
-package androidx.credentials {
-
-  public final class ClearCredentialStateRequest {
-    ctor public ClearCredentialStateRequest();
-  }
-
-  public abstract class CreateCredentialRequest {
-    method public final String? getOrigin();
-    property public final String? origin;
-  }
-
-  public static final class CreateCredentialRequest.DisplayInfo {
-    ctor public CreateCredentialRequest.DisplayInfo(CharSequence userId);
-    ctor public CreateCredentialRequest.DisplayInfo(CharSequence userId, optional CharSequence? userDisplayName);
-    method public CharSequence? getUserDisplayName();
-    method public CharSequence getUserId();
-    property public final CharSequence? userDisplayName;
-    property public final CharSequence userId;
-  }
-
-  public abstract class CreateCredentialResponse {
-  }
-
-  public class CreateCustomCredentialRequest extends androidx.credentials.CreateCredentialRequest {
-    ctor public CreateCustomCredentialRequest(String type, android.os.Bundle credentialData, android.os.Bundle candidateQueryData, boolean isSystemProviderRequired, androidx.credentials.CreateCredentialRequest.DisplayInfo displayInfo);
-    ctor public CreateCustomCredentialRequest(String type, android.os.Bundle credentialData, android.os.Bundle candidateQueryData, boolean isSystemProviderRequired, androidx.credentials.CreateCredentialRequest.DisplayInfo displayInfo, optional boolean isAutoSelectAllowed);
-    ctor public CreateCustomCredentialRequest(String type, android.os.Bundle credentialData, android.os.Bundle candidateQueryData, boolean isSystemProviderRequired, androidx.credentials.CreateCredentialRequest.DisplayInfo displayInfo, optional boolean isAutoSelectAllowed, optional String? origin);
-    method public final android.os.Bundle getCandidateQueryData();
-    method public final android.os.Bundle getCredentialData();
-    method public final String getType();
-    method public final boolean isAutoSelectAllowed();
-    method public final boolean isSystemProviderRequired();
-    property public final android.os.Bundle candidateQueryData;
-    property public final android.os.Bundle credentialData;
-    property public final boolean isAutoSelectAllowed;
-    property public final boolean isSystemProviderRequired;
-    property public final String type;
-  }
-
-  public class CreateCustomCredentialResponse extends androidx.credentials.CreateCredentialResponse {
-    ctor public CreateCustomCredentialResponse(String type, android.os.Bundle data);
-    method public final android.os.Bundle getData();
-    method public final String getType();
-    property public final android.os.Bundle data;
-    property public final String type;
-  }
-
-  public final class CreatePasswordRequest extends androidx.credentials.CreateCredentialRequest {
-    ctor public CreatePasswordRequest(String id, String password);
-    ctor public CreatePasswordRequest(String id, String password, optional String? origin);
-    method public String getId();
-    method public String getPassword();
-    property public final String id;
-    property public final String password;
-  }
-
-  public final class CreatePasswordResponse extends androidx.credentials.CreateCredentialResponse {
-    ctor public CreatePasswordResponse();
-  }
-
-  public final class CreatePublicKeyCredentialRequest extends androidx.credentials.CreateCredentialRequest {
-    ctor public CreatePublicKeyCredentialRequest(String requestJson);
-    ctor public CreatePublicKeyCredentialRequest(String requestJson, optional String? clientDataHash);
-    ctor public CreatePublicKeyCredentialRequest(String requestJson, optional String? clientDataHash, optional boolean preferImmediatelyAvailableCredentials);
-    ctor public CreatePublicKeyCredentialRequest(String requestJson, optional String? clientDataHash, optional boolean preferImmediatelyAvailableCredentials, optional String? origin);
-    method public String? getClientDataHash();
-    method public boolean getPreferImmediatelyAvailableCredentials();
-    method public String getRequestJson();
-    property public final String? clientDataHash;
-    property public final boolean preferImmediatelyAvailableCredentials;
-    property public final String requestJson;
-  }
-
-  public final class CreatePublicKeyCredentialResponse extends androidx.credentials.CreateCredentialResponse {
-    ctor public CreatePublicKeyCredentialResponse(String registrationResponseJson);
-    method public String getRegistrationResponseJson();
-    property public final String registrationResponseJson;
-  }
-
-  public abstract class Credential {
-  }
-
-  public final class CredentialManager {
-    method public suspend Object? clearCredentialState(androidx.credentials.ClearCredentialStateRequest request, kotlin.coroutines.Continuation<? super kotlin.Unit>);
-    method public void clearCredentialStateAsync(androidx.credentials.ClearCredentialStateRequest request, android.os.CancellationSignal? cancellationSignal, java.util.concurrent.Executor executor, androidx.credentials.CredentialManagerCallback<java.lang.Void,androidx.credentials.exceptions.ClearCredentialException> callback);
-    method public static androidx.credentials.CredentialManager create(android.content.Context context);
-    method public suspend Object? createCredential(androidx.credentials.CreateCredentialRequest request, android.app.Activity activity, kotlin.coroutines.Continuation<? super androidx.credentials.CreateCredentialResponse>);
-    method public void createCredentialAsync(androidx.credentials.CreateCredentialRequest request, android.app.Activity activity, android.os.CancellationSignal? cancellationSignal, java.util.concurrent.Executor executor, androidx.credentials.CredentialManagerCallback<androidx.credentials.CreateCredentialResponse,androidx.credentials.exceptions.CreateCredentialException> callback);
-    method public suspend Object? getCredential(androidx.credentials.GetCredentialRequest request, android.app.Activity activity, kotlin.coroutines.Continuation<? super androidx.credentials.GetCredentialResponse>);
-    method public void getCredentialAsync(androidx.credentials.GetCredentialRequest request, android.app.Activity activity, android.os.CancellationSignal? cancellationSignal, java.util.concurrent.Executor executor, androidx.credentials.CredentialManagerCallback<androidx.credentials.GetCredentialResponse,androidx.credentials.exceptions.GetCredentialException> callback);
-    field public static final androidx.credentials.CredentialManager.Companion Companion;
-  }
-
-  public static final class CredentialManager.Companion {
-    method public androidx.credentials.CredentialManager create(android.content.Context context);
-  }
-
-  public interface CredentialManagerCallback<R, E> {
-    method public void onError(E e);
-    method public void onResult(R result);
-  }
-
-  public abstract class CredentialOption {
-  }
-
-  public interface CredentialProvider {
-    method public boolean isAvailableOnDevice();
-    method public void onClearCredential(androidx.credentials.ClearCredentialStateRequest request, android.os.CancellationSignal? cancellationSignal, java.util.concurrent.Executor executor, androidx.credentials.CredentialManagerCallback<java.lang.Void,androidx.credentials.exceptions.ClearCredentialException> callback);
-    method public void onCreateCredential(androidx.credentials.CreateCredentialRequest request, android.app.Activity activity, android.os.CancellationSignal? cancellationSignal, java.util.concurrent.Executor executor, androidx.credentials.CredentialManagerCallback<androidx.credentials.CreateCredentialResponse,androidx.credentials.exceptions.CreateCredentialException> callback);
-    method public void onGetCredential(androidx.credentials.GetCredentialRequest request, android.app.Activity activity, android.os.CancellationSignal? cancellationSignal, java.util.concurrent.Executor executor, androidx.credentials.CredentialManagerCallback<androidx.credentials.GetCredentialResponse,androidx.credentials.exceptions.GetCredentialException> callback);
-  }
-
-  public class CustomCredential extends androidx.credentials.Credential {
-    ctor public CustomCredential(String type, android.os.Bundle data);
-    method public final android.os.Bundle getData();
-    method public final String getType();
-    property public final android.os.Bundle data;
-    property public final String type;
-  }
-
-  public final class GetCredentialRequest {
-    ctor public GetCredentialRequest(java.util.List<? extends androidx.credentials.CredentialOption> credentialOptions);
-    ctor public GetCredentialRequest(java.util.List<? extends androidx.credentials.CredentialOption> credentialOptions, optional String? origin);
-    method public java.util.List<androidx.credentials.CredentialOption> getCredentialOptions();
-    method public String? getOrigin();
-    property public final java.util.List<androidx.credentials.CredentialOption> credentialOptions;
-    property public final String? origin;
-  }
-
-  public static final class GetCredentialRequest.Builder {
-    ctor public GetCredentialRequest.Builder();
-    method public androidx.credentials.GetCredentialRequest.Builder addCredentialOption(androidx.credentials.CredentialOption credentialOption);
-    method public androidx.credentials.GetCredentialRequest build();
-    method public androidx.credentials.GetCredentialRequest.Builder setCredentialOptions(java.util.List<? extends androidx.credentials.CredentialOption> credentialOptions);
-    method public androidx.credentials.GetCredentialRequest.Builder setOrigin(String origin);
-  }
-
-  public final class GetCredentialResponse {
-    ctor public GetCredentialResponse(androidx.credentials.Credential credential);
-    method public androidx.credentials.Credential getCredential();
-    property public final androidx.credentials.Credential credential;
-  }
-
-  public class GetCustomCredentialOption extends androidx.credentials.CredentialOption {
-    ctor public GetCustomCredentialOption(String type, android.os.Bundle requestData, android.os.Bundle candidateQueryData, boolean isSystemProviderRequired);
-    ctor public GetCustomCredentialOption(String type, android.os.Bundle requestData, android.os.Bundle candidateQueryData, boolean isSystemProviderRequired, optional boolean isAutoSelectAllowed);
-    method public final android.os.Bundle getCandidateQueryData();
-    method public final android.os.Bundle getRequestData();
-    method public final String getType();
-    method public final boolean isAutoSelectAllowed();
-    method public final boolean isSystemProviderRequired();
-    property public final android.os.Bundle candidateQueryData;
-    property public final boolean isAutoSelectAllowed;
-    property public final boolean isSystemProviderRequired;
-    property public final android.os.Bundle requestData;
-    property public final String type;
-  }
-
-  public final class GetPasswordOption extends androidx.credentials.CredentialOption {
-    ctor public GetPasswordOption();
-    ctor public GetPasswordOption(optional boolean isAutoSelectAllowed);
-    method public boolean isAutoSelectAllowed();
-    property public boolean isAutoSelectAllowed;
-  }
-
-  public final class GetPublicKeyCredentialOption extends androidx.credentials.CredentialOption {
-    ctor public GetPublicKeyCredentialOption(String requestJson);
-    ctor public GetPublicKeyCredentialOption(String requestJson, optional String? clientDataHash);
-    ctor public GetPublicKeyCredentialOption(String requestJson, optional String? clientDataHash, optional boolean preferImmediatelyAvailableCredentials);
-    method public String? getClientDataHash();
-    method public boolean getPreferImmediatelyAvailableCredentials();
-    method public String getRequestJson();
-    property public final String? clientDataHash;
-    property public final boolean preferImmediatelyAvailableCredentials;
-    property public final String requestJson;
-  }
-
-  public final class PasswordCredential extends androidx.credentials.Credential {
-    ctor public PasswordCredential(String id, String password);
-    method public String getId();
-    method public String getPassword();
-    property public final String id;
-    property public final String password;
-  }
-
-  public final class PublicKeyCredential extends androidx.credentials.Credential {
-    ctor public PublicKeyCredential(String authenticationResponseJson);
-    method public String getAuthenticationResponseJson();
-    property public final String authenticationResponseJson;
-  }
-
-}
-
-package androidx.credentials.exceptions {
-
-  public abstract class ClearCredentialException extends java.lang.Exception {
-  }
-
-  public final class ClearCredentialInterruptedException extends androidx.credentials.exceptions.ClearCredentialException {
-    ctor public ClearCredentialInterruptedException();
-    ctor public ClearCredentialInterruptedException(optional CharSequence? errorMessage);
-  }
-
-  public final class ClearCredentialProviderConfigurationException extends androidx.credentials.exceptions.ClearCredentialException {
-    ctor public ClearCredentialProviderConfigurationException();
-    ctor public ClearCredentialProviderConfigurationException(optional CharSequence? errorMessage);
-  }
-
-  public final class ClearCredentialUnknownException extends androidx.credentials.exceptions.ClearCredentialException {
-    ctor public ClearCredentialUnknownException();
-    ctor public ClearCredentialUnknownException(optional CharSequence? errorMessage);
-  }
-
-  public final class ClearCredentialUnsupportedException extends androidx.credentials.exceptions.ClearCredentialException {
-    ctor public ClearCredentialUnsupportedException();
-    ctor public ClearCredentialUnsupportedException(optional CharSequence? errorMessage);
-  }
-
-  public final class ClearCustomCredentialException extends androidx.credentials.exceptions.ClearCredentialException {
-    ctor public ClearCustomCredentialException(String type);
-    ctor public ClearCustomCredentialException(String type, optional CharSequence? errorMessage);
-    method public String getType();
-    property public String type;
-  }
-
-  public final class CreateCredentialCancellationException extends androidx.credentials.exceptions.CreateCredentialException {
-    ctor public CreateCredentialCancellationException();
-    ctor public CreateCredentialCancellationException(optional CharSequence? errorMessage);
-  }
-
-  public abstract class CreateCredentialException extends java.lang.Exception {
-  }
-
-  public final class CreateCredentialInterruptedException extends androidx.credentials.exceptions.CreateCredentialException {
-    ctor public CreateCredentialInterruptedException();
-    ctor public CreateCredentialInterruptedException(optional CharSequence? errorMessage);
-  }
-
-  public final class CreateCredentialNoCreateOptionException extends androidx.credentials.exceptions.CreateCredentialException {
-    ctor public CreateCredentialNoCreateOptionException();
-    ctor public CreateCredentialNoCreateOptionException(optional CharSequence? errorMessage);
-  }
-
-  public final class CreateCredentialProviderConfigurationException extends androidx.credentials.exceptions.CreateCredentialException {
-    ctor public CreateCredentialProviderConfigurationException();
-    ctor public CreateCredentialProviderConfigurationException(optional CharSequence? errorMessage);
-  }
-
-  public final class CreateCredentialUnknownException extends androidx.credentials.exceptions.CreateCredentialException {
-    ctor public CreateCredentialUnknownException();
-    ctor public CreateCredentialUnknownException(optional CharSequence? errorMessage);
-  }
-
-  public final class CreateCredentialUnsupportedException extends androidx.credentials.exceptions.CreateCredentialException {
-    ctor public CreateCredentialUnsupportedException();
-    ctor public CreateCredentialUnsupportedException(optional CharSequence? errorMessage);
-  }
-
-  public final class CreateCustomCredentialException extends androidx.credentials.exceptions.CreateCredentialException {
-    ctor public CreateCustomCredentialException(String type);
-    ctor public CreateCustomCredentialException(String type, optional CharSequence? errorMessage);
-    method public String getType();
-    property public String type;
-  }
-
-  public final class GetCredentialCancellationException extends androidx.credentials.exceptions.GetCredentialException {
-    ctor public GetCredentialCancellationException();
-    ctor public GetCredentialCancellationException(optional CharSequence? errorMessage);
-  }
-
-  public abstract class GetCredentialException extends java.lang.Exception {
-  }
-
-  public final class GetCredentialInterruptedException extends androidx.credentials.exceptions.GetCredentialException {
-    ctor public GetCredentialInterruptedException();
-    ctor public GetCredentialInterruptedException(optional CharSequence? errorMessage);
-  }
-
-  public final class GetCredentialProviderConfigurationException extends androidx.credentials.exceptions.GetCredentialException {
-    ctor public GetCredentialProviderConfigurationException();
-    ctor public GetCredentialProviderConfigurationException(optional CharSequence? errorMessage);
-  }
-
-  public final class GetCredentialUnknownException extends androidx.credentials.exceptions.GetCredentialException {
-    ctor public GetCredentialUnknownException();
-    ctor public GetCredentialUnknownException(optional CharSequence? errorMessage);
-  }
-
-  public final class GetCredentialUnsupportedException extends androidx.credentials.exceptions.GetCredentialException {
-    ctor public GetCredentialUnsupportedException();
-    ctor public GetCredentialUnsupportedException(optional CharSequence? errorMessage);
-  }
-
-  public final class GetCustomCredentialException extends androidx.credentials.exceptions.GetCredentialException {
-    ctor public GetCustomCredentialException(String type);
-    ctor public GetCustomCredentialException(String type, optional CharSequence? errorMessage);
-    method public String getType();
-    property public String type;
-  }
-
-  public final class NoCredentialException extends androidx.credentials.exceptions.GetCredentialException {
-    ctor public NoCredentialException();
-    ctor public NoCredentialException(optional CharSequence? errorMessage);
-  }
-
-}
-
-package androidx.credentials.exceptions.domerrors {
-
-  public final class AbortError extends androidx.credentials.exceptions.domerrors.DomError {
-    ctor public AbortError();
-  }
-
-  public final class ConstraintError extends androidx.credentials.exceptions.domerrors.DomError {
-    ctor public ConstraintError();
-  }
-
-  public final class DataCloneError extends androidx.credentials.exceptions.domerrors.DomError {
-    ctor public DataCloneError();
-  }
-
-  public final class DataError extends androidx.credentials.exceptions.domerrors.DomError {
-    ctor public DataError();
-  }
-
-  public abstract class DomError {
-    ctor public DomError(String type);
-  }
-
-  public final class EncodingError extends androidx.credentials.exceptions.domerrors.DomError {
-    ctor public EncodingError();
-  }
-
-  public final class HierarchyRequestError extends androidx.credentials.exceptions.domerrors.DomError {
-    ctor public HierarchyRequestError();
-  }
-
-  public final class InUseAttributeError extends androidx.credentials.exceptions.domerrors.DomError {
-    ctor public InUseAttributeError();
-  }
-
-  public final class InvalidCharacterError extends androidx.credentials.exceptions.domerrors.DomError {
-    ctor public InvalidCharacterError();
-  }
-
-  public final class InvalidModificationError extends androidx.credentials.exceptions.domerrors.DomError {
-    ctor public InvalidModificationError();
-  }
-
-  public final class InvalidNodeTypeError extends androidx.credentials.exceptions.domerrors.DomError {
-    ctor public InvalidNodeTypeError();
-  }
-
-  public final class InvalidStateError extends androidx.credentials.exceptions.domerrors.DomError {
-    ctor public InvalidStateError();
-  }
-
-  public final class NamespaceError extends androidx.credentials.exceptions.domerrors.DomError {
-    ctor public NamespaceError();
-  }
-
-  public final class NetworkError extends androidx.credentials.exceptions.domerrors.DomError {
-    ctor public NetworkError();
-  }
-
-  public final class NoModificationAllowedError extends androidx.credentials.exceptions.domerrors.DomError {
-    ctor public NoModificationAllowedError();
-  }
-
-  public final class NotAllowedError extends androidx.credentials.exceptions.domerrors.DomError {
-    ctor public NotAllowedError();
-  }
-
-  public final class NotFoundError extends androidx.credentials.exceptions.domerrors.DomError {
-    ctor public NotFoundError();
-  }
-
-  public final class NotReadableError extends androidx.credentials.exceptions.domerrors.DomError {
-    ctor public NotReadableError();
-  }
-
-  public final class NotSupportedError extends androidx.credentials.exceptions.domerrors.DomError {
-    ctor public NotSupportedError();
-  }
-
-  public final class OperationError extends androidx.credentials.exceptions.domerrors.DomError {
-    ctor public OperationError();
-  }
-
-  public final class OptOutError extends androidx.credentials.exceptions.domerrors.DomError {
-    ctor public OptOutError();
-  }
-
-  public final class QuotaExceededError extends androidx.credentials.exceptions.domerrors.DomError {
-    ctor public QuotaExceededError();
-  }
-
-  public final class ReadOnlyError extends androidx.credentials.exceptions.domerrors.DomError {
-    ctor public ReadOnlyError();
-  }
-
-  public final class SecurityError extends androidx.credentials.exceptions.domerrors.DomError {
-    ctor public SecurityError();
-  }
-
-  public final class SyntaxError extends androidx.credentials.exceptions.domerrors.DomError {
-    ctor public SyntaxError();
-  }
-
-  public final class TimeoutError extends androidx.credentials.exceptions.domerrors.DomError {
-    ctor public TimeoutError();
-  }
-
-  public final class TransactionInactiveError extends androidx.credentials.exceptions.domerrors.DomError {
-    ctor public TransactionInactiveError();
-  }
-
-  public final class UnknownError extends androidx.credentials.exceptions.domerrors.DomError {
-    ctor public UnknownError();
-  }
-
-  public final class VersionError extends androidx.credentials.exceptions.domerrors.DomError {
-    ctor public VersionError();
-  }
-
-  public final class WrongDocumentError extends androidx.credentials.exceptions.domerrors.DomError {
-    ctor public WrongDocumentError();
-  }
-
-}
-
-package androidx.credentials.exceptions.publickeycredential {
-
-  public final class CreatePublicKeyCredentialDomException extends androidx.credentials.exceptions.publickeycredential.CreatePublicKeyCredentialException {
-    ctor public CreatePublicKeyCredentialDomException(androidx.credentials.exceptions.domerrors.DomError domError);
-    ctor public CreatePublicKeyCredentialDomException(androidx.credentials.exceptions.domerrors.DomError domError, optional CharSequence? errorMessage);
-    method public androidx.credentials.exceptions.domerrors.DomError getDomError();
-    property public final androidx.credentials.exceptions.domerrors.DomError domError;
-  }
-
-  public class CreatePublicKeyCredentialException extends androidx.credentials.exceptions.CreateCredentialException {
-  }
-
-  public final class GetPublicKeyCredentialDomException extends androidx.credentials.exceptions.publickeycredential.GetPublicKeyCredentialException {
-    ctor public GetPublicKeyCredentialDomException(androidx.credentials.exceptions.domerrors.DomError domError);
-    ctor public GetPublicKeyCredentialDomException(androidx.credentials.exceptions.domerrors.DomError domError, optional CharSequence? errorMessage);
-    method public androidx.credentials.exceptions.domerrors.DomError getDomError();
-    property public final androidx.credentials.exceptions.domerrors.DomError domError;
-  }
-
-  public class GetPublicKeyCredentialException extends androidx.credentials.exceptions.GetCredentialException {
-  }
-
-}
-
diff --git a/development/build_log_simplifier/messages.ignore b/development/build_log_simplifier/messages.ignore
index 4884c02..5d682e7 100644
--- a/development/build_log_simplifier/messages.ignore
+++ b/development/build_log_simplifier/messages.ignore
@@ -1018,6 +1018,10 @@
 WARNING:.*The option setting 'android\.r8\.maxWorkers=[0-9]+' is experimental\.
 # Building XCFrameworks (b/260140834) and iOS benchmark invocation
 .*xcodebuild.*
+Observed package id 'platforms;android-33-ext5' in inconsistent location.*
+.*xcodebuild.*
+# > Task :core:core:compileDebugAndroidTestKotlin
+w: file://\$SUPPORT/core/core/src/androidTest/java/androidx/core/util/TypedValueCompatTest\.kt:[0-9]+:[0-9]+ 'scaledDensity: Float' is deprecated\. Deprecated in Java
 # > Task :wear:tiles:tiles-material:compileDebugJavaWithJavac
 \$SUPPORT/wear/tiles/tiles\-material/src/main/java/androidx/wear/tiles/material/CircularProgressIndicator\.java:[0-9]+: warning: \[deprecation\] Helper in androidx\.wear\.tiles\.material has been deprecated
 import static androidx\.wear\.tiles\.material\.Helper\.checkNotNull;
@@ -1047,4 +1051,307 @@
 w: file://\$SUPPORT/compose/foundation/foundation/src/androidAndroidTest/kotlin/androidx/compose/foundation/text/selection/SelectionHandlePopupPositionTest\.kt:[0-9]+:[0-9]+ 'getter for windowLayoutParams: EspressoOptional<WindowManager\.LayoutParams!>!' is deprecated\. Deprecated in Java
 w: file://\$SUPPORT/compose/foundation/foundation/src/androidAndroidTest/kotlin/androidx/compose/foundation/text/selection/TextFieldVisualTransformationMagnifierTest\.kt:[0-9]+:[0-9]+ 'RequiresDevice' is deprecated\. Deprecated in Java
 # > Task :compose:ui:ui:compileDebugAndroidTestKotlin
-w: file://\$SUPPORT/compose/ui/ui/src/androidAndroidTest/kotlin/androidx/compose/ui/window/PopupTestUtils\.kt:[0-9]+:[0-9]+ 'getter for windowLayoutParams: EspressoOptional<WindowManager\.LayoutParams!>!' is deprecated\. Deprecated in Java
\ No newline at end of file
+w: file://\$SUPPORT/compose/ui/ui/src/androidAndroidTest/kotlin/androidx/compose/ui/window/PopupTestUtils\.kt:[0-9]+:[0-9]+ 'getter for windowLayoutParams: EspressoOptional<WindowManager\.LayoutParams!>!' is deprecated\. Deprecated in Java
+# > Task :compose:ui:ui-inspection:dexInspectorRelease
+Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.JvmFunctionSignature\$FakeJavaAnnotationConstructor\$asString\$[0-9]+'s kotlin\.Metadata: null
+Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.calls\.CallerImpl\$Method\$Instance's kotlin\.Metadata: null
+Info: Unexpected error while reading androidx\.compose\.ui\.inspection\.framework\.ViewExtensionsKt\$ancestors\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.full\.Java[0-9]+RepeatableContainerLoader\$Cache's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.JvmPropertySignature's kotlin\.Metadata: null
+Info: Unexpected error while reading androidx\.compose\.ui\.inspection\.inspector\.InspectorNode\$WhenMappings's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KotlinReflectionInternalError's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KDeclarationContainerImpl\$findFunctionDescriptor\$allMembers\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.RuntimeTypeMapperKt's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.calls\.AnnotationConstructorCallerKt\$createAnnotationInstance\$hashCode\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KMutableProperty[0-9]+Impl\$_setter\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading androidx\.compose\.ui\.inspection\.compose\.AndroidComposeViewWrapper\$Companion's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KParameterImpl\$type\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.full\.KClasses\$isSubclassOf\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KPackageImpl\$Data\$members\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.calls\.AnnotationConstructorCaller's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.androidx\.compose\.ui\.tooling\.data\.UiToolingDataApi's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KCallableImpl\$_parameters\$[0-9]+\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading androidx\.compose\.ui\.inspection\.LambdaLocation's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KTypeImpl's kotlin\.Metadata: null
+Info: Unexpected error while reading androidx\.compose\.ui\.inspection\.ComposeLayoutInspector\$getComposableNodes\$data\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KClassImpl\$Data's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.ModuleByClassLoaderKt's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.JvmPropertySignature\$JavaField's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KClassImpl\$Data\$supertypes\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading androidx\.compose\.ui\.inspection\.inspector\.ParameterFactory\$expand\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KProperty[0-9]+Impl\$Getter's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.calls\.AnnotationConstructorCaller\$CallMode's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KFunctionImpl\$caller\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.calls\.CallerImpl\$FieldSetter\$BoundInstance's kotlin\.Metadata: null
+Info:
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.calls\.CallerImpl\$Method\$Instance's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.androidx\.compose\.ui\.tooling\.data\.ParameterInformation's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.full\.IllegalPropertyDelegateAccessException's kotlin\.Metadata: null
+Info: Unexpected error while reading androidx\.compose\.ui\.inspection\.ComposeLayoutInspector's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.calls\.InlineClassAwareCaller's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.full\.KClasses\$defaultType\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading androidx\.compose\.ui\.inspection\.inspector\.PackageHashesKt's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KCallableImpl\$_returnType\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.JvmFunctionSignature\$FakeJavaAnnotationConstructor\$asString\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.calls\.InlineClassAwareCaller\$BoxUnboxData's kotlin\.Metadata: null
+Info: Unexpected error while reading androidx\.compose\.ui\.inspection\.inspector\.ParameterFactory\$loadConstantsFromStaticFinal\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KProperty[0-9]+Impl's kotlin\.Metadata: null
+Info: Unexpected error while reading androidx\.compose\.ui\.inspection\.ComposeLayoutInspector\$handleGetAllParametersCommand\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.androidx\.compose\.ui\.tooling\.data\.ContextCache's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.RuntimeTypeMapperKt\$signature\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading androidx\.compose\.ui\.inspection\.inspector\.ParameterKind's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.calls\.CallerImpl\$BoundConstructor's kotlin\.Metadata: null
+Info: Unexpected error while reading androidx\.compose\.ui\.inspection\.ComposeLayoutInspector\$handleUnknownCommand\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.calls\.InlineClassAwareCallerKt's kotlin\.Metadata: null
+Info: Unexpected error while reading androidx\.compose\.ui\.inspection\.inspector\.ParameterFactory\$ParameterCreator\$findBestResourceFont\$\$inlined\$filterIsInstance\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading androidx\.compose\.ui\.inspection\.inspector\.InlineClassConverter\$loadTypeMapper\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KPropertyImpl\$Getter\$descriptor\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.full\.KClasses's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KMutableProperty[0-9]+Impl\$Setter's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.CachesKt\$CACHE_FOR_BASE_CLASSIFIERS\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KCallableImpl\$_returnType\$[0-9]+\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KTypeParameterImpl's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KTypeImpl\$arguments\$[0-9]+\$parameterizedTypeArguments\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KMutableProperty[0-9]+Impl's kotlin\.Metadata: null
+Info: Unexpected error while reading androidx\.compose\.ui\.inspection\.inspector\.ParameterType's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.calls\.CallerImpl\$Method's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.calls\.CallerImpl\$Method\$JvmStaticInObject's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.calls\.CallerImpl\$FieldGetter\$BoundInstance's kotlin\.Metadata: null
+Info: Unexpected error while reading androidx\.compose\.ui\.inspection\.compose\.ComposeExtensionsKt's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.ComputableClassValue's kotlin\.Metadata: null
+Info: Unexpected error while reading androidx\.compose\.ui\.inspection\.inspector\.ParameterFactory\$loadConstantsFromObjectInstance\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading androidx\.compose\.ui\.inspection\.RecompositionHandler\$MethodKey's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KPropertyImpl\$Setter\$descriptor\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KCallableImpl\$_annotations\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading androidx\.compose\.ui\.inspection\.inspector\.LayoutInspectorTree\$belongsToView\$[0-9]+\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KTypeImpl\$arguments\$[0-9]+\$[0-9]+\$type\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KClassImpl\$Data\$typeParameters\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading androidx\.compose\.ui\.inspection\.inspector\.ParameterFactory\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.calls\.CallerImpl\$FieldSetter\$BoundJvmStaticInObject's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.KTypesJvm's kotlin\.Metadata: null
+Info: Unexpected error while reading androidx\.compose\.ui\.inspection\.RecompositionHandler\$Data's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.CachesKt\$K_PACKAGE_CACHE\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KClassImpl\$Data\$supertypes\$[0-9]+\$[0-9]+\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KPropertyImpl's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.calls\.CallerImpl's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KDeclarationContainerImpl\$MemberBelonginess's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.JvmPropertySignature\$JavaMethodProperty's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KFunctionImpl\$descriptor\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.calls\.CallerImpl\$FieldSetter\$Static's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KCallableImpl\$_parameters\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.calls\.CallerImpl\$FieldGetter\$BoundJvmStaticInObject's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KClassImpl\$Data\$declaredNonStaticMembers\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KClassImpl\$Data\$inheritedStaticMembers\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.androidx\.compose\.ui\.tooling\.data\.NodeGroup's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.full\.KCallables\$callSuspendBy\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading androidx\.compose\.ui\.inspection\.inspector\.ParameterFactory\$ParameterCreator\$lookup\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading androidx\.compose\.ui\.inspection\.proto\.ViewExtensionsKt's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KPropertyImplKt's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.JvmPropertySignature\$KotlinProperty's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.calls\.CallerImpl\$FieldGetter\$JvmStaticInObject's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.calls\.CallerImpl\$FieldGetter's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.calls\.CallerImpl\$AccessorForHiddenConstructor's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KClassImpl\$Data\$inheritedNonStaticMembers\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KProperty[0-9]+Impl\$delegateSource\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.androidx\.compose\.ui\.tooling\.data\.SlotTreeKt\$extractParameterInfo\$\$inlined\$sortedBy\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KClassImpl\$data\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading androidx\.compose\.ui\.inspection\.ComposeLayoutInspector\$handleGetComposablesCommand\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.WeakClassLoaderBox's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KClassImpl\$Data\$constructors\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.calls\.AnnotationConstructorCallerKt's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KCallableImpl\$_parameters\$[0-9]+\$invoke\$\$inlined\$sortBy\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.calls\.CallerImpl\$FieldSetter\$JvmStaticInObject's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.ReflectionObjectRenderer\$renderLambda\$[0-9]+\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KParameterImpl\$annotations\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.KClassesJvm's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KPropertyImpl\$Accessor's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.JvmFunctionSignature\$JavaMethod's kotlin\.Metadata: null
+Info: Unexpected error while reading androidx\.compose\.ui\.inspection\.inspector\.LayoutInspectorTree\$belongsToView\$[0-9]+\$invoke\$\$inlined\$filterIsInstance\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.ReflectLambdaKt's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KPropertyImpl\$Getter's kotlin\.Metadata: null
+Info: Unexpected error while reading androidx\.compose\.ui\.inspection\.inspector\.ScopedReflectionFactory's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.androidx\.compose\.ui\.tooling\.data\.SlotTreeKt's kotlin\.Metadata: null
+Info: Unexpected error while reading androidx\.compose\.ui\.inspection\.ComposeLayoutInspector\$getComposableFromAnchor\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.ExperimentalReflectionOnLambdas's kotlin\.Metadata: null
+Info: Unexpected error while reading androidx\.compose\.ui\.inspection\.inspector\.LayoutInspectorTree\$parseLayoutInfo\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.RuntimeTypeMapper's kotlin\.Metadata: null
+Info: Unexpected error while reading androidx\.compose\.ui\.inspection\.ComposeLayoutInspector\$WhenMappings's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.androidx\.compose\.ui\.tooling\.data\.Parameter's kotlin\.Metadata: null
+Info: Unexpected error while reading androidx\.compose\.ui\.inspection\.util\.AnchorMap's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KPackageImpl\$Data\$multifileFacade\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.calls\.AnnotationConstructorCallerKt\$createAnnotationInstance\$toString\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.calls\.AnnotationConstructorCallerKt\$createAnnotationInstance\$toString\$[0-9]+\$[0-9]+\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading androidx\.compose\.ui\.inspection\.inspector\.LayoutInspectorTree\$belongsToView\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading androidx\.compose\.ui\.inspection\.RecompositionHandlerKt's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KParameterImpl's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KDeclarationContainerImpl's kotlin\.Metadata: null
+Info: Unexpected error while reading androidx\.compose\.ui\.inspection\.inspector\.ParameterFactory's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.ConcurrentHashMapCache's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.CacheByClassKt's kotlin\.Metadata: null
+Info: Unexpected error while reading androidx\.compose\.ui\.inspection\.inspector\.InspectorNode's kotlin\.Metadata: null
+Info: Unexpected error while reading androidx\.compose\.ui\.inspection\.RecompositionHandler's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KClassImpl\$Data\$annotations\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.ReflectLambdaKt\$reflect\$descriptor\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.calls\.CallerImpl\$Method\$BoundInstance's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KDeclarationContainerImpl\$Data\$moduleData\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading androidx\.compose\.ui\.inspection\.ComposeLayoutInspector\$handleGetParameterDetailsCommand\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.ReflectionObjectRenderer's kotlin\.Metadata: null
+Info: Unexpected error while reading androidx\.compose\.ui\.inspection\.proto\.ComposeExtensionsKt's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KTypeImpl\$arguments\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading androidx\.compose\.ui\.inspection\.compose\.AndroidComposeViewWrapperKt's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.androidx\.compose\.ui\.tooling\.data\.SourceContext's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KDeclarationContainerImpl\$findPropertyDescriptor\$mostVisibleProperties\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading androidx\.compose\.ui\.inspection\.inspector\.LayoutInspectorTree\$SubCompositionRoots's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KClassImpl\$Data\$allStaticMembers\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading androidx\.compose\.ui\.inspection\.ComposeLayoutInspector\$handleGetParametersCommand\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.EmptyContainerForLocal's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.full\.KClassifiers's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.androidx\.compose\.ui\.tooling\.data\.CompositionCallStack's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KPropertyImpl\$Companion's kotlin\.Metadata: null
+Info: Unexpected error while reading androidx\.compose\.ui\.inspection\.inspector\.ParameterFactory\$loadConstantsFrom\$[0-9]+\$topClass\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.calls\.InternalUnderlyingValOfInlineClass\$Unbound's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KTypeParameterImpl\$upperBounds\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.full\.KAnnotatedElements's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.androidx\.compose\.ui\.tooling\.data\.ParseError's kotlin\.Metadata: null
+Info: Unexpected error while reading androidx\.compose\.ui\.inspection\.ComposeLayoutInspector\$CacheTree's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KClassImpl\$Data\$allMembers\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KTypeImpl\$arguments\$[0-9]+\$WhenMappings's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.androidx\.compose\.ui\.tooling\.data\.Group's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.full\.KClasses\$allSupertypes\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KClassifierImpl's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.ReflectionObjectRenderer\$renderFunction\$[0-9]+\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.CachesKt\$K_CLASS_CACHE\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading androidx\.compose\.ui\.inspection\.compose\.AndroidComposeViewWrapper's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.calls\.CallerImpl\$Method\$Static's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.FunctionWithAllInvokes's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.calls\.CallerImpl\$Method\$BoundJvmStaticInObject's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.calls\.CallerImpl\$FieldGetter\$Static's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.TypeOfImplKt's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.ReflectionObjectRenderer\$WhenMappings's kotlin\.Metadata: null
+Info: Unexpected error while reading androidx\.compose\.ui\.inspection\.inspector\.ReflectionScope's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KPackageImpl\$Data\$metadata\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading androidx\.compose\.ui\.inspection\.framework\.ViewExtensionsKt\$flatten\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading androidx\.compose\.ui\.inspection\.inspector\.ParameterFactory\$ParameterCreator\$unwrap\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.FunctionWithAllInvokes\$DefaultImpls's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KPackageImpl\$Data\$kotlinClass\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KClassImpl\$Data\$declaredStaticMembers\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KClassImpl\$Data\$allNonStaticMembers\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KProperty[0-9]+Impl\$delegateValue\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.calls\.InternalUnderlyingValOfInlineClass\$Bound's kotlin\.Metadata: null
+Info: Unexpected error while reading androidx\.compose\.ui\.inspection\.inspector\.ReflectionScope\$Companion's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KProperty[0-9]+Impl\$_getter\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.CacheByClass's kotlin\.Metadata: null
+Info: Unexpected error while reading androidx\.compose\.ui\.inspection\.inspector\.NodeParameterReference's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.CachesKt\$CACHE_FOR_NULLABLE_BASE_CLASSIFIERS\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading androidx\.compose\.ui\.inspection\.proto\.StringTable's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KPackageImpl\$getLocalProperty\$[0-9]+\$[0-9]+\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.full\.KClassifiers\$WhenMappings's kotlin\.Metadata: null
+Info: Unexpected error while reading androidx\.compose\.ui\.inspection\.inspector\.LayoutInspectorTree\$stitchTreesByLayoutInfo\$[0-9]+\$parentLayout\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading androidx\.compose\.ui\.inspection\.ComposeLayoutInspectorFactory's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.calls\.Caller's kotlin\.Metadata: null
+Info: Unexpected error while reading androidx\.compose\.ui\.inspection\.proto\.StringTable\$put\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading androidx\.compose\.ui\.inspection\.inspector\.InlineClassConverter's kotlin\.Metadata: null
+Info: Unexpected error while reading androidx\.compose\.ui\.inspection\.inspector\.LayoutInspectorTree\$convert\$group\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading androidx\.compose\.ui\.inspection\.LambdaLocation\$Companion's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.calls\.CallerImpl\$FieldSetter's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KFunctionImpl\$defaultCaller\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.full\.KTypes's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.ReflectJvmMapping's kotlin\.Metadata: null
+Info: Unexpected error while reading androidx\.compose\.ui\.inspection\.inspector\.ParameterFactory\$loadConstantsFrom\$related\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KClassImpl\$getLocalProperty\$[0-9]+\$[0-9]+\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KPackageImpl\$data\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading androidx\.compose\.ui\.inspection\.inspector\.InspectorNodeKt's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.full\.Java[0-9]+RepeatableContainerLoader's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.full\.KCallables\$callSuspend\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.androidx\.compose\.ui\.tooling\.data\.SourceInformationContext's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.calls\.CallerImpl\$Method\$BoundStatic's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.full\.KCallables's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KTypeParameterImpl\$WhenMappings's kotlin\.Metadata: null
+Info: Unexpected error while reading androidx\.compose\.ui\.inspection\.inspector\.ParameterFactory\$ParameterCreator's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KClassImpl\$Data\$simpleName\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading androidx\.compose\.ui\.inspection\.inspector\.InlineClassConverter\$notInlineType\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.calls\.InternalUnderlyingValOfInlineClass's kotlin\.Metadata: null
+Info: Unexpected error while reading androidx\.compose\.ui\.inspection\.ComposeLayoutInspector\$handleUpdateSettingsCommand\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.calls\.ThrowingCaller's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.JvmPropertySignature\$MappedKotlinProperty's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KPackageImpl's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.calls\.CallerImpl\$Constructor's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KDeclarationContainerImpl\$getMembers\$visitor\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading androidx\.compose\.ui\.inspection\.util\.IntArrayKt's kotlin\.Metadata: null
+Info: Unexpected error while reading androidx\.compose\.ui\.inspection\.inspector\.LayoutInspectorTreeKt's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.KCallablesJvm's kotlin\.Metadata: null
+Info: Unexpected error while reading androidx\.compose\.ui\.inspection\.inspector\.ReflectionScopeKt's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.androidx\.compose\.ui\.tooling\.data\.JoinedKey's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.CachesKt's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KClassImpl\$Data\$descriptor\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading androidx\.compose\.ui\.inspection\.inspector\.LayoutInspectorTree\$stitchTreesByLayoutInfo\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.JvmFunctionSignature's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.androidx\.compose\.ui\.tooling\.data\.SourceLocation's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KPackageImpl\$Data\$scope\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.ReflectJvmMapping\$WhenMappings's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KClassImpl\$Data\$objectInstance\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.CachesKt\$CACHE_FOR_GENERIC_CLASSIFIERS\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading androidx\.compose\.ui\.inspection\.ComposeLayoutInspector\$getAndroidComposeViews\$roots\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading androidx\.compose\.ui\.inspection\.ComposeLayoutInspector\$CacheData's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.full\.IllegalCallableAccessException's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KClassImpl\$Data\$declaredMembers\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.JvmFunctionSignature\$JavaConstructor's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.calls\.Caller\$DefaultImpls's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.calls\.CallerKt's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.full\.NoSuchPropertyException's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KDeclarationContainerImpl\$Data's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KFunctionImpl's kotlin\.Metadata: null
+Info: Unexpected error while reading androidx\.compose\.ui\.inspection\.inspector\.MutableInspectorNode's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.calls\.CallerImpl\$FieldSetter\$Instance's kotlin\.Metadata: null
+Info: Unexpected error while reading androidx\.compose\.ui\.inspection\.inspector\.ParameterFactoryKt's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.calls\.CallerImpl\$FieldGetter\$Instance's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KClassImpl\$Data\$sealedSubclasses\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.JvmFunctionSignature\$KotlinConstructor's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.CreateKCallableVisitor's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.calls\.AnnotationConstructorCaller\$Origin's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.calls\.CallerImpl\$Companion's kotlin\.Metadata: null
+Info: Unexpected error while reading androidx\.compose\.ui\.inspection\.inspector\.LayoutInspectorTree\$findDeepParentTree\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.UtilKt's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KPropertyImpl\$Getter\$caller\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KPropertyImpl\$Setter\$caller\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KPropertyImpl\$Setter's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.JvmFunctionSignature\$FakeJavaAnnotationConstructor's kotlin\.Metadata: null
+Info: Unexpected error while reading androidx\.compose\.ui\.inspection\.util\.AnchorMapKt's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.androidx\.compose\.ui\.tooling\.data\.EmptyGroup's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.calls\.BoundCaller's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KClassImpl\$WhenMappings's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KPackageImpl\$Data's kotlin\.Metadata: null
+Info: Unexpected error while reading androidx\.compose\.ui\.inspection\.ComposeLayoutInspectorKt's kotlin\.Metadata: null
+Info: Unexpected error while reading androidx\.compose\.ui\.inspection\.inspector\.QuadBounds's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.JvmFunctionSignature\$JavaConstructor\$asString\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.full\.KProperties's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KTypeImpl\$classifier\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading androidx\.compose\.ui\.inspection\.inspector\.LayoutInspectorTree\$StitchInfo's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.ClassValueCache's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.JvmFunctionSignature\$KotlinFunction's kotlin\.Metadata: null
+Info: Unexpected error while reading androidx\.compose\.ui\.inspection\.inspector\.ParameterFactory\$create\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.androidx\.compose\.ui\.tooling\.data\.SourceLocationInfo's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.androidx\.compose\.ui\.tooling\.data\.CallGroup's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.calls\.CallerImpl\$AccessorForHiddenBoundConstructor's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KCallableImpl\$_typeParameters\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading androidx\.compose\.ui\.inspection\.util\.ThreadUtils's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KClassImpl's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KClassImpl\$Data\$nestedClasses\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KClassImpl\$Data\$supertypes\$[0-9]+\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading androidx\.compose\.ui\.inspection\.inspector\.NodeParameter's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KPropertyImpl\$_descriptor\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KDeclarationContainerImpl\$findPropertyDescriptor\$allMembers\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading androidx\.compose\.ui\.inspection\.inspector\.ParameterFactory\$ModifierCollector's kotlin\.Metadata: null
+Info: Unexpected error while reading androidx\.compose\.ui\.inspection\.inspector\.LayoutInspectorTree\$parseLayoutInfo\$\$inlined\$filterIsInstance\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KPropertyImpl\$_javaField\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading androidx\.compose\.ui\.inspection\.proto\.ComposeExtensionsKt\$WhenMappings's kotlin\.Metadata: null
+Info: Unexpected error while reading androidx\.compose\.ui\.inspection\.inspector\.RawParameter's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.JvmFunctionSignature\$FakeJavaAnnotationConstructor\$special\$\$inlined\$sortedBy\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KTypeParameterOwnerImpl's kotlin\.Metadata: null
+Info: Unexpected error while reading androidx\.compose\.ui\.inspection\.inspector\.LayoutInspectorTree's kotlin\.Metadata: null
+Info: Unexpected error while reading androidx\.compose\.ui\.inspection\.framework\.ViewExtensionsKt's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.UtilKt\$WhenMappings's kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KDeclarationContainerImpl\$Companion's kotlin\.Metadata: null
+Info: Unexpected error while reading androidx\.compose\.ui\.inspection\.compose\.ComposeExtensionsKt\$flatten\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KClassImpl\$Data\$qualifiedName\$[0-9]+'s kotlin\.Metadata: null
+Info: Unexpected error while reading deps\.ui\.inspection\.kotlin\.reflect\.jvm\.internal\.KCallableImpl's kotlin\.Metadata: null
\ No newline at end of file
diff --git a/glance/glance-appwidget-proto/build.gradle b/glance/glance-appwidget-proto/build.gradle
index 9613483..497e1b6 100644
--- a/glance/glance-appwidget-proto/build.gradle
+++ b/glance/glance-appwidget-proto/build.gradle
@@ -77,7 +77,6 @@
     name = "Glance AppWidget Protos"
     publish = Publish.NONE
     inceptionYear = "2021"
-    runApiTasks = new RunApiTasks.No("No public API required for internal use with app widgets.")
     description = "Protos for use with glance app widgets."
 }
 
diff --git a/glance/glance-appwidget-proto/src/main/proto/layout.proto b/glance/glance-appwidget-proto/src/main/proto/layout.proto
index 9685e81..fe5760a 100644
--- a/glance/glance-appwidget-proto/src/main/proto/layout.proto
+++ b/glance/glance-appwidget-proto/src/main/proto/layout.proto
@@ -25,6 +25,7 @@
   NodeIdentity identity = 8;
   bool hasAction = 9;
   repeated LayoutNode children = 7;
+  bool has_image_description = 10;
 }
 
 enum ContentScale {
diff --git a/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/LayoutSelection.kt b/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/LayoutSelection.kt
index 933c70a..e4ce545 100644
--- a/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/LayoutSelection.kt
+++ b/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/LayoutSelection.kt
@@ -128,6 +128,9 @@
     ImageCrop,
     ImageFit,
     ImageFillBounds,
+    ImageCropDecorative,
+    ImageFitDecorative,
+    ImageFillBoundsDecorative,
     RadioButton,
     RadioButtonBackport,
     RadioRow,
@@ -145,8 +148,11 @@
     LayoutType.SwtchBackport to R.layout.glance_swtch_backport,
     LayoutType.Frame to R.layout.glance_frame,
     LayoutType.ImageCrop to R.layout.glance_image_crop,
+    LayoutType.ImageCropDecorative to R.layout.glance_image_crop_decorative,
     LayoutType.ImageFit to R.layout.glance_image_fit,
+    LayoutType.ImageFitDecorative to R.layout.glance_image_fit_decorative,
     LayoutType.ImageFillBounds to R.layout.glance_image_fill_bounds,
+    LayoutType.ImageFillBoundsDecorative to R.layout.glance_image_fill_bounds_decorative,
     LayoutType.LinearProgressIndicator to R.layout.glance_linear_progress_indicator,
     LayoutType.CircularProgressIndicator to R.layout.glance_circular_progress_indicator,
     LayoutType.VerticalGridOneColumn to R.layout.glance_vertical_grid_one_column,
diff --git a/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/WidgetLayout.kt b/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/WidgetLayout.kt
index 91255d2..54daf92 100644
--- a/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/WidgetLayout.kt
+++ b/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/WidgetLayout.kt
@@ -38,13 +38,13 @@
 import androidx.glance.appwidget.lazy.EmittableLazyVerticalGrid
 import androidx.glance.appwidget.lazy.EmittableLazyVerticalGridListItem
 import androidx.glance.appwidget.proto.LayoutProto
-import androidx.glance.appwidget.proto.LayoutProto.LayoutConfig
 import androidx.glance.appwidget.proto.LayoutProto.LayoutDefinition
 import androidx.glance.appwidget.proto.LayoutProto.LayoutNode
 import androidx.glance.appwidget.proto.LayoutProto.LayoutType
 import androidx.glance.appwidget.proto.LayoutProto.NodeIdentity
 import androidx.glance.appwidget.proto.LayoutProtoSerializer
 import androidx.glance.findModifier
+import androidx.glance.isDecorative
 import androidx.glance.layout.Alignment
 import androidx.glance.layout.EmittableBox
 import androidx.glance.layout.EmittableColumn
@@ -252,6 +252,7 @@
         androidx.glance.layout.ContentScale.FillBounds -> LayoutProto.ContentScale.FILL_BOUNDS
         else -> error("Unknown content scale ${element.contentScale}")
     }
+    hasImageDescription = !element.isDecorative()
 }
 
 private fun LayoutNode.Builder.setColumnNode(element: EmittableColumn) {
diff --git a/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/translators/ImageTranslator.kt b/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/translators/ImageTranslator.kt
index f6d0ac2..2055f35 100644
--- a/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/translators/ImageTranslator.kt
+++ b/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/translators/ImageTranslator.kt
@@ -44,6 +44,7 @@
 import androidx.glance.appwidget.insertView
 import androidx.glance.color.DayNightColorProvider
 import androidx.glance.findModifier
+import androidx.glance.isDecorative
 import androidx.glance.layout.ContentScale
 import androidx.glance.layout.HeightModifier
 import androidx.glance.layout.WidthModifier
@@ -55,15 +56,7 @@
     translationContext: TranslationContext,
     element: EmittableImage
 ) {
-    val selector = when (element.contentScale) {
-        ContentScale.Crop -> LayoutType.ImageCrop
-        ContentScale.Fit -> LayoutType.ImageFit
-        ContentScale.FillBounds -> LayoutType.ImageFillBounds
-        else -> {
-            Log.w(GlanceAppWidgetTag, "Unsupported ContentScale user: ${element.contentScale}")
-            LayoutType.ImageFit
-        }
-    }
+    val selector = element.getLayoutSelector()
     val viewDef = insertView(translationContext, selector, element.modifier)
     when (val provider = element.provider) {
         is AndroidResourceImageProvider -> setImageViewResource(
@@ -89,6 +82,36 @@
     setImageViewAdjustViewBounds(viewDef.mainViewId, shouldAdjustViewBounds)
 }
 
+private fun EmittableImage.getLayoutSelector(): LayoutType {
+    // Defaults to "decorative" if semantics / contentDescription is not set or contentDescription
+    // is null or empty.
+    val isDecorative = isDecorative()
+    return when (contentScale) {
+        ContentScale.Crop -> if (isDecorative) {
+            LayoutType.ImageCropDecorative
+        } else {
+            LayoutType.ImageCrop
+        }
+
+        ContentScale.Fit -> if (isDecorative) {
+            LayoutType.ImageFitDecorative
+        } else {
+            LayoutType.ImageFit
+        }
+
+        ContentScale.FillBounds -> if (isDecorative) {
+            LayoutType.ImageFillBoundsDecorative
+        } else {
+            LayoutType.ImageFillBounds
+        }
+
+        else -> {
+            Log.w(GlanceAppWidgetTag, "Unsupported ContentScale user: $contentScale")
+            LayoutType.ImageFit
+        }
+    }
+}
+
 private fun applyColorFilter(
     translationContext: TranslationContext,
     rv: RemoteViews,
diff --git a/glance/glance-appwidget/src/main/res/layout/glance_image_crop_decorative.xml b/glance/glance-appwidget/src/main/res/layout/glance_image_crop_decorative.xml
new file mode 100644
index 0000000..710af77
--- /dev/null
+++ b/glance/glance-appwidget/src/main/res/layout/glance_image_crop_decorative.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?><!--
+  Copyright 2021 The Android Open Source Project
+
+  Licensed under the Apache License, Version 2.0 (the "License");
+  you may not use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+  -->
+
+<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    app:glance_isTopLevelLayout="true"
+    android:importantForAccessibility="no"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    android:scaleType="centerCrop" />
diff --git a/glance/glance-appwidget/src/main/res/layout/glance_image_fill_bounds_decorative.xml b/glance/glance-appwidget/src/main/res/layout/glance_image_fill_bounds_decorative.xml
new file mode 100644
index 0000000..cafd43a
--- /dev/null
+++ b/glance/glance-appwidget/src/main/res/layout/glance_image_fill_bounds_decorative.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?><!--
+  Copyright 2021 The Android Open Source Project
+
+  Licensed under the Apache License, Version 2.0 (the "License");
+  you may not use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+  -->
+
+<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    app:glance_isTopLevelLayout="true"
+    android:importantForAccessibility="no"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    android:scaleType="fitXY" />
diff --git a/glance/glance-appwidget/src/main/res/layout/glance_image_fit_decorative.xml b/glance/glance-appwidget/src/main/res/layout/glance_image_fit_decorative.xml
new file mode 100644
index 0000000..479a9fe
--- /dev/null
+++ b/glance/glance-appwidget/src/main/res/layout/glance_image_fit_decorative.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?><!--
+  Copyright 2021 The Android Open Source Project
+
+  Licensed under the Apache License, Version 2.0 (the "License");
+  you may not use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+  -->
+
+<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    app:glance_isTopLevelLayout="true"
+    android:importantForAccessibility="no"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    android:scaleType="fitCenter" />
diff --git a/glance/glance-appwidget/src/main/res/values-af/strings.xml b/glance/glance-appwidget/src/main/res/values-af/strings.xml
index 52c7f7e..8db967b 100644
--- a/glance/glance-appwidget/src/main/res/values-af/strings.xml
+++ b/glance/glance-appwidget/src/main/res/values-af/strings.xml
@@ -17,6 +17,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="glance_error_layout_title" msgid="2896109737634971880"><b>"Glance-programlegstukfout"</b></string>
-    <string name="glance_error_layout_text" msgid="8513923302775602854">"Gaan die presiese fout na deur "<b><tt>"adb logcat"</tt></b>" te gebruik en te soek na "<b><tt>"GlanceAppWidget"</tt></b></string>
+    <string name="glance_error_layout_title" msgid="3631961919234443531"><b>"Glance-applegstukfout"</b></string>
+    <string name="glance_error_layout_text" msgid="2863935784364843033">"Gaan die presiese fout na deur "<b><tt>"adb logcat"</tt></b>" te gebruik en te soek na "<b><tt>"GlanceAppWidget"</tt></b></string>
 </resources>
diff --git a/glance/glance-appwidget/src/main/res/values-am/strings.xml b/glance/glance-appwidget/src/main/res/values-am/strings.xml
index 91769bf..304c144 100644
--- a/glance/glance-appwidget/src/main/res/values-am/strings.xml
+++ b/glance/glance-appwidget/src/main/res/values-am/strings.xml
@@ -17,6 +17,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="glance_error_layout_title" msgid="2896109737634971880"><b>"የGlance መተግበሪያ ምግብር ስህተት"</b></string>
-    <string name="glance_error_layout_text" msgid="8513923302775602854"><b><tt>"GlanceAppWidet"</tt></b>"ን እየፈለጉ ሳለ "<b><tt>"adb logcat "</tt></b>"ን በመጠቀም ትክክለኛውን ስህተት ያጣሩ"</string>
+    <string name="glance_error_layout_title" msgid="3631961919234443531"><b>"የGlance መተግበሪያ ምግብር ስህተት"</b></string>
+    <string name="glance_error_layout_text" msgid="2863935784364843033"><b><tt>"GlanceAppWidet"</tt></b>" እየፈለጉ ሳለ "<b><tt>"adb logcat "</tt></b>" በመጠቀም ትክክለኛውን ስህተት ያጣሩ"</string>
 </resources>
diff --git a/glance/glance-appwidget/src/main/res/values-ar/strings.xml b/glance/glance-appwidget/src/main/res/values-ar/strings.xml
index ca5257b..19f7f44 100644
--- a/glance/glance-appwidget/src/main/res/values-ar/strings.xml
+++ b/glance/glance-appwidget/src/main/res/values-ar/strings.xml
@@ -17,6 +17,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="glance_error_layout_title" msgid="2896109737634971880">"‏"<b>"خطأ في أداة تطبيق Glance"</b></string>
-    <string name="glance_error_layout_text" msgid="8513923302775602854">"‏تحقَّق من الخطأ بالضبط باستخدام "<b><tt>"أداة سطر الأوامر adb logcat"</tt></b>"، من خلال البحث عن "<b><tt>"GlanceAppWidget"</tt></b>"."</string>
+    <string name="glance_error_layout_title" msgid="3631961919234443531">"‏"<b>"خطأ في التطبيق المصغّر Glance"</b></string>
+    <string name="glance_error_layout_text" msgid="2863935784364843033">"‏تأكَّد من الخطأ بالضبط باستخدام "<b><tt>"أداة adb logcat"</tt></b>"، من خلال البحث عن "<b><tt>"GlanceAppWidget"</tt></b>"."</string>
 </resources>
diff --git a/glance/glance-appwidget/src/main/res/values-as/strings.xml b/glance/glance-appwidget/src/main/res/values-as/strings.xml
deleted file mode 100644
index 306a7ec..0000000
--- a/glance/glance-appwidget/src/main/res/values-as/strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  Copyright 2021 The Android Open Source Project
-
-  Licensed under the Apache License, Version 2.0 (the "License");
-  you may not use this file except in compliance with the License.
-  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT 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="glance_error_layout_title" msgid="2896109737634971880"><b>"Glance এপৰ ৱিজেটৰ আসোঁৱাহ"</b></string>
-    <string name="glance_error_layout_text" msgid="8513923302775602854"><b><tt>"GlanceAppWidget"</tt></b>" বিচৰা সময়ত "<b><tt>"adb logcat"</tt></b>" ব্যৱহাৰ কৰি সঠিক আসোঁৱাহটো পৰীক্ষা কৰক"</string>
-</resources>
diff --git a/glance/glance-appwidget/src/main/res/values-az/strings.xml b/glance/glance-appwidget/src/main/res/values-az/strings.xml
index 627b8b1..2508aa2 100644
--- a/glance/glance-appwidget/src/main/res/values-az/strings.xml
+++ b/glance/glance-appwidget/src/main/res/values-az/strings.xml
@@ -17,6 +17,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="glance_error_layout_title" msgid="2896109737634971880"><b>"Glance Tətbiq Vidceti Xətası"</b></string>
-    <string name="glance_error_layout_text" msgid="8513923302775602854"><b><tt>"Adb logcat"</tt></b>" istifadə edərək, "<b><tt>"GlanceAppWidget"</tt></b>" axtararaq dəqiq xətanı yoxlayın"</string>
+    <string name="glance_error_layout_title" msgid="3631961919234443531"><b>"Glance tətbiq vidceti xətası"</b></string>
+    <string name="glance_error_layout_text" msgid="2863935784364843033"><b><tt>"Adb logcat"</tt></b>" istifadə edərək, "<b><tt>"GlanceAppWidget"</tt></b>" axtararaq dəqiq xətanı yoxlayın"</string>
 </resources>
diff --git a/glance/glance-appwidget/src/main/res/values-b+sr+Latn/strings.xml b/glance/glance-appwidget/src/main/res/values-b+sr+Latn/strings.xml
index bea1af0..474820d 100644
--- a/glance/glance-appwidget/src/main/res/values-b+sr+Latn/strings.xml
+++ b/glance/glance-appwidget/src/main/res/values-b+sr+Latn/strings.xml
@@ -17,6 +17,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="glance_error_layout_title" msgid="2896109737634971880"><b>"Greška u vezi sa vidžetom aplikacije Glance"</b></string>
-    <string name="glance_error_layout_text" msgid="8513923302775602854">"Proverite u čemu je tačno greška koristeći "<b><tt>"adb logcat"</tt></b>" dok tražite "<b><tt>"GlanceAppWidget"</tt></b></string>
+    <string name="glance_error_layout_title" msgid="3631961919234443531"><b>"Greška u vezi sa vidžetom aplikacije Glance"</b></string>
+    <string name="glance_error_layout_text" msgid="2863935784364843033">"Proverite u čemu je tačno greška pomoću stavke"<b><tt>"adb logcat"</tt></b>", tražeći stavku "<b><tt>"GlanceAppWidget"</tt></b></string>
 </resources>
diff --git a/glance/glance-appwidget/src/main/res/values-be/strings.xml b/glance/glance-appwidget/src/main/res/values-be/strings.xml
index e1b2f4e..416d581 100644
--- a/glance/glance-appwidget/src/main/res/values-be/strings.xml
+++ b/glance/glance-appwidget/src/main/res/values-be/strings.xml
@@ -17,6 +17,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="glance_error_layout_title" msgid="2896109737634971880"><b>"Памылка Glance App Widget"</b></string>
-    <string name="glance_error_layout_text" msgid="8513923302775602854">"Вызначыце дакладную памылку з дапамогай "<b><tt>"adb logcat"</tt></b>", увёўшы ў якасці пошукавага запыту "<b><tt>"GlanceAppWidget"</tt></b></string>
+    <string name="glance_error_layout_title" msgid="3631961919234443531"><b>"Памылка Glance App Widget"</b></string>
+    <string name="glance_error_layout_text" msgid="2863935784364843033">"Вызначыце дакладную памылку з дапамогай "<b><tt>"adb logcat"</tt></b>", увёўшы ў якасці пошукавага запыту "<b><tt>"GlanceAppWidget"</tt></b></string>
 </resources>
diff --git a/glance/glance-appwidget/src/main/res/values-bg/strings.xml b/glance/glance-appwidget/src/main/res/values-bg/strings.xml
index 81d80ae..ba3b6a8 100644
--- a/glance/glance-appwidget/src/main/res/values-bg/strings.xml
+++ b/glance/glance-appwidget/src/main/res/values-bg/strings.xml
@@ -17,6 +17,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="glance_error_layout_title" msgid="2896109737634971880"><b>"Грешка в присоблението за приложението Glance"</b></string>
-    <string name="glance_error_layout_text" msgid="8513923302775602854">"Проверете точната грешка посредством "<b><tt>"adb logcat"</tt></b>", като потърсите "<b><tt>"GlanceAppWidget"</tt></b></string>
+    <string name="glance_error_layout_title" msgid="3631961919234443531"><b>"Грешка в приспособлението за приложението Glance"</b></string>
+    <string name="glance_error_layout_text" msgid="2863935784364843033">"Проверете точната грешка посредством "<b><tt>"adb logcat"</tt></b>", като потърсите "<b><tt>"GlanceAppWidget"</tt></b></string>
 </resources>
diff --git a/glance/glance-appwidget/src/main/res/values-bn/strings.xml b/glance/glance-appwidget/src/main/res/values-bn/strings.xml
deleted file mode 100644
index 510bb87..0000000
--- a/glance/glance-appwidget/src/main/res/values-bn/strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  Copyright 2021 The Android Open Source Project
-
-  Licensed under the Apache License, Version 2.0 (the "License");
-  you may not use this file except in compliance with the License.
-  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT 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="glance_error_layout_title" msgid="2896109737634971880"><b>"Glance App উইজেট সংক্রান্ত সমস্যা"</b></string>
-    <string name="glance_error_layout_text" msgid="8513923302775602854">"আসল সমস্যাটি কী তা "<b><tt>"adb logcat"</tt></b>"-এর সাহায্যে চেক করুন, "<b><tt>"GlanceAppWidget"</tt></b>"-এর জন্য সার্চ করা হচ্ছে"</string>
-</resources>
diff --git a/glance/glance-appwidget/src/main/res/values-bs/strings.xml b/glance/glance-appwidget/src/main/res/values-bs/strings.xml
index 2fd3f6f..111f2bc 100644
--- a/glance/glance-appwidget/src/main/res/values-bs/strings.xml
+++ b/glance/glance-appwidget/src/main/res/values-bs/strings.xml
@@ -17,6 +17,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="glance_error_layout_title" msgid="2896109737634971880"><b>"Greška vidžeta aplikacije Glance"</b></string>
-    <string name="glance_error_layout_text" msgid="8513923302775602854">"Provjerite konkretnu grešku koristeći "<b><tt>"adb logcat"</tt></b>", traženjem "<b><tt>"GlanceAppWidget"</tt></b></string>
+    <string name="glance_error_layout_title" msgid="3631961919234443531"><b>"Pogreška widgeta aplikacije Kratki pregled"</b></string>
+    <string name="glance_error_layout_text" msgid="2863935784364843033">"Konkretnu pogrešku provjerite koristeći "<b><tt>"adb logcat"</tt></b>" i potražite "<b><tt>"GlanceAppWidget"</tt></b></string>
 </resources>
diff --git a/glance/glance-appwidget/src/main/res/values-ca/strings.xml b/glance/glance-appwidget/src/main/res/values-ca/strings.xml
index dfadde4..3ac2b31 100644
--- a/glance/glance-appwidget/src/main/res/values-ca/strings.xml
+++ b/glance/glance-appwidget/src/main/res/values-ca/strings.xml
@@ -17,6 +17,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="glance_error_layout_title" msgid="2896109737634971880"><b>"Error del widget de l\'aplicació de Glance"</b></string>
-    <string name="glance_error_layout_text" msgid="8513923302775602854">"Consulta l\'error exacte fent servir "<b><tt>"adb logcat"</tt></b>" i cercant "<b><tt>"GlanceAppWidget"</tt></b></string>
+    <string name="glance_error_layout_title" msgid="3631961919234443531"><b>"Error de Glance App Widget"</b></string>
+    <string name="glance_error_layout_text" msgid="2863935784364843033">"Consulta l\'error exacte fent servir "<b><tt>"adb logcat"</tt></b>" i cercant "<b><tt>"GlanceAppWidget"</tt></b></string>
 </resources>
diff --git a/glance/glance-appwidget/src/main/res/values-cs/strings.xml b/glance/glance-appwidget/src/main/res/values-cs/strings.xml
index 7e50122..5aea363 100644
--- a/glance/glance-appwidget/src/main/res/values-cs/strings.xml
+++ b/glance/glance-appwidget/src/main/res/values-cs/strings.xml
@@ -17,6 +17,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="glance_error_layout_title" msgid="2896109737634971880"><b>"Chyba widgetu aplikace Glance"</b></string>
-    <string name="glance_error_layout_text" msgid="8513923302775602854">"Pomocí "<b><tt>"adb logcat"</tt></b>" zkontrolujte přesné znění chyby: vyhledejte "<b><tt>"GlanceAppWidget"</tt></b></string>
+    <string name="glance_error_layout_title" msgid="3631961919234443531"><b>"Chyba widgetu aplikace Glance"</b></string>
+    <string name="glance_error_layout_text" msgid="2863935784364843033">"Pomocí "<b><tt>"adb logcat"</tt></b>" zkontrolujte přesné znění chyby: vyhledejte "<b><tt>"GlanceAppWidget"</tt></b></string>
 </resources>
diff --git a/glance/glance-appwidget/src/main/res/values-da/strings.xml b/glance/glance-appwidget/src/main/res/values-da/strings.xml
index 6ebcd29..d86098e 100644
--- a/glance/glance-appwidget/src/main/res/values-da/strings.xml
+++ b/glance/glance-appwidget/src/main/res/values-da/strings.xml
@@ -17,6 +17,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="glance_error_layout_title" msgid="2896109737634971880"><b>"Fejl i appwidgetten Glance"</b></string>
-    <string name="glance_error_layout_text" msgid="8513923302775602854">"Brug "<b><tt>"adb logcat"</tt></b>" til at tjekke den specifikke fejl ved at søge efter "<b><tt>"GlanceAppWidget"</tt></b></string>
+    <string name="glance_error_layout_title" msgid="3631961919234443531"><b>"Fejl i appwidgetten Glance"</b></string>
+    <string name="glance_error_layout_text" msgid="2863935784364843033">"Brug "<b><tt>"adb logcat"</tt></b>" til at tjekke den specifikke fejl ved at søge efter "<b><tt>"GlanceAppWidget"</tt></b></string>
 </resources>
diff --git a/glance/glance-appwidget/src/main/res/values-de/strings.xml b/glance/glance-appwidget/src/main/res/values-de/strings.xml
index c802dd3..9a97c49 100644
--- a/glance/glance-appwidget/src/main/res/values-de/strings.xml
+++ b/glance/glance-appwidget/src/main/res/values-de/strings.xml
@@ -17,6 +17,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="glance_error_layout_title" msgid="2896109737634971880"><b>"„Glance App Widget“-Fehler"</b></string>
-    <string name="glance_error_layout_text" msgid="8513923302775602854">"Prüfe den genauen Fehler mithilfe von "<b><tt>"adb logcat"</tt></b>" und suche dabei nach "<b><tt>"GlanceAppWidget"</tt></b></string>
+    <string name="glance_error_layout_title" msgid="3631961919234443531"><b>"„Glance App Widget“-Fehler"</b></string>
+    <string name="glance_error_layout_text" msgid="2863935784364843033">"Prüfe den genauen Fehler mithilfe von "<b><tt>"adb logcat"</tt></b>" und suche dabei nach "<b><tt>"GlanceAppWidget"</tt></b></string>
 </resources>
diff --git a/glance/glance-appwidget/src/main/res/values-el/strings.xml b/glance/glance-appwidget/src/main/res/values-el/strings.xml
index 4b7df5a..b627659 100644
--- a/glance/glance-appwidget/src/main/res/values-el/strings.xml
+++ b/glance/glance-appwidget/src/main/res/values-el/strings.xml
@@ -17,6 +17,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="glance_error_layout_title" msgid="2896109737634971880"><b>"Σφάλμα γραφικού στοιχείου εφαρμογής Glance"</b></string>
-    <string name="glance_error_layout_text" msgid="8513923302775602854">"Ελέγξτε το ακριβές σφάλμα χρησιμοποιώντας το "<b><tt>"adb logcat"</tt></b>" και αναζητώντας το στοιχείο "<b><tt>"GlanceAppWidget"</tt></b></string>
+    <string name="glance_error_layout_title" msgid="3631961919234443531"><b>"Σφάλμα γραφικού στοιχείου εφαρμογής Glance"</b></string>
+    <string name="glance_error_layout_text" msgid="2863935784364843033">"Ελέγξτε το ακριβές σφάλμα χρησιμοποιώντας το "<b><tt>"adb logcat"</tt></b>" και αναζητώντας το στοιχείο "<b><tt>"GlanceAppWidget"</tt></b></string>
 </resources>
diff --git a/glance/glance-appwidget/src/main/res/values-en-rAU/strings.xml b/glance/glance-appwidget/src/main/res/values-en-rAU/strings.xml
index cde96ea..6c19aec 100644
--- a/glance/glance-appwidget/src/main/res/values-en-rAU/strings.xml
+++ b/glance/glance-appwidget/src/main/res/values-en-rAU/strings.xml
@@ -17,6 +17,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="glance_error_layout_title" msgid="2896109737634971880"><b>"Glance app widget error"</b></string>
-    <string name="glance_error_layout_text" msgid="8513923302775602854">"Check the exact error using "<b><tt>"adb Logcat"</tt></b>", searching for "<b><tt>"GlanceAppWidget"</tt></b></string>
+    <string name="glance_error_layout_title" msgid="3631961919234443531"><b>"Glance app widget error"</b></string>
+    <string name="glance_error_layout_text" msgid="2863935784364843033">"Check the exact error using "<b><tt>"adb Logcat"</tt></b>", searching for "<b><tt>"GlanceAppWidget"</tt></b></string>
 </resources>
diff --git a/glance/glance-appwidget/src/main/res/values-en-rCA/strings.xml b/glance/glance-appwidget/src/main/res/values-en-rCA/strings.xml
index c7ef8be7..463e089 100644
--- a/glance/glance-appwidget/src/main/res/values-en-rCA/strings.xml
+++ b/glance/glance-appwidget/src/main/res/values-en-rCA/strings.xml
@@ -17,6 +17,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="glance_error_layout_title" msgid="2896109737634971880"><b>"Glance App Widget Error"</b></string>
-    <string name="glance_error_layout_text" msgid="8513923302775602854">"Check the exact error using "<b><tt>"adb logcat"</tt></b>", searching for "<b><tt>"GlanceAppWidget"</tt></b></string>
+    <string name="glance_error_layout_title" msgid="3631961919234443531"><b>"Glance App Widget Error"</b></string>
+    <string name="glance_error_layout_text" msgid="2863935784364843033">"Check the exact error using "<b><tt>"adb logcat"</tt></b>", searching for "<b><tt>"GlanceAppWidget"</tt></b></string>
 </resources>
diff --git a/glance/glance-appwidget/src/main/res/values-en-rGB/strings.xml b/glance/glance-appwidget/src/main/res/values-en-rGB/strings.xml
index cde96ea..6c19aec 100644
--- a/glance/glance-appwidget/src/main/res/values-en-rGB/strings.xml
+++ b/glance/glance-appwidget/src/main/res/values-en-rGB/strings.xml
@@ -17,6 +17,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="glance_error_layout_title" msgid="2896109737634971880"><b>"Glance app widget error"</b></string>
-    <string name="glance_error_layout_text" msgid="8513923302775602854">"Check the exact error using "<b><tt>"adb Logcat"</tt></b>", searching for "<b><tt>"GlanceAppWidget"</tt></b></string>
+    <string name="glance_error_layout_title" msgid="3631961919234443531"><b>"Glance app widget error"</b></string>
+    <string name="glance_error_layout_text" msgid="2863935784364843033">"Check the exact error using "<b><tt>"adb Logcat"</tt></b>", searching for "<b><tt>"GlanceAppWidget"</tt></b></string>
 </resources>
diff --git a/glance/glance-appwidget/src/main/res/values-en-rIN/strings.xml b/glance/glance-appwidget/src/main/res/values-en-rIN/strings.xml
index cde96ea..6c19aec 100644
--- a/glance/glance-appwidget/src/main/res/values-en-rIN/strings.xml
+++ b/glance/glance-appwidget/src/main/res/values-en-rIN/strings.xml
@@ -17,6 +17,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="glance_error_layout_title" msgid="2896109737634971880"><b>"Glance app widget error"</b></string>
-    <string name="glance_error_layout_text" msgid="8513923302775602854">"Check the exact error using "<b><tt>"adb Logcat"</tt></b>", searching for "<b><tt>"GlanceAppWidget"</tt></b></string>
+    <string name="glance_error_layout_title" msgid="3631961919234443531"><b>"Glance app widget error"</b></string>
+    <string name="glance_error_layout_text" msgid="2863935784364843033">"Check the exact error using "<b><tt>"adb Logcat"</tt></b>", searching for "<b><tt>"GlanceAppWidget"</tt></b></string>
 </resources>
diff --git a/glance/glance-appwidget/src/main/res/values-en-rXC/strings.xml b/glance/glance-appwidget/src/main/res/values-en-rXC/strings.xml
index d1a15b5..b8cf6b8 100644
--- a/glance/glance-appwidget/src/main/res/values-en-rXC/strings.xml
+++ b/glance/glance-appwidget/src/main/res/values-en-rXC/strings.xml
@@ -17,6 +17,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="glance_error_layout_title" msgid="2896109737634971880">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‏‎‎‎‎‎‏‏‎‎‎‏‎‎‎‎‏‏‎‎‎‏‏‏‎‏‏‎‎‏‎‎‏‏‏‎‎‏‎‎‏‎‎‎‎‏‎‎‎‎‎‎‏‏‏‎‏‎‎‎‎‎‏‎‎‏‏‎"<b>"‎‏‎‎‏‏‏‎Glance App Widget Error‎‏‎‎‏‏‎"</b>"‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
-    <string name="glance_error_layout_text" msgid="8513923302775602854">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‏‏‎‎‎‏‎‎‏‏‏‏‎‎‎‏‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‎‏‎‏‏‎‏‏‏‎‎‎‎‏‏‏‏‏‎‏‎‏‎‎‏‏‎‎Check the exact error using ‎‏‎‎‏‏‎"<b>"‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎"<tt>"‎‏‎‎‏‏‏‎adb logcat‎‏‎‎‏‏‎"</tt>"‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎"</b>"‎‏‎‎‏‏‏‎, searching for ‎‏‎‎‏‏‎"<b>"‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎"<tt>"‎‏‎‎‏‏‏‎GlanceAppWidget‎‏‎‎‏‏‎"</tt>"‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎"</b>"‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
+    <string name="glance_error_layout_title" msgid="3631961919234443531">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‎‎‏‎‎‏‏‎‎‏‏‏‎‏‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‎‎‎‎‏‏‎‏‏‎‏‏‏‎‎‎‎‏‎‎‏‎‎‎‎‏‎‏‏‎‎‏‎‎‏‏‎"<b>"‎‏‎‎‏‏‏‎Glance App Widget Error‎‏‎‎‏‏‎"</b>"‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
+    <string name="glance_error_layout_text" msgid="2863935784364843033">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‎‏‏‏‏‎‏‏‏‏‏‎‏‎‏‏‏‏‏‎‎‏‏‎‏‏‎‎‎‎‎‎‏‏‏‎‏‎‎‏‏‎‎‎‏‎‏‎‎‎‎‎‎‎‎‏‏‎‎‏‎Check the exact error using ‎‏‎‎‏‏‎"<b>"‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎"<tt>"‎‏‎‎‏‏‏‎adb logcat‎‏‎‎‏‏‎"</tt>"‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎"</b>"‎‏‎‎‏‏‏‎, searching for ‎‏‎‎‏‏‎"<b>"‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎"<tt>"‎‏‎‎‏‏‏‎GlanceAppWidget‎‏‎‎‏‏‎"</tt>"‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎"</b>"‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
 </resources>
diff --git a/glance/glance-appwidget/src/main/res/values-es-rUS/strings.xml b/glance/glance-appwidget/src/main/res/values-es-rUS/strings.xml
index 67045c8..d718ec3 100644
--- a/glance/glance-appwidget/src/main/res/values-es-rUS/strings.xml
+++ b/glance/glance-appwidget/src/main/res/values-es-rUS/strings.xml
@@ -17,6 +17,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="glance_error_layout_title" msgid="2896109737634971880"><b>"Error en widget de la app de Glance"</b></string>
-    <string name="glance_error_layout_text" msgid="8513923302775602854">"Para ver el error exacto, usa "<b><tt>"adb logcat"</tt></b>" y busca "<b><tt>"GlanceAppWidget"</tt></b></string>
+    <string name="glance_error_layout_title" msgid="3631961919234443531"><b>"Error en widget de la app de Glance"</b></string>
+    <string name="glance_error_layout_text" msgid="2863935784364843033">"Para ver el error exacto, usa "<b><tt>"adb logcat"</tt></b>" y busca "<b><tt>"GlanceAppWidget"</tt></b></string>
 </resources>
diff --git a/glance/glance-appwidget/src/main/res/values-es/strings.xml b/glance/glance-appwidget/src/main/res/values-es/strings.xml
index a0e8944..9f52cf0 100644
--- a/glance/glance-appwidget/src/main/res/values-es/strings.xml
+++ b/glance/glance-appwidget/src/main/res/values-es/strings.xml
@@ -17,6 +17,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="glance_error_layout_title" msgid="2896109737634971880"><b>"Error del widget de aplicación de Glance"</b></string>
-    <string name="glance_error_layout_text" msgid="8513923302775602854">"Revisa el error exacto mediante "<b><tt>"adb logcat"</tt></b>" y buscando "<b><tt>"GlanceAppWidget"</tt></b></string>
+    <string name="glance_error_layout_title" msgid="3631961919234443531"><b>"Error del widget de la aplicación Glance"</b></string>
+    <string name="glance_error_layout_text" msgid="2863935784364843033">"Revisa el error exacto mediante "<b><tt>"adb logcat"</tt></b>" y buscando "<b><tt>"GlanceAppWidget"</tt></b></string>
 </resources>
diff --git a/glance/glance-appwidget/src/main/res/values-et/strings.xml b/glance/glance-appwidget/src/main/res/values-et/strings.xml
deleted file mode 100644
index 7b270a8..0000000
--- a/glance/glance-appwidget/src/main/res/values-et/strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  Copyright 2021 The Android Open Source Project
-
-  Licensed under the Apache License, Version 2.0 (the "License");
-  you may not use this file except in compliance with the License.
-  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT 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="glance_error_layout_title" msgid="2896109737634971880"><b>"Rakenduse Ülevaade vidina viga"</b></string>
-    <string name="glance_error_layout_text" msgid="8513923302775602854">"Kontrollige konkreetset viga tööriistaga "<b><tt>"adb logcat"</tt></b>", sisestades otsingu "<b><tt>"GlanceAppWidget"</tt></b></string>
-</resources>
diff --git a/glance/glance-appwidget/src/main/res/values-eu/strings.xml b/glance/glance-appwidget/src/main/res/values-eu/strings.xml
deleted file mode 100644
index 2b51f1f..0000000
--- a/glance/glance-appwidget/src/main/res/values-eu/strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  Copyright 2021 The Android Open Source Project
-
-  Licensed under the Apache License, Version 2.0 (the "License");
-  you may not use this file except in compliance with the License.
-  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT 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="glance_error_layout_title" msgid="2896109737634971880"><b>"Glance aplikazioaren widgetaren errorea"</b></string>
-    <string name="glance_error_layout_text" msgid="8513923302775602854">"Errore jakin hori ikusteko, erabili "<b><tt>"adb logcat"</tt></b>" bertan "<b><tt>"GlanceAppWidget"</tt></b>" bilatzeko"</string>
-</resources>
diff --git a/glance/glance-appwidget/src/main/res/values-fa/strings.xml b/glance/glance-appwidget/src/main/res/values-fa/strings.xml
index 064513f..c462873 100644
--- a/glance/glance-appwidget/src/main/res/values-fa/strings.xml
+++ b/glance/glance-appwidget/src/main/res/values-fa/strings.xml
@@ -17,6 +17,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="glance_error_layout_title" msgid="2896109737634971880">"‏"<b>"خطا در ابزارک برنامه Glance"</b></string>
-    <string name="glance_error_layout_text" msgid="8513923302775602854">"‏بااستفاده از "<b><tt>"adb logcat"</tt></b>" و جستجوی "<b><tt>"GlanceAppWidget"</tt></b>"، خطا را به‌طور دقیق بررسی کنید"</string>
+    <string name="glance_error_layout_title" msgid="3631961919234443531">"‏"<b>"خطا در ابزارک برنامه Glance"</b></string>
+    <string name="glance_error_layout_text" msgid="2863935784364843033">"‏بااستفاده از "<b><tt>"adb logcat"</tt></b>" و جستجوی "<b><tt>"GlanceAppWidget"</tt></b>"، خطا را به‌طور دقیق بررسی کنید"</string>
 </resources>
diff --git a/glance/glance-appwidget/src/main/res/values-fi/strings.xml b/glance/glance-appwidget/src/main/res/values-fi/strings.xml
index 66fb3aa..6ab1e71 100644
--- a/glance/glance-appwidget/src/main/res/values-fi/strings.xml
+++ b/glance/glance-appwidget/src/main/res/values-fi/strings.xml
@@ -17,6 +17,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="glance_error_layout_title" msgid="2896109737634971880"><b>"Virhe Glance-sovelluswidgetissä"</b></string>
-    <string name="glance_error_layout_text" msgid="8513923302775602854">"Tarkista tarkka virhe "<b><tt>"adb logcat"</tt></b>" ‑komennolla. Tee sitä varten haku "<b><tt>"GlanceAppWidget"</tt></b></string>
+    <string name="glance_error_layout_title" msgid="3631961919234443531"><b>"Virhe Glance-sovelluswidgetissä"</b></string>
+    <string name="glance_error_layout_text" msgid="2863935784364843033">"Tarkista tarkka virhe "<b><tt>"adb logcat"</tt></b>" ‑komennolla. Tee sitä varten haku "<b><tt>"GlanceAppWidget"</tt></b></string>
 </resources>
diff --git a/glance/glance-appwidget/src/main/res/values-fr-rCA/strings.xml b/glance/glance-appwidget/src/main/res/values-fr-rCA/strings.xml
deleted file mode 100644
index fb1df12..0000000
--- a/glance/glance-appwidget/src/main/res/values-fr-rCA/strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  Copyright 2021 The Android Open Source Project
-
-  Licensed under the Apache License, Version 2.0 (the "License");
-  you may not use this file except in compliance with the License.
-  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT 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="glance_error_layout_title" msgid="2896109737634971880"><b>"Erreur provenant de la librairie Glance App Widget"</b></string>
-    <string name="glance_error_layout_text" msgid="8513923302775602854">"Vérifiez l\'erreur exacte en utilisant "<b><tt>"adb logcat"</tt></b>", en recherchant "<b><tt>"GlanceAppWidget"</tt></b></string>
-</resources>
diff --git a/glance/glance-appwidget/src/main/res/values-fr/strings.xml b/glance/glance-appwidget/src/main/res/values-fr/strings.xml
index ca7a66a..2679e31 100644
--- a/glance/glance-appwidget/src/main/res/values-fr/strings.xml
+++ b/glance/glance-appwidget/src/main/res/values-fr/strings.xml
@@ -17,6 +17,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="glance_error_layout_title" msgid="2896109737634971880"><b>"Erreur du widget de l\'appli Aperçu"</b></string>
-    <string name="glance_error_layout_text" msgid="8513923302775602854">"Vous pouvez utiliser "<b><tt>"adb logcat"</tt></b>" pour connaître l\'erreur exacte lorsque vous recherchez "<b><tt>"GlanceAppWidget"</tt></b></string>
+    <string name="glance_error_layout_title" msgid="3631961919234443531"><b>"Erreur du widget de l\'appli Aperçu"</b></string>
+    <string name="glance_error_layout_text" msgid="2863935784364843033">"Vous pouvez utiliser "<b><tt>"adb logcat"</tt></b>" pour connaître l\'erreur exacte lorsque vous recherchez "<b><tt>"GlanceAppWidget"</tt></b></string>
 </resources>
diff --git a/glance/glance-appwidget/src/main/res/values-gl/strings.xml b/glance/glance-appwidget/src/main/res/values-gl/strings.xml
deleted file mode 100644
index 6173809..0000000
--- a/glance/glance-appwidget/src/main/res/values-gl/strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  Copyright 2021 The Android Open Source Project
-
-  Licensed under the Apache License, Version 2.0 (the "License");
-  you may not use this file except in compliance with the License.
-  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT 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="glance_error_layout_title" msgid="2896109737634971880"><b>"Produciuse un erro do widget da aplicación Glance"</b></string>
-    <string name="glance_error_layout_text" msgid="8513923302775602854">"Comproba o erro exacto usando "<b><tt>"adb logcat"</tt></b>" e buscando "<b><tt>"GlanceAppWidget"</tt></b></string>
-</resources>
diff --git a/glance/glance-appwidget/src/main/res/values-gu/strings.xml b/glance/glance-appwidget/src/main/res/values-gu/strings.xml
deleted file mode 100644
index e0bf873..0000000
--- a/glance/glance-appwidget/src/main/res/values-gu/strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  Copyright 2021 The Android Open Source Project
-
-  Licensed under the Apache License, Version 2.0 (the "License");
-  you may not use this file except in compliance with the License.
-  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT 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="glance_error_layout_title" msgid="2896109737634971880"><b>"Glance ઍપ વિજેટમાં ભૂલ"</b></string>
-    <string name="glance_error_layout_text" msgid="8513923302775602854"><b><tt>"adb logcat"</tt></b>"નો ઉપયોગ કરીને, "<b><tt>"GlanceAppWidget"</tt></b>" શોધીને ચોક્કસ ભૂલ ચેક કરો"</string>
-</resources>
diff --git a/glance/glance-appwidget/src/main/res/values-hi/strings.xml b/glance/glance-appwidget/src/main/res/values-hi/strings.xml
index bf53a37..5abc224 100644
--- a/glance/glance-appwidget/src/main/res/values-hi/strings.xml
+++ b/glance/glance-appwidget/src/main/res/values-hi/strings.xml
@@ -17,6 +17,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="glance_error_layout_title" msgid="2896109737634971880"><b>"Glance App Widget से जुड़ी गड़बड़ी"</b></string>
-    <string name="glance_error_layout_text" msgid="8513923302775602854"><b><tt>"adb logcat"</tt></b>" की मदद से, "<b><tt>"GlanceAppWidget"</tt></b>" को ढूंढकर असल गड़बड़ी का पता लगाएं"</string>
+    <string name="glance_error_layout_title" msgid="3631961919234443531"><b>"Glance App Widget की गड़बड़ी"</b></string>
+    <string name="glance_error_layout_text" msgid="2863935784364843033"><b><tt>"adb logcat"</tt></b>" की मदद से, "<b><tt>"GlanceAppWidget"</tt></b>" को ढूंढकर असल गड़बड़ी का पता लगाएं"</string>
 </resources>
diff --git a/glance/glance-appwidget/src/main/res/values-hr/strings.xml b/glance/glance-appwidget/src/main/res/values-hr/strings.xml
index df3f83e..111f2bc 100644
--- a/glance/glance-appwidget/src/main/res/values-hr/strings.xml
+++ b/glance/glance-appwidget/src/main/res/values-hr/strings.xml
@@ -17,6 +17,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="glance_error_layout_title" msgid="2896109737634971880"><b>"Pogreška widgeta aplikacije Kratki pregled"</b></string>
-    <string name="glance_error_layout_text" msgid="8513923302775602854">"Konkretnu pogrešku provjerite koristeći "<b><tt>"adb logcat"</tt></b>" dok tražite "<b><tt>"GlanceAppWidget"</tt></b></string>
+    <string name="glance_error_layout_title" msgid="3631961919234443531"><b>"Pogreška widgeta aplikacije Kratki pregled"</b></string>
+    <string name="glance_error_layout_text" msgid="2863935784364843033">"Konkretnu pogrešku provjerite koristeći "<b><tt>"adb logcat"</tt></b>" i potražite "<b><tt>"GlanceAppWidget"</tt></b></string>
 </resources>
diff --git a/glance/glance-appwidget/src/main/res/values-hu/strings.xml b/glance/glance-appwidget/src/main/res/values-hu/strings.xml
index a5e707b..aba3801 100644
--- a/glance/glance-appwidget/src/main/res/values-hu/strings.xml
+++ b/glance/glance-appwidget/src/main/res/values-hu/strings.xml
@@ -17,6 +17,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="glance_error_layout_title" msgid="2896109737634971880"><b>"Glance alkalmazásmodul hiba"</b></string>
-    <string name="glance_error_layout_text" msgid="8513923302775602854">"Ellenőrizze az adott hibát az "<b><tt>"adb logcat"</tt></b>" paranccsal a "<b><tt>"GlanceAppWidget"</tt></b>" modulra kereséskor"</string>
+    <string name="glance_error_layout_title" msgid="3631961919234443531"><b>"Hiba a Glance alkalmazásmodulnál"</b></string>
+    <string name="glance_error_layout_text" msgid="2863935784364843033">"Ellenőrizze a pontos hibát az "<b><tt>"adb logcat"</tt></b>" paranccsal, a "<b><tt>"GlanceAppWidget"</tt></b>" modulra keresve"</string>
 </resources>
diff --git a/glance/glance-appwidget/src/main/res/values-hy/strings.xml b/glance/glance-appwidget/src/main/res/values-hy/strings.xml
index 34e399e..036c2d9 100644
--- a/glance/glance-appwidget/src/main/res/values-hy/strings.xml
+++ b/glance/glance-appwidget/src/main/res/values-hy/strings.xml
@@ -17,6 +17,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="glance_error_layout_title" msgid="2896109737634971880"><b>"«Հակիրճ գլխավորի մասին» վիջեթի սխալ"</b></string>
-    <string name="glance_error_layout_text" msgid="8513923302775602854">"Ստուգեք, թե իրականում ինչ սխալ է տեղի ունեցել, "<b><tt>"adb logcat"</tt></b>"-ի միջոցով՝ որոնելով "<b><tt>"GlanceAppWidget"</tt></b>" բառը"</string>
+    <string name="glance_error_layout_title" msgid="3631961919234443531"><b>"«Հակիրճ գլխավորի մասին» վիջեթի սխալ"</b></string>
+    <string name="glance_error_layout_text" msgid="2863935784364843033">"Ստուգեք, թե իրականում ինչ սխալ է տեղի ունեցել, "<b><tt>"adb logcat"</tt></b>"-ի միջոցով՝ որոնելով "<b><tt>"GlanceAppWidget"</tt></b>" բառը"</string>
 </resources>
diff --git a/glance/glance-appwidget/src/main/res/values-in/strings.xml b/glance/glance-appwidget/src/main/res/values-in/strings.xml
index 7cf96da..b8674c9 100644
--- a/glance/glance-appwidget/src/main/res/values-in/strings.xml
+++ b/glance/glance-appwidget/src/main/res/values-in/strings.xml
@@ -17,6 +17,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="glance_error_layout_title" msgid="2896109737634971880"><b>"Error Widget Aplikasi Sekilas"</b></string>
-    <string name="glance_error_layout_text" msgid="8513923302775602854">"Periksa error yang tepat menggunakan "<b><tt>"logcat adb"</tt></b>" saat menelusuri "<b><tt>"GlanceAppWidget"</tt></b></string>
+    <string name="glance_error_layout_title" msgid="3631961919234443531"><b>"Error library Widget Aplikasi Glance"</b></string>
+    <string name="glance_error_layout_text" msgid="2863935784364843033">"Periksa error yang tepat menggunakan "<b><tt>"logcat adb"</tt></b>" saat menelusuri "<b><tt>"GlanceAppWidget"</tt></b></string>
 </resources>
diff --git a/glance/glance-appwidget/src/main/res/values-is/strings.xml b/glance/glance-appwidget/src/main/res/values-is/strings.xml
index 866233c..9c39b98 100644
--- a/glance/glance-appwidget/src/main/res/values-is/strings.xml
+++ b/glance/glance-appwidget/src/main/res/values-is/strings.xml
@@ -17,6 +17,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="glance_error_layout_title" msgid="2896109737634971880"><b>"Villa í forritsgræju „Í fljótu bragði“"</b></string>
-    <string name="glance_error_layout_text" msgid="8513923302775602854">"Skoðaðu villuna með "<b><tt>"adb logcat"</tt></b>" og leitaðu að "<b><tt>"GlanceAppWidget"</tt></b></string>
+    <string name="glance_error_layout_title" msgid="3631961919234443531"><b>"Villa í forritsgræju „Í fljótu bragði“"</b></string>
+    <string name="glance_error_layout_text" msgid="2863935784364843033">"Skoðaðu villuna með "<b><tt>"adb logcat"</tt></b>" og leitaðu að "<b><tt>"GlanceAppWidget"</tt></b></string>
 </resources>
diff --git a/glance/glance-appwidget/src/main/res/values-it/strings.xml b/glance/glance-appwidget/src/main/res/values-it/strings.xml
deleted file mode 100644
index d042030..0000000
--- a/glance/glance-appwidget/src/main/res/values-it/strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  Copyright 2021 The Android Open Source Project
-
-  Licensed under the Apache License, Version 2.0 (the "License");
-  you may not use this file except in compliance with the License.
-  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT 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="glance_error_layout_title" msgid="2896109737634971880"><b>"Errore del widget dell\'app Glance"</b></string>
-    <string name="glance_error_layout_text" msgid="8513923302775602854">"Controlla l\'errore esatto con "<b><tt>"adb logcat"</tt></b>", cercando "<b><tt>"GlanceAppWidget"</tt></b></string>
-</resources>
diff --git a/glance/glance-appwidget/src/main/res/values-iw/strings.xml b/glance/glance-appwidget/src/main/res/values-iw/strings.xml
index 0585fed..e8a9e0d 100644
--- a/glance/glance-appwidget/src/main/res/values-iw/strings.xml
+++ b/glance/glance-appwidget/src/main/res/values-iw/strings.xml
@@ -17,6 +17,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="glance_error_layout_title" msgid="2896109737634971880"><b>"שגיאה בווידג\'ט של האפליקציה \'בקצרה\'"</b></string>
-    <string name="glance_error_layout_text" msgid="8513923302775602854">"‏יש לבדוק את השגיאה המדויקת באמצעות "<b><tt>"adb Logcat‏"</tt></b>", ולחפש את "<b><tt>"GlanceAppWidget"</tt></b></string>
+    <string name="glance_error_layout_title" msgid="3631961919234443531"><b>"שגיאה בווידג\'ט של האפליקציה \'בקצרה\'"</b></string>
+    <string name="glance_error_layout_text" msgid="2863935784364843033">"‏יש לבדוק את השגיאה המדויקת באמצעות "<b><tt>"adb Logcat‏"</tt></b>", ולחפש את "<b><tt>"GlanceAppWidget"</tt></b></string>
 </resources>
diff --git a/glance/glance-appwidget/src/main/res/values-ja/strings.xml b/glance/glance-appwidget/src/main/res/values-ja/strings.xml
index 26674b7..b75fedc 100644
--- a/glance/glance-appwidget/src/main/res/values-ja/strings.xml
+++ b/glance/glance-appwidget/src/main/res/values-ja/strings.xml
@@ -17,6 +17,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="glance_error_layout_title" msgid="2896109737634971880"><b>"Google Pixel のスナップショット アプリ ウィジェット エラー"</b></string>
-    <string name="glance_error_layout_text" msgid="8513923302775602854"><b><tt>"adb logcat"</tt></b>" を使用して "<b><tt>"GlanceAppWidget"</tt></b>" を検索し、エラーを詳しくご確認ください"</string>
+    <string name="glance_error_layout_title" msgid="3631961919234443531"><b>"Google Pixel のスナップショット アプリ ウィジェット エラー"</b></string>
+    <string name="glance_error_layout_text" msgid="2863935784364843033"><b><tt>"adb logcat"</tt></b>" を使用して "<b><tt>"GlanceAppWidget"</tt></b>" を検索し、エラーを詳しくご確認ください"</string>
 </resources>
diff --git a/glance/glance-appwidget/src/main/res/values-ka/strings.xml b/glance/glance-appwidget/src/main/res/values-ka/strings.xml
deleted file mode 100644
index e08010b7..0000000
--- a/glance/glance-appwidget/src/main/res/values-ka/strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  Copyright 2021 The Android Open Source Project
-
-  Licensed under the Apache License, Version 2.0 (the "License");
-  you may not use this file except in compliance with the License.
-  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT 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="glance_error_layout_title" msgid="2896109737634971880"><b>"Glance აპის ვიჯეტის შეცდომა"</b></string>
-    <string name="glance_error_layout_text" msgid="8513923302775602854">"შეამოწმეთ შეცდომა "<b><tt>"adb logcat"</tt></b>"-ის მეშვეობით, მოიძიეთ "<b><tt>"GlanceAppWidget"</tt></b></string>
-</resources>
diff --git a/glance/glance-appwidget/src/main/res/values-kk/strings.xml b/glance/glance-appwidget/src/main/res/values-kk/strings.xml
deleted file mode 100644
index 06a6f64..0000000
--- a/glance/glance-appwidget/src/main/res/values-kk/strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  Copyright 2021 The Android Open Source Project
-
-  Licensed under the Apache License, Version 2.0 (the "License");
-  you may not use this file except in compliance with the License.
-  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT 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="glance_error_layout_title" msgid="2896109737634971880"><b>"Glance App Widget қатесі"</b></string>
-    <string name="glance_error_layout_text" msgid="8513923302775602854">"Қатені дәл анықтау үшін "<b><tt>"adb logcat"</tt></b>" мәнін қолданыңыз және "<b><tt>"GlanceAppWidget"</tt></b>" іздеңіз."</string>
-</resources>
diff --git a/glance/glance-appwidget/src/main/res/values-km/strings.xml b/glance/glance-appwidget/src/main/res/values-km/strings.xml
index 5c6ed80..e95814e 100644
--- a/glance/glance-appwidget/src/main/res/values-km/strings.xml
+++ b/glance/glance-appwidget/src/main/res/values-km/strings.xml
@@ -17,6 +17,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="glance_error_layout_title" msgid="2896109737634971880"><b>"បញ្ហា​ពាក់ព័ន្ធនឹង​ធាតុក្រាហ្វិក​កម្មវិធី​មើលមួយភ្លែត"</b></string>
-    <string name="glance_error_layout_text" msgid="8513923302775602854">"ពិនិត្យមើល​បញ្ហាជាក់លាក់​ដោយប្រើ "<b><tt>"adb logcat"</tt></b>", កំពុង​ស្វែងរក "<b><tt>"GlanceAppWidget"</tt></b></string>
+    <string name="glance_error_layout_title" msgid="3631961919234443531"><b>"បញ្ហា​ពាក់ព័ន្ធនឹង​ធាតុក្រាហ្វិក​កម្មវិធី​មើលមួយភ្លែត"</b></string>
+    <string name="glance_error_layout_text" msgid="2863935784364843033">"ពិនិត្យមើល​បញ្ហាជាក់លាក់​ដោយប្រើ "<b><tt>"adb logcat"</tt></b>", កំពុង​ស្វែងរក "<b><tt>"GlanceAppWidget"</tt></b></string>
 </resources>
diff --git a/glance/glance-appwidget/src/main/res/values-kn/strings.xml b/glance/glance-appwidget/src/main/res/values-kn/strings.xml
deleted file mode 100644
index 6265b366..0000000
--- a/glance/glance-appwidget/src/main/res/values-kn/strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  Copyright 2021 The Android Open Source Project
-
-  Licensed under the Apache License, Version 2.0 (the "License");
-  you may not use this file except in compliance with the License.
-  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT 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="glance_error_layout_title" msgid="2896109737634971880"><b>"Glance ಆ್ಯಪ್ ವಿಜೆಟ್ ದೋಷ"</b></string>
-    <string name="glance_error_layout_text" msgid="8513923302775602854"><b><tt>"adb logcat"</tt></b>" ಬಳಸಿಕೊಂಡು ನಿಖರವಾದ ದೋಷವನ್ನು ಪರಿಶೀಲಿಸಿ, "<b><tt>"GlanceAppWidget"</tt></b>" ಅನ್ನು ಹುಡುಕಲಾಗುತ್ತಿದೆ"</string>
-</resources>
diff --git a/glance/glance-appwidget/src/main/res/values-ko/strings.xml b/glance/glance-appwidget/src/main/res/values-ko/strings.xml
index 28433a0..d24285f 100644
--- a/glance/glance-appwidget/src/main/res/values-ko/strings.xml
+++ b/glance/glance-appwidget/src/main/res/values-ko/strings.xml
@@ -17,6 +17,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="glance_error_layout_title" msgid="2896109737634971880"><b>"Glance 앱 위젯 오류"</b></string>
-    <string name="glance_error_layout_text" msgid="8513923302775602854"><b><tt>"GlanceAppWidget"</tt></b>" 검색 중 "<b><tt>"adb logcat"</tt></b>"을 사용하여 정확한 오류 확인"</string>
+    <string name="glance_error_layout_title" msgid="3631961919234443531"><b>"Glance 앱 위젯 오류"</b></string>
+    <string name="glance_error_layout_text" msgid="2863935784364843033"><b><tt>"adb logcat"</tt></b>"을 사용하여 정확한 오류 확인, "<b><tt>"GlanceAppWidget"</tt></b>" 검색"</string>
 </resources>
diff --git a/glance/glance-appwidget/src/main/res/values-ky/strings.xml b/glance/glance-appwidget/src/main/res/values-ky/strings.xml
index ffdbfb2..8761bbf 100644
--- a/glance/glance-appwidget/src/main/res/values-ky/strings.xml
+++ b/glance/glance-appwidget/src/main/res/values-ky/strings.xml
@@ -17,6 +17,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="glance_error_layout_title" msgid="2896109737634971880"><b>"Glance колдонмосунун виджет катасы"</b></string>
-    <string name="glance_error_layout_text" msgid="8513923302775602854">"Катаны так аныктоо үчүн "<b><tt>"adb logcat"</tt></b>" колдонуп, "<b><tt>"GlanceAppWidget"</tt></b>" издеңиз"</string>
+    <string name="glance_error_layout_title" msgid="3631961919234443531"><b>"Glance колдонмосунун виджет катасы"</b></string>
+    <string name="glance_error_layout_text" msgid="2863935784364843033"><b><tt>"GlanceAppWidget"</tt></b>" cурамы менен издеп, "<b><tt>"adb logcat"</tt></b>" аркылуу катаны аныктаңыз"</string>
 </resources>
diff --git a/glance/glance-appwidget/src/main/res/values-lo/strings.xml b/glance/glance-appwidget/src/main/res/values-lo/strings.xml
index 221d568..8802d1e 100644
--- a/glance/glance-appwidget/src/main/res/values-lo/strings.xml
+++ b/glance/glance-appwidget/src/main/res/values-lo/strings.xml
@@ -17,6 +17,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="glance_error_layout_title" msgid="2896109737634971880"><b>"ວິດເຈັດແອັບ Glance ຜິດພາດ"</b></string>
-    <string name="glance_error_layout_text" msgid="8513923302775602854">"ກວດສອບຂໍ້ຜິດພາດທີ່ແນ່ນອນໂດຍໃຊ້ "<b><tt>"adb logcat"</tt></b>", ກຳລັງຊອກຫາ "<b><tt>"GlanceAppWidget"</tt></b></string>
+    <string name="glance_error_layout_title" msgid="3631961919234443531"><b>"ວິດເຈັດແອັບ Glance ຜິດພາດ"</b></string>
+    <string name="glance_error_layout_text" msgid="2863935784364843033">"ກວດສອບຂໍ້ຜິດພາດທີ່ແນ່ນອນໂດຍໃຊ້ "<b><tt>"adb Logcat"</tt></b>", ກຳລັງຊອກຫາ "<b><tt>"GlanceAppWidget"</tt></b></string>
 </resources>
diff --git a/glance/glance-appwidget/src/main/res/values-lt/strings.xml b/glance/glance-appwidget/src/main/res/values-lt/strings.xml
index ee7c82d..011b8c9 100644
--- a/glance/glance-appwidget/src/main/res/values-lt/strings.xml
+++ b/glance/glance-appwidget/src/main/res/values-lt/strings.xml
@@ -17,6 +17,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="glance_error_layout_title" msgid="2896109737634971880"><b>"Programos „Glance“ valdiklio klaida"</b></string>
-    <string name="glance_error_layout_text" msgid="8513923302775602854">"Patikrinkite tikslią klaidą naudodami "<b><tt>"ADB logcat"</tt></b>", kai ieškote "<b><tt>"GlanceAppWidget"</tt></b></string>
+    <string name="glance_error_layout_title" msgid="3631961919234443531"><b>"Programos „Glance“ valdiklio klaida"</b></string>
+    <string name="glance_error_layout_text" msgid="2863935784364843033">"Patikrinkite tikslią klaidą naudodami "<b><tt>"ADB Logcat"</tt></b>", kai ieškote "<b><tt>"GlanceAppWidget"</tt></b></string>
 </resources>
diff --git a/glance/glance-appwidget/src/main/res/values-lv/strings.xml b/glance/glance-appwidget/src/main/res/values-lv/strings.xml
deleted file mode 100644
index aa0eac1..0000000
--- a/glance/glance-appwidget/src/main/res/values-lv/strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  Copyright 2021 The Android Open Source Project
-
-  Licensed under the Apache License, Version 2.0 (the "License");
-  you may not use this file except in compliance with the License.
-  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT 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="glance_error_layout_title" msgid="2896109737634971880"><b>"Glance lietotnes logrīka kļūda"</b></string>
-    <string name="glance_error_layout_text" msgid="8513923302775602854">"Atrodiet precīzu kļūdu ar rīka "<b><tt>"adb logcat"</tt></b>" palīdzību, izmantojot meklēšanas vaicājumu "<b><tt>"GlanceAppWidget"</tt></b>"."</string>
-</resources>
diff --git a/glance/glance-appwidget/src/main/res/values-mk/strings.xml b/glance/glance-appwidget/src/main/res/values-mk/strings.xml
index 732c966..216d054 100644
--- a/glance/glance-appwidget/src/main/res/values-mk/strings.xml
+++ b/glance/glance-appwidget/src/main/res/values-mk/strings.xml
@@ -17,6 +17,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="glance_error_layout_title" msgid="2896109737634971880"><b>"Грешка на Glance App Widget"</b></string>
-    <string name="glance_error_layout_text" msgid="8513923302775602854">"Проверете ја точната грешка со "<b><tt>"adb logcat"</tt></b>" додека пребарувате "<b><tt>"GlanceAppWidget"</tt></b></string>
+    <string name="glance_error_layout_title" msgid="3631961919234443531"><b>"Грешка на Glance App Widget"</b></string>
+    <string name="glance_error_layout_text" msgid="2863935784364843033">"Проверете ја точната грешка со "<b><tt>"adb logcat"</tt></b>" при пребарување "<b><tt>"GlanceAppWidget"</tt></b></string>
 </resources>
diff --git a/glance/glance-appwidget/src/main/res/values-ml/strings.xml b/glance/glance-appwidget/src/main/res/values-ml/strings.xml
deleted file mode 100644
index 2ebc26f..0000000
--- a/glance/glance-appwidget/src/main/res/values-ml/strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  Copyright 2021 The Android Open Source Project
-
-  Licensed under the Apache License, Version 2.0 (the "License");
-  you may not use this file except in compliance with the License.
-  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT 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="glance_error_layout_title" msgid="2896109737634971880"><b>"Glance ആപ്പ് വിജറ്റ് പിശക്"</b></string>
-    <string name="glance_error_layout_text" msgid="8513923302775602854"><b><tt>"adb logcat"</tt></b>" ഉപയോഗിച്ച് യഥാർത്ഥ പിശക് പരിശോധിക്കുക, "<b><tt>"GlanceAppWidget"</tt></b>" എന്നത് തിരയുന്നു"</string>
-</resources>
diff --git a/glance/glance-appwidget/src/main/res/values-mn/strings.xml b/glance/glance-appwidget/src/main/res/values-mn/strings.xml
deleted file mode 100644
index 770d204..0000000
--- a/glance/glance-appwidget/src/main/res/values-mn/strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  Copyright 2021 The Android Open Source Project
-
-  Licensed under the Apache License, Version 2.0 (the "License");
-  you may not use this file except in compliance with the License.
-  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT 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="glance_error_layout_title" msgid="2896109737634971880"><b>"Гялс харах аппын виджетийн алдаа"</b></string>
-    <string name="glance_error_layout_text" msgid="8513923302775602854"><b><tt>"Adb logcat"</tt></b>" ашиглан, "<b><tt>"GlanceAppWidget"</tt></b>"-г хайж тодорхой алдааг шалгана уу"</string>
-</resources>
diff --git a/glance/glance-appwidget/src/main/res/values-mr/strings.xml b/glance/glance-appwidget/src/main/res/values-mr/strings.xml
deleted file mode 100644
index 9785388..0000000
--- a/glance/glance-appwidget/src/main/res/values-mr/strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  Copyright 2021 The Android Open Source Project
-
-  Licensed under the Apache License, Version 2.0 (the "License");
-  you may not use this file except in compliance with the License.
-  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT 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="glance_error_layout_title" msgid="2896109737634971880"><b>"Glance ॲप विजेट एरर"</b></string>
-    <string name="glance_error_layout_text" msgid="8513923302775602854"><b><tt>"GlanceAppWidget"</tt></b>" शोधून, "<b><tt>"adb logcat"</tt></b>" वापरून नेमकी एरर तपासा"</string>
-</resources>
diff --git a/glance/glance-appwidget/src/main/res/values-ms/strings.xml b/glance/glance-appwidget/src/main/res/values-ms/strings.xml
index 8aba132..2fe6701 100644
--- a/glance/glance-appwidget/src/main/res/values-ms/strings.xml
+++ b/glance/glance-appwidget/src/main/res/values-ms/strings.xml
@@ -17,6 +17,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="glance_error_layout_title" msgid="2896109737634971880"><b>"Ralat Widget Apl Glance"</b></string>
-    <string name="glance_error_layout_text" msgid="8513923302775602854">"Semak ralat sebenar menggunakan "<b><tt>"adb logcat"</tt></b>" semasa mencari "<b><tt>"GlanceAppWidget"</tt></b></string>
+    <string name="glance_error_layout_title" msgid="3631961919234443531"><b>"Ralat Widget Apl Glance"</b></string>
+    <string name="glance_error_layout_text" msgid="2863935784364843033">"Semak ralat sebenar menggunakan "<b><tt>"adb logcat"</tt></b>" semasa mencari "<b><tt>"GlanceAppWidget"</tt></b></string>
 </resources>
diff --git a/glance/glance-appwidget/src/main/res/values-my/strings.xml b/glance/glance-appwidget/src/main/res/values-my/strings.xml
deleted file mode 100644
index d80bcf0..0000000
--- a/glance/glance-appwidget/src/main/res/values-my/strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  Copyright 2021 The Android Open Source Project
-
-  Licensed under the Apache License, Version 2.0 (the "License");
-  you may not use this file except in compliance with the License.
-  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT 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="glance_error_layout_title" msgid="2896109737634971880"><b>"Glance အက်ပ်ဝိဂျက်အမှား"</b></string>
-    <string name="glance_error_layout_text" msgid="8513923302775602854"><b><tt>"GlanceAppWidget"</tt></b>" ရှာဖွေရာတွင် "<b><tt>"adb logcat"</tt></b>" သုံးပြီး အမှားအတိအကျကို ရှာနိုင်သည်"</string>
-</resources>
diff --git a/glance/glance-appwidget/src/main/res/values-nb/strings.xml b/glance/glance-appwidget/src/main/res/values-nb/strings.xml
deleted file mode 100644
index ad12641..0000000
--- a/glance/glance-appwidget/src/main/res/values-nb/strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  Copyright 2021 The Android Open Source Project
-
-  Licensed under the Apache License, Version 2.0 (the "License");
-  you may not use this file except in compliance with the License.
-  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT 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="glance_error_layout_title" msgid="2896109737634971880"><b>"Modulfeil med Kort fortalt-appen"</b></string>
-    <string name="glance_error_layout_text" msgid="8513923302775602854">"Sjekk den nøyaktige feilen ved å bruke "<b><tt>"adb logcat"</tt></b>" og søke etter "<b><tt>"GlanceAppWidget"</tt></b></string>
-</resources>
diff --git a/glance/glance-appwidget/src/main/res/values-ne/strings.xml b/glance/glance-appwidget/src/main/res/values-ne/strings.xml
deleted file mode 100644
index e9808d28..0000000
--- a/glance/glance-appwidget/src/main/res/values-ne/strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  Copyright 2021 The Android Open Source Project
-
-  Licensed under the Apache License, Version 2.0 (the "License");
-  you may not use this file except in compliance with the License.
-  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT 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="glance_error_layout_title" msgid="2896109737634971880"><b>"Glance एपको विजेटसम्बन्धी त्रुटि"</b></string>
-    <string name="glance_error_layout_text" msgid="8513923302775602854"><b><tt>"adb logcat"</tt></b>" प्रयोग गरी "<b><tt>"GlanceAppWidget"</tt></b>" खोजेर यथार्थ त्रुटि पत्ता लगाउनुहोस्"</string>
-</resources>
diff --git a/glance/glance-appwidget/src/main/res/values-nl/strings.xml b/glance/glance-appwidget/src/main/res/values-nl/strings.xml
index cd5020c..763e397 100644
--- a/glance/glance-appwidget/src/main/res/values-nl/strings.xml
+++ b/glance/glance-appwidget/src/main/res/values-nl/strings.xml
@@ -17,6 +17,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="glance_error_layout_title" msgid="2896109737634971880"><b>"Fout met Glance-app-widget"</b></string>
-    <string name="glance_error_layout_text" msgid="8513923302775602854">"Check de exacte fout via "<b><tt>"adb logcat"</tt></b>" door te zoeken naar "<b><tt>"GlanceAppWidget"</tt></b></string>
+    <string name="glance_error_layout_title" msgid="3631961919234443531"><b>"Fout met Glance-app-widget"</b></string>
+    <string name="glance_error_layout_text" msgid="2863935784364843033">"Check de exacte fout via "<b><tt>"adb logcat"</tt></b>" door te zoeken naar "<b><tt>"GlanceAppWidget"</tt></b></string>
 </resources>
diff --git a/glance/glance-appwidget/src/main/res/values-or/strings.xml b/glance/glance-appwidget/src/main/res/values-or/strings.xml
deleted file mode 100644
index 61273a0..0000000
--- a/glance/glance-appwidget/src/main/res/values-or/strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  Copyright 2021 The Android Open Source Project
-
-  Licensed under the Apache License, Version 2.0 (the "License");
-  you may not use this file except in compliance with the License.
-  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT 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="glance_error_layout_title" msgid="2896109737634971880"><b>"Glance ଆପ ୱିଜେଟରେ ତ୍ରୁଟି"</b></string>
-    <string name="glance_error_layout_text" msgid="8513923302775602854"><b><tt>"adb logcat"</tt></b>" ବ୍ୟବହାର କରି, "<b><tt>"GlanceAppWidget"</tt></b>" ସନ୍ଧାନ କରି ପ୍ରକୃତ ତ୍ରୁଟି ଯାଞ୍ଚ କରନ୍ତୁ"</string>
-</resources>
diff --git a/glance/glance-appwidget/src/main/res/values-pa/strings.xml b/glance/glance-appwidget/src/main/res/values-pa/strings.xml
deleted file mode 100644
index 57919bf..0000000
--- a/glance/glance-appwidget/src/main/res/values-pa/strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  Copyright 2021 The Android Open Source Project
-
-  Licensed under the Apache License, Version 2.0 (the "License");
-  you may not use this file except in compliance with the License.
-  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT 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="glance_error_layout_title" msgid="2896109737634971880"><b>"Glance ਐਪ ਵਿਜੇਟ ਸੰਬੰਧੀ ਗੜਬੜ"</b></string>
-    <string name="glance_error_layout_text" msgid="8513923302775602854"><b><tt>"adb logcat"</tt>" ਦੀ ਵਰਤੋਂ ਨਾਲ "</b>", "<b><tt>"GlanceAppWidget"</tt></b>" ਦੀ ਖੋਜ ਕਰ ਕੇ ਸਟੀਕ ਗੜਬੜ ਦੀ ਜਾਂਚ ਕਰੋ"</string>
-</resources>
diff --git a/glance/glance-appwidget/src/main/res/values-pl/strings.xml b/glance/glance-appwidget/src/main/res/values-pl/strings.xml
deleted file mode 100644
index d083b26..0000000
--- a/glance/glance-appwidget/src/main/res/values-pl/strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  Copyright 2021 The Android Open Source Project
-
-  Licensed under the Apache License, Version 2.0 (the "License");
-  you may not use this file except in compliance with the License.
-  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT 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="glance_error_layout_title" msgid="2896109737634971880"><b>"Błąd widżetu aplikacji W skrócie"</b></string>
-    <string name="glance_error_layout_text" msgid="8513923302775602854">"Sprawdź dokładny błąd w "<b><tt>"adb logcat"</tt></b>" (wyszukaj "<b><tt>"GlanceAppWidget"</tt></b>")"</string>
-</resources>
diff --git a/glance/glance-appwidget/src/main/res/values-pt-rBR/strings.xml b/glance/glance-appwidget/src/main/res/values-pt-rBR/strings.xml
index c66092b..8ca5768 100644
--- a/glance/glance-appwidget/src/main/res/values-pt-rBR/strings.xml
+++ b/glance/glance-appwidget/src/main/res/values-pt-rBR/strings.xml
@@ -17,6 +17,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="glance_error_layout_title" msgid="2896109737634971880"><b>"Erro no widget do app Glance"</b></string>
-    <string name="glance_error_layout_text" msgid="8513923302775602854">"Pesquise "<b><tt>"GlanceAppWidget"</tt></b>" no "<b><tt>"adb logcat"</tt></b>" para ver o erro exato"</string>
+    <string name="glance_error_layout_title" msgid="3631961919234443531"><b>"Erro no widget do app Glance"</b></string>
+    <string name="glance_error_layout_text" msgid="2863935784364843033">"Pesquise "<b><tt>"GlanceAppWidget"</tt></b>" no "<b><tt>"adb logcat"</tt></b>" para consultar o erro exato"</string>
 </resources>
diff --git a/glance/glance-appwidget/src/main/res/values-pt-rPT/strings.xml b/glance/glance-appwidget/src/main/res/values-pt-rPT/strings.xml
index f285ef8..6f5985a 100644
--- a/glance/glance-appwidget/src/main/res/values-pt-rPT/strings.xml
+++ b/glance/glance-appwidget/src/main/res/values-pt-rPT/strings.xml
@@ -17,6 +17,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="glance_error_layout_title" msgid="2896109737634971880"><b>"Erro de Glance App Widget"</b></string>
-    <string name="glance_error_layout_text" msgid="8513923302775602854">"Verifique o erro exato através de "<b><tt>"adb logcat"</tt></b>" ao pesquisar "<b><tt>"GlanceAppWidget"</tt></b></string>
+    <string name="glance_error_layout_title" msgid="3631961919234443531"><b>"Erro de widget da app Glance"</b></string>
+    <string name="glance_error_layout_text" msgid="2863935784364843033">"Verifique o erro exato através de "<b><tt>"adb logcat"</tt></b>" ao pesquisar "<b><tt>"GlanceAppWidget"</tt></b></string>
 </resources>
diff --git a/glance/glance-appwidget/src/main/res/values-pt/strings.xml b/glance/glance-appwidget/src/main/res/values-pt/strings.xml
index c66092b..8ca5768 100644
--- a/glance/glance-appwidget/src/main/res/values-pt/strings.xml
+++ b/glance/glance-appwidget/src/main/res/values-pt/strings.xml
@@ -17,6 +17,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="glance_error_layout_title" msgid="2896109737634971880"><b>"Erro no widget do app Glance"</b></string>
-    <string name="glance_error_layout_text" msgid="8513923302775602854">"Pesquise "<b><tt>"GlanceAppWidget"</tt></b>" no "<b><tt>"adb logcat"</tt></b>" para ver o erro exato"</string>
+    <string name="glance_error_layout_title" msgid="3631961919234443531"><b>"Erro no widget do app Glance"</b></string>
+    <string name="glance_error_layout_text" msgid="2863935784364843033">"Pesquise "<b><tt>"GlanceAppWidget"</tt></b>" no "<b><tt>"adb logcat"</tt></b>" para consultar o erro exato"</string>
 </resources>
diff --git a/glance/glance-appwidget/src/main/res/values-ro/strings.xml b/glance/glance-appwidget/src/main/res/values-ro/strings.xml
index c738c51..6ba073d 100644
--- a/glance/glance-appwidget/src/main/res/values-ro/strings.xml
+++ b/glance/glance-appwidget/src/main/res/values-ro/strings.xml
@@ -17,6 +17,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="glance_error_layout_title" msgid="2896109737634971880"><b>"Eroare legată de widgetul aplicației Glance"</b></string>
-    <string name="glance_error_layout_text" msgid="8513923302775602854">"Vezi eroarea exactă folosind "<b><tt>"adb logcat"</tt></b>" și căutând "<b><tt>"GlanceAppWidget"</tt></b></string>
+    <string name="glance_error_layout_title" msgid="3631961919234443531"><b>"Eroare legată de widgetul aplicației Glance"</b></string>
+    <string name="glance_error_layout_text" msgid="2863935784364843033">"Vezi eroarea exactă folosind "<b><tt>"adb logcat"</tt></b>" și căutând "<b><tt>"GlanceAppWidget"</tt></b></string>
 </resources>
diff --git a/glance/glance-appwidget/src/main/res/values-ru/strings.xml b/glance/glance-appwidget/src/main/res/values-ru/strings.xml
index d08c109..924521f 100644
--- a/glance/glance-appwidget/src/main/res/values-ru/strings.xml
+++ b/glance/glance-appwidget/src/main/res/values-ru/strings.xml
@@ -17,6 +17,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="glance_error_layout_title" msgid="2896109737634971880"><b>"Ошибка виджета \"Самое главное\""</b></string>
-    <string name="glance_error_layout_text" msgid="8513923302775602854">"Выявите ошибку с помощью "<b><tt>"logcat"</tt></b>", выполнив поиск по слову "<b><tt>"GlanceAppWidget"</tt></b>"."</string>
+    <string name="glance_error_layout_title" msgid="3631961919234443531"><b>"Ошибка, связанная с виджетом приложения в Glance"</b></string>
+    <string name="glance_error_layout_text" msgid="2863935784364843033">"Выявите ошибку с помощью "<b><tt>"adb logcat"</tt></b>". В этом инструменте выполните поиск по запросу "<b><tt>"GlanceAppWidget"</tt></b>"."</string>
 </resources>
diff --git a/glance/glance-appwidget/src/main/res/values-si/strings.xml b/glance/glance-appwidget/src/main/res/values-si/strings.xml
index e3dddda..8a1377a 100644
--- a/glance/glance-appwidget/src/main/res/values-si/strings.xml
+++ b/glance/glance-appwidget/src/main/res/values-si/strings.xml
@@ -17,6 +17,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="glance_error_layout_title" msgid="2896109737634971880"><b>"Glance යෙදුම් විජට්ටු දෝෂය"</b></string>
-    <string name="glance_error_layout_text" msgid="8513923302775602854">"නිවැරදි දෝෂය "<b><tt>"GlanceAppWidget"</tt></b>" සොයන "<b><tt>"adb logcat"</tt></b>" භාවිත කර පරීක්ෂා කරන්න"</string>
+    <string name="glance_error_layout_title" msgid="3631961919234443531"><b>"Glance යෙදුම් විජට්ටු දෝෂය"</b></string>
+    <string name="glance_error_layout_text" msgid="2863935784364843033">"නිවැරදි දෝෂය "<b><tt>"GlanceAppWidget"</tt></b>" සොයන "<b><tt>"adb logcat"</tt></b>" භාවිත කර පරීක්ෂා කරන්න"</string>
 </resources>
diff --git a/glance/glance-appwidget/src/main/res/values-sk/strings.xml b/glance/glance-appwidget/src/main/res/values-sk/strings.xml
index a4843a7..cfe8e2e 100644
--- a/glance/glance-appwidget/src/main/res/values-sk/strings.xml
+++ b/glance/glance-appwidget/src/main/res/values-sk/strings.xml
@@ -17,6 +17,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="glance_error_layout_title" msgid="2896109737634971880"><b>"Chyba miniaplikácie Glance"</b></string>
-    <string name="glance_error_layout_text" msgid="8513923302775602854">"Pomocou nástroja "<b><tt>"adb logcat"</tt></b>" zistite presnú príčinu chyby tak, že vyhľadáte parameter "<b><tt>"GlanceAppWidget"</tt></b></string>
+    <string name="glance_error_layout_title" msgid="3631961919234443531"><b>"Chyba miniaplikácie Glance"</b></string>
+    <string name="glance_error_layout_text" msgid="2863935784364843033">"Pomocou nástroja "<b><tt>"adb logcat"</tt></b>" zistite presnú príčinu chyby tak, že vyhľadáte parameter "<b><tt>"GlanceAppWidget"</tt></b></string>
 </resources>
diff --git a/glance/glance-appwidget/src/main/res/values-sl/strings.xml b/glance/glance-appwidget/src/main/res/values-sl/strings.xml
deleted file mode 100644
index 55e8efd..0000000
--- a/glance/glance-appwidget/src/main/res/values-sl/strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  Copyright 2021 The Android Open Source Project
-
-  Licensed under the Apache License, Version 2.0 (the "License");
-  you may not use this file except in compliance with the License.
-  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT 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="glance_error_layout_title" msgid="2896109737634971880"><b>"Napaka pripomočka za aplikacijo Hitri pregled"</b></string>
-    <string name="glance_error_layout_text" msgid="8513923302775602854">"Preverite točno napako tako, da z mehanizmom "<b><tt>"adb logcat"</tt></b>" poiščete "<b><tt>"GlanceAppWidget"</tt></b>"."</string>
-</resources>
diff --git a/glance/glance-appwidget/src/main/res/values-sq/strings.xml b/glance/glance-appwidget/src/main/res/values-sq/strings.xml
index 44c4edd..b33bbb9 100644
--- a/glance/glance-appwidget/src/main/res/values-sq/strings.xml
+++ b/glance/glance-appwidget/src/main/res/values-sq/strings.xml
@@ -17,6 +17,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="glance_error_layout_title" msgid="2896109737634971880"><b>"Gabim i Glance App Widget"</b></string>
-    <string name="glance_error_layout_text" msgid="8513923302775602854">"Kontrollo gabimin ekzakt duke përdorur "<b><tt>"adb logcat"</tt></b>", duke kërkuar për "<b><tt>"GlanceAppWidget"</tt></b></string>
+    <string name="glance_error_layout_title" msgid="3631961919234443531"><b>"Gabim i Glance App Widget"</b></string>
+    <string name="glance_error_layout_text" msgid="2863935784364843033">"Kontrollo gabimin ekzakt duke përdorur "<b><tt>"adb logcat"</tt></b>", duke kërkuar për "<b><tt>"GlanceAppWidget"</tt></b></string>
 </resources>
diff --git a/glance/glance-appwidget/src/main/res/values-sr/strings.xml b/glance/glance-appwidget/src/main/res/values-sr/strings.xml
index f35ac1e..c3e726d 100644
--- a/glance/glance-appwidget/src/main/res/values-sr/strings.xml
+++ b/glance/glance-appwidget/src/main/res/values-sr/strings.xml
@@ -17,6 +17,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="glance_error_layout_title" msgid="2896109737634971880"><b>"Грешка у вези са виџетом апликације Glance"</b></string>
-    <string name="glance_error_layout_text" msgid="8513923302775602854">"Проверите у чему је тачно грешка користећи "<b><tt>"adb logcat"</tt></b>" док тражите "<b><tt>"GlanceAppWidget"</tt></b></string>
+    <string name="glance_error_layout_title" msgid="3631961919234443531"><b>"Грешка у вези са виџетом апликације Glance"</b></string>
+    <string name="glance_error_layout_text" msgid="2863935784364843033">"Проверите у чему је тачно грешка помоћу ставке"<b><tt>"adb logcat"</tt></b>", тражећи ставку "<b><tt>"GlanceAppWidget"</tt></b></string>
 </resources>
diff --git a/glance/glance-appwidget/src/main/res/values-sv/strings.xml b/glance/glance-appwidget/src/main/res/values-sv/strings.xml
index 0ff154aa..b89910d 100644
--- a/glance/glance-appwidget/src/main/res/values-sv/strings.xml
+++ b/glance/glance-appwidget/src/main/res/values-sv/strings.xml
@@ -17,6 +17,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="glance_error_layout_title" msgid="2896109737634971880"><b>"Fel i appwidget som skapats med Glance"</b></string>
-    <string name="glance_error_layout_text" msgid="8513923302775602854">"Kontrollera exakt vad som är fel genom att söka efter "<b><tt>"GlanceAppWidget"</tt></b>" i utdata från "<b><tt>"adb logcat"</tt></b>"."</string>
+    <string name="glance_error_layout_title" msgid="3631961919234443531"><b>"Fel i appwidget som skapats med Glance"</b></string>
+    <string name="glance_error_layout_text" msgid="2863935784364843033">"Kontrollera exakt vad som är fel genom att söka efter "<b><tt>"GlanceAppWidget"</tt></b>" i utdata från "<b><tt>"adb logcat"</tt></b>"."</string>
 </resources>
diff --git a/glance/glance-appwidget/src/main/res/values-sw/strings.xml b/glance/glance-appwidget/src/main/res/values-sw/strings.xml
index 4e51914..88d1821 100644
--- a/glance/glance-appwidget/src/main/res/values-sw/strings.xml
+++ b/glance/glance-appwidget/src/main/res/values-sw/strings.xml
@@ -17,6 +17,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="glance_error_layout_title" msgid="2896109737634971880"><b>"Hitilafu ya Wijeti ya Programu ya Glance"</b></string>
-    <string name="glance_error_layout_text" msgid="8513923302775602854">"Angalia hitilafu mahususi ukitumia "<b><tt>"adb logcat"</tt></b>", ukitafuta "<b><tt>"GlanceAppWidget"</tt></b></string>
+    <string name="glance_error_layout_title" msgid="3631961919234443531"><b>"Hitilafu ya Wijeti ya Programu ya Glance"</b></string>
+    <string name="glance_error_layout_text" msgid="2863935784364843033">"Angalia hitilafu mahususi ukitumia "<b><tt>"adb logcat"</tt></b>", ukitafuta "<b><tt>"GlanceAppWidget"</tt></b></string>
 </resources>
diff --git a/glance/glance-appwidget/src/main/res/values-ta/strings.xml b/glance/glance-appwidget/src/main/res/values-ta/strings.xml
deleted file mode 100644
index f66a72a..0000000
--- a/glance/glance-appwidget/src/main/res/values-ta/strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  Copyright 2021 The Android Open Source Project
-
-  Licensed under the Apache License, Version 2.0 (the "License");
-  you may not use this file except in compliance with the License.
-  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT 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="glance_error_layout_title" msgid="2896109737634971880"><b>"Glance App விட்ஜெட் பிழை"</b></string>
-    <string name="glance_error_layout_text" msgid="8513923302775602854"><b><tt>"adb logcat"</tt></b>" என்பதைப் பயன்படுத்தி சரியான பிழையைக் கண்டறியவும், "<b><tt>"GlanceAppWidget"</tt></b>" தேடப்படுகிறது"</string>
-</resources>
diff --git a/glance/glance-appwidget/src/main/res/values-te/strings.xml b/glance/glance-appwidget/src/main/res/values-te/strings.xml
index bc1b7f4..41de5db6 100644
--- a/glance/glance-appwidget/src/main/res/values-te/strings.xml
+++ b/glance/glance-appwidget/src/main/res/values-te/strings.xml
@@ -17,6 +17,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="glance_error_layout_title" msgid="2896109737634971880"><b>"Glance యాప్ విడ్జెట్ ఎర్రర్"</b></string>
-    <string name="glance_error_layout_text" msgid="8513923302775602854"><b><tt>"adb logcat"</tt></b>"ను ఉపయోగించి ఖచ్చితమైన ఎర్రర్‌ను చెక్ చేయండి, "<b><tt>"GlanceAppWidget"</tt></b>" కోసం సెర్చ్ చేస్తుంది"</string>
+    <string name="glance_error_layout_title" msgid="3631961919234443531"><b>"Glance యాప్ విడ్జెట్ ఎర్రర్"</b></string>
+    <string name="glance_error_layout_text" msgid="2863935784364843033"><b><tt>"adb logcat"</tt></b>"‌ను ఉపయోగించి ఖచ్చితమైన ఎర్రర్‌ను చెక్ చేయండి, "<b><tt>"GlanceAppWidget"</tt></b>" కోసం సెర్చ్ చేస్తుంది"</string>
 </resources>
diff --git a/glance/glance-appwidget/src/main/res/values-th/strings.xml b/glance/glance-appwidget/src/main/res/values-th/strings.xml
index be2e4eb..5fb6418 100644
--- a/glance/glance-appwidget/src/main/res/values-th/strings.xml
+++ b/glance/glance-appwidget/src/main/res/values-th/strings.xml
@@ -17,6 +17,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="glance_error_layout_title" msgid="2896109737634971880"><b>"ข้อผิดพลาด Glance App Widget"</b></string>
-    <string name="glance_error_layout_text" msgid="8513923302775602854">"ตรวจสอบข้อผิดพลาดตามที่ปรากฏโดยใช้ "<b><tt>"adb logcat"</tt></b>" เพื่อค้นหา "<b><tt>"GlanceAppWidget"</tt></b></string>
+    <string name="glance_error_layout_title" msgid="3631961919234443531"><b>"ข้อผิดพลาด Glance App Widget"</b></string>
+    <string name="glance_error_layout_text" msgid="2863935784364843033">"ตรวจสอบข้อผิดพลาดตามที่ปรากฏโดยใช้ "<b><tt>"adb logcat"</tt></b>" เพื่อค้นหา "<b><tt>"GlanceAppWidget"</tt></b></string>
 </resources>
diff --git a/glance/glance-appwidget/src/main/res/values-tl/strings.xml b/glance/glance-appwidget/src/main/res/values-tl/strings.xml
index 1249e56..424b1f6 100644
--- a/glance/glance-appwidget/src/main/res/values-tl/strings.xml
+++ b/glance/glance-appwidget/src/main/res/values-tl/strings.xml
@@ -17,6 +17,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="glance_error_layout_title" msgid="2896109737634971880"><b>"Error sa Widget ng Glance App"</b></string>
-    <string name="glance_error_layout_text" msgid="8513923302775602854">"Tingnan ang eksaktong error gamit ang "<b><tt>"adb logcat"</tt></b>", at paghahanap sa "<b><tt>"GlanceAppWidget"</tt></b></string>
+    <string name="glance_error_layout_title" msgid="3631961919234443531"><b>"Error sa Widget ng Glance App"</b></string>
+    <string name="glance_error_layout_text" msgid="2863935784364843033">"Tingnan ang eksaktong error gamit ang "<b><tt>"adb logcat"</tt></b>", at paghahanap sa "<b><tt>"GlanceAppWidget"</tt></b></string>
 </resources>
diff --git a/glance/glance-appwidget/src/main/res/values-tr/strings.xml b/glance/glance-appwidget/src/main/res/values-tr/strings.xml
index 6a70d86..43d5251 100644
--- a/glance/glance-appwidget/src/main/res/values-tr/strings.xml
+++ b/glance/glance-appwidget/src/main/res/values-tr/strings.xml
@@ -17,6 +17,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="glance_error_layout_title" msgid="2896109737634971880"><b>"Glance App Widget Hatası"</b></string>
-    <string name="glance_error_layout_text" msgid="8513923302775602854"><b><tt>"GlanceAppWidget"</tt></b>" için arama yapıp "<b><tt>"adb logcat"</tt></b>" kullanarak tam hatayı kontrol edin"</string>
+    <string name="glance_error_layout_title" msgid="3631961919234443531"><b>"Glance App Widget Hatası"</b></string>
+    <string name="glance_error_layout_text" msgid="2863935784364843033">"Hatanın tam olarak ne olduğunu bulmak için "<b><tt>"adb logcat"</tt></b>"\'i kullanarak "<b><tt>"GlanceAppWidget"</tt></b>" araması yapın."</string>
 </resources>
diff --git a/glance/glance-appwidget/src/main/res/values-uk/strings.xml b/glance/glance-appwidget/src/main/res/values-uk/strings.xml
index 92cf9e3..a763344 100644
--- a/glance/glance-appwidget/src/main/res/values-uk/strings.xml
+++ b/glance/glance-appwidget/src/main/res/values-uk/strings.xml
@@ -17,6 +17,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="glance_error_layout_title" msgid="2896109737634971880"><b>"Помилка віджета додатка Glance"</b></string>
-    <string name="glance_error_layout_text" msgid="8513923302775602854">"Щоб отримати точні відомості про помилку, скористайтеся командою "<b><tt>"adb logcat"</tt></b>" під час пошуку за запитом "<b><tt>"GlanceAppWidget"</tt></b></string>
+    <string name="glance_error_layout_title" msgid="3631961919234443531"><b>"Помилка віджета додатка Glance"</b></string>
+    <string name="glance_error_layout_text" msgid="2863935784364843033">"Щоб отримати точні відомості про помилку, скористайтеся командою "<b><tt>"adb logcat"</tt></b>" під час пошуку за запитом "<b><tt>"GlanceAppWidget"</tt></b></string>
 </resources>
diff --git a/glance/glance-appwidget/src/main/res/values-ur/strings.xml b/glance/glance-appwidget/src/main/res/values-ur/strings.xml
deleted file mode 100644
index 90cbdb2..0000000
--- a/glance/glance-appwidget/src/main/res/values-ur/strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  Copyright 2021 The Android Open Source Project
-
-  Licensed under the Apache License, Version 2.0 (the "License");
-  you may not use this file except in compliance with the License.
-  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT 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="glance_error_layout_title" msgid="2896109737634971880">"‏"<b>"Glance App Widget کی خرابی"</b></string>
-    <string name="glance_error_layout_text" msgid="8513923302775602854">"‏"<b><tt>"GlanceAppWidget"</tt></b>" کو تلاش کرتے ہوئے "<b><tt>"adb logcat"</tt></b>" کا استعمال کر کے اصل خرابی کو چیک کریں"</string>
-</resources>
diff --git a/glance/glance-appwidget/src/main/res/values-uz/strings.xml b/glance/glance-appwidget/src/main/res/values-uz/strings.xml
index 1e409c8..0574a64 100644
--- a/glance/glance-appwidget/src/main/res/values-uz/strings.xml
+++ b/glance/glance-appwidget/src/main/res/values-uz/strings.xml
@@ -17,6 +17,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="glance_error_layout_title" msgid="2896109737634971880"><b>"Glance ilova vidjeti xatosi"</b></string>
-    <string name="glance_error_layout_text" msgid="8513923302775602854">"Muayyan xatoni "<b><tt>"adb logcat"</tt></b>" yordamida tekshiring va "<b><tt>"GlanceAppWidget"</tt>" qatorini qidiring"</b></string>
+    <string name="glance_error_layout_title" msgid="3631961919234443531"><b>"Glance ilova vidjeti xatosi"</b></string>
+    <string name="glance_error_layout_text" msgid="2863935784364843033">"Muayyan xatoni "<b><tt>"adb logcat"</tt></b>" yordamida tekshiring va "<b><tt>"GlanceAppWidget"</tt>" qatorini qidiring"</b></string>
 </resources>
diff --git a/glance/glance-appwidget/src/main/res/values-vi/strings.xml b/glance/glance-appwidget/src/main/res/values-vi/strings.xml
index e6b5f29..1c1be47 100644
--- a/glance/glance-appwidget/src/main/res/values-vi/strings.xml
+++ b/glance/glance-appwidget/src/main/res/values-vi/strings.xml
@@ -17,6 +17,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="glance_error_layout_title" msgid="2896109737634971880"><b>"Lỗi với tiện ích xem nhanh ứng dụng"</b></string>
-    <string name="glance_error_layout_text" msgid="8513923302775602854">"Xem đúng lỗi bằng cách dùng "<b><tt>"adb logcat"</tt></b>" để tìm "<b><tt>"GlanceAppWidget"</tt></b></string>
+    <string name="glance_error_layout_title" msgid="3631961919234443531"><b>"Lỗi Glance App Widget (Tiện ích xem nhanh ứng dụng)"</b></string>
+    <string name="glance_error_layout_text" msgid="2863935784364843033">"Xem đúng lỗi bằng cách dùng "<b><tt>"logcat adb"</tt></b>" để tìm "<b><tt>"GlanceAppWidget"</tt></b></string>
 </resources>
diff --git a/glance/glance-appwidget/src/main/res/values-zh-rCN/strings.xml b/glance/glance-appwidget/src/main/res/values-zh-rCN/strings.xml
index be7387a..7b09c4b 100644
--- a/glance/glance-appwidget/src/main/res/values-zh-rCN/strings.xml
+++ b/glance/glance-appwidget/src/main/res/values-zh-rCN/strings.xml
@@ -17,6 +17,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="glance_error_layout_title" msgid="2896109737634971880"><b>"“资讯一览”应用微件错误"</b></string>
-    <string name="glance_error_layout_text" msgid="8513923302775602854">"运行 "<b><tt>"adb logcat"</tt></b>" 后搜索 "<b><tt>"GlanceAppWidget"</tt></b>" 来查看确切错误"</string>
+    <string name="glance_error_layout_title" msgid="3631961919234443531"><b>"Glance 应用微件错误"</b></string>
+    <string name="glance_error_layout_text" msgid="2863935784364843033">"运行 "<b><tt>"adb logcat"</tt></b>" 后搜索 "<b><tt>"GlanceAppWidget"</tt></b>" 可查看确切错误"</string>
 </resources>
diff --git a/glance/glance-appwidget/src/main/res/values-zh-rHK/strings.xml b/glance/glance-appwidget/src/main/res/values-zh-rHK/strings.xml
index 3f019d7..67e937f 100644
--- a/glance/glance-appwidget/src/main/res/values-zh-rHK/strings.xml
+++ b/glance/glance-appwidget/src/main/res/values-zh-rHK/strings.xml
@@ -17,6 +17,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="glance_error_layout_title" msgid="2896109737634971880"><b>"Glance 應用程式小工具錯誤"</b></string>
-    <string name="glance_error_layout_text" msgid="8513923302775602854">"使用 "<b><tt>"adb logcat"</tt></b>" 搜尋 "<b><tt>"GlanceAppWidget"</tt></b>",查看確實的錯誤資料"</string>
+    <string name="glance_error_layout_title" msgid="3631961919234443531"><b>"Glance 應用程式小工具錯誤"</b></string>
+    <string name="glance_error_layout_text" msgid="2863935784364843033">"使用 "<b><tt>"adb logcat"</tt></b>" 搜尋 "<b><tt>"GlanceAppWidget"</tt></b>",查看確實的錯誤資料"</string>
 </resources>
diff --git a/glance/glance-appwidget/src/main/res/values-zh-rTW/strings.xml b/glance/glance-appwidget/src/main/res/values-zh-rTW/strings.xml
index be73c7f..3b2ad0c 100644
--- a/glance/glance-appwidget/src/main/res/values-zh-rTW/strings.xml
+++ b/glance/glance-appwidget/src/main/res/values-zh-rTW/strings.xml
@@ -17,6 +17,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="glance_error_layout_title" msgid="2896109737634971880"><b>"Glance 應用程式小工具錯誤"</b></string>
-    <string name="glance_error_layout_text" msgid="8513923302775602854">"使用 "<b><tt>"adb logcat"</tt></b>" 搜尋 "<b><tt>"GlanceAppWidget"</tt></b>",來查看確切的錯誤資訊"</string>
+    <string name="glance_error_layout_title" msgid="3631961919234443531"><b>"Glance 應用程式小工具錯誤"</b></string>
+    <string name="glance_error_layout_text" msgid="2863935784364843033">"搜尋 "<b><tt>"GlanceAppWidget"</tt></b>" 時,你可以使用 "<b><tt>"adb logcat"</tt></b>" 查看確切的錯誤資訊"</string>
 </resources>
diff --git a/glance/glance-appwidget/src/main/res/values-zu/strings.xml b/glance/glance-appwidget/src/main/res/values-zu/strings.xml
index dd7ac90..732c6d7 100644
--- a/glance/glance-appwidget/src/main/res/values-zu/strings.xml
+++ b/glance/glance-appwidget/src/main/res/values-zu/strings.xml
@@ -17,6 +17,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="glance_error_layout_title" msgid="2896109737634971880"><b>"Iphutha le-App Yewijethi Yokubuka Nje"</b></string>
-    <string name="glance_error_layout_text" msgid="8513923302775602854">"Hlola iphutha okuyilona usebenzisa i-"<b><tt>"adb logcat"</tt></b>", esesha i-"<b><tt>"GlanceAppWidget"</tt></b></string>
+    <string name="glance_error_layout_title" msgid="3631961919234443531"><b>"Iphutha le-App Yewijethi Yokubuka Nje"</b></string>
+    <string name="glance_error_layout_text" msgid="2863935784364843033">"Hlola iphutha okuyilona usebenzisa i-"<b><tt>"adb logcat"</tt></b>", esesha i-"<b><tt>"GlanceAppWidget"</tt></b></string>
 </resources>
diff --git a/glance/glance-appwidget/src/test/kotlin/androidx/glance/appwidget/WidgetLayoutTest.kt b/glance/glance-appwidget/src/test/kotlin/androidx/glance/appwidget/WidgetLayoutTest.kt
index 2a1490d..759b8a7 100644
--- a/glance/glance-appwidget/src/test/kotlin/androidx/glance/appwidget/WidgetLayoutTest.kt
+++ b/glance/glance-appwidget/src/test/kotlin/androidx/glance/appwidget/WidgetLayoutTest.kt
@@ -188,6 +188,25 @@
     }
 
     @Test
+    fun testChange_imageDescription() = fakeCoroutineScope.runTest {
+        val appId = 999
+        val root = runTestingComposition {
+            Column {
+                Image(ImageProvider(R.drawable.oval), null, contentScale = ContentScale.Crop)
+            }
+        }
+        val root2 = runTestingComposition {
+            Column {
+                Image(ImageProvider(R.drawable.oval), "test", contentScale = ContentScale.Crop)
+            }
+        }
+
+        val layoutConfig = LayoutConfiguration.create(context, appId)
+        assertThat(layoutConfig.addLayout(root)).isEqualTo(0)
+        assertThat(layoutConfig.addLayout(root2)).isEqualTo(1)
+    }
+
+    @Test
     fun testChange_columnAlignment() = fakeCoroutineScope.runTest {
         val appId = 999
         val root = runTestingComposition {
diff --git a/glance/glance-appwidget/src/test/kotlin/androidx/glance/appwidget/translators/ImageTranslatorTest.kt b/glance/glance-appwidget/src/test/kotlin/androidx/glance/appwidget/translators/ImageTranslatorTest.kt
index f459ca9..dcfeceb 100644
--- a/glance/glance-appwidget/src/test/kotlin/androidx/glance/appwidget/translators/ImageTranslatorTest.kt
+++ b/glance/glance-appwidget/src/test/kotlin/androidx/glance/appwidget/translators/ImageTranslatorTest.kt
@@ -23,6 +23,7 @@
 import android.graphics.drawable.GradientDrawable
 import android.graphics.drawable.Icon
 import android.net.Uri
+import android.view.View
 import android.widget.ImageView
 import androidx.compose.ui.graphics.Color
 import androidx.core.graphics.drawable.toBitmap
@@ -60,7 +61,6 @@
     private lateinit var fakeCoroutineScope: TestScope
     private lateinit var expectedBitmap: Bitmap
     private val context = ApplicationProvider.getApplicationContext<Context>()
-    private val displayMetrics = context.resources.displayMetrics
 
     @Before
     fun setUp() {
@@ -77,9 +77,11 @@
             )
         }
         val imageView = assertIs<ImageView>(context.applyRemoteViews(rv))
-        assertThat(imageView.getContentDescription()).isEqualTo("2x1 bitmap")
+        assertThat(imageView.contentDescription).isEqualTo("2x1 bitmap")
+        assertThat(imageView.importantForAccessibility)
+            .isEqualTo(View.IMPORTANT_FOR_ACCESSIBILITY_YES)
         val bitmapDrawable = assertIs<BitmapDrawable>(imageView.getDrawable())
-        assertThat(bitmapDrawable.getBitmap().sameAs(expectedBitmap)).isTrue()
+        assertThat(bitmapDrawable.bitmap.sameAs(expectedBitmap)).isTrue()
     }
 
     @Test
@@ -92,7 +94,9 @@
         }
 
         val imageView = assertIs<ImageView>(context.applyRemoteViews(rv))
-        assertThat(imageView.getContentDescription()).isEqualTo("oval")
+        assertThat(imageView.contentDescription).isEqualTo("oval")
+        assertThat(imageView.importantForAccessibility)
+            .isEqualTo(View.IMPORTANT_FOR_ACCESSIBILITY_YES)
         val gradientDrawable = assertIs<GradientDrawable>(imageView.getDrawable())
         assertThat(gradientDrawable.toBitmap().sameAs(expectedBitmap)).isTrue()
     }
@@ -115,7 +119,7 @@
         }
 
         val imageView = assertIs<ImageView>(context.applyRemoteViews(rv))
-        val gradientDrawable = assertIs<GradientDrawable>(imageView.getDrawable())
+        val gradientDrawable = assertIs<GradientDrawable>(imageView.drawable)
         assertThat(gradientDrawable.toBitmap().sameAs(expectedBitmap)).isTrue()
     }
 
@@ -147,8 +151,10 @@
         }
 
         val imageView = assertIs<ImageView>(context.applyRemoteViews(rv))
-        assertThat(imageView.getContentDescription()).isEqualTo("oval")
-        assertThat(imageView.getScaleType()).isEqualTo(ImageView.ScaleType.CENTER_CROP)
+        assertThat(imageView.contentDescription).isEqualTo("oval")
+        assertThat(imageView.importantForAccessibility)
+            .isEqualTo(View.IMPORTANT_FOR_ACCESSIBILITY_YES)
+        assertThat(imageView.scaleType).isEqualTo(ImageView.ScaleType.CENTER_CROP)
     }
 
     @Test
@@ -162,8 +168,10 @@
         }
 
         val imageView = assertIs<ImageView>(context.applyRemoteViews(rv))
-        assertThat(imageView.getContentDescription()).isEqualTo("oval")
-        assertThat(imageView.getScaleType()).isEqualTo(ImageView.ScaleType.FIT_CENTER)
+        assertThat(imageView.contentDescription).isEqualTo("oval")
+        assertThat(imageView.importantForAccessibility)
+            .isEqualTo(View.IMPORTANT_FOR_ACCESSIBILITY_YES)
+        assertThat(imageView.scaleType).isEqualTo(ImageView.ScaleType.FIT_CENTER)
     }
 
     @Test
@@ -177,8 +185,10 @@
         }
 
         val imageView = assertIs<ImageView>(context.applyRemoteViews(rv))
-        assertThat(imageView.getContentDescription()).isEqualTo("oval")
-        assertThat(imageView.getScaleType()).isEqualTo(ImageView.ScaleType.FIT_XY)
+        assertThat(imageView.contentDescription).isEqualTo("oval")
+        assertThat(imageView.importantForAccessibility)
+            .isEqualTo(View.IMPORTANT_FOR_ACCESSIBILITY_YES)
+        assertThat(imageView.scaleType).isEqualTo(ImageView.ScaleType.FIT_XY)
     }
 
     @Test
@@ -193,7 +203,25 @@
             }
 
             val imageView = assertIs<ImageView>(context.applyRemoteViews(rv))
-            assertThat(imageView.getContentDescription()).isEqualTo("oval")
+            assertThat(imageView.contentDescription).isEqualTo("oval")
+            assertThat(imageView.importantForAccessibility)
+                .isEqualTo(View.IMPORTANT_FOR_ACCESSIBILITY_YES)
+        }
+
+    @Test
+    fun translateImage_contentDescriptionEmptyString_treatedAsDecorative() =
+        fakeCoroutineScope.runTest {
+            val rv = context.runAndTranslate {
+                Image(
+                    provider = ImageProvider(R.drawable.oval),
+                    contentDescription = "",
+                )
+            }
+
+            val imageView = assertIs<ImageView>(context.applyRemoteViews(rv))
+            assertThat(imageView.contentDescription).isEqualTo("")
+            assertThat(imageView.importantForAccessibility)
+                .isEqualTo(View.IMPORTANT_FOR_ACCESSIBILITY_NO)
         }
 
     @Test
@@ -208,11 +236,13 @@
             }
 
             val imageView = assertIs<ImageView>(context.applyRemoteViews(rv))
-            assertThat(imageView.getContentDescription()).isEqualTo("round")
+            assertThat(imageView.contentDescription).isEqualTo("round")
+            assertThat(imageView.importantForAccessibility)
+                .isEqualTo(View.IMPORTANT_FOR_ACCESSIBILITY_YES)
         }
 
     @Test
-    fun translateImage_contentDescriptionFieldAndSemanticsNull() =
+    fun translateImage_contentDescriptionFieldAndSemanticsNull_treatedAsDecorative() =
         fakeCoroutineScope.runTest {
             val rv = context.runAndTranslate {
                 Image(
@@ -223,7 +253,9 @@
             }
 
             val imageView = assertIs<ImageView>(context.applyRemoteViews(rv))
-            assertThat(imageView.getContentDescription()).isNull()
+            assertThat(imageView.contentDescription).isNull()
+            assertThat(imageView.importantForAccessibility)
+                .isEqualTo(View.IMPORTANT_FOR_ACCESSIBILITY_NO)
         }
 
     @Test
diff --git a/glance/glance/src/main/java/androidx/glance/Image.kt b/glance/glance/src/main/java/androidx/glance/Image.kt
index 440722f..5248736 100644
--- a/glance/glance/src/main/java/androidx/glance/Image.kt
+++ b/glance/glance/src/main/java/androidx/glance/Image.kt
@@ -24,6 +24,8 @@
 import androidx.annotation.RestrictTo
 import androidx.compose.runtime.Composable
 import androidx.glance.layout.ContentScale
+import androidx.glance.semantics.SemanticsModifier
+import androidx.glance.semantics.SemanticsProperties
 import androidx.glance.semantics.contentDescription
 import androidx.glance.semantics.semantics
 import androidx.glance.unit.ColorProvider
@@ -124,6 +126,14 @@
         ")"
 }
 
+@RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)
+/** @suppress */
+fun EmittableImage.isDecorative(): Boolean {
+    val semanticsConfiguration = modifier.findModifier<SemanticsModifier>()?.configuration
+    return semanticsConfiguration?.getOrNull(SemanticsProperties.ContentDescription)?.get(0)
+        .isNullOrEmpty()
+}
+
 /**
  * A composable which lays out and draws the image specified in [provider]. This will attempt to lay
  * out the image using the intrinsic width and height of the provided image, but this can be
diff --git a/gradle.properties b/gradle.properties
index 5091b78..723390d 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -37,23 +37,18 @@
 # Suppress Compatibility migration. Opt-out is matched first.
 
 # First stage of Suppress Compatibility migration.
-androidx.suppress.compatibility.optout.abc=activity/activity/,appsearch/appsearch/,appsearch/appsearch-builtin-types/,appsearch/appsearch-play/,compose/,core/core/,core/core-telecom/,credentials/credentials/
 androidx.suppress.compatibility.optin.abc=a,b,c
 
 # Second stage of Suppress Compatibility migration
-androidx.suppress.compatibility.optout.defg=graphics/graphics-path/,graphics/graphics-core/
 androidx.suppress.compatibility.optin.defg=d,e,f,g
 
 # Third stage of Suppress Compatibility migration
-androidx.suppress.compatibility.optout.hijklm=health/connect/connect-client/,heifwriter/heifwriter/,hilt/hilt-navigation-fragment/,media/media/,mediarouter/mediarouter/
 androidx.suppress.compatibility.optin.hijklm=h,i,j,k,l,m
 
 # Fourth stage of Suppress Compatibility migration
-androidx.suppress.compatibility.optout.nopqrst=navigation/navigation-ui/,privacysandbox/ads/ads-adservices/,privacysandbox/sdkruntime/sdkruntime-client/,privacysandbox/sdkruntime/sdkruntime-core/,privacysandbox/ui/ui-client/,privacysandbox/ui/ui-core/,privacysandbox/ui/ui-provider/,transition/transition/
 androidx.suppress.compatibility.optin.nopqrst=n,o,p,q,r,s,t
 
 # Fifth stage of Suppress Compatibility migration
-androidx.suppress.compatibility.optout.uvwxyz=wear/compose/compose-foundation/,wear/protolayout/protolayout-expression/,wear/protolayout/protolayout-material/,wear/watchface/watchface-client/,window/window/,window/window-java/,window/extensions/extensions/,work/work-datatransfer/
 androidx.suppress.compatibility.optin.uvwxyz=u,v,w,x,y,z
 
 # Don't warn about needing to update AGP
diff --git a/graphics/graphics-core/api/public_plus_experimental_current.txt b/graphics/graphics-core/api/public_plus_experimental_current.txt
deleted file mode 100644
index d9f2b2f..0000000
--- a/graphics/graphics-core/api/public_plus_experimental_current.txt
+++ /dev/null
@@ -1,408 +0,0 @@
-// Signature format: 4.0
-package androidx.graphics.lowlatency {
-
-  public final class BufferInfo {
-    method public int getFrameBufferId();
-    method public int getHeight();
-    method public int getWidth();
-    property public final int frameBufferId;
-    property public final int height;
-    property public final int width;
-  }
-
-  @RequiresApi(android.os.Build.VERSION_CODES.Q) public final class CanvasFrontBufferedRenderer<T> {
-    ctor public CanvasFrontBufferedRenderer(android.view.SurfaceView surfaceView, androidx.graphics.lowlatency.CanvasFrontBufferedRenderer.Callback<T> callback);
-    method public void cancel();
-    method public void commit();
-    method public boolean isValid();
-    method public void release(boolean cancelPending);
-    method public void release(boolean cancelPending, optional kotlin.jvm.functions.Function0<kotlin.Unit>? onReleaseComplete);
-    method public void renderFrontBufferedLayer(T param);
-    method public void renderMultiBufferedLayer(java.util.Collection<? extends T> params);
-  }
-
-  @kotlin.jvm.JvmDefaultWithCompatibility public static interface CanvasFrontBufferedRenderer.Callback<T> {
-    method @WorkerThread public void onDrawFrontBufferedLayer(android.graphics.Canvas canvas, int bufferWidth, int bufferHeight, T param);
-    method @WorkerThread public void onDrawMultiBufferedLayer(android.graphics.Canvas canvas, int bufferWidth, int bufferHeight, java.util.Collection<? extends T> params);
-    method @WorkerThread public default void onFrontBufferedLayerRenderComplete(androidx.graphics.surface.SurfaceControlCompat frontBufferedLayerSurfaceControl, androidx.graphics.surface.SurfaceControlCompat.Transaction transaction);
-    method @WorkerThread public default void onMultiBufferedLayerRenderComplete(androidx.graphics.surface.SurfaceControlCompat frontBufferedLayerSurfaceControl, androidx.graphics.surface.SurfaceControlCompat.Transaction transaction);
-  }
-
-  public final class FrontBufferSyncStrategy implements androidx.graphics.opengl.SyncStrategy {
-    ctor public FrontBufferSyncStrategy(long usageFlags);
-    method @RequiresApi(android.os.Build.VERSION_CODES.KITKAT) public androidx.hardware.SyncFenceCompat? createSyncFence(androidx.graphics.opengl.egl.EGLSpec eglSpec);
-    method public boolean isVisible();
-    method public void setVisible(boolean);
-    property public final boolean isVisible;
-  }
-
-  @RequiresApi(android.os.Build.VERSION_CODES.Q) public final class GLFrontBufferedRenderer<T> {
-    ctor public GLFrontBufferedRenderer(android.view.SurfaceView surfaceView, androidx.graphics.lowlatency.GLFrontBufferedRenderer.Callback<T> callback);
-    ctor public GLFrontBufferedRenderer(android.view.SurfaceView surfaceView, androidx.graphics.lowlatency.GLFrontBufferedRenderer.Callback<T> callback, optional androidx.graphics.opengl.GLRenderer? glRenderer);
-    method public void cancel();
-    method public void clear();
-    method public void commit();
-    method public void execute(Runnable runnable);
-    method public boolean isValid();
-    method public void release(boolean cancelPending);
-    method public void release(boolean cancelPending, optional kotlin.jvm.functions.Function0<kotlin.Unit>? onReleaseComplete);
-    method public void renderFrontBufferedLayer(T param);
-    method public void renderMultiBufferedLayer(java.util.Collection<? extends T> params);
-  }
-
-  @kotlin.jvm.JvmDefaultWithCompatibility public static interface GLFrontBufferedRenderer.Callback<T> {
-    method @WorkerThread public void onDrawFrontBufferedLayer(androidx.graphics.opengl.egl.EGLManager eglManager, androidx.graphics.lowlatency.BufferInfo bufferInfo, float[] transform, T param);
-    method @WorkerThread public void onDrawMultiBufferedLayer(androidx.graphics.opengl.egl.EGLManager eglManager, androidx.graphics.lowlatency.BufferInfo bufferInfo, float[] transform, java.util.Collection<? extends T> params);
-    method @WorkerThread public default void onFrontBufferedLayerRenderComplete(androidx.graphics.surface.SurfaceControlCompat frontBufferedLayerSurfaceControl, androidx.graphics.surface.SurfaceControlCompat.Transaction transaction);
-    method @WorkerThread public default void onMultiBufferedLayerRenderComplete(androidx.graphics.surface.SurfaceControlCompat frontBufferedLayerSurfaceControl, androidx.graphics.surface.SurfaceControlCompat.Transaction transaction);
-  }
-
-}
-
-package androidx.graphics.opengl {
-
-  @RequiresApi(android.os.Build.VERSION_CODES.O) public final class FrameBuffer implements java.lang.AutoCloseable {
-    ctor public FrameBuffer(androidx.graphics.opengl.egl.EGLSpec egl, android.hardware.HardwareBuffer hardwareBuffer);
-    method public void close();
-    method public android.hardware.HardwareBuffer getHardwareBuffer();
-    method public boolean isClosed();
-    method public void makeCurrent();
-    property public final android.hardware.HardwareBuffer hardwareBuffer;
-    property public final boolean isClosed;
-  }
-
-  @RequiresApi(android.os.Build.VERSION_CODES.O) public final class FrameBufferRenderer implements androidx.graphics.opengl.GLRenderer.RenderCallback {
-    ctor public FrameBufferRenderer(androidx.graphics.opengl.FrameBufferRenderer.RenderCallback frameBufferRendererCallbacks, optional androidx.graphics.opengl.SyncStrategy syncStrategy);
-    method public void clear();
-    method public void onDrawFrame(androidx.graphics.opengl.egl.EGLManager eglManager);
-  }
-
-  public static interface FrameBufferRenderer.RenderCallback {
-    method public androidx.graphics.opengl.FrameBuffer obtainFrameBuffer(androidx.graphics.opengl.egl.EGLSpec egl);
-    method public void onDraw(androidx.graphics.opengl.egl.EGLManager eglManager);
-    method public void onDrawComplete(androidx.graphics.opengl.FrameBuffer frameBuffer, androidx.hardware.SyncFenceCompat? syncFenceCompat);
-  }
-
-  public final class GLRenderer {
-    ctor public GLRenderer(optional kotlin.jvm.functions.Function0<? extends androidx.graphics.opengl.egl.EGLSpec> eglSpecFactory, optional kotlin.jvm.functions.Function1<? super androidx.graphics.opengl.egl.EGLManager,? extends android.opengl.EGLConfig> eglConfigFactory);
-    method public androidx.graphics.opengl.GLRenderer.RenderTarget attach(android.view.Surface surface, int width, int height, androidx.graphics.opengl.GLRenderer.RenderCallback renderer);
-    method public androidx.graphics.opengl.GLRenderer.RenderTarget attach(android.view.SurfaceView surfaceView, androidx.graphics.opengl.GLRenderer.RenderCallback renderer);
-    method public androidx.graphics.opengl.GLRenderer.RenderTarget attach(android.view.TextureView textureView, androidx.graphics.opengl.GLRenderer.RenderCallback renderer);
-    method public androidx.graphics.opengl.GLRenderer.RenderTarget createRenderTarget(int width, int height, androidx.graphics.opengl.GLRenderer.RenderCallback renderer);
-    method public void detach(androidx.graphics.opengl.GLRenderer.RenderTarget target, boolean cancelPending);
-    method public void detach(androidx.graphics.opengl.GLRenderer.RenderTarget target, boolean cancelPending, optional @WorkerThread kotlin.jvm.functions.Function1<? super androidx.graphics.opengl.GLRenderer.RenderTarget,kotlin.Unit>? onDetachComplete);
-    method public void execute(Runnable runnable);
-    method public boolean isRunning();
-    method public void registerEGLContextCallback(androidx.graphics.opengl.GLRenderer.EGLContextCallback callback);
-    method public void requestRender(androidx.graphics.opengl.GLRenderer.RenderTarget target);
-    method public void requestRender(androidx.graphics.opengl.GLRenderer.RenderTarget target, optional kotlin.jvm.functions.Function1<? super androidx.graphics.opengl.GLRenderer.RenderTarget,kotlin.Unit>? onRenderComplete);
-    method public void resize(androidx.graphics.opengl.GLRenderer.RenderTarget target, int width, int height);
-    method public void resize(androidx.graphics.opengl.GLRenderer.RenderTarget target, int width, int height, optional kotlin.jvm.functions.Function1<? super androidx.graphics.opengl.GLRenderer.RenderTarget,kotlin.Unit>? onResizeComplete);
-    method public void start();
-    method public void start(optional String name);
-    method public void stop(boolean cancelPending);
-    method public void stop(boolean cancelPending, optional kotlin.jvm.functions.Function1<? super androidx.graphics.opengl.GLRenderer,kotlin.Unit>? onStop);
-    method public void unregisterEGLContextCallback(androidx.graphics.opengl.GLRenderer.EGLContextCallback callback);
-    field public static final androidx.graphics.opengl.GLRenderer.Companion Companion;
-  }
-
-  public static final class GLRenderer.Companion {
-  }
-
-  public static interface GLRenderer.EGLContextCallback {
-    method @WorkerThread public void onEGLContextCreated(androidx.graphics.opengl.egl.EGLManager eglManager);
-    method @WorkerThread public void onEGLContextDestroyed(androidx.graphics.opengl.egl.EGLManager eglManager);
-  }
-
-  @kotlin.jvm.JvmDefaultWithCompatibility public static interface GLRenderer.RenderCallback {
-    method @WorkerThread public void onDrawFrame(androidx.graphics.opengl.egl.EGLManager eglManager);
-    method @WorkerThread public default android.opengl.EGLSurface? onSurfaceCreated(androidx.graphics.opengl.egl.EGLSpec spec, android.opengl.EGLConfig config, android.view.Surface surface, int width, int height);
-  }
-
-  public static final class GLRenderer.RenderTarget {
-    method public void detach(boolean cancelPending);
-    method public void detach(boolean cancelPending, optional kotlin.jvm.functions.Function1<? super androidx.graphics.opengl.GLRenderer.RenderTarget,kotlin.Unit>? onDetachComplete);
-    method public boolean isAttached();
-    method public void requestRender();
-    method public void requestRender(optional @WorkerThread kotlin.jvm.functions.Function1<? super androidx.graphics.opengl.GLRenderer.RenderTarget,kotlin.Unit>? onRenderComplete);
-    method public void resize(int width, int height);
-    method public void resize(int width, int height, optional @WorkerThread kotlin.jvm.functions.Function1<? super androidx.graphics.opengl.GLRenderer.RenderTarget,kotlin.Unit>? onResizeComplete);
-  }
-
-  public interface SyncStrategy {
-    method @RequiresApi(android.os.Build.VERSION_CODES.KITKAT) public androidx.hardware.SyncFenceCompat? createSyncFence(androidx.graphics.opengl.egl.EGLSpec eglSpec);
-    field public static final androidx.graphics.opengl.SyncStrategy ALWAYS;
-    field public static final androidx.graphics.opengl.SyncStrategy.Companion Companion;
-  }
-
-  public static final class SyncStrategy.Companion {
-  }
-
-}
-
-package androidx.graphics.opengl.egl {
-
-  public final class EGLConfigAttributes {
-    method public int[] toArray();
-    field public static final androidx.graphics.opengl.egl.EGLConfigAttributes.Companion Companion;
-    field public static final int EGL_COLOR_COMPONENT_TYPE_EXT = 13113; // 0x3339
-    field public static final int EGL_COLOR_COMPONENT_TYPE_FIXED_EXT = 13114; // 0x333a
-    field public static final int EGL_COLOR_COMPONENT_TYPE_FLOAT_EXT = 13115; // 0x333b
-    field public static final androidx.graphics.opengl.egl.EGLConfigAttributes RGBA_1010102;
-    field public static final androidx.graphics.opengl.egl.EGLConfigAttributes RGBA_8888;
-    field public static final androidx.graphics.opengl.egl.EGLConfigAttributes RGBA_F16;
-  }
-
-  public static final class EGLConfigAttributes.Builder {
-    method public androidx.graphics.opengl.egl.EGLConfigAttributes build();
-    method public void include(androidx.graphics.opengl.egl.EGLConfigAttributes attributes);
-    method public androidx.graphics.opengl.egl.EGLConfigAttributes.Builder setAttribute(int attribute, int value);
-    method @kotlin.jvm.JvmSynthetic public infix void to(int, int that);
-  }
-
-  public static final class EGLConfigAttributes.Companion {
-  }
-
-  public final class EGLConfigAttributesKt {
-    method @kotlin.jvm.JvmSynthetic public static inline androidx.graphics.opengl.egl.EGLConfigAttributes EGLConfigAttributes(kotlin.jvm.functions.Function1<? super androidx.graphics.opengl.egl.EGLConfigAttributes.Builder,kotlin.Unit> block);
-  }
-
-  public final class EGLException extends java.lang.RuntimeException {
-    ctor public EGLException(int error, optional String msg);
-    method public int getError();
-    method public String getMsg();
-    property public final int error;
-    property public String message;
-    property public final String msg;
-  }
-
-  public final class EGLManager {
-    ctor public EGLManager(optional androidx.graphics.opengl.egl.EGLSpec eglSpec);
-    method public android.opengl.EGLContext createContext(android.opengl.EGLConfig config);
-    method public android.opengl.EGLSurface getCurrentDrawSurface();
-    method public android.opengl.EGLSurface getCurrentReadSurface();
-    method public android.opengl.EGLSurface getDefaultSurface();
-    method public android.opengl.EGLConfig? getEGLConfig();
-    method public android.opengl.EGLContext? getEGLContext();
-    method public androidx.graphics.opengl.egl.EGLSpec getEGLSpec();
-    method public androidx.graphics.opengl.egl.EGLVersion getEGLVersion();
-    method public void initialize();
-    method public boolean isExtensionSupported(String extensionName);
-    method public android.opengl.EGLConfig? loadConfig(androidx.graphics.opengl.egl.EGLConfigAttributes configAttributes);
-    method public boolean makeCurrent(android.opengl.EGLSurface drawSurface);
-    method public boolean makeCurrent(android.opengl.EGLSurface drawSurface, optional android.opengl.EGLSurface readSurface);
-    method public void release();
-    method public void swapAndFlushBuffers();
-    property public final android.opengl.EGLSurface currentDrawSurface;
-    property public final android.opengl.EGLSurface currentReadSurface;
-    property public final android.opengl.EGLSurface defaultSurface;
-    property public final android.opengl.EGLConfig? eglConfig;
-    property public final android.opengl.EGLContext? eglContext;
-    property public final androidx.graphics.opengl.egl.EGLSpec eglSpec;
-    property public final androidx.graphics.opengl.egl.EGLVersion eglVersion;
-    field public static final androidx.graphics.opengl.egl.EGLManager.Companion Companion;
-  }
-
-  public static final class EGLManager.Companion {
-  }
-
-  @kotlin.jvm.JvmDefaultWithCompatibility public interface EGLSpec {
-    method public int eglClientWaitSyncKHR(androidx.opengl.EGLSyncKHR sync, int flags, long timeoutNanos);
-    method public android.opengl.EGLContext eglCreateContext(android.opengl.EGLConfig config);
-    method @RequiresApi(android.os.Build.VERSION_CODES.O) public androidx.opengl.EGLImageKHR? eglCreateImageFromHardwareBuffer(android.hardware.HardwareBuffer hardwareBuffer);
-    method public android.opengl.EGLSurface eglCreatePBufferSurface(android.opengl.EGLConfig config, androidx.graphics.opengl.egl.EGLConfigAttributes? configAttributes);
-    method public androidx.opengl.EGLSyncKHR? eglCreateSyncKHR(int type, androidx.graphics.opengl.egl.EGLConfigAttributes? attributes);
-    method public android.opengl.EGLSurface eglCreateWindowSurface(android.opengl.EGLConfig config, android.view.Surface surface, androidx.graphics.opengl.egl.EGLConfigAttributes? configAttributes);
-    method public void eglDestroyContext(android.opengl.EGLContext eglContext);
-    method public boolean eglDestroyImageKHR(androidx.opengl.EGLImageKHR image);
-    method public boolean eglDestroySurface(android.opengl.EGLSurface surface);
-    method public boolean eglDestroySyncKHR(androidx.opengl.EGLSyncKHR sync);
-    method public android.opengl.EGLSurface eglGetCurrentDrawSurface();
-    method public android.opengl.EGLSurface eglGetCurrentReadSurface();
-    method public int eglGetError();
-    method public boolean eglGetSyncAttribKHR(androidx.opengl.EGLSyncKHR sync, int attribute, int[] value, int offset);
-    method public androidx.graphics.opengl.egl.EGLVersion eglInitialize();
-    method public boolean eglMakeCurrent(android.opengl.EGLContext context, android.opengl.EGLSurface drawSurface, android.opengl.EGLSurface readSurface);
-    method public String eglQueryString(int nameId);
-    method public boolean eglQuerySurface(android.opengl.EGLSurface surface, int attribute, int[] result, int offset);
-    method public boolean eglSwapBuffers(android.opengl.EGLSurface surface);
-    method public default String getErrorMessage();
-    method public default static String getStatusString(int error);
-    method public android.opengl.EGLConfig? loadConfig(androidx.graphics.opengl.egl.EGLConfigAttributes configAttributes);
-    field public static final androidx.graphics.opengl.egl.EGLSpec.Companion Companion;
-    field public static final androidx.graphics.opengl.egl.EGLSpec V14;
-  }
-
-  public static final class EGLSpec.Companion {
-    method public String getStatusString(int error);
-  }
-
-  public final class EGLVersion {
-    ctor public EGLVersion(int major, int minor);
-    method public int component1();
-    method public int component2();
-    method public androidx.graphics.opengl.egl.EGLVersion copy(int major, int minor);
-    method public int getMajor();
-    method public int getMinor();
-    property public final int major;
-    property public final int minor;
-    field public static final androidx.graphics.opengl.egl.EGLVersion.Companion Companion;
-    field public static final androidx.graphics.opengl.egl.EGLVersion Unknown;
-    field public static final androidx.graphics.opengl.egl.EGLVersion V14;
-    field public static final androidx.graphics.opengl.egl.EGLVersion V15;
-  }
-
-  public static final class EGLVersion.Companion {
-  }
-
-}
-
-package androidx.graphics.surface {
-
-  @RequiresApi(android.os.Build.VERSION_CODES.Q) public final class SurfaceControlCompat {
-    method public boolean isValid();
-    method public void release();
-    field public static final int BUFFER_TRANSFORM_IDENTITY = 0; // 0x0
-    field public static final int BUFFER_TRANSFORM_MIRROR_HORIZONTAL = 1; // 0x1
-    field public static final int BUFFER_TRANSFORM_MIRROR_VERTICAL = 2; // 0x2
-    field public static final int BUFFER_TRANSFORM_ROTATE_180 = 3; // 0x3
-    field public static final int BUFFER_TRANSFORM_ROTATE_270 = 7; // 0x7
-    field public static final int BUFFER_TRANSFORM_ROTATE_90 = 4; // 0x4
-    field public static final androidx.graphics.surface.SurfaceControlCompat.Companion Companion;
-  }
-
-  public static final class SurfaceControlCompat.Builder {
-    ctor public SurfaceControlCompat.Builder();
-    method public androidx.graphics.surface.SurfaceControlCompat build();
-    method public androidx.graphics.surface.SurfaceControlCompat.Builder setName(String name);
-    method public androidx.graphics.surface.SurfaceControlCompat.Builder setParent(android.view.SurfaceView surfaceView);
-    method public androidx.graphics.surface.SurfaceControlCompat.Builder setParent(androidx.graphics.surface.SurfaceControlCompat surfaceControl);
-  }
-
-  public static final class SurfaceControlCompat.Companion {
-  }
-
-  public static final class SurfaceControlCompat.Transaction implements java.lang.AutoCloseable {
-    ctor public SurfaceControlCompat.Transaction();
-    method @RequiresApi(android.os.Build.VERSION_CODES.S) public androidx.graphics.surface.SurfaceControlCompat.Transaction addTransactionCommittedListener(java.util.concurrent.Executor executor, androidx.graphics.surface.SurfaceControlCompat.TransactionCommittedListener listener);
-    method public void close();
-    method public void commit();
-    method @RequiresApi(android.os.Build.VERSION_CODES.TIRAMISU) public void commitTransactionOnDraw(android.view.AttachedSurfaceControl attachedSurfaceControl);
-    method @RequiresApi(android.os.Build.VERSION_CODES.TIRAMISU) public androidx.graphics.surface.SurfaceControlCompat.Transaction reparent(androidx.graphics.surface.SurfaceControlCompat surfaceControl, android.view.AttachedSurfaceControl attachedSurfaceControl);
-    method public androidx.graphics.surface.SurfaceControlCompat.Transaction reparent(androidx.graphics.surface.SurfaceControlCompat surfaceControl, androidx.graphics.surface.SurfaceControlCompat? newParent);
-    method public androidx.graphics.surface.SurfaceControlCompat.Transaction setAlpha(androidx.graphics.surface.SurfaceControlCompat surfaceControl, float alpha);
-    method public androidx.graphics.surface.SurfaceControlCompat.Transaction setBuffer(androidx.graphics.surface.SurfaceControlCompat surfaceControl, android.hardware.HardwareBuffer? buffer);
-    method public androidx.graphics.surface.SurfaceControlCompat.Transaction setBuffer(androidx.graphics.surface.SurfaceControlCompat surfaceControl, android.hardware.HardwareBuffer? buffer, optional androidx.hardware.SyncFenceCompat? fence);
-    method public androidx.graphics.surface.SurfaceControlCompat.Transaction setBuffer(androidx.graphics.surface.SurfaceControlCompat surfaceControl, android.hardware.HardwareBuffer? buffer, optional androidx.hardware.SyncFenceCompat? fence, optional kotlin.jvm.functions.Function0<kotlin.Unit>? releaseCallback);
-    method public androidx.graphics.surface.SurfaceControlCompat.Transaction setBufferTransform(androidx.graphics.surface.SurfaceControlCompat surfaceControl, int transformation);
-    method public androidx.graphics.surface.SurfaceControlCompat.Transaction setCrop(androidx.graphics.surface.SurfaceControlCompat surfaceControl, android.graphics.Rect? crop);
-    method public androidx.graphics.surface.SurfaceControlCompat.Transaction setDamageRegion(androidx.graphics.surface.SurfaceControlCompat surfaceControl, android.graphics.Region? region);
-    method public androidx.graphics.surface.SurfaceControlCompat.Transaction setLayer(androidx.graphics.surface.SurfaceControlCompat surfaceControl, int z);
-    method public androidx.graphics.surface.SurfaceControlCompat.Transaction setOpaque(androidx.graphics.surface.SurfaceControlCompat surfaceControl, boolean isOpaque);
-    method public androidx.graphics.surface.SurfaceControlCompat.Transaction setPosition(androidx.graphics.surface.SurfaceControlCompat surfaceControl, float x, float y);
-    method public androidx.graphics.surface.SurfaceControlCompat.Transaction setScale(androidx.graphics.surface.SurfaceControlCompat surfaceControl, float scaleX, float scaleY);
-    method public androidx.graphics.surface.SurfaceControlCompat.Transaction setVisibility(androidx.graphics.surface.SurfaceControlCompat surfaceControl, boolean visible);
-  }
-
-  public static interface SurfaceControlCompat.TransactionCommittedListener {
-    method public void onTransactionCommitted();
-  }
-
-}
-
-package androidx.hardware {
-
-  @RequiresApi(android.os.Build.VERSION_CODES.KITKAT) public final class SyncFenceCompat implements java.lang.AutoCloseable {
-    method public boolean await(long timeoutNanos);
-    method public boolean awaitForever();
-    method public void close();
-    method public static androidx.hardware.SyncFenceCompat createNativeSyncFence();
-    method @RequiresApi(android.os.Build.VERSION_CODES.O) public long getSignalTimeNanos();
-    method public boolean isValid();
-    field public static final androidx.hardware.SyncFenceCompat.Companion Companion;
-    field public static final long SIGNAL_TIME_INVALID = -1L; // 0xffffffffffffffffL
-    field public static final long SIGNAL_TIME_PENDING = 9223372036854775807L; // 0x7fffffffffffffffL
-  }
-
-  public static final class SyncFenceCompat.Companion {
-    method public androidx.hardware.SyncFenceCompat createNativeSyncFence();
-  }
-
-}
-
-package androidx.opengl {
-
-  public final class EGLExt {
-    method public static int eglClientWaitSyncKHR(android.opengl.EGLDisplay eglDisplay, androidx.opengl.EGLSyncKHR sync, int flags, long timeoutNanos);
-    method @RequiresApi(android.os.Build.VERSION_CODES.O) public static androidx.opengl.EGLImageKHR? eglCreateImageFromHardwareBuffer(android.opengl.EGLDisplay eglDisplay, android.hardware.HardwareBuffer hardwareBuffer);
-    method public static androidx.opengl.EGLSyncKHR? eglCreateSyncKHR(android.opengl.EGLDisplay eglDisplay, int type, androidx.graphics.opengl.egl.EGLConfigAttributes? attributes);
-    method public static boolean eglDestroyImageKHR(android.opengl.EGLDisplay eglDisplay, androidx.opengl.EGLImageKHR image);
-    method public static boolean eglDestroySyncKHR(android.opengl.EGLDisplay eglDisplay, androidx.opengl.EGLSyncKHR eglSync);
-    method public static boolean eglGetSyncAttribKHR(android.opengl.EGLDisplay eglDisplay, androidx.opengl.EGLSyncKHR sync, int attribute, int[] value, int offset);
-    method public static void glEGLImageTargetTexture2DOES(int target, androidx.opengl.EGLImageKHR image);
-    method public static java.util.Set<java.lang.String> parseExtensions(String queryString);
-    field public static final androidx.opengl.EGLExt.Companion Companion;
-    field public static final String EGL_ANDROID_CLIENT_BUFFER = "EGL_ANDROID_get_native_client_buffer";
-    field public static final String EGL_ANDROID_IMAGE_NATIVE_BUFFER = "EGL_ANDROID_image_native_buffer";
-    field public static final String EGL_ANDROID_NATIVE_FENCE_SYNC = "EGL_ANDROID_native_fence_sync";
-    field public static final int EGL_CONDITION_SATISFIED_KHR = 12534; // 0x30f6
-    field public static final String EGL_EXT_BUFFER_AGE = "EGL_EXT_buffer_age";
-    field public static final String EGL_EXT_GL_COLORSPACE_BT2020_PQ = "EGL_EXT_gl_colorspace_bt2020_pq";
-    field public static final String EGL_EXT_GL_COLORSPACE_DISPLAY_P3_PASSTHROUGH = "EGL_EXT_gl_colorspace_display_p3_passthrough";
-    field public static final String EGL_EXT_GL_COLORSPACE_SCRGB = "EGL_EXT_gl_colorspace_scrgb";
-    field public static final String EGL_EXT_PIXEL_FORMAT_FLOAT = "EGL_EXT_pixel_format_float";
-    field public static final int EGL_FALSE = 0; // 0x0
-    field public static final long EGL_FOREVER_KHR = -1L; // 0xffffffffffffffffL
-    field public static final String EGL_IMG_CONTEXT_PRIORITY = "EGL_IMG_context_priority";
-    field public static final String EGL_KHR_FENCE_SYNC = "EGL_KHR_fence_sync";
-    field public static final String EGL_KHR_GL_COLORSPACE = "EGL_KHR_gl_colorspace";
-    field public static final String EGL_KHR_IMAGE = "EGL_KHR_image";
-    field public static final String EGL_KHR_IMAGE_BASE = "EGL_KHR_image_base";
-    field public static final String EGL_KHR_NO_CONFIG_CONTEXT = "EGL_KHR_no_config_context";
-    field public static final String EGL_KHR_PARTIAL_UPDATE = "EGL_KHR_partial_update";
-    field public static final String EGL_KHR_SURFACELESS_CONTEXT = "EGL_KHR_surfaceless_context";
-    field public static final String EGL_KHR_SWAP_BUFFERS_WITH_DAMAGE = "EGL_KHR_swap_buffers_with_damage";
-    field public static final String EGL_KHR_WAIT_SYNC = "EGL_KHR_wait_sync";
-    field public static final int EGL_SIGNALED_KHR = 12530; // 0x30f2
-    field public static final int EGL_SYNC_CONDITION_KHR = 12536; // 0x30f8
-    field public static final int EGL_SYNC_FENCE_KHR = 12537; // 0x30f9
-    field public static final int EGL_SYNC_FLUSH_COMMANDS_BIT_KHR = 1; // 0x1
-    field public static final int EGL_SYNC_NATIVE_FENCE_ANDROID = 12612; // 0x3144
-    field public static final int EGL_SYNC_PRIOR_COMMANDS_COMPLETE_KHR = 12528; // 0x30f0
-    field public static final int EGL_SYNC_STATUS_KHR = 12529; // 0x30f1
-    field public static final int EGL_SYNC_TYPE_KHR = 12535; // 0x30f7
-    field public static final int EGL_TIMEOUT_EXPIRED_KHR = 12533; // 0x30f5
-    field public static final int EGL_TRUE = 1; // 0x1
-    field public static final int EGL_UNSIGNALED_KHR = 12531; // 0x30f3
-  }
-
-  public static final class EGLExt.Companion {
-    method public int eglClientWaitSyncKHR(android.opengl.EGLDisplay eglDisplay, androidx.opengl.EGLSyncKHR sync, int flags, long timeoutNanos);
-    method @RequiresApi(android.os.Build.VERSION_CODES.O) public androidx.opengl.EGLImageKHR? eglCreateImageFromHardwareBuffer(android.opengl.EGLDisplay eglDisplay, android.hardware.HardwareBuffer hardwareBuffer);
-    method public androidx.opengl.EGLSyncKHR? eglCreateSyncKHR(android.opengl.EGLDisplay eglDisplay, int type, androidx.graphics.opengl.egl.EGLConfigAttributes? attributes);
-    method public boolean eglDestroyImageKHR(android.opengl.EGLDisplay eglDisplay, androidx.opengl.EGLImageKHR image);
-    method public boolean eglDestroySyncKHR(android.opengl.EGLDisplay eglDisplay, androidx.opengl.EGLSyncKHR eglSync);
-    method public boolean eglGetSyncAttribKHR(android.opengl.EGLDisplay eglDisplay, androidx.opengl.EGLSyncKHR sync, int attribute, int[] value, int offset);
-    method public void glEGLImageTargetTexture2DOES(int target, androidx.opengl.EGLImageKHR image);
-    method public java.util.Set<java.lang.String> parseExtensions(String queryString);
-  }
-
-  public interface EGLHandle {
-    method public long getNativeHandle();
-    property public abstract long nativeHandle;
-  }
-
-  public final class EGLImageKHR implements androidx.opengl.EGLHandle {
-    ctor public EGLImageKHR(long nativeHandle);
-    method public long getNativeHandle();
-    property public long nativeHandle;
-  }
-
-  public final class EGLSyncKHR implements androidx.opengl.EGLHandle {
-    ctor public EGLSyncKHR(long nativeHandle);
-    method public long getNativeHandle();
-    property public long nativeHandle;
-  }
-
-}
-
diff --git a/graphics/graphics-core/src/androidTest/java/androidx/graphics/SurfaceTextureRendererTest.kt b/graphics/graphics-core/src/androidTest/java/androidx/graphics/SurfaceTextureRendererTest.kt
index 199c4cd..308bfed 100644
--- a/graphics/graphics-core/src/androidTest/java/androidx/graphics/SurfaceTextureRendererTest.kt
+++ b/graphics/graphics-core/src/androidTest/java/androidx/graphics/SurfaceTextureRendererTest.kt
@@ -35,6 +35,7 @@
 import java.util.concurrent.TimeUnit
 import org.junit.Assert.assertFalse
 import org.junit.Assert.assertTrue
+import org.junit.Assert.fail
 import org.junit.Test
 import org.junit.runner.RunWith
 
@@ -184,6 +185,8 @@
         val handler = Handler(handlerThread.looper)
         try {
             block(handler)
+        } catch (exception: Exception) {
+            fail("Exception thrown in test case: " + exception.message)
         } finally {
             handlerThread.quit()
         }
diff --git a/graphics/graphics-core/src/androidTest/java/androidx/graphics/lowlatency/GLFrontBufferedRendererTest.kt b/graphics/graphics-core/src/androidTest/java/androidx/graphics/lowlatency/GLFrontBufferedRendererTest.kt
index b2c764d..2543eca 100644
--- a/graphics/graphics-core/src/androidTest/java/androidx/graphics/lowlatency/GLFrontBufferedRendererTest.kt
+++ b/graphics/graphics-core/src/androidTest/java/androidx/graphics/lowlatency/GLFrontBufferedRendererTest.kt
@@ -1280,6 +1280,81 @@
 
     @SdkSuppress(minSdkVersion = Build.VERSION_CODES.Q)
     @Test
+    fun testSurfaceCallbackPreservedAfterResume() {
+        val callbacks = object : GLFrontBufferedRenderer.Callback<Any> {
+            override fun onDrawFrontBufferedLayer(
+                eglManager: EGLManager,
+                bufferInfo: BufferInfo,
+                transform: FloatArray,
+                param: Any
+            ) {
+                // NO-OP
+            }
+
+            override fun onDrawMultiBufferedLayer(
+                eglManager: EGLManager,
+                bufferInfo: BufferInfo,
+                transform: FloatArray,
+                params: Collection<Any>
+            ) {
+                // NO-OP
+            }
+        }
+        var renderer: GLFrontBufferedRenderer<Any>? = null
+        var surfaceView: FrontBufferedRendererTestActivity.TestSurfaceView? = null
+        val createLatch = CountDownLatch(1)
+        val scenario = ActivityScenario.launch(FrontBufferedRendererTestActivity::class.java)
+            .moveToState(Lifecycle.State.CREATED)
+            .onActivity {
+                surfaceView = it.getSurfaceView()
+                renderer = GLFrontBufferedRenderer(surfaceView!!, callbacks)
+                createLatch.countDown()
+            }
+        assertTrue(createLatch.await(3000, TimeUnit.MILLISECONDS))
+
+        val resumeLatch = CountDownLatch(1)
+        var callbackCount = 0
+        scenario.moveToState(Lifecycle.State.RESUMED).onActivity {
+            callbackCount = it.getSurfaceView().getCallbackCount()
+            resumeLatch.countDown()
+        }
+        assertTrue(resumeLatch.await(3000, TimeUnit.MILLISECONDS))
+
+        val pauseLatch = CountDownLatch(1)
+        scenario.moveToState(Lifecycle.State.CREATED).onActivity {
+            pauseLatch.countDown()
+        }
+
+        val returnToResumeLatch = CountDownLatch(1)
+        scenario.moveToState(Lifecycle.State.RESUMED).onActivity {
+            returnToResumeLatch.countDown()
+        }
+        assertTrue(returnToResumeLatch.await(3000, TimeUnit.MILLISECONDS))
+
+        // Capture surfaceView with local val to avoid Kotlin warnings regarding the surfaceView
+        // parameter changing potentially
+        val resolvedSurfaceView = surfaceView
+        try {
+            if (resolvedSurfaceView != null) {
+
+                assertEquals(callbackCount, resolvedSurfaceView.getCallbackCount())
+                val releaseLatch = CountDownLatch(1)
+                renderer!!.release(true) {
+                    releaseLatch.countDown()
+                }
+                assertTrue(releaseLatch.await(3000, TimeUnit.MILLISECONDS))
+                assertEquals(0, resolvedSurfaceView.getCallbackCount())
+                renderer = null
+            } else {
+                fail("Unable to resolve SurfaceView, was the test Activity created?")
+            }
+        } finally {
+            renderer?.blockingRelease()
+        }
+    }
+
+    @SdkSuppress(minSdkVersion = Build.VERSION_CODES.Q)
+    @Test
     fun testGLFrontBufferedRendererCreationFromUnstartedGLRenderer() {
         val callbacks = object : GLFrontBufferedRenderer.Callback<Any> {
             override fun onDrawFrontBufferedLayer(
diff --git a/graphics/graphics-core/src/main/java/androidx/graphics/lowlatency/GLFrontBufferedRenderer.kt b/graphics/graphics-core/src/main/java/androidx/graphics/lowlatency/GLFrontBufferedRenderer.kt
index 7ef9643..2130beb 100644
--- a/graphics/graphics-core/src/main/java/androidx/graphics/lowlatency/GLFrontBufferedRenderer.kt
+++ b/graphics/graphics-core/src/main/java/androidx/graphics/lowlatency/GLFrontBufferedRenderer.kt
@@ -528,7 +528,7 @@
             if (frontBufferedLayerSurfaceControl != null) {
                 transaction.reparent(frontBufferedLayerSurfaceControl, null)
             }
-            mParentRenderLayer.release(transaction)
+            mParentRenderLayer.detach(transaction)
             transaction.commit()
             frontBufferedLayerSurfaceControl?.release()
 
@@ -559,7 +559,10 @@
             Log.w(TAG, "Attempt to release GLFrontbufferedRenderer that is already released")
             return
         }
-        detachTargets(cancelPending, onReleaseComplete)
+        detachTargets(cancelPending) {
+            mParentRenderLayer.release()
+            onReleaseComplete?.invoke()
+        }
 
         mGLRenderer.unregisterEGLContextCallback(mContextCallbacks)
         if (mIsManagingGLRenderer) {
diff --git a/graphics/graphics-core/src/main/java/androidx/graphics/lowlatency/ParentRenderLayer.kt b/graphics/graphics-core/src/main/java/androidx/graphics/lowlatency/ParentRenderLayer.kt
index d58b32a..7e2f571 100644
--- a/graphics/graphics-core/src/main/java/androidx/graphics/lowlatency/ParentRenderLayer.kt
+++ b/graphics/graphics-core/src/main/java/androidx/graphics/lowlatency/ParentRenderLayer.kt
@@ -98,9 +98,14 @@
     fun clear()
 
     /**
+     * Detach the parent [SurfaceControlCompat] as part of the provided transaction
+     */
+    fun detach(transaction: SurfaceControlCompat.Transaction)
+
+    /**
      * Release all resources associated with this [ParentRenderLayer] instance
      */
-    fun release(transaction: SurfaceControlCompat.Transaction)
+    fun release()
 
     /**
      * Callbacks to be implemented by the consumer of [ParentRenderLayer] to be alerted
diff --git a/graphics/graphics-core/src/main/java/androidx/graphics/lowlatency/SurfaceViewRenderLayer.kt b/graphics/graphics-core/src/main/java/androidx/graphics/lowlatency/SurfaceViewRenderLayer.kt
index ad99c0c..c222838 100644
--- a/graphics/graphics-core/src/main/java/androidx/graphics/lowlatency/SurfaceViewRenderLayer.kt
+++ b/graphics/graphics-core/src/main/java/androidx/graphics/lowlatency/SurfaceViewRenderLayer.kt
@@ -199,8 +199,7 @@
         mRenderTarget?.requestRender()
     }
 
-    override fun release(transaction: SurfaceControlCompat.Transaction) {
-        surfaceView.holder.removeCallback(mHolderCallback)
+    override fun detach(transaction: SurfaceControlCompat.Transaction) {
         mParentSurfaceControl?.let {
             transaction.reparent(it, null)
             it.release()
@@ -208,6 +207,13 @@
         mParentSurfaceControl = null
     }
 
+    override fun release() {
+        surfaceView.holder.removeCallback(mHolderCallback)
+        // Release the parent surface control if it was not released previously
+        mParentSurfaceControl?.release()
+        mParentSurfaceControl = null
+    }
+
     internal companion object {
         internal const val TAG = "SurfaceViewRenderLayer"
     }
diff --git a/health/connect/connect-client/api/public_plus_experimental_current.txt b/health/connect/connect-client/api/public_plus_experimental_current.txt
deleted file mode 100644
index 138be5e..0000000
--- a/health/connect/connect-client/api/public_plus_experimental_current.txt
+++ /dev/null
@@ -1,1585 +0,0 @@
-// Signature format: 4.0
-package androidx.health.connect.client {
-
-  @kotlin.jvm.JvmDefaultWithCompatibility public interface HealthConnectClient {
-    method public suspend Object? aggregate(androidx.health.connect.client.request.AggregateRequest request, kotlin.coroutines.Continuation<? super androidx.health.connect.client.aggregate.AggregationResult>);
-    method public suspend Object? aggregateGroupByDuration(androidx.health.connect.client.request.AggregateGroupByDurationRequest request, kotlin.coroutines.Continuation<? super java.util.List<? extends androidx.health.connect.client.aggregate.AggregationResultGroupedByDuration>>);
-    method public suspend Object? aggregateGroupByPeriod(androidx.health.connect.client.request.AggregateGroupByPeriodRequest request, kotlin.coroutines.Continuation<? super java.util.List<? extends androidx.health.connect.client.aggregate.AggregationResultGroupedByPeriod>>);
-    method public suspend Object? deleteRecords(kotlin.reflect.KClass<? extends androidx.health.connect.client.records.Record> recordType, androidx.health.connect.client.time.TimeRangeFilter timeRangeFilter, kotlin.coroutines.Continuation<? super kotlin.Unit>);
-    method public suspend Object? deleteRecords(kotlin.reflect.KClass<? extends androidx.health.connect.client.records.Record> recordType, java.util.List<java.lang.String> recordIdsList, java.util.List<java.lang.String> clientRecordIdsList, kotlin.coroutines.Continuation<? super kotlin.Unit>);
-    method public suspend Object? getChanges(String changesToken, kotlin.coroutines.Continuation<? super androidx.health.connect.client.response.ChangesResponse>);
-    method public suspend Object? getChangesToken(androidx.health.connect.client.request.ChangesTokenRequest request, kotlin.coroutines.Continuation<? super java.lang.String>);
-    method public default static String getHealthConnectSettingsAction();
-    method public default static androidx.health.connect.client.HealthConnectClient getOrCreate(android.content.Context context);
-    method public default static androidx.health.connect.client.HealthConnectClient getOrCreate(android.content.Context context, optional String providerPackageName);
-    method public androidx.health.connect.client.PermissionController getPermissionController();
-    method public default static int getSdkStatus(android.content.Context context);
-    method public default static int getSdkStatus(android.content.Context context, optional String providerPackageName);
-    method public suspend Object? insertRecords(java.util.List<? extends androidx.health.connect.client.records.Record> records, kotlin.coroutines.Continuation<? super androidx.health.connect.client.response.InsertRecordsResponse>);
-    method @Deprecated public default static boolean isApiSupported();
-    method @Deprecated public default static boolean isProviderAvailable(android.content.Context context);
-    method @Deprecated public default static boolean isProviderAvailable(android.content.Context context, optional String providerPackageName);
-    method public suspend <T extends androidx.health.connect.client.records.Record> Object? readRecord(kotlin.reflect.KClass<T> recordType, String recordId, kotlin.coroutines.Continuation<? super androidx.health.connect.client.response.ReadRecordResponse<T>>);
-    method public suspend <T extends androidx.health.connect.client.records.Record> Object? readRecords(androidx.health.connect.client.request.ReadRecordsRequest<T> request, kotlin.coroutines.Continuation<? super androidx.health.connect.client.response.ReadRecordsResponse<T>>);
-    method public suspend Object? updateRecords(java.util.List<? extends androidx.health.connect.client.records.Record> records, kotlin.coroutines.Continuation<? super kotlin.Unit>);
-    property public default static String ACTION_HEALTH_CONNECT_SETTINGS;
-    property public abstract androidx.health.connect.client.PermissionController permissionController;
-    field public static final androidx.health.connect.client.HealthConnectClient.Companion Companion;
-    field public static final int SDK_AVAILABLE = 3; // 0x3
-    field public static final int SDK_UNAVAILABLE = 1; // 0x1
-    field public static final int SDK_UNAVAILABLE_PROVIDER_UPDATE_REQUIRED = 2; // 0x2
-  }
-
-  public static final class HealthConnectClient.Companion {
-    method public String getHealthConnectSettingsAction();
-    method public androidx.health.connect.client.HealthConnectClient getOrCreate(android.content.Context context);
-    method public androidx.health.connect.client.HealthConnectClient getOrCreate(android.content.Context context, optional String providerPackageName);
-    method public int getSdkStatus(android.content.Context context);
-    method public int getSdkStatus(android.content.Context context, optional String providerPackageName);
-    method @Deprecated public boolean isApiSupported();
-    method @Deprecated public boolean isProviderAvailable(android.content.Context context);
-    method @Deprecated public boolean isProviderAvailable(android.content.Context context, optional String providerPackageName);
-    property public final String ACTION_HEALTH_CONNECT_SETTINGS;
-    field public static final int SDK_AVAILABLE = 3; // 0x3
-    field public static final int SDK_UNAVAILABLE = 1; // 0x1
-    field public static final int SDK_UNAVAILABLE_PROVIDER_UPDATE_REQUIRED = 2; // 0x2
-  }
-
-  @kotlin.jvm.JvmDefaultWithCompatibility public interface PermissionController {
-    method public default static androidx.activity.result.contract.ActivityResultContract<java.util.Set<java.lang.String>,java.util.Set<java.lang.String>> createRequestPermissionResultContract();
-    method public default static androidx.activity.result.contract.ActivityResultContract<java.util.Set<java.lang.String>,java.util.Set<java.lang.String>> createRequestPermissionResultContract(optional String providerPackageName);
-    method public suspend Object? getGrantedPermissions(kotlin.coroutines.Continuation<? super java.util.Set<? extends java.lang.String>>);
-    method public suspend Object? revokeAllPermissions(kotlin.coroutines.Continuation<? super kotlin.Unit>);
-    field public static final androidx.health.connect.client.PermissionController.Companion Companion;
-  }
-
-  public static final class PermissionController.Companion {
-    method public androidx.activity.result.contract.ActivityResultContract<java.util.Set<java.lang.String>,java.util.Set<java.lang.String>> createRequestPermissionResultContract();
-    method public androidx.activity.result.contract.ActivityResultContract<java.util.Set<java.lang.String>,java.util.Set<java.lang.String>> createRequestPermissionResultContract(optional String providerPackageName);
-  }
-
-}
-
-package androidx.health.connect.client.aggregate {
-
-  public final class AggregateMetric<T> {
-  }
-
-  public final class AggregationResult {
-    method public operator boolean contains(androidx.health.connect.client.aggregate.AggregateMetric<?> metric);
-    method public operator <T> T? get(androidx.health.connect.client.aggregate.AggregateMetric<? extends T> metric);
-    method public java.util.Set<androidx.health.connect.client.records.metadata.DataOrigin> getDataOrigins();
-    method @Deprecated public <T> T? getMetric(androidx.health.connect.client.aggregate.AggregateMetric<? extends T> metric);
-    method @Deprecated public boolean hasMetric(androidx.health.connect.client.aggregate.AggregateMetric<?> metric);
-    property public final java.util.Set<androidx.health.connect.client.records.metadata.DataOrigin> dataOrigins;
-  }
-
-  public final class AggregationResultGroupedByDuration {
-    method public java.time.Instant getEndTime();
-    method public androidx.health.connect.client.aggregate.AggregationResult getResult();
-    method public java.time.Instant getStartTime();
-    method public java.time.ZoneOffset getZoneOffset();
-    property public final java.time.Instant endTime;
-    property public final androidx.health.connect.client.aggregate.AggregationResult result;
-    property public final java.time.Instant startTime;
-    property public final java.time.ZoneOffset zoneOffset;
-  }
-
-  public final class AggregationResultGroupedByPeriod {
-    method public java.time.LocalDateTime getEndTime();
-    method public androidx.health.connect.client.aggregate.AggregationResult getResult();
-    method public java.time.LocalDateTime getStartTime();
-    property public final java.time.LocalDateTime endTime;
-    property public final androidx.health.connect.client.aggregate.AggregationResult result;
-    property public final java.time.LocalDateTime startTime;
-  }
-
-}
-
-package androidx.health.connect.client.changes {
-
-  public interface Change {
-  }
-
-  public final class DeletionChange implements androidx.health.connect.client.changes.Change {
-    method public String getRecordId();
-    property public final String recordId;
-  }
-
-  public final class UpsertionChange implements androidx.health.connect.client.changes.Change {
-    method public androidx.health.connect.client.records.Record getRecord();
-    property public final androidx.health.connect.client.records.Record record;
-  }
-
-}
-
-package androidx.health.connect.client.permission {
-
-  public final class HealthPermission {
-    method public static String getReadPermission(kotlin.reflect.KClass<? extends androidx.health.connect.client.records.Record> recordType);
-    method public static String getWritePermission(kotlin.reflect.KClass<? extends androidx.health.connect.client.records.Record> recordType);
-    field public static final androidx.health.connect.client.permission.HealthPermission.Companion Companion;
-  }
-
-  public static final class HealthPermission.Companion {
-    method public String getReadPermission(kotlin.reflect.KClass<? extends androidx.health.connect.client.records.Record> recordType);
-    method public String getWritePermission(kotlin.reflect.KClass<? extends androidx.health.connect.client.records.Record> recordType);
-  }
-
-}
-
-package androidx.health.connect.client.records {
-
-  public final class ActiveCaloriesBurnedRecord implements androidx.health.connect.client.records.Record {
-    ctor public ActiveCaloriesBurnedRecord(java.time.Instant startTime, java.time.ZoneOffset? startZoneOffset, java.time.Instant endTime, java.time.ZoneOffset? endZoneOffset, androidx.health.connect.client.units.Energy energy, optional androidx.health.connect.client.records.metadata.Metadata metadata);
-    method public java.time.Instant getEndTime();
-    method public java.time.ZoneOffset? getEndZoneOffset();
-    method public androidx.health.connect.client.units.Energy getEnergy();
-    method public androidx.health.connect.client.records.metadata.Metadata getMetadata();
-    method public java.time.Instant getStartTime();
-    method public java.time.ZoneOffset? getStartZoneOffset();
-    property public java.time.Instant endTime;
-    property public java.time.ZoneOffset? endZoneOffset;
-    property public final androidx.health.connect.client.units.Energy energy;
-    property public androidx.health.connect.client.records.metadata.Metadata metadata;
-    property public java.time.Instant startTime;
-    property public java.time.ZoneOffset? startZoneOffset;
-    field public static final androidx.health.connect.client.aggregate.AggregateMetric<androidx.health.connect.client.units.Energy> ACTIVE_CALORIES_TOTAL;
-    field public static final androidx.health.connect.client.records.ActiveCaloriesBurnedRecord.Companion Companion;
-  }
-
-  public static final class ActiveCaloriesBurnedRecord.Companion {
-  }
-
-  public final class BasalBodyTemperatureRecord implements androidx.health.connect.client.records.Record {
-    ctor public BasalBodyTemperatureRecord(java.time.Instant time, java.time.ZoneOffset? zoneOffset, androidx.health.connect.client.units.Temperature temperature, optional int measurementLocation, optional androidx.health.connect.client.records.metadata.Metadata metadata);
-    method public int getMeasurementLocation();
-    method public androidx.health.connect.client.records.metadata.Metadata getMetadata();
-    method public androidx.health.connect.client.units.Temperature getTemperature();
-    method public java.time.Instant getTime();
-    method public java.time.ZoneOffset? getZoneOffset();
-    property public final int measurementLocation;
-    property public androidx.health.connect.client.records.metadata.Metadata metadata;
-    property public final androidx.health.connect.client.units.Temperature temperature;
-    property public java.time.Instant time;
-    property public java.time.ZoneOffset? zoneOffset;
-  }
-
-  public final class BasalMetabolicRateRecord implements androidx.health.connect.client.records.Record {
-    ctor public BasalMetabolicRateRecord(java.time.Instant time, java.time.ZoneOffset? zoneOffset, androidx.health.connect.client.units.Power basalMetabolicRate, optional androidx.health.connect.client.records.metadata.Metadata metadata);
-    method public androidx.health.connect.client.units.Power getBasalMetabolicRate();
-    method public androidx.health.connect.client.records.metadata.Metadata getMetadata();
-    method public java.time.Instant getTime();
-    method public java.time.ZoneOffset? getZoneOffset();
-    property public final androidx.health.connect.client.units.Power basalMetabolicRate;
-    property public androidx.health.connect.client.records.metadata.Metadata metadata;
-    property public java.time.Instant time;
-    property public java.time.ZoneOffset? zoneOffset;
-    field public static final androidx.health.connect.client.aggregate.AggregateMetric<androidx.health.connect.client.units.Energy> BASAL_CALORIES_TOTAL;
-    field public static final androidx.health.connect.client.records.BasalMetabolicRateRecord.Companion Companion;
-  }
-
-  public static final class BasalMetabolicRateRecord.Companion {
-  }
-
-  public final class BloodGlucoseRecord implements androidx.health.connect.client.records.Record {
-    ctor public BloodGlucoseRecord(java.time.Instant time, java.time.ZoneOffset? zoneOffset, androidx.health.connect.client.units.BloodGlucose level, optional int specimenSource, optional int mealType, optional int relationToMeal, optional androidx.health.connect.client.records.metadata.Metadata metadata);
-    method public androidx.health.connect.client.units.BloodGlucose getLevel();
-    method public int getMealType();
-    method public androidx.health.connect.client.records.metadata.Metadata getMetadata();
-    method public int getRelationToMeal();
-    method public int getSpecimenSource();
-    method public java.time.Instant getTime();
-    method public java.time.ZoneOffset? getZoneOffset();
-    property public final androidx.health.connect.client.units.BloodGlucose level;
-    property public final int mealType;
-    property public androidx.health.connect.client.records.metadata.Metadata metadata;
-    property public final int relationToMeal;
-    property public final int specimenSource;
-    property public java.time.Instant time;
-    property public java.time.ZoneOffset? zoneOffset;
-    field public static final androidx.health.connect.client.records.BloodGlucoseRecord.Companion Companion;
-    field public static final int RELATION_TO_MEAL_AFTER_MEAL = 4; // 0x4
-    field public static final int RELATION_TO_MEAL_BEFORE_MEAL = 3; // 0x3
-    field public static final int RELATION_TO_MEAL_FASTING = 2; // 0x2
-    field public static final int RELATION_TO_MEAL_GENERAL = 1; // 0x1
-    field public static final int RELATION_TO_MEAL_UNKNOWN = 0; // 0x0
-    field public static final int SPECIMEN_SOURCE_CAPILLARY_BLOOD = 2; // 0x2
-    field public static final int SPECIMEN_SOURCE_INTERSTITIAL_FLUID = 1; // 0x1
-    field public static final int SPECIMEN_SOURCE_PLASMA = 3; // 0x3
-    field public static final int SPECIMEN_SOURCE_SERUM = 4; // 0x4
-    field public static final int SPECIMEN_SOURCE_TEARS = 5; // 0x5
-    field public static final int SPECIMEN_SOURCE_UNKNOWN = 0; // 0x0
-    field public static final int SPECIMEN_SOURCE_WHOLE_BLOOD = 6; // 0x6
-  }
-
-  public static final class BloodGlucoseRecord.Companion {
-  }
-
-  public final class BloodPressureRecord implements androidx.health.connect.client.records.Record {
-    ctor public BloodPressureRecord(java.time.Instant time, java.time.ZoneOffset? zoneOffset, androidx.health.connect.client.units.Pressure systolic, androidx.health.connect.client.units.Pressure diastolic, optional int bodyPosition, optional int measurementLocation, optional androidx.health.connect.client.records.metadata.Metadata metadata);
-    method public int getBodyPosition();
-    method public androidx.health.connect.client.units.Pressure getDiastolic();
-    method public int getMeasurementLocation();
-    method public androidx.health.connect.client.records.metadata.Metadata getMetadata();
-    method public androidx.health.connect.client.units.Pressure getSystolic();
-    method public java.time.Instant getTime();
-    method public java.time.ZoneOffset? getZoneOffset();
-    property public final int bodyPosition;
-    property public final androidx.health.connect.client.units.Pressure diastolic;
-    property public final int measurementLocation;
-    property public androidx.health.connect.client.records.metadata.Metadata metadata;
-    property public final androidx.health.connect.client.units.Pressure systolic;
-    property public java.time.Instant time;
-    property public java.time.ZoneOffset? zoneOffset;
-    field public static final int BODY_POSITION_LYING_DOWN = 3; // 0x3
-    field public static final int BODY_POSITION_RECLINING = 4; // 0x4
-    field public static final int BODY_POSITION_SITTING_DOWN = 2; // 0x2
-    field public static final int BODY_POSITION_STANDING_UP = 1; // 0x1
-    field public static final int BODY_POSITION_UNKNOWN = 0; // 0x0
-    field public static final androidx.health.connect.client.records.BloodPressureRecord.Companion Companion;
-    field public static final androidx.health.connect.client.aggregate.AggregateMetric<androidx.health.connect.client.units.Pressure> DIASTOLIC_AVG;
-    field public static final androidx.health.connect.client.aggregate.AggregateMetric<androidx.health.connect.client.units.Pressure> DIASTOLIC_MAX;
-    field public static final androidx.health.connect.client.aggregate.AggregateMetric<androidx.health.connect.client.units.Pressure> DIASTOLIC_MIN;
-    field public static final int MEASUREMENT_LOCATION_LEFT_UPPER_ARM = 3; // 0x3
-    field public static final int MEASUREMENT_LOCATION_LEFT_WRIST = 1; // 0x1
-    field public static final int MEASUREMENT_LOCATION_RIGHT_UPPER_ARM = 4; // 0x4
-    field public static final int MEASUREMENT_LOCATION_RIGHT_WRIST = 2; // 0x2
-    field public static final int MEASUREMENT_LOCATION_UNKNOWN = 0; // 0x0
-    field public static final androidx.health.connect.client.aggregate.AggregateMetric<androidx.health.connect.client.units.Pressure> SYSTOLIC_AVG;
-    field public static final androidx.health.connect.client.aggregate.AggregateMetric<androidx.health.connect.client.units.Pressure> SYSTOLIC_MAX;
-    field public static final androidx.health.connect.client.aggregate.AggregateMetric<androidx.health.connect.client.units.Pressure> SYSTOLIC_MIN;
-  }
-
-  public static final class BloodPressureRecord.Companion {
-  }
-
-  public final class BodyFatRecord implements androidx.health.connect.client.records.Record {
-    ctor public BodyFatRecord(java.time.Instant time, java.time.ZoneOffset? zoneOffset, androidx.health.connect.client.units.Percentage percentage, optional androidx.health.connect.client.records.metadata.Metadata metadata);
-    method public androidx.health.connect.client.records.metadata.Metadata getMetadata();
-    method public androidx.health.connect.client.units.Percentage getPercentage();
-    method public java.time.Instant getTime();
-    method public java.time.ZoneOffset? getZoneOffset();
-    property public androidx.health.connect.client.records.metadata.Metadata metadata;
-    property public final androidx.health.connect.client.units.Percentage percentage;
-    property public java.time.Instant time;
-    property public java.time.ZoneOffset? zoneOffset;
-  }
-
-  public final class BodyTemperatureMeasurementLocation {
-    field public static final androidx.health.connect.client.records.BodyTemperatureMeasurementLocation INSTANCE;
-    field public static final int MEASUREMENT_LOCATION_ARMPIT = 1; // 0x1
-    field public static final int MEASUREMENT_LOCATION_EAR = 8; // 0x8
-    field public static final int MEASUREMENT_LOCATION_FINGER = 2; // 0x2
-    field public static final int MEASUREMENT_LOCATION_FOREHEAD = 3; // 0x3
-    field public static final int MEASUREMENT_LOCATION_MOUTH = 4; // 0x4
-    field public static final int MEASUREMENT_LOCATION_RECTUM = 5; // 0x5
-    field public static final int MEASUREMENT_LOCATION_TEMPORAL_ARTERY = 6; // 0x6
-    field public static final int MEASUREMENT_LOCATION_TOE = 7; // 0x7
-    field public static final int MEASUREMENT_LOCATION_UNKNOWN = 0; // 0x0
-    field public static final int MEASUREMENT_LOCATION_VAGINA = 10; // 0xa
-    field public static final int MEASUREMENT_LOCATION_WRIST = 9; // 0x9
-  }
-
-  public final class BodyTemperatureRecord implements androidx.health.connect.client.records.Record {
-    ctor public BodyTemperatureRecord(java.time.Instant time, java.time.ZoneOffset? zoneOffset, androidx.health.connect.client.units.Temperature temperature, optional int measurementLocation, optional androidx.health.connect.client.records.metadata.Metadata metadata);
-    method public int getMeasurementLocation();
-    method public androidx.health.connect.client.records.metadata.Metadata getMetadata();
-    method public androidx.health.connect.client.units.Temperature getTemperature();
-    method public java.time.Instant getTime();
-    method public java.time.ZoneOffset? getZoneOffset();
-    property public final int measurementLocation;
-    property public androidx.health.connect.client.records.metadata.Metadata metadata;
-    property public final androidx.health.connect.client.units.Temperature temperature;
-    property public java.time.Instant time;
-    property public java.time.ZoneOffset? zoneOffset;
-  }
-
-  public final class BodyWaterMassRecord implements androidx.health.connect.client.records.Record {
-    ctor public BodyWaterMassRecord(java.time.Instant time, java.time.ZoneOffset? zoneOffset, androidx.health.connect.client.units.Mass mass, optional androidx.health.connect.client.records.metadata.Metadata metadata);
-    method public androidx.health.connect.client.units.Mass getMass();
-    method public androidx.health.connect.client.records.metadata.Metadata getMetadata();
-    method public java.time.Instant getTime();
-    method public java.time.ZoneOffset? getZoneOffset();
-    property public final androidx.health.connect.client.units.Mass mass;
-    property public androidx.health.connect.client.records.metadata.Metadata metadata;
-    property public java.time.Instant time;
-    property public java.time.ZoneOffset? zoneOffset;
-  }
-
-  public final class BoneMassRecord implements androidx.health.connect.client.records.Record {
-    ctor public BoneMassRecord(java.time.Instant time, java.time.ZoneOffset? zoneOffset, androidx.health.connect.client.units.Mass mass, optional androidx.health.connect.client.records.metadata.Metadata metadata);
-    method public androidx.health.connect.client.units.Mass getMass();
-    method public androidx.health.connect.client.records.metadata.Metadata getMetadata();
-    method public java.time.Instant getTime();
-    method public java.time.ZoneOffset? getZoneOffset();
-    property public final androidx.health.connect.client.units.Mass mass;
-    property public androidx.health.connect.client.records.metadata.Metadata metadata;
-    property public java.time.Instant time;
-    property public java.time.ZoneOffset? zoneOffset;
-  }
-
-  public final class CervicalMucusRecord implements androidx.health.connect.client.records.Record {
-    ctor public CervicalMucusRecord(java.time.Instant time, java.time.ZoneOffset? zoneOffset, optional int appearance, optional int sensation, optional androidx.health.connect.client.records.metadata.Metadata metadata);
-    method public int getAppearance();
-    method public androidx.health.connect.client.records.metadata.Metadata getMetadata();
-    method public int getSensation();
-    method public java.time.Instant getTime();
-    method public java.time.ZoneOffset? getZoneOffset();
-    property public final int appearance;
-    property public androidx.health.connect.client.records.metadata.Metadata metadata;
-    property public final int sensation;
-    property public java.time.Instant time;
-    property public java.time.ZoneOffset? zoneOffset;
-    field public static final int APPEARANCE_CREAMY = 3; // 0x3
-    field public static final int APPEARANCE_DRY = 1; // 0x1
-    field public static final int APPEARANCE_EGG_WHITE = 5; // 0x5
-    field public static final int APPEARANCE_STICKY = 2; // 0x2
-    field public static final int APPEARANCE_UNKNOWN = 0; // 0x0
-    field public static final int APPEARANCE_UNUSUAL = 6; // 0x6
-    field public static final int APPEARANCE_WATERY = 4; // 0x4
-    field public static final androidx.health.connect.client.records.CervicalMucusRecord.Companion Companion;
-    field public static final int SENSATION_HEAVY = 3; // 0x3
-    field public static final int SENSATION_LIGHT = 1; // 0x1
-    field public static final int SENSATION_MEDIUM = 2; // 0x2
-    field public static final int SENSATION_UNKNOWN = 0; // 0x0
-  }
-
-  public static final class CervicalMucusRecord.Companion {
-  }
-
-  public final class CyclingPedalingCadenceRecord implements androidx.health.connect.client.records.Record {
-    ctor public CyclingPedalingCadenceRecord(java.time.Instant startTime, java.time.ZoneOffset? startZoneOffset, java.time.Instant endTime, java.time.ZoneOffset? endZoneOffset, java.util.List<androidx.health.connect.client.records.CyclingPedalingCadenceRecord.Sample> samples, optional androidx.health.connect.client.records.metadata.Metadata metadata);
-    method public java.time.Instant getEndTime();
-    method public java.time.ZoneOffset? getEndZoneOffset();
-    method public androidx.health.connect.client.records.metadata.Metadata getMetadata();
-    method public java.util.List<androidx.health.connect.client.records.CyclingPedalingCadenceRecord.Sample> getSamples();
-    method public java.time.Instant getStartTime();
-    method public java.time.ZoneOffset? getStartZoneOffset();
-    property public java.time.Instant endTime;
-    property public java.time.ZoneOffset? endZoneOffset;
-    property public androidx.health.connect.client.records.metadata.Metadata metadata;
-    property public java.util.List<androidx.health.connect.client.records.CyclingPedalingCadenceRecord.Sample> samples;
-    property public java.time.Instant startTime;
-    property public java.time.ZoneOffset? startZoneOffset;
-    field public static final androidx.health.connect.client.records.CyclingPedalingCadenceRecord.Companion Companion;
-    field public static final androidx.health.connect.client.aggregate.AggregateMetric<java.lang.Double> RPM_AVG;
-    field public static final androidx.health.connect.client.aggregate.AggregateMetric<java.lang.Double> RPM_MAX;
-    field public static final androidx.health.connect.client.aggregate.AggregateMetric<java.lang.Double> RPM_MIN;
-  }
-
-  public static final class CyclingPedalingCadenceRecord.Companion {
-  }
-
-  public static final class CyclingPedalingCadenceRecord.Sample {
-    ctor public CyclingPedalingCadenceRecord.Sample(java.time.Instant time, @FloatRange(from=0.0, to=10000.0) double revolutionsPerMinute);
-    method public double getRevolutionsPerMinute();
-    method public java.time.Instant getTime();
-    property public final double revolutionsPerMinute;
-    property public final java.time.Instant time;
-  }
-
-  public final class DistanceRecord implements androidx.health.connect.client.records.Record {
-    ctor public DistanceRecord(java.time.Instant startTime, java.time.ZoneOffset? startZoneOffset, java.time.Instant endTime, java.time.ZoneOffset? endZoneOffset, androidx.health.connect.client.units.Length distance, optional androidx.health.connect.client.records.metadata.Metadata metadata);
-    method public androidx.health.connect.client.units.Length getDistance();
-    method public java.time.Instant getEndTime();
-    method public java.time.ZoneOffset? getEndZoneOffset();
-    method public androidx.health.connect.client.records.metadata.Metadata getMetadata();
-    method public java.time.Instant getStartTime();
-    method public java.time.ZoneOffset? getStartZoneOffset();
-    property public final androidx.health.connect.client.units.Length distance;
-    property public java.time.Instant endTime;
-    property public java.time.ZoneOffset? endZoneOffset;
-    property public androidx.health.connect.client.records.metadata.Metadata metadata;
-    property public java.time.Instant startTime;
-    property public java.time.ZoneOffset? startZoneOffset;
-    field public static final androidx.health.connect.client.records.DistanceRecord.Companion Companion;
-    field public static final androidx.health.connect.client.aggregate.AggregateMetric<androidx.health.connect.client.units.Length> DISTANCE_TOTAL;
-  }
-
-  public static final class DistanceRecord.Companion {
-  }
-
-  public final class ElevationGainedRecord implements androidx.health.connect.client.records.Record {
-    ctor public ElevationGainedRecord(java.time.Instant startTime, java.time.ZoneOffset? startZoneOffset, java.time.Instant endTime, java.time.ZoneOffset? endZoneOffset, androidx.health.connect.client.units.Length elevation, optional androidx.health.connect.client.records.metadata.Metadata metadata);
-    method public androidx.health.connect.client.units.Length getElevation();
-    method public java.time.Instant getEndTime();
-    method public java.time.ZoneOffset? getEndZoneOffset();
-    method public androidx.health.connect.client.records.metadata.Metadata getMetadata();
-    method public java.time.Instant getStartTime();
-    method public java.time.ZoneOffset? getStartZoneOffset();
-    property public final androidx.health.connect.client.units.Length elevation;
-    property public java.time.Instant endTime;
-    property public java.time.ZoneOffset? endZoneOffset;
-    property public androidx.health.connect.client.records.metadata.Metadata metadata;
-    property public java.time.Instant startTime;
-    property public java.time.ZoneOffset? startZoneOffset;
-    field public static final androidx.health.connect.client.records.ElevationGainedRecord.Companion Companion;
-    field public static final androidx.health.connect.client.aggregate.AggregateMetric<androidx.health.connect.client.units.Length> ELEVATION_GAINED_TOTAL;
-  }
-
-  public static final class ElevationGainedRecord.Companion {
-  }
-
-  public final class ExerciseLap {
-    ctor public ExerciseLap(java.time.Instant startTime, java.time.Instant endTime, optional androidx.health.connect.client.units.Length? length);
-    method public java.time.Instant getEndTime();
-    method public androidx.health.connect.client.units.Length? getLength();
-    method public java.time.Instant getStartTime();
-    property public final java.time.Instant endTime;
-    property public final androidx.health.connect.client.units.Length? length;
-    property public final java.time.Instant startTime;
-  }
-
-  public final class ExerciseSegment {
-    ctor public ExerciseSegment(java.time.Instant startTime, java.time.Instant endTime, int segmentType, optional int repetitions);
-    method public java.time.Instant getEndTime();
-    method public int getRepetitions();
-    method public int getSegmentType();
-    method public java.time.Instant getStartTime();
-    property public final java.time.Instant endTime;
-    property public final int repetitions;
-    property public final int segmentType;
-    property public final java.time.Instant startTime;
-    field public static final androidx.health.connect.client.records.ExerciseSegment.Companion Companion;
-    field public static final int EXERCISE_SEGMENT_TYPE_ARM_CURL = 1; // 0x1
-    field public static final int EXERCISE_SEGMENT_TYPE_BACK_EXTENSION = 2; // 0x2
-    field public static final int EXERCISE_SEGMENT_TYPE_BALL_SLAM = 3; // 0x3
-    field public static final int EXERCISE_SEGMENT_TYPE_BARBELL_SHOULDER_PRESS = 4; // 0x4
-    field public static final int EXERCISE_SEGMENT_TYPE_BENCH_PRESS = 5; // 0x5
-    field public static final int EXERCISE_SEGMENT_TYPE_BENCH_SIT_UP = 6; // 0x6
-    field public static final int EXERCISE_SEGMENT_TYPE_BIKING = 7; // 0x7
-    field public static final int EXERCISE_SEGMENT_TYPE_BIKING_STATIONARY = 8; // 0x8
-    field public static final int EXERCISE_SEGMENT_TYPE_BURPEE = 9; // 0x9
-    field public static final int EXERCISE_SEGMENT_TYPE_CRUNCH = 10; // 0xa
-    field public static final int EXERCISE_SEGMENT_TYPE_DEADLIFT = 11; // 0xb
-    field public static final int EXERCISE_SEGMENT_TYPE_DOUBLE_ARM_TRICEPS_EXTENSION = 12; // 0xc
-    field public static final int EXERCISE_SEGMENT_TYPE_DUMBBELL_CURL_LEFT_ARM = 13; // 0xd
-    field public static final int EXERCISE_SEGMENT_TYPE_DUMBBELL_CURL_RIGHT_ARM = 14; // 0xe
-    field public static final int EXERCISE_SEGMENT_TYPE_DUMBBELL_FRONT_RAISE = 15; // 0xf
-    field public static final int EXERCISE_SEGMENT_TYPE_DUMBBELL_LATERAL_RAISE = 16; // 0x10
-    field public static final int EXERCISE_SEGMENT_TYPE_DUMBBELL_ROW = 17; // 0x11
-    field public static final int EXERCISE_SEGMENT_TYPE_DUMBBELL_TRICEPS_EXTENSION_LEFT_ARM = 18; // 0x12
-    field public static final int EXERCISE_SEGMENT_TYPE_DUMBBELL_TRICEPS_EXTENSION_RIGHT_ARM = 19; // 0x13
-    field public static final int EXERCISE_SEGMENT_TYPE_DUMBBELL_TRICEPS_EXTENSION_TWO_ARM = 20; // 0x14
-    field public static final int EXERCISE_SEGMENT_TYPE_ELLIPTICAL = 21; // 0x15
-    field public static final int EXERCISE_SEGMENT_TYPE_FORWARD_TWIST = 22; // 0x16
-    field public static final int EXERCISE_SEGMENT_TYPE_FRONT_RAISE = 23; // 0x17
-    field public static final int EXERCISE_SEGMENT_TYPE_HIGH_INTENSITY_INTERVAL_TRAINING = 24; // 0x18
-    field public static final int EXERCISE_SEGMENT_TYPE_HIP_THRUST = 25; // 0x19
-    field public static final int EXERCISE_SEGMENT_TYPE_HULA_HOOP = 26; // 0x1a
-    field public static final int EXERCISE_SEGMENT_TYPE_JUMPING_JACK = 27; // 0x1b
-    field public static final int EXERCISE_SEGMENT_TYPE_JUMP_ROPE = 28; // 0x1c
-    field public static final int EXERCISE_SEGMENT_TYPE_KETTLEBELL_SWING = 29; // 0x1d
-    field public static final int EXERCISE_SEGMENT_TYPE_LATERAL_RAISE = 30; // 0x1e
-    field public static final int EXERCISE_SEGMENT_TYPE_LAT_PULL_DOWN = 31; // 0x1f
-    field public static final int EXERCISE_SEGMENT_TYPE_LEG_CURL = 32; // 0x20
-    field public static final int EXERCISE_SEGMENT_TYPE_LEG_EXTENSION = 33; // 0x21
-    field public static final int EXERCISE_SEGMENT_TYPE_LEG_PRESS = 34; // 0x22
-    field public static final int EXERCISE_SEGMENT_TYPE_LEG_RAISE = 35; // 0x23
-    field public static final int EXERCISE_SEGMENT_TYPE_LUNGE = 36; // 0x24
-    field public static final int EXERCISE_SEGMENT_TYPE_MOUNTAIN_CLIMBER = 37; // 0x25
-    field public static final int EXERCISE_SEGMENT_TYPE_OTHER_WORKOUT = 38; // 0x26
-    field public static final int EXERCISE_SEGMENT_TYPE_PAUSE = 39; // 0x27
-    field public static final int EXERCISE_SEGMENT_TYPE_PILATES = 40; // 0x28
-    field public static final int EXERCISE_SEGMENT_TYPE_PLANK = 41; // 0x29
-    field public static final int EXERCISE_SEGMENT_TYPE_PULL_UP = 42; // 0x2a
-    field public static final int EXERCISE_SEGMENT_TYPE_PUNCH = 43; // 0x2b
-    field public static final int EXERCISE_SEGMENT_TYPE_REST = 44; // 0x2c
-    field public static final int EXERCISE_SEGMENT_TYPE_ROWING_MACHINE = 45; // 0x2d
-    field public static final int EXERCISE_SEGMENT_TYPE_RUNNING = 46; // 0x2e
-    field public static final int EXERCISE_SEGMENT_TYPE_RUNNING_TREADMILL = 47; // 0x2f
-    field public static final int EXERCISE_SEGMENT_TYPE_SHOULDER_PRESS = 48; // 0x30
-    field public static final int EXERCISE_SEGMENT_TYPE_SINGLE_ARM_TRICEPS_EXTENSION = 49; // 0x31
-    field public static final int EXERCISE_SEGMENT_TYPE_SIT_UP = 50; // 0x32
-    field public static final int EXERCISE_SEGMENT_TYPE_SQUAT = 51; // 0x33
-    field public static final int EXERCISE_SEGMENT_TYPE_STAIR_CLIMBING = 52; // 0x34
-    field public static final int EXERCISE_SEGMENT_TYPE_STAIR_CLIMBING_MACHINE = 53; // 0x35
-    field public static final int EXERCISE_SEGMENT_TYPE_STRETCHING = 54; // 0x36
-    field public static final int EXERCISE_SEGMENT_TYPE_SWIMMING_BACKSTROKE = 55; // 0x37
-    field public static final int EXERCISE_SEGMENT_TYPE_SWIMMING_BREASTSTROKE = 56; // 0x38
-    field public static final int EXERCISE_SEGMENT_TYPE_SWIMMING_BUTTERFLY = 57; // 0x39
-    field public static final int EXERCISE_SEGMENT_TYPE_SWIMMING_FREESTYLE = 58; // 0x3a
-    field public static final int EXERCISE_SEGMENT_TYPE_SWIMMING_MIXED = 59; // 0x3b
-    field public static final int EXERCISE_SEGMENT_TYPE_SWIMMING_OPEN_WATER = 60; // 0x3c
-    field public static final int EXERCISE_SEGMENT_TYPE_SWIMMING_OTHER = 61; // 0x3d
-    field public static final int EXERCISE_SEGMENT_TYPE_SWIMMING_POOL = 62; // 0x3e
-    field public static final int EXERCISE_SEGMENT_TYPE_UNKNOWN = 0; // 0x0
-    field public static final int EXERCISE_SEGMENT_TYPE_UPPER_TWIST = 63; // 0x3f
-    field public static final int EXERCISE_SEGMENT_TYPE_WALKING = 64; // 0x40
-    field public static final int EXERCISE_SEGMENT_TYPE_WEIGHTLIFTING = 65; // 0x41
-    field public static final int EXERCISE_SEGMENT_TYPE_WHEELCHAIR = 66; // 0x42
-    field public static final int EXERCISE_SEGMENT_TYPE_YOGA = 67; // 0x43
-  }
-
-  public static final class ExerciseSegment.Companion {
-  }
-
-  public final class ExerciseSessionRecord implements androidx.health.connect.client.records.Record {
-    ctor public ExerciseSessionRecord(java.time.Instant startTime, java.time.ZoneOffset? startZoneOffset, java.time.Instant endTime, java.time.ZoneOffset? endZoneOffset, int exerciseType, optional String? title, optional String? notes, optional androidx.health.connect.client.records.metadata.Metadata metadata, optional java.util.List<androidx.health.connect.client.records.ExerciseSegment> segments, optional java.util.List<androidx.health.connect.client.records.ExerciseLap> laps);
-    method public java.time.Instant getEndTime();
-    method public java.time.ZoneOffset? getEndZoneOffset();
-    method public int getExerciseType();
-    method public java.util.List<androidx.health.connect.client.records.ExerciseLap> getLaps();
-    method public androidx.health.connect.client.records.metadata.Metadata getMetadata();
-    method public String? getNotes();
-    method public java.util.List<androidx.health.connect.client.records.ExerciseSegment> getSegments();
-    method public java.time.Instant getStartTime();
-    method public java.time.ZoneOffset? getStartZoneOffset();
-    method public String? getTitle();
-    property public java.time.Instant endTime;
-    property public java.time.ZoneOffset? endZoneOffset;
-    property public final int exerciseType;
-    property public final java.util.List<androidx.health.connect.client.records.ExerciseLap> laps;
-    property public androidx.health.connect.client.records.metadata.Metadata metadata;
-    property public final String? notes;
-    property public final java.util.List<androidx.health.connect.client.records.ExerciseSegment> segments;
-    property public java.time.Instant startTime;
-    property public java.time.ZoneOffset? startZoneOffset;
-    property public final String? title;
-    field public static final androidx.health.connect.client.records.ExerciseSessionRecord.Companion Companion;
-    field public static final androidx.health.connect.client.aggregate.AggregateMetric<java.time.Duration> EXERCISE_DURATION_TOTAL;
-    field public static final int EXERCISE_TYPE_BADMINTON = 2; // 0x2
-    field public static final int EXERCISE_TYPE_BASEBALL = 4; // 0x4
-    field public static final int EXERCISE_TYPE_BASKETBALL = 5; // 0x5
-    field public static final int EXERCISE_TYPE_BIKING = 8; // 0x8
-    field public static final int EXERCISE_TYPE_BIKING_STATIONARY = 9; // 0x9
-    field public static final int EXERCISE_TYPE_BOOT_CAMP = 10; // 0xa
-    field public static final int EXERCISE_TYPE_BOXING = 11; // 0xb
-    field public static final int EXERCISE_TYPE_CALISTHENICS = 13; // 0xd
-    field public static final int EXERCISE_TYPE_CRICKET = 14; // 0xe
-    field public static final int EXERCISE_TYPE_DANCING = 16; // 0x10
-    field public static final int EXERCISE_TYPE_ELLIPTICAL = 25; // 0x19
-    field public static final int EXERCISE_TYPE_EXERCISE_CLASS = 26; // 0x1a
-    field public static final int EXERCISE_TYPE_FENCING = 27; // 0x1b
-    field public static final int EXERCISE_TYPE_FOOTBALL_AMERICAN = 28; // 0x1c
-    field public static final int EXERCISE_TYPE_FOOTBALL_AUSTRALIAN = 29; // 0x1d
-    field public static final int EXERCISE_TYPE_FRISBEE_DISC = 31; // 0x1f
-    field public static final int EXERCISE_TYPE_GOLF = 32; // 0x20
-    field public static final int EXERCISE_TYPE_GUIDED_BREATHING = 33; // 0x21
-    field public static final int EXERCISE_TYPE_GYMNASTICS = 34; // 0x22
-    field public static final int EXERCISE_TYPE_HANDBALL = 35; // 0x23
-    field public static final int EXERCISE_TYPE_HIGH_INTENSITY_INTERVAL_TRAINING = 36; // 0x24
-    field public static final int EXERCISE_TYPE_HIKING = 37; // 0x25
-    field public static final int EXERCISE_TYPE_ICE_HOCKEY = 38; // 0x26
-    field public static final int EXERCISE_TYPE_ICE_SKATING = 39; // 0x27
-    field public static final int EXERCISE_TYPE_MARTIAL_ARTS = 44; // 0x2c
-    field public static final int EXERCISE_TYPE_OTHER_WORKOUT = 0; // 0x0
-    field public static final int EXERCISE_TYPE_PADDLING = 46; // 0x2e
-    field public static final int EXERCISE_TYPE_PARAGLIDING = 47; // 0x2f
-    field public static final int EXERCISE_TYPE_PILATES = 48; // 0x30
-    field public static final int EXERCISE_TYPE_RACQUETBALL = 50; // 0x32
-    field public static final int EXERCISE_TYPE_ROCK_CLIMBING = 51; // 0x33
-    field public static final int EXERCISE_TYPE_ROLLER_HOCKEY = 52; // 0x34
-    field public static final int EXERCISE_TYPE_ROWING = 53; // 0x35
-    field public static final int EXERCISE_TYPE_ROWING_MACHINE = 54; // 0x36
-    field public static final int EXERCISE_TYPE_RUGBY = 55; // 0x37
-    field public static final int EXERCISE_TYPE_RUNNING = 56; // 0x38
-    field public static final int EXERCISE_TYPE_RUNNING_TREADMILL = 57; // 0x39
-    field public static final int EXERCISE_TYPE_SAILING = 58; // 0x3a
-    field public static final int EXERCISE_TYPE_SCUBA_DIVING = 59; // 0x3b
-    field public static final int EXERCISE_TYPE_SKATING = 60; // 0x3c
-    field public static final int EXERCISE_TYPE_SKIING = 61; // 0x3d
-    field public static final int EXERCISE_TYPE_SNOWBOARDING = 62; // 0x3e
-    field public static final int EXERCISE_TYPE_SNOWSHOEING = 63; // 0x3f
-    field public static final int EXERCISE_TYPE_SOCCER = 64; // 0x40
-    field public static final int EXERCISE_TYPE_SOFTBALL = 65; // 0x41
-    field public static final int EXERCISE_TYPE_SQUASH = 66; // 0x42
-    field public static final int EXERCISE_TYPE_STAIR_CLIMBING = 68; // 0x44
-    field public static final int EXERCISE_TYPE_STAIR_CLIMBING_MACHINE = 69; // 0x45
-    field public static final int EXERCISE_TYPE_STRENGTH_TRAINING = 70; // 0x46
-    field public static final int EXERCISE_TYPE_STRETCHING = 71; // 0x47
-    field public static final int EXERCISE_TYPE_SURFING = 72; // 0x48
-    field public static final int EXERCISE_TYPE_SWIMMING_OPEN_WATER = 73; // 0x49
-    field public static final int EXERCISE_TYPE_SWIMMING_POOL = 74; // 0x4a
-    field public static final int EXERCISE_TYPE_TABLE_TENNIS = 75; // 0x4b
-    field public static final int EXERCISE_TYPE_TENNIS = 76; // 0x4c
-    field public static final int EXERCISE_TYPE_VOLLEYBALL = 78; // 0x4e
-    field public static final int EXERCISE_TYPE_WALKING = 79; // 0x4f
-    field public static final int EXERCISE_TYPE_WATER_POLO = 80; // 0x50
-    field public static final int EXERCISE_TYPE_WEIGHTLIFTING = 81; // 0x51
-    field public static final int EXERCISE_TYPE_WHEELCHAIR = 82; // 0x52
-    field public static final int EXERCISE_TYPE_YOGA = 83; // 0x53
-  }
-
-  public static final class ExerciseSessionRecord.Companion {
-  }
-
-  public final class FloorsClimbedRecord implements androidx.health.connect.client.records.Record {
-    ctor public FloorsClimbedRecord(java.time.Instant startTime, java.time.ZoneOffset? startZoneOffset, java.time.Instant endTime, java.time.ZoneOffset? endZoneOffset, double floors, optional androidx.health.connect.client.records.metadata.Metadata metadata);
-    method public java.time.Instant getEndTime();
-    method public java.time.ZoneOffset? getEndZoneOffset();
-    method public double getFloors();
-    method public androidx.health.connect.client.records.metadata.Metadata getMetadata();
-    method public java.time.Instant getStartTime();
-    method public java.time.ZoneOffset? getStartZoneOffset();
-    property public java.time.Instant endTime;
-    property public java.time.ZoneOffset? endZoneOffset;
-    property public final double floors;
-    property public androidx.health.connect.client.records.metadata.Metadata metadata;
-    property public java.time.Instant startTime;
-    property public java.time.ZoneOffset? startZoneOffset;
-    field public static final androidx.health.connect.client.records.FloorsClimbedRecord.Companion Companion;
-    field public static final androidx.health.connect.client.aggregate.AggregateMetric<java.lang.Double> FLOORS_CLIMBED_TOTAL;
-  }
-
-  public static final class FloorsClimbedRecord.Companion {
-  }
-
-  public final class HeartRateRecord implements androidx.health.connect.client.records.Record {
-    ctor public HeartRateRecord(java.time.Instant startTime, java.time.ZoneOffset? startZoneOffset, java.time.Instant endTime, java.time.ZoneOffset? endZoneOffset, java.util.List<androidx.health.connect.client.records.HeartRateRecord.Sample> samples, optional androidx.health.connect.client.records.metadata.Metadata metadata);
-    method public java.time.Instant getEndTime();
-    method public java.time.ZoneOffset? getEndZoneOffset();
-    method public androidx.health.connect.client.records.metadata.Metadata getMetadata();
-    method public java.util.List<androidx.health.connect.client.records.HeartRateRecord.Sample> getSamples();
-    method public java.time.Instant getStartTime();
-    method public java.time.ZoneOffset? getStartZoneOffset();
-    property public java.time.Instant endTime;
-    property public java.time.ZoneOffset? endZoneOffset;
-    property public androidx.health.connect.client.records.metadata.Metadata metadata;
-    property public java.util.List<androidx.health.connect.client.records.HeartRateRecord.Sample> samples;
-    property public java.time.Instant startTime;
-    property public java.time.ZoneOffset? startZoneOffset;
-    field public static final androidx.health.connect.client.aggregate.AggregateMetric<java.lang.Long> BPM_AVG;
-    field public static final androidx.health.connect.client.aggregate.AggregateMetric<java.lang.Long> BPM_MAX;
-    field public static final androidx.health.connect.client.aggregate.AggregateMetric<java.lang.Long> BPM_MIN;
-    field public static final androidx.health.connect.client.records.HeartRateRecord.Companion Companion;
-    field public static final androidx.health.connect.client.aggregate.AggregateMetric<java.lang.Long> MEASUREMENTS_COUNT;
-  }
-
-  public static final class HeartRateRecord.Companion {
-  }
-
-  public static final class HeartRateRecord.Sample {
-    ctor public HeartRateRecord.Sample(java.time.Instant time, @IntRange(from=1L, to=300L) long beatsPerMinute);
-    method public long getBeatsPerMinute();
-    method public java.time.Instant getTime();
-    property public final long beatsPerMinute;
-    property public final java.time.Instant time;
-  }
-
-  public final class HeartRateVariabilityRmssdRecord implements androidx.health.connect.client.records.Record {
-    ctor public HeartRateVariabilityRmssdRecord(java.time.Instant time, java.time.ZoneOffset? zoneOffset, double heartRateVariabilityMillis, optional androidx.health.connect.client.records.metadata.Metadata metadata);
-    method public double getHeartRateVariabilityMillis();
-    method public androidx.health.connect.client.records.metadata.Metadata getMetadata();
-    method public java.time.Instant getTime();
-    method public java.time.ZoneOffset? getZoneOffset();
-    property public final double heartRateVariabilityMillis;
-    property public androidx.health.connect.client.records.metadata.Metadata metadata;
-    property public java.time.Instant time;
-    property public java.time.ZoneOffset? zoneOffset;
-  }
-
-  public final class HeightRecord implements androidx.health.connect.client.records.Record {
-    ctor public HeightRecord(java.time.Instant time, java.time.ZoneOffset? zoneOffset, androidx.health.connect.client.units.Length height, optional androidx.health.connect.client.records.metadata.Metadata metadata);
-    method public androidx.health.connect.client.units.Length getHeight();
-    method public androidx.health.connect.client.records.metadata.Metadata getMetadata();
-    method public java.time.Instant getTime();
-    method public java.time.ZoneOffset? getZoneOffset();
-    property public final androidx.health.connect.client.units.Length height;
-    property public androidx.health.connect.client.records.metadata.Metadata metadata;
-    property public java.time.Instant time;
-    property public java.time.ZoneOffset? zoneOffset;
-    field public static final androidx.health.connect.client.records.HeightRecord.Companion Companion;
-    field public static final androidx.health.connect.client.aggregate.AggregateMetric<androidx.health.connect.client.units.Length> HEIGHT_AVG;
-    field public static final androidx.health.connect.client.aggregate.AggregateMetric<androidx.health.connect.client.units.Length> HEIGHT_MAX;
-    field public static final androidx.health.connect.client.aggregate.AggregateMetric<androidx.health.connect.client.units.Length> HEIGHT_MIN;
-  }
-
-  public static final class HeightRecord.Companion {
-  }
-
-  public final class HydrationRecord implements androidx.health.connect.client.records.Record {
-    ctor public HydrationRecord(java.time.Instant startTime, java.time.ZoneOffset? startZoneOffset, java.time.Instant endTime, java.time.ZoneOffset? endZoneOffset, androidx.health.connect.client.units.Volume volume, optional androidx.health.connect.client.records.metadata.Metadata metadata);
-    method public java.time.Instant getEndTime();
-    method public java.time.ZoneOffset? getEndZoneOffset();
-    method public androidx.health.connect.client.records.metadata.Metadata getMetadata();
-    method public java.time.Instant getStartTime();
-    method public java.time.ZoneOffset? getStartZoneOffset();
-    method public androidx.health.connect.client.units.Volume getVolume();
-    property public java.time.Instant endTime;
-    property public java.time.ZoneOffset? endZoneOffset;
-    property public androidx.health.connect.client.records.metadata.Metadata metadata;
-    property public java.time.Instant startTime;
-    property public java.time.ZoneOffset? startZoneOffset;
-    property public final androidx.health.connect.client.units.Volume volume;
-    field public static final androidx.health.connect.client.records.HydrationRecord.Companion Companion;
-    field public static final androidx.health.connect.client.aggregate.AggregateMetric<androidx.health.connect.client.units.Volume> VOLUME_TOTAL;
-  }
-
-  public static final class HydrationRecord.Companion {
-  }
-
-  public final class IntermenstrualBleedingRecord implements androidx.health.connect.client.records.Record {
-    ctor public IntermenstrualBleedingRecord(java.time.Instant time, java.time.ZoneOffset? zoneOffset, optional androidx.health.connect.client.records.metadata.Metadata metadata);
-    method public androidx.health.connect.client.records.metadata.Metadata getMetadata();
-    method public java.time.Instant getTime();
-    method public java.time.ZoneOffset? getZoneOffset();
-    property public androidx.health.connect.client.records.metadata.Metadata metadata;
-    property public java.time.Instant time;
-    property public java.time.ZoneOffset? zoneOffset;
-  }
-
-  public final class LeanBodyMassRecord implements androidx.health.connect.client.records.Record {
-    ctor public LeanBodyMassRecord(java.time.Instant time, java.time.ZoneOffset? zoneOffset, androidx.health.connect.client.units.Mass mass, optional androidx.health.connect.client.records.metadata.Metadata metadata);
-    method public androidx.health.connect.client.units.Mass getMass();
-    method public androidx.health.connect.client.records.metadata.Metadata getMetadata();
-    method public java.time.Instant getTime();
-    method public java.time.ZoneOffset? getZoneOffset();
-    property public final androidx.health.connect.client.units.Mass mass;
-    property public androidx.health.connect.client.records.metadata.Metadata metadata;
-    property public java.time.Instant time;
-    property public java.time.ZoneOffset? zoneOffset;
-  }
-
-  public final class MealType {
-    field public static final androidx.health.connect.client.records.MealType INSTANCE;
-    field public static final int MEAL_TYPE_BREAKFAST = 1; // 0x1
-    field public static final int MEAL_TYPE_DINNER = 3; // 0x3
-    field public static final int MEAL_TYPE_LUNCH = 2; // 0x2
-    field public static final int MEAL_TYPE_SNACK = 4; // 0x4
-    field public static final int MEAL_TYPE_UNKNOWN = 0; // 0x0
-  }
-
-  public final class MenstruationFlowRecord implements androidx.health.connect.client.records.Record {
-    ctor public MenstruationFlowRecord(java.time.Instant time, java.time.ZoneOffset? zoneOffset, optional int flow, optional androidx.health.connect.client.records.metadata.Metadata metadata);
-    method public int getFlow();
-    method public androidx.health.connect.client.records.metadata.Metadata getMetadata();
-    method public java.time.Instant getTime();
-    method public java.time.ZoneOffset? getZoneOffset();
-    property public final int flow;
-    property public androidx.health.connect.client.records.metadata.Metadata metadata;
-    property public java.time.Instant time;
-    property public java.time.ZoneOffset? zoneOffset;
-    field public static final androidx.health.connect.client.records.MenstruationFlowRecord.Companion Companion;
-    field public static final int FLOW_HEAVY = 3; // 0x3
-    field public static final int FLOW_LIGHT = 1; // 0x1
-    field public static final int FLOW_MEDIUM = 2; // 0x2
-    field public static final int FLOW_UNKNOWN = 0; // 0x0
-  }
-
-  public static final class MenstruationFlowRecord.Companion {
-  }
-
-  public final class MenstruationPeriodRecord implements androidx.health.connect.client.records.Record {
-    ctor public MenstruationPeriodRecord(java.time.Instant startTime, java.time.ZoneOffset? startZoneOffset, java.time.Instant endTime, java.time.ZoneOffset? endZoneOffset, optional androidx.health.connect.client.records.metadata.Metadata metadata);
-    method public java.time.Instant getEndTime();
-    method public java.time.ZoneOffset? getEndZoneOffset();
-    method public androidx.health.connect.client.records.metadata.Metadata getMetadata();
-    method public java.time.Instant getStartTime();
-    method public java.time.ZoneOffset? getStartZoneOffset();
-    property public java.time.Instant endTime;
-    property public java.time.ZoneOffset? endZoneOffset;
-    property public androidx.health.connect.client.records.metadata.Metadata metadata;
-    property public java.time.Instant startTime;
-    property public java.time.ZoneOffset? startZoneOffset;
-  }
-
-  public final class NutritionRecord implements androidx.health.connect.client.records.Record {
-    ctor public NutritionRecord(java.time.Instant startTime, java.time.ZoneOffset? startZoneOffset, java.time.Instant endTime, java.time.ZoneOffset? endZoneOffset, optional androidx.health.connect.client.units.Mass? biotin, optional androidx.health.connect.client.units.Mass? caffeine, optional androidx.health.connect.client.units.Mass? calcium, optional androidx.health.connect.client.units.Energy? energy, optional androidx.health.connect.client.units.Energy? energyFromFat, optional androidx.health.connect.client.units.Mass? chloride, optional androidx.health.connect.client.units.Mass? cholesterol, optional androidx.health.connect.client.units.Mass? chromium, optional androidx.health.connect.client.units.Mass? copper, optional androidx.health.connect.client.units.Mass? dietaryFiber, optional androidx.health.connect.client.units.Mass? folate, optional androidx.health.connect.client.units.Mass? folicAcid, optional androidx.health.connect.client.units.Mass? iodine, optional androidx.health.connect.client.units.Mass? iron, optional androidx.health.connect.client.units.Mass? magnesium, optional androidx.health.connect.client.units.Mass? manganese, optional androidx.health.connect.client.units.Mass? molybdenum, optional androidx.health.connect.client.units.Mass? monounsaturatedFat, optional androidx.health.connect.client.units.Mass? niacin, optional androidx.health.connect.client.units.Mass? pantothenicAcid, optional androidx.health.connect.client.units.Mass? phosphorus, optional androidx.health.connect.client.units.Mass? polyunsaturatedFat, optional androidx.health.connect.client.units.Mass? potassium, optional androidx.health.connect.client.units.Mass? protein, optional androidx.health.connect.client.units.Mass? riboflavin, optional androidx.health.connect.client.units.Mass? saturatedFat, optional androidx.health.connect.client.units.Mass? selenium, optional androidx.health.connect.client.units.Mass? sodium, optional androidx.health.connect.client.units.Mass? sugar, optional androidx.health.connect.client.units.Mass? thiamin, optional androidx.health.connect.client.units.Mass? totalCarbohydrate, optional androidx.health.connect.client.units.Mass? totalFat, optional androidx.health.connect.client.units.Mass? transFat, optional androidx.health.connect.client.units.Mass? unsaturatedFat, optional androidx.health.connect.client.units.Mass? vitaminA, optional androidx.health.connect.client.units.Mass? vitaminB12, optional androidx.health.connect.client.units.Mass? vitaminB6, optional androidx.health.connect.client.units.Mass? vitaminC, optional androidx.health.connect.client.units.Mass? vitaminD, optional androidx.health.connect.client.units.Mass? vitaminE, optional androidx.health.connect.client.units.Mass? vitaminK, optional androidx.health.connect.client.units.Mass? zinc, optional String? name, optional int mealType, optional androidx.health.connect.client.records.metadata.Metadata metadata);
-    method public androidx.health.connect.client.units.Mass? getBiotin();
-    method public androidx.health.connect.client.units.Mass? getCaffeine();
-    method public androidx.health.connect.client.units.Mass? getCalcium();
-    method public androidx.health.connect.client.units.Mass? getChloride();
-    method public androidx.health.connect.client.units.Mass? getCholesterol();
-    method public androidx.health.connect.client.units.Mass? getChromium();
-    method public androidx.health.connect.client.units.Mass? getCopper();
-    method public androidx.health.connect.client.units.Mass? getDietaryFiber();
-    method public java.time.Instant getEndTime();
-    method public java.time.ZoneOffset? getEndZoneOffset();
-    method public androidx.health.connect.client.units.Energy? getEnergy();
-    method public androidx.health.connect.client.units.Energy? getEnergyFromFat();
-    method public androidx.health.connect.client.units.Mass? getFolate();
-    method public androidx.health.connect.client.units.Mass? getFolicAcid();
-    method public androidx.health.connect.client.units.Mass? getIodine();
-    method public androidx.health.connect.client.units.Mass? getIron();
-    method public androidx.health.connect.client.units.Mass? getMagnesium();
-    method public androidx.health.connect.client.units.Mass? getManganese();
-    method public int getMealType();
-    method public androidx.health.connect.client.records.metadata.Metadata getMetadata();
-    method public androidx.health.connect.client.units.Mass? getMolybdenum();
-    method public androidx.health.connect.client.units.Mass? getMonounsaturatedFat();
-    method public String? getName();
-    method public androidx.health.connect.client.units.Mass? getNiacin();
-    method public androidx.health.connect.client.units.Mass? getPantothenicAcid();
-    method public androidx.health.connect.client.units.Mass? getPhosphorus();
-    method public androidx.health.connect.client.units.Mass? getPolyunsaturatedFat();
-    method public androidx.health.connect.client.units.Mass? getPotassium();
-    method public androidx.health.connect.client.units.Mass? getProtein();
-    method public androidx.health.connect.client.units.Mass? getRiboflavin();
-    method public androidx.health.connect.client.units.Mass? getSaturatedFat();
-    method public androidx.health.connect.client.units.Mass? getSelenium();
-    method public androidx.health.connect.client.units.Mass? getSodium();
-    method public java.time.Instant getStartTime();
-    method public java.time.ZoneOffset? getStartZoneOffset();
-    method public androidx.health.connect.client.units.Mass? getSugar();
-    method public androidx.health.connect.client.units.Mass? getThiamin();
-    method public androidx.health.connect.client.units.Mass? getTotalCarbohydrate();
-    method public androidx.health.connect.client.units.Mass? getTotalFat();
-    method public androidx.health.connect.client.units.Mass? getTransFat();
-    method public androidx.health.connect.client.units.Mass? getUnsaturatedFat();
-    method public androidx.health.connect.client.units.Mass? getVitaminA();
-    method public androidx.health.connect.client.units.Mass? getVitaminB12();
-    method public androidx.health.connect.client.units.Mass? getVitaminB6();
-    method public androidx.health.connect.client.units.Mass? getVitaminC();
-    method public androidx.health.connect.client.units.Mass? getVitaminD();
-    method public androidx.health.connect.client.units.Mass? getVitaminE();
-    method public androidx.health.connect.client.units.Mass? getVitaminK();
-    method public androidx.health.connect.client.units.Mass? getZinc();
-    property public final androidx.health.connect.client.units.Mass? biotin;
-    property public final androidx.health.connect.client.units.Mass? caffeine;
-    property public final androidx.health.connect.client.units.Mass? calcium;
-    property public final androidx.health.connect.client.units.Mass? chloride;
-    property public final androidx.health.connect.client.units.Mass? cholesterol;
-    property public final androidx.health.connect.client.units.Mass? chromium;
-    property public final androidx.health.connect.client.units.Mass? copper;
-    property public final androidx.health.connect.client.units.Mass? dietaryFiber;
-    property public java.time.Instant endTime;
-    property public java.time.ZoneOffset? endZoneOffset;
-    property public final androidx.health.connect.client.units.Energy? energy;
-    property public final androidx.health.connect.client.units.Energy? energyFromFat;
-    property public final androidx.health.connect.client.units.Mass? folate;
-    property public final androidx.health.connect.client.units.Mass? folicAcid;
-    property public final androidx.health.connect.client.units.Mass? iodine;
-    property public final androidx.health.connect.client.units.Mass? iron;
-    property public final androidx.health.connect.client.units.Mass? magnesium;
-    property public final androidx.health.connect.client.units.Mass? manganese;
-    property public final int mealType;
-    property public androidx.health.connect.client.records.metadata.Metadata metadata;
-    property public final androidx.health.connect.client.units.Mass? molybdenum;
-    property public final androidx.health.connect.client.units.Mass? monounsaturatedFat;
-    property public final String? name;
-    property public final androidx.health.connect.client.units.Mass? niacin;
-    property public final androidx.health.connect.client.units.Mass? pantothenicAcid;
-    property public final androidx.health.connect.client.units.Mass? phosphorus;
-    property public final androidx.health.connect.client.units.Mass? polyunsaturatedFat;
-    property public final androidx.health.connect.client.units.Mass? potassium;
-    property public final androidx.health.connect.client.units.Mass? protein;
-    property public final androidx.health.connect.client.units.Mass? riboflavin;
-    property public final androidx.health.connect.client.units.Mass? saturatedFat;
-    property public final androidx.health.connect.client.units.Mass? selenium;
-    property public final androidx.health.connect.client.units.Mass? sodium;
-    property public java.time.Instant startTime;
-    property public java.time.ZoneOffset? startZoneOffset;
-    property public final androidx.health.connect.client.units.Mass? sugar;
-    property public final androidx.health.connect.client.units.Mass? thiamin;
-    property public final androidx.health.connect.client.units.Mass? totalCarbohydrate;
-    property public final androidx.health.connect.client.units.Mass? totalFat;
-    property public final androidx.health.connect.client.units.Mass? transFat;
-    property public final androidx.health.connect.client.units.Mass? unsaturatedFat;
-    property public final androidx.health.connect.client.units.Mass? vitaminA;
-    property public final androidx.health.connect.client.units.Mass? vitaminB12;
-    property public final androidx.health.connect.client.units.Mass? vitaminB6;
-    property public final androidx.health.connect.client.units.Mass? vitaminC;
-    property public final androidx.health.connect.client.units.Mass? vitaminD;
-    property public final androidx.health.connect.client.units.Mass? vitaminE;
-    property public final androidx.health.connect.client.units.Mass? vitaminK;
-    property public final androidx.health.connect.client.units.Mass? zinc;
-    field public static final androidx.health.connect.client.aggregate.AggregateMetric<androidx.health.connect.client.units.Mass> BIOTIN_TOTAL;
-    field public static final androidx.health.connect.client.aggregate.AggregateMetric<androidx.health.connect.client.units.Mass> CAFFEINE_TOTAL;
-    field public static final androidx.health.connect.client.aggregate.AggregateMetric<androidx.health.connect.client.units.Mass> CALCIUM_TOTAL;
-    field public static final androidx.health.connect.client.aggregate.AggregateMetric<androidx.health.connect.client.units.Mass> CHLORIDE_TOTAL;
-    field public static final androidx.health.connect.client.aggregate.AggregateMetric<androidx.health.connect.client.units.Mass> CHOLESTEROL_TOTAL;
-    field public static final androidx.health.connect.client.aggregate.AggregateMetric<androidx.health.connect.client.units.Mass> CHROMIUM_TOTAL;
-    field public static final androidx.health.connect.client.aggregate.AggregateMetric<androidx.health.connect.client.units.Mass> COPPER_TOTAL;
-    field public static final androidx.health.connect.client.records.NutritionRecord.Companion Companion;
-    field public static final androidx.health.connect.client.aggregate.AggregateMetric<androidx.health.connect.client.units.Mass> DIETARY_FIBER_TOTAL;
-    field public static final androidx.health.connect.client.aggregate.AggregateMetric<androidx.health.connect.client.units.Energy> ENERGY_FROM_FAT_TOTAL;
-    field public static final androidx.health.connect.client.aggregate.AggregateMetric<androidx.health.connect.client.units.Energy> ENERGY_TOTAL;
-    field public static final androidx.health.connect.client.aggregate.AggregateMetric<androidx.health.connect.client.units.Mass> FOLATE_TOTAL;
-    field public static final androidx.health.connect.client.aggregate.AggregateMetric<androidx.health.connect.client.units.Mass> FOLIC_ACID_TOTAL;
-    field public static final androidx.health.connect.client.aggregate.AggregateMetric<androidx.health.connect.client.units.Mass> IODINE_TOTAL;
-    field public static final androidx.health.connect.client.aggregate.AggregateMetric<androidx.health.connect.client.units.Mass> IRON_TOTAL;
-    field public static final androidx.health.connect.client.aggregate.AggregateMetric<androidx.health.connect.client.units.Mass> MAGNESIUM_TOTAL;
-    field public static final androidx.health.connect.client.aggregate.AggregateMetric<androidx.health.connect.client.units.Mass> MANGANESE_TOTAL;
-    field public static final androidx.health.connect.client.aggregate.AggregateMetric<androidx.health.connect.client.units.Mass> MOLYBDENUM_TOTAL;
-    field public static final androidx.health.connect.client.aggregate.AggregateMetric<androidx.health.connect.client.units.Mass> MONOUNSATURATED_FAT_TOTAL;
-    field public static final androidx.health.connect.client.aggregate.AggregateMetric<androidx.health.connect.client.units.Mass> NIACIN_TOTAL;
-    field public static final androidx.health.connect.client.aggregate.AggregateMetric<androidx.health.connect.client.units.Mass> PANTOTHENIC_ACID_TOTAL;
-    field public static final androidx.health.connect.client.aggregate.AggregateMetric<androidx.health.connect.client.units.Mass> PHOSPHORUS_TOTAL;
-    field public static final androidx.health.connect.client.aggregate.AggregateMetric<androidx.health.connect.client.units.Mass> POLYUNSATURATED_FAT_TOTAL;
-    field public static final androidx.health.connect.client.aggregate.AggregateMetric<androidx.health.connect.client.units.Mass> POTASSIUM_TOTAL;
-    field public static final androidx.health.connect.client.aggregate.AggregateMetric<androidx.health.connect.client.units.Mass> PROTEIN_TOTAL;
-    field public static final androidx.health.connect.client.aggregate.AggregateMetric<androidx.health.connect.client.units.Mass> RIBOFLAVIN_TOTAL;
-    field public static final androidx.health.connect.client.aggregate.AggregateMetric<androidx.health.connect.client.units.Mass> SATURATED_FAT_TOTAL;
-    field public static final androidx.health.connect.client.aggregate.AggregateMetric<androidx.health.connect.client.units.Mass> SELENIUM_TOTAL;
-    field public static final androidx.health.connect.client.aggregate.AggregateMetric<androidx.health.connect.client.units.Mass> SODIUM_TOTAL;
-    field public static final androidx.health.connect.client.aggregate.AggregateMetric<androidx.health.connect.client.units.Mass> SUGAR_TOTAL;
-    field public static final androidx.health.connect.client.aggregate.AggregateMetric<androidx.health.connect.client.units.Mass> THIAMIN_TOTAL;
-    field public static final androidx.health.connect.client.aggregate.AggregateMetric<androidx.health.connect.client.units.Mass> TOTAL_CARBOHYDRATE_TOTAL;
-    field public static final androidx.health.connect.client.aggregate.AggregateMetric<androidx.health.connect.client.units.Mass> TOTAL_FAT_TOTAL;
-    field public static final androidx.health.connect.client.aggregate.AggregateMetric<androidx.health.connect.client.units.Mass> TRANS_FAT_TOTAL;
-    field public static final androidx.health.connect.client.aggregate.AggregateMetric<androidx.health.connect.client.units.Mass> UNSATURATED_FAT_TOTAL;
-    field public static final androidx.health.connect.client.aggregate.AggregateMetric<androidx.health.connect.client.units.Mass> VITAMIN_A_TOTAL;
-    field public static final androidx.health.connect.client.aggregate.AggregateMetric<androidx.health.connect.client.units.Mass> VITAMIN_B12_TOTAL;
-    field public static final androidx.health.connect.client.aggregate.AggregateMetric<androidx.health.connect.client.units.Mass> VITAMIN_B6_TOTAL;
-    field public static final androidx.health.connect.client.aggregate.AggregateMetric<androidx.health.connect.client.units.Mass> VITAMIN_C_TOTAL;
-    field public static final androidx.health.connect.client.aggregate.AggregateMetric<androidx.health.connect.client.units.Mass> VITAMIN_D_TOTAL;
-    field public static final androidx.health.connect.client.aggregate.AggregateMetric<androidx.health.connect.client.units.Mass> VITAMIN_E_TOTAL;
-    field public static final androidx.health.connect.client.aggregate.AggregateMetric<androidx.health.connect.client.units.Mass> VITAMIN_K_TOTAL;
-    field public static final androidx.health.connect.client.aggregate.AggregateMetric<androidx.health.connect.client.units.Mass> ZINC_TOTAL;
-  }
-
-  public static final class NutritionRecord.Companion {
-  }
-
-  public final class OvulationTestRecord implements androidx.health.connect.client.records.Record {
-    ctor public OvulationTestRecord(java.time.Instant time, java.time.ZoneOffset? zoneOffset, int result, optional androidx.health.connect.client.records.metadata.Metadata metadata);
-    method public androidx.health.connect.client.records.metadata.Metadata getMetadata();
-    method public int getResult();
-    method public java.time.Instant getTime();
-    method public java.time.ZoneOffset? getZoneOffset();
-    property public androidx.health.connect.client.records.metadata.Metadata metadata;
-    property public final int result;
-    property public java.time.Instant time;
-    property public java.time.ZoneOffset? zoneOffset;
-    field public static final androidx.health.connect.client.records.OvulationTestRecord.Companion Companion;
-    field public static final int RESULT_HIGH = 2; // 0x2
-    field public static final int RESULT_INCONCLUSIVE = 0; // 0x0
-    field public static final int RESULT_NEGATIVE = 3; // 0x3
-    field public static final int RESULT_POSITIVE = 1; // 0x1
-  }
-
-  public static final class OvulationTestRecord.Companion {
-  }
-
-  public final class OxygenSaturationRecord implements androidx.health.connect.client.records.Record {
-    ctor public OxygenSaturationRecord(java.time.Instant time, java.time.ZoneOffset? zoneOffset, androidx.health.connect.client.units.Percentage percentage, optional androidx.health.connect.client.records.metadata.Metadata metadata);
-    method public androidx.health.connect.client.records.metadata.Metadata getMetadata();
-    method public androidx.health.connect.client.units.Percentage getPercentage();
-    method public java.time.Instant getTime();
-    method public java.time.ZoneOffset? getZoneOffset();
-    property public androidx.health.connect.client.records.metadata.Metadata metadata;
-    property public final androidx.health.connect.client.units.Percentage percentage;
-    property public java.time.Instant time;
-    property public java.time.ZoneOffset? zoneOffset;
-  }
-
-  public final class PowerRecord implements androidx.health.connect.client.records.Record {
-    ctor public PowerRecord(java.time.Instant startTime, java.time.ZoneOffset? startZoneOffset, java.time.Instant endTime, java.time.ZoneOffset? endZoneOffset, java.util.List<androidx.health.connect.client.records.PowerRecord.Sample> samples, optional androidx.health.connect.client.records.metadata.Metadata metadata);
-    method public java.time.Instant getEndTime();
-    method public java.time.ZoneOffset? getEndZoneOffset();
-    method public androidx.health.connect.client.records.metadata.Metadata getMetadata();
-    method public java.util.List<androidx.health.connect.client.records.PowerRecord.Sample> getSamples();
-    method public java.time.Instant getStartTime();
-    method public java.time.ZoneOffset? getStartZoneOffset();
-    property public java.time.Instant endTime;
-    property public java.time.ZoneOffset? endZoneOffset;
-    property public androidx.health.connect.client.records.metadata.Metadata metadata;
-    property public java.util.List<androidx.health.connect.client.records.PowerRecord.Sample> samples;
-    property public java.time.Instant startTime;
-    property public java.time.ZoneOffset? startZoneOffset;
-    field public static final androidx.health.connect.client.records.PowerRecord.Companion Companion;
-    field public static final androidx.health.connect.client.aggregate.AggregateMetric<androidx.health.connect.client.units.Power> POWER_AVG;
-    field public static final androidx.health.connect.client.aggregate.AggregateMetric<androidx.health.connect.client.units.Power> POWER_MAX;
-    field public static final androidx.health.connect.client.aggregate.AggregateMetric<androidx.health.connect.client.units.Power> POWER_MIN;
-  }
-
-  public static final class PowerRecord.Companion {
-  }
-
-  public static final class PowerRecord.Sample {
-    ctor public PowerRecord.Sample(java.time.Instant time, androidx.health.connect.client.units.Power power);
-    method public androidx.health.connect.client.units.Power getPower();
-    method public java.time.Instant getTime();
-    property public final androidx.health.connect.client.units.Power power;
-    property public final java.time.Instant time;
-  }
-
-  public interface Record {
-    method public androidx.health.connect.client.records.metadata.Metadata getMetadata();
-    property public abstract androidx.health.connect.client.records.metadata.Metadata metadata;
-  }
-
-  public final class RespiratoryRateRecord implements androidx.health.connect.client.records.Record {
-    ctor public RespiratoryRateRecord(java.time.Instant time, java.time.ZoneOffset? zoneOffset, double rate, optional androidx.health.connect.client.records.metadata.Metadata metadata);
-    method public androidx.health.connect.client.records.metadata.Metadata getMetadata();
-    method public double getRate();
-    method public java.time.Instant getTime();
-    method public java.time.ZoneOffset? getZoneOffset();
-    property public androidx.health.connect.client.records.metadata.Metadata metadata;
-    property public final double rate;
-    property public java.time.Instant time;
-    property public java.time.ZoneOffset? zoneOffset;
-  }
-
-  public final class RestingHeartRateRecord implements androidx.health.connect.client.records.Record {
-    ctor public RestingHeartRateRecord(java.time.Instant time, java.time.ZoneOffset? zoneOffset, long beatsPerMinute, optional androidx.health.connect.client.records.metadata.Metadata metadata);
-    method public long getBeatsPerMinute();
-    method public androidx.health.connect.client.records.metadata.Metadata getMetadata();
-    method public java.time.Instant getTime();
-    method public java.time.ZoneOffset? getZoneOffset();
-    property public final long beatsPerMinute;
-    property public androidx.health.connect.client.records.metadata.Metadata metadata;
-    property public java.time.Instant time;
-    property public java.time.ZoneOffset? zoneOffset;
-    field public static final androidx.health.connect.client.aggregate.AggregateMetric<java.lang.Long> BPM_AVG;
-    field public static final androidx.health.connect.client.aggregate.AggregateMetric<java.lang.Long> BPM_MAX;
-    field public static final androidx.health.connect.client.aggregate.AggregateMetric<java.lang.Long> BPM_MIN;
-    field public static final androidx.health.connect.client.records.RestingHeartRateRecord.Companion Companion;
-  }
-
-  public static final class RestingHeartRateRecord.Companion {
-  }
-
-  public final class SexualActivityRecord implements androidx.health.connect.client.records.Record {
-    ctor public SexualActivityRecord(java.time.Instant time, java.time.ZoneOffset? zoneOffset, optional int protectionUsed, optional androidx.health.connect.client.records.metadata.Metadata metadata);
-    method public androidx.health.connect.client.records.metadata.Metadata getMetadata();
-    method public int getProtectionUsed();
-    method public java.time.Instant getTime();
-    method public java.time.ZoneOffset? getZoneOffset();
-    property public androidx.health.connect.client.records.metadata.Metadata metadata;
-    property public final int protectionUsed;
-    property public java.time.Instant time;
-    property public java.time.ZoneOffset? zoneOffset;
-    field public static final androidx.health.connect.client.records.SexualActivityRecord.Companion Companion;
-    field public static final int PROTECTION_USED_PROTECTED = 1; // 0x1
-    field public static final int PROTECTION_USED_UNKNOWN = 0; // 0x0
-    field public static final int PROTECTION_USED_UNPROTECTED = 2; // 0x2
-  }
-
-  public static final class SexualActivityRecord.Companion {
-  }
-
-  public final class SleepSessionRecord implements androidx.health.connect.client.records.Record {
-    ctor public SleepSessionRecord(java.time.Instant startTime, java.time.ZoneOffset? startZoneOffset, java.time.Instant endTime, java.time.ZoneOffset? endZoneOffset, optional String? title, optional String? notes, optional java.util.List<androidx.health.connect.client.records.SleepSessionRecord.Stage> stages, optional androidx.health.connect.client.records.metadata.Metadata metadata);
-    method public java.time.Instant getEndTime();
-    method public java.time.ZoneOffset? getEndZoneOffset();
-    method public androidx.health.connect.client.records.metadata.Metadata getMetadata();
-    method public String? getNotes();
-    method public java.util.List<androidx.health.connect.client.records.SleepSessionRecord.Stage> getStages();
-    method public java.time.Instant getStartTime();
-    method public java.time.ZoneOffset? getStartZoneOffset();
-    method public String? getTitle();
-    property public java.time.Instant endTime;
-    property public java.time.ZoneOffset? endZoneOffset;
-    property public androidx.health.connect.client.records.metadata.Metadata metadata;
-    property public final String? notes;
-    property public final java.util.List<androidx.health.connect.client.records.SleepSessionRecord.Stage> stages;
-    property public java.time.Instant startTime;
-    property public java.time.ZoneOffset? startZoneOffset;
-    property public final String? title;
-    field public static final androidx.health.connect.client.records.SleepSessionRecord.Companion Companion;
-    field public static final androidx.health.connect.client.aggregate.AggregateMetric<java.time.Duration> SLEEP_DURATION_TOTAL;
-    field public static final int STAGE_TYPE_AWAKE = 1; // 0x1
-    field public static final int STAGE_TYPE_AWAKE_IN_BED = 7; // 0x7
-    field public static final int STAGE_TYPE_DEEP = 5; // 0x5
-    field public static final int STAGE_TYPE_LIGHT = 4; // 0x4
-    field public static final int STAGE_TYPE_OUT_OF_BED = 3; // 0x3
-    field public static final int STAGE_TYPE_REM = 6; // 0x6
-    field public static final int STAGE_TYPE_SLEEPING = 2; // 0x2
-    field public static final int STAGE_TYPE_UNKNOWN = 0; // 0x0
-  }
-
-  public static final class SleepSessionRecord.Companion {
-  }
-
-  public static final class SleepSessionRecord.Stage {
-    ctor public SleepSessionRecord.Stage(java.time.Instant startTime, java.time.Instant endTime, int stage);
-    method public java.time.Instant getEndTime();
-    method public int getStage();
-    method public java.time.Instant getStartTime();
-    property public final java.time.Instant endTime;
-    property public final int stage;
-    property public final java.time.Instant startTime;
-  }
-
-  public final class SpeedRecord implements androidx.health.connect.client.records.Record {
-    ctor public SpeedRecord(java.time.Instant startTime, java.time.ZoneOffset? startZoneOffset, java.time.Instant endTime, java.time.ZoneOffset? endZoneOffset, java.util.List<androidx.health.connect.client.records.SpeedRecord.Sample> samples, optional androidx.health.connect.client.records.metadata.Metadata metadata);
-    method public java.time.Instant getEndTime();
-    method public java.time.ZoneOffset? getEndZoneOffset();
-    method public androidx.health.connect.client.records.metadata.Metadata getMetadata();
-    method public java.util.List<androidx.health.connect.client.records.SpeedRecord.Sample> getSamples();
-    method public java.time.Instant getStartTime();
-    method public java.time.ZoneOffset? getStartZoneOffset();
-    property public java.time.Instant endTime;
-    property public java.time.ZoneOffset? endZoneOffset;
-    property public androidx.health.connect.client.records.metadata.Metadata metadata;
-    property public java.util.List<androidx.health.connect.client.records.SpeedRecord.Sample> samples;
-    property public java.time.Instant startTime;
-    property public java.time.ZoneOffset? startZoneOffset;
-    field public static final androidx.health.connect.client.records.SpeedRecord.Companion Companion;
-    field public static final androidx.health.connect.client.aggregate.AggregateMetric<androidx.health.connect.client.units.Velocity> SPEED_AVG;
-    field public static final androidx.health.connect.client.aggregate.AggregateMetric<androidx.health.connect.client.units.Velocity> SPEED_MAX;
-    field public static final androidx.health.connect.client.aggregate.AggregateMetric<androidx.health.connect.client.units.Velocity> SPEED_MIN;
-  }
-
-  public static final class SpeedRecord.Companion {
-  }
-
-  public static final class SpeedRecord.Sample {
-    ctor public SpeedRecord.Sample(java.time.Instant time, androidx.health.connect.client.units.Velocity speed);
-    method public androidx.health.connect.client.units.Velocity getSpeed();
-    method public java.time.Instant getTime();
-    property public final androidx.health.connect.client.units.Velocity speed;
-    property public final java.time.Instant time;
-  }
-
-  public final class StepsCadenceRecord implements androidx.health.connect.client.records.Record {
-    ctor public StepsCadenceRecord(java.time.Instant startTime, java.time.ZoneOffset? startZoneOffset, java.time.Instant endTime, java.time.ZoneOffset? endZoneOffset, java.util.List<androidx.health.connect.client.records.StepsCadenceRecord.Sample> samples, optional androidx.health.connect.client.records.metadata.Metadata metadata);
-    method public java.time.Instant getEndTime();
-    method public java.time.ZoneOffset? getEndZoneOffset();
-    method public androidx.health.connect.client.records.metadata.Metadata getMetadata();
-    method public java.util.List<androidx.health.connect.client.records.StepsCadenceRecord.Sample> getSamples();
-    method public java.time.Instant getStartTime();
-    method public java.time.ZoneOffset? getStartZoneOffset();
-    property public java.time.Instant endTime;
-    property public java.time.ZoneOffset? endZoneOffset;
-    property public androidx.health.connect.client.records.metadata.Metadata metadata;
-    property public java.util.List<androidx.health.connect.client.records.StepsCadenceRecord.Sample> samples;
-    property public java.time.Instant startTime;
-    property public java.time.ZoneOffset? startZoneOffset;
-    field public static final androidx.health.connect.client.records.StepsCadenceRecord.Companion Companion;
-    field public static final androidx.health.connect.client.aggregate.AggregateMetric<java.lang.Double> RATE_AVG;
-    field public static final androidx.health.connect.client.aggregate.AggregateMetric<java.lang.Double> RATE_MAX;
-    field public static final androidx.health.connect.client.aggregate.AggregateMetric<java.lang.Double> RATE_MIN;
-  }
-
-  public static final class StepsCadenceRecord.Companion {
-  }
-
-  public static final class StepsCadenceRecord.Sample {
-    ctor public StepsCadenceRecord.Sample(java.time.Instant time, @FloatRange(from=0.0, to=10000.0) double rate);
-    method public double getRate();
-    method public java.time.Instant getTime();
-    property public final double rate;
-    property public final java.time.Instant time;
-  }
-
-  public final class StepsRecord implements androidx.health.connect.client.records.Record {
-    ctor public StepsRecord(java.time.Instant startTime, java.time.ZoneOffset? startZoneOffset, java.time.Instant endTime, java.time.ZoneOffset? endZoneOffset, @IntRange(from=1L, to=1000000L) long count, optional androidx.health.connect.client.records.metadata.Metadata metadata);
-    method public long getCount();
-    method public java.time.Instant getEndTime();
-    method public java.time.ZoneOffset? getEndZoneOffset();
-    method public androidx.health.connect.client.records.metadata.Metadata getMetadata();
-    method public java.time.Instant getStartTime();
-    method public java.time.ZoneOffset? getStartZoneOffset();
-    property public final long count;
-    property public java.time.Instant endTime;
-    property public java.time.ZoneOffset? endZoneOffset;
-    property public androidx.health.connect.client.records.metadata.Metadata metadata;
-    property public java.time.Instant startTime;
-    property public java.time.ZoneOffset? startZoneOffset;
-    field public static final androidx.health.connect.client.aggregate.AggregateMetric<java.lang.Long> COUNT_TOTAL;
-    field public static final androidx.health.connect.client.records.StepsRecord.Companion Companion;
-  }
-
-  public static final class StepsRecord.Companion {
-  }
-
-  public final class TotalCaloriesBurnedRecord implements androidx.health.connect.client.records.Record {
-    ctor public TotalCaloriesBurnedRecord(java.time.Instant startTime, java.time.ZoneOffset? startZoneOffset, java.time.Instant endTime, java.time.ZoneOffset? endZoneOffset, androidx.health.connect.client.units.Energy energy, optional androidx.health.connect.client.records.metadata.Metadata metadata);
-    method public java.time.Instant getEndTime();
-    method public java.time.ZoneOffset? getEndZoneOffset();
-    method public androidx.health.connect.client.units.Energy getEnergy();
-    method public androidx.health.connect.client.records.metadata.Metadata getMetadata();
-    method public java.time.Instant getStartTime();
-    method public java.time.ZoneOffset? getStartZoneOffset();
-    property public java.time.Instant endTime;
-    property public java.time.ZoneOffset? endZoneOffset;
-    property public final androidx.health.connect.client.units.Energy energy;
-    property public androidx.health.connect.client.records.metadata.Metadata metadata;
-    property public java.time.Instant startTime;
-    property public java.time.ZoneOffset? startZoneOffset;
-    field public static final androidx.health.connect.client.records.TotalCaloriesBurnedRecord.Companion Companion;
-    field public static final androidx.health.connect.client.aggregate.AggregateMetric<androidx.health.connect.client.units.Energy> ENERGY_TOTAL;
-  }
-
-  public static final class TotalCaloriesBurnedRecord.Companion {
-  }
-
-  public final class Vo2MaxRecord implements androidx.health.connect.client.records.Record {
-    ctor public Vo2MaxRecord(java.time.Instant time, java.time.ZoneOffset? zoneOffset, double vo2MillilitersPerMinuteKilogram, optional int measurementMethod, optional androidx.health.connect.client.records.metadata.Metadata metadata);
-    method public int getMeasurementMethod();
-    method public androidx.health.connect.client.records.metadata.Metadata getMetadata();
-    method public java.time.Instant getTime();
-    method public double getVo2MillilitersPerMinuteKilogram();
-    method public java.time.ZoneOffset? getZoneOffset();
-    property public final int measurementMethod;
-    property public androidx.health.connect.client.records.metadata.Metadata metadata;
-    property public java.time.Instant time;
-    property public final double vo2MillilitersPerMinuteKilogram;
-    property public java.time.ZoneOffset? zoneOffset;
-    field public static final androidx.health.connect.client.records.Vo2MaxRecord.Companion Companion;
-    field public static final int MEASUREMENT_METHOD_COOPER_TEST = 3; // 0x3
-    field public static final int MEASUREMENT_METHOD_HEART_RATE_RATIO = 2; // 0x2
-    field public static final int MEASUREMENT_METHOD_METABOLIC_CART = 1; // 0x1
-    field public static final int MEASUREMENT_METHOD_MULTISTAGE_FITNESS_TEST = 4; // 0x4
-    field public static final int MEASUREMENT_METHOD_OTHER = 0; // 0x0
-    field public static final int MEASUREMENT_METHOD_ROCKPORT_FITNESS_TEST = 5; // 0x5
-  }
-
-  public static final class Vo2MaxRecord.Companion {
-  }
-
-  public final class WeightRecord implements androidx.health.connect.client.records.Record {
-    ctor public WeightRecord(java.time.Instant time, java.time.ZoneOffset? zoneOffset, androidx.health.connect.client.units.Mass weight, optional androidx.health.connect.client.records.metadata.Metadata metadata);
-    method public androidx.health.connect.client.records.metadata.Metadata getMetadata();
-    method public java.time.Instant getTime();
-    method public androidx.health.connect.client.units.Mass getWeight();
-    method public java.time.ZoneOffset? getZoneOffset();
-    property public androidx.health.connect.client.records.metadata.Metadata metadata;
-    property public java.time.Instant time;
-    property public final androidx.health.connect.client.units.Mass weight;
-    property public java.time.ZoneOffset? zoneOffset;
-    field public static final androidx.health.connect.client.records.WeightRecord.Companion Companion;
-    field public static final androidx.health.connect.client.aggregate.AggregateMetric<androidx.health.connect.client.units.Mass> WEIGHT_AVG;
-    field public static final androidx.health.connect.client.aggregate.AggregateMetric<androidx.health.connect.client.units.Mass> WEIGHT_MAX;
-    field public static final androidx.health.connect.client.aggregate.AggregateMetric<androidx.health.connect.client.units.Mass> WEIGHT_MIN;
-  }
-
-  public static final class WeightRecord.Companion {
-  }
-
-  public final class WheelchairPushesRecord implements androidx.health.connect.client.records.Record {
-    ctor public WheelchairPushesRecord(java.time.Instant startTime, java.time.ZoneOffset? startZoneOffset, java.time.Instant endTime, java.time.ZoneOffset? endZoneOffset, long count, optional androidx.health.connect.client.records.metadata.Metadata metadata);
-    method public long getCount();
-    method public java.time.Instant getEndTime();
-    method public java.time.ZoneOffset? getEndZoneOffset();
-    method public androidx.health.connect.client.records.metadata.Metadata getMetadata();
-    method public java.time.Instant getStartTime();
-    method public java.time.ZoneOffset? getStartZoneOffset();
-    property public final long count;
-    property public java.time.Instant endTime;
-    property public java.time.ZoneOffset? endZoneOffset;
-    property public androidx.health.connect.client.records.metadata.Metadata metadata;
-    property public java.time.Instant startTime;
-    property public java.time.ZoneOffset? startZoneOffset;
-    field public static final androidx.health.connect.client.aggregate.AggregateMetric<java.lang.Long> COUNT_TOTAL;
-    field public static final androidx.health.connect.client.records.WheelchairPushesRecord.Companion Companion;
-  }
-
-  public static final class WheelchairPushesRecord.Companion {
-  }
-
-}
-
-package androidx.health.connect.client.records.metadata {
-
-  public final class DataOrigin {
-    ctor public DataOrigin(String packageName);
-    method public String getPackageName();
-    property public final String packageName;
-  }
-
-  public final class Device {
-    ctor public Device(optional String? manufacturer, optional String? model, optional int type);
-    method public String? getManufacturer();
-    method public String? getModel();
-    method public int getType();
-    property public final String? manufacturer;
-    property public final String? model;
-    property public final int type;
-    field public static final androidx.health.connect.client.records.metadata.Device.Companion Companion;
-    field public static final int TYPE_CHEST_STRAP = 7; // 0x7
-    field public static final int TYPE_FITNESS_BAND = 6; // 0x6
-    field public static final int TYPE_HEAD_MOUNTED = 5; // 0x5
-    field public static final int TYPE_PHONE = 2; // 0x2
-    field public static final int TYPE_RING = 4; // 0x4
-    field public static final int TYPE_SCALE = 3; // 0x3
-    field public static final int TYPE_SMART_DISPLAY = 8; // 0x8
-    field public static final int TYPE_UNKNOWN = 0; // 0x0
-    field public static final int TYPE_WATCH = 1; // 0x1
-  }
-
-  public static final class Device.Companion {
-  }
-
-  public final class Metadata {
-    ctor public Metadata(optional String id, optional androidx.health.connect.client.records.metadata.DataOrigin dataOrigin, optional java.time.Instant lastModifiedTime, optional String? clientRecordId, optional long clientRecordVersion, optional androidx.health.connect.client.records.metadata.Device? device, optional int recordingMethod);
-    method public String? getClientRecordId();
-    method public long getClientRecordVersion();
-    method public androidx.health.connect.client.records.metadata.DataOrigin getDataOrigin();
-    method public androidx.health.connect.client.records.metadata.Device? getDevice();
-    method public String getId();
-    method public java.time.Instant getLastModifiedTime();
-    method public int getRecordingMethod();
-    property public final String? clientRecordId;
-    property public final long clientRecordVersion;
-    property public final androidx.health.connect.client.records.metadata.DataOrigin dataOrigin;
-    property public final androidx.health.connect.client.records.metadata.Device? device;
-    property public final String id;
-    property public final java.time.Instant lastModifiedTime;
-    property public final int recordingMethod;
-    field public static final int RECORDING_METHOD_ACTIVELY_RECORDED = 1; // 0x1
-    field public static final int RECORDING_METHOD_AUTOMATICALLY_RECORDED = 2; // 0x2
-    field public static final int RECORDING_METHOD_MANUAL_ENTRY = 3; // 0x3
-    field public static final int RECORDING_METHOD_UNKNOWN = 0; // 0x0
-  }
-
-}
-
-package androidx.health.connect.client.request {
-
-  public final class AggregateGroupByDurationRequest {
-    ctor public AggregateGroupByDurationRequest(java.util.Set<? extends androidx.health.connect.client.aggregate.AggregateMetric<?>> metrics, androidx.health.connect.client.time.TimeRangeFilter timeRangeFilter, java.time.Duration timeRangeSlicer, optional java.util.Set<androidx.health.connect.client.records.metadata.DataOrigin> dataOriginFilter);
-  }
-
-  public final class AggregateGroupByPeriodRequest {
-    ctor public AggregateGroupByPeriodRequest(java.util.Set<? extends androidx.health.connect.client.aggregate.AggregateMetric<?>> metrics, androidx.health.connect.client.time.TimeRangeFilter timeRangeFilter, java.time.Period timeRangeSlicer, optional java.util.Set<androidx.health.connect.client.records.metadata.DataOrigin> dataOriginFilter);
-  }
-
-  public final class AggregateRequest {
-    ctor public AggregateRequest(java.util.Set<? extends androidx.health.connect.client.aggregate.AggregateMetric<?>> metrics, androidx.health.connect.client.time.TimeRangeFilter timeRangeFilter, optional java.util.Set<androidx.health.connect.client.records.metadata.DataOrigin> dataOriginFilter);
-  }
-
-  public final class ChangesTokenRequest {
-    ctor public ChangesTokenRequest(java.util.Set<? extends kotlin.reflect.KClass<? extends androidx.health.connect.client.records.Record>> recordTypes, optional java.util.Set<androidx.health.connect.client.records.metadata.DataOrigin> dataOriginFilters);
-  }
-
-  public final class ReadRecordsRequest<T extends androidx.health.connect.client.records.Record> {
-    ctor public ReadRecordsRequest(kotlin.reflect.KClass<T> recordType, androidx.health.connect.client.time.TimeRangeFilter timeRangeFilter, optional java.util.Set<androidx.health.connect.client.records.metadata.DataOrigin> dataOriginFilter, optional boolean ascendingOrder, optional int pageSize, optional String? pageToken);
-  }
-
-}
-
-package androidx.health.connect.client.response {
-
-  public final class ChangesResponse {
-    method public java.util.List<androidx.health.connect.client.changes.Change> getChanges();
-    method public boolean getChangesTokenExpired();
-    method public boolean getHasMore();
-    method public String getNextChangesToken();
-    property public final java.util.List<androidx.health.connect.client.changes.Change> changes;
-    property public final boolean changesTokenExpired;
-    property public final boolean hasMore;
-    property public final String nextChangesToken;
-  }
-
-  public final class InsertRecordsResponse {
-    method public java.util.List<java.lang.String> getRecordIdsList();
-    property public final java.util.List<java.lang.String> recordIdsList;
-  }
-
-  public final class ReadRecordResponse<T extends androidx.health.connect.client.records.Record> {
-    method public T getRecord();
-    property public final T record;
-  }
-
-  public final class ReadRecordsResponse<T extends androidx.health.connect.client.records.Record> {
-    method public String? getPageToken();
-    method public java.util.List<T> getRecords();
-    property public final String? pageToken;
-    property public final java.util.List<T> records;
-  }
-
-}
-
-package androidx.health.connect.client.time {
-
-  public final class TimeRangeFilter {
-    method public static androidx.health.connect.client.time.TimeRangeFilter after(java.time.Instant startTime);
-    method public static androidx.health.connect.client.time.TimeRangeFilter after(java.time.LocalDateTime startTime);
-    method public static androidx.health.connect.client.time.TimeRangeFilter before(java.time.Instant endTime);
-    method public static androidx.health.connect.client.time.TimeRangeFilter before(java.time.LocalDateTime endTime);
-    method public static androidx.health.connect.client.time.TimeRangeFilter between(java.time.Instant startTime, java.time.Instant endTime);
-    method public static androidx.health.connect.client.time.TimeRangeFilter between(java.time.LocalDateTime startTime, java.time.LocalDateTime endTime);
-    field public static final androidx.health.connect.client.time.TimeRangeFilter.Companion Companion;
-  }
-
-  public static final class TimeRangeFilter.Companion {
-    method public androidx.health.connect.client.time.TimeRangeFilter after(java.time.Instant startTime);
-    method public androidx.health.connect.client.time.TimeRangeFilter after(java.time.LocalDateTime startTime);
-    method public androidx.health.connect.client.time.TimeRangeFilter before(java.time.Instant endTime);
-    method public androidx.health.connect.client.time.TimeRangeFilter before(java.time.LocalDateTime endTime);
-    method public androidx.health.connect.client.time.TimeRangeFilter between(java.time.Instant startTime, java.time.Instant endTime);
-    method public androidx.health.connect.client.time.TimeRangeFilter between(java.time.LocalDateTime startTime, java.time.LocalDateTime endTime);
-  }
-
-}
-
-package androidx.health.connect.client.units {
-
-  public final class BloodGlucose implements java.lang.Comparable<androidx.health.connect.client.units.BloodGlucose> {
-    method public int compareTo(androidx.health.connect.client.units.BloodGlucose other);
-    method public double getMilligramsPerDeciliter();
-    method public double getMillimolesPerLiter();
-    method public static androidx.health.connect.client.units.BloodGlucose milligramsPerDeciliter(double value);
-    method public static androidx.health.connect.client.units.BloodGlucose millimolesPerLiter(double value);
-    property public final double inMilligramsPerDeciliter;
-    property public final double inMillimolesPerLiter;
-    field public static final androidx.health.connect.client.units.BloodGlucose.Companion Companion;
-  }
-
-  public static final class BloodGlucose.Companion {
-    method public androidx.health.connect.client.units.BloodGlucose milligramsPerDeciliter(double value);
-    method public androidx.health.connect.client.units.BloodGlucose millimolesPerLiter(double value);
-  }
-
-  public final class Energy implements java.lang.Comparable<androidx.health.connect.client.units.Energy> {
-    method public static androidx.health.connect.client.units.Energy calories(double value);
-    method public int compareTo(androidx.health.connect.client.units.Energy other);
-    method public double getCalories();
-    method public double getJoules();
-    method public double getKilocalories();
-    method public double getKilojoules();
-    method public static androidx.health.connect.client.units.Energy joules(double value);
-    method public static androidx.health.connect.client.units.Energy kilocalories(double value);
-    method public static androidx.health.connect.client.units.Energy kilojoules(double value);
-    property public final double inCalories;
-    property public final double inJoules;
-    property public final double inKilocalories;
-    property public final double inKilojoules;
-    field public static final androidx.health.connect.client.units.Energy.Companion Companion;
-  }
-
-  public static final class Energy.Companion {
-    method public androidx.health.connect.client.units.Energy calories(double value);
-    method public androidx.health.connect.client.units.Energy joules(double value);
-    method public androidx.health.connect.client.units.Energy kilocalories(double value);
-    method public androidx.health.connect.client.units.Energy kilojoules(double value);
-  }
-
-  public final class Length implements java.lang.Comparable<androidx.health.connect.client.units.Length> {
-    method public int compareTo(androidx.health.connect.client.units.Length other);
-    method public static androidx.health.connect.client.units.Length feet(double value);
-    method public double getFeet();
-    method public double getInches();
-    method public double getKilometers();
-    method public double getMeters();
-    method public double getMiles();
-    method public static androidx.health.connect.client.units.Length inches(double value);
-    method public static androidx.health.connect.client.units.Length kilometers(double value);
-    method public static androidx.health.connect.client.units.Length meters(double value);
-    method public static androidx.health.connect.client.units.Length miles(double value);
-    property public final double inFeet;
-    property public final double inInches;
-    property public final double inKilometers;
-    property public final double inMeters;
-    property public final double inMiles;
-    field public static final androidx.health.connect.client.units.Length.Companion Companion;
-  }
-
-  public static final class Length.Companion {
-    method public androidx.health.connect.client.units.Length feet(double value);
-    method public androidx.health.connect.client.units.Length inches(double value);
-    method public androidx.health.connect.client.units.Length kilometers(double value);
-    method public androidx.health.connect.client.units.Length meters(double value);
-    method public androidx.health.connect.client.units.Length miles(double value);
-  }
-
-  public final class Mass implements java.lang.Comparable<androidx.health.connect.client.units.Mass> {
-    method public int compareTo(androidx.health.connect.client.units.Mass other);
-    method public double getGrams();
-    method public double getKilograms();
-    method public double getMicrograms();
-    method public double getMilligrams();
-    method public double getOunces();
-    method public double getPounds();
-    method public static androidx.health.connect.client.units.Mass grams(double value);
-    method public static androidx.health.connect.client.units.Mass kilograms(double value);
-    method public static androidx.health.connect.client.units.Mass micrograms(double value);
-    method public static androidx.health.connect.client.units.Mass milligrams(double value);
-    method public static androidx.health.connect.client.units.Mass ounces(double value);
-    method public static androidx.health.connect.client.units.Mass pounds(double value);
-    property public final double inGrams;
-    property public final double inKilograms;
-    property public final double inMicrograms;
-    property public final double inMilligrams;
-    property public final double inOunces;
-    property public final double inPounds;
-    field public static final androidx.health.connect.client.units.Mass.Companion Companion;
-  }
-
-  public static final class Mass.Companion {
-    method public androidx.health.connect.client.units.Mass grams(double value);
-    method public androidx.health.connect.client.units.Mass kilograms(double value);
-    method public androidx.health.connect.client.units.Mass micrograms(double value);
-    method public androidx.health.connect.client.units.Mass milligrams(double value);
-    method public androidx.health.connect.client.units.Mass ounces(double value);
-    method public androidx.health.connect.client.units.Mass pounds(double value);
-  }
-
-  public final class Percentage implements java.lang.Comparable<androidx.health.connect.client.units.Percentage> {
-    ctor public Percentage(double value);
-    method public int compareTo(androidx.health.connect.client.units.Percentage other);
-    method public double getValue();
-    property public final double value;
-  }
-
-  public final class Power implements java.lang.Comparable<androidx.health.connect.client.units.Power> {
-    method public int compareTo(androidx.health.connect.client.units.Power other);
-    method public double getKilocaloriesPerDay();
-    method public double getWatts();
-    method public static androidx.health.connect.client.units.Power kilocaloriesPerDay(double value);
-    method public static androidx.health.connect.client.units.Power watts(double value);
-    property public final double inKilocaloriesPerDay;
-    property public final double inWatts;
-    field public static final androidx.health.connect.client.units.Power.Companion Companion;
-  }
-
-  public static final class Power.Companion {
-    method public androidx.health.connect.client.units.Power kilocaloriesPerDay(double value);
-    method public androidx.health.connect.client.units.Power watts(double value);
-  }
-
-  public final class Pressure implements java.lang.Comparable<androidx.health.connect.client.units.Pressure> {
-    method public int compareTo(androidx.health.connect.client.units.Pressure other);
-    method public double getMillimetersOfMercury();
-    method public static androidx.health.connect.client.units.Pressure millimetersOfMercury(double value);
-    property public final double inMillimetersOfMercury;
-    field public static final androidx.health.connect.client.units.Pressure.Companion Companion;
-  }
-
-  public static final class Pressure.Companion {
-    method public androidx.health.connect.client.units.Pressure millimetersOfMercury(double value);
-  }
-
-  public final class Temperature implements java.lang.Comparable<androidx.health.connect.client.units.Temperature> {
-    method public static androidx.health.connect.client.units.Temperature celsius(double value);
-    method public int compareTo(androidx.health.connect.client.units.Temperature other);
-    method public static androidx.health.connect.client.units.Temperature fahrenheit(double value);
-    method public double getCelsius();
-    method public double getFahrenheit();
-    property public final double inCelsius;
-    property public final double inFahrenheit;
-    field public static final androidx.health.connect.client.units.Temperature.Companion Companion;
-  }
-
-  public static final class Temperature.Companion {
-    method public androidx.health.connect.client.units.Temperature celsius(double value);
-    method public androidx.health.connect.client.units.Temperature fahrenheit(double value);
-  }
-
-  public final class Velocity implements java.lang.Comparable<androidx.health.connect.client.units.Velocity> {
-    method public int compareTo(androidx.health.connect.client.units.Velocity other);
-    method public double getKilometersPerHour();
-    method public double getMetersPerSecond();
-    method public double getMilesPerHour();
-    method public static androidx.health.connect.client.units.Velocity kilometersPerHour(double value);
-    method public static androidx.health.connect.client.units.Velocity metersPerSecond(double value);
-    method public static androidx.health.connect.client.units.Velocity milesPerHour(double value);
-    property public final double inKilometersPerHour;
-    property public final double inMetersPerSecond;
-    property public final double inMilesPerHour;
-    field public static final androidx.health.connect.client.units.Velocity.Companion Companion;
-  }
-
-  public static final class Velocity.Companion {
-    method public androidx.health.connect.client.units.Velocity kilometersPerHour(double value);
-    method public androidx.health.connect.client.units.Velocity metersPerSecond(double value);
-    method public androidx.health.connect.client.units.Velocity milesPerHour(double value);
-  }
-
-  public final class Volume implements java.lang.Comparable<androidx.health.connect.client.units.Volume> {
-    method public int compareTo(androidx.health.connect.client.units.Volume other);
-    method public static androidx.health.connect.client.units.Volume fluidOuncesUs(double value);
-    method public double getFluidOuncesUs();
-    method public double getLiters();
-    method public double getMilliliters();
-    method public static androidx.health.connect.client.units.Volume liters(double value);
-    method public static androidx.health.connect.client.units.Volume milliliters(double value);
-    property public final double inFluidOuncesUs;
-    property public final double inLiters;
-    property public final double inMilliliters;
-    field public static final androidx.health.connect.client.units.Volume.Companion Companion;
-  }
-
-  public static final class Volume.Companion {
-    method public androidx.health.connect.client.units.Volume fluidOuncesUs(double value);
-    method public androidx.health.connect.client.units.Volume liters(double value);
-    method public androidx.health.connect.client.units.Volume milliliters(double value);
-  }
-
-}
-
diff --git a/heifwriter/heifwriter/api/public_plus_experimental_current.txt b/heifwriter/heifwriter/api/public_plus_experimental_current.txt
deleted file mode 100644
index ce07b53..0000000
--- a/heifwriter/heifwriter/api/public_plus_experimental_current.txt
+++ /dev/null
@@ -1,31 +0,0 @@
-// Signature format: 4.0
-package androidx.heifwriter {
-
-  public final class HeifWriter implements java.lang.AutoCloseable {
-    method public void addBitmap(android.graphics.Bitmap);
-    method public void addExifData(int, byte[], int, int);
-    method public void addYuvBuffer(int, byte[]);
-    method public void close();
-    method public android.view.Surface getInputSurface();
-    method public void setInputEndOfStreamTimestamp(long);
-    method public void start();
-    method public void stop(long) throws java.lang.Exception;
-    field public static final int INPUT_MODE_BITMAP = 2; // 0x2
-    field public static final int INPUT_MODE_BUFFER = 0; // 0x0
-    field public static final int INPUT_MODE_SURFACE = 1; // 0x1
-  }
-
-  public static final class HeifWriter.Builder {
-    ctor public HeifWriter.Builder(java.io.FileDescriptor, int, int, int);
-    ctor public HeifWriter.Builder(String, int, int, int);
-    method public androidx.heifwriter.HeifWriter! build() throws java.io.IOException;
-    method public androidx.heifwriter.HeifWriter.Builder! setGridEnabled(boolean);
-    method public androidx.heifwriter.HeifWriter.Builder! setHandler(android.os.Handler?);
-    method public androidx.heifwriter.HeifWriter.Builder! setMaxImages(int);
-    method public androidx.heifwriter.HeifWriter.Builder! setPrimaryIndex(int);
-    method public androidx.heifwriter.HeifWriter.Builder! setQuality(int);
-    method public androidx.heifwriter.HeifWriter.Builder! setRotation(int);
-  }
-
-}
-
diff --git a/hilt/hilt-navigation-fragment/api/public_plus_experimental_current.txt b/hilt/hilt-navigation-fragment/api/public_plus_experimental_current.txt
deleted file mode 100644
index 7cbc428..0000000
--- a/hilt/hilt-navigation-fragment/api/public_plus_experimental_current.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-// Signature format: 4.0
-package androidx.hilt.navigation.fragment {
-
-  public final class HiltNavGraphViewModelLazyKt {
-    method @MainThread public static inline <reified VM extends androidx.lifecycle.ViewModel> kotlin.Lazy<VM> hiltNavGraphViewModels(androidx.fragment.app.Fragment, @IdRes int navGraphId);
-  }
-
-}
-
diff --git a/libraryversions.toml b/libraryversions.toml
index 223c6d0..fbe2167 100644
--- a/libraryversions.toml
+++ b/libraryversions.toml
@@ -19,7 +19,7 @@
 CARDVIEW = "1.1.0-alpha01"
 CAR_APP = "1.4.0-alpha01"
 COLLECTION = "1.3.0-alpha05"
-COMPOSE = "1.5.0-alpha05"
+COMPOSE = "1.5.0-beta01"
 COMPOSE_COMPILER = "1.4.7"
 COMPOSE_MATERIAL3 = "1.2.0-alpha02"
 COMPOSE_MATERIAL3_ADAPTIVE = "1.0.0-alpha01"
@@ -29,7 +29,7 @@
 CONSTRAINTLAYOUT_CORE = "1.1.0-alpha10"
 CONTENTPAGER = "1.1.0-alpha01"
 COORDINATORLAYOUT = "1.3.0-alpha01"
-CORE = "1.11.0-alpha05"
+CORE = "1.11.0-beta01"
 CORE_ANIMATION = "1.0.0-beta02"
 CORE_ANIMATION_TESTING = "1.0.0-beta01"
 CORE_APPDIGEST = "1.0.0-alpha01"
@@ -41,7 +41,7 @@
 CORE_ROLE = "1.2.0-alpha01"
 CORE_SPLASHSCREEN = "1.1.0-alpha01"
 CORE_UWB = "1.0.0-alpha06"
-CREDENTIALS = "1.0.0-alpha08"
+CREDENTIALS = "1.0.0-alpha09"
 CURSORADAPTER = "1.1.0-alpha01"
 CUSTOMVIEW = "1.2.0-alpha03"
 CUSTOMVIEW_POOLINGCONTAINER = "1.1.0-alpha01"
@@ -138,9 +138,9 @@
 VECTORDRAWABLE_SEEKABLE = "1.0.0-beta02"
 VERSIONED_PARCELABLE = "1.2.0-alpha01"
 VIEWPAGER = "1.1.0-alpha02"
-VIEWPAGER2 = "1.2.0-alpha01"
+VIEWPAGER2 = "1.1.0-beta02"
 WEAR = "1.3.0-alpha06"
-WEAR_COMPOSE = "1.2.0-alpha11"
+WEAR_COMPOSE = "1.2.0-beta01"
 WEAR_COMPOSE_MATERIAL3 = "1.0.0-alpha05"
 WEAR_INPUT = "1.2.0-alpha03"
 WEAR_INPUT_TESTING = "1.2.0-alpha03"
diff --git a/lint-checks/src/main/java/androidx/build/lint/aidl/AidlDefinitionDetector.kt b/lint-checks/src/main/java/androidx/build/lint/aidl/AidlDefinitionDetector.kt
index 16e56b7..b1e086f 100644
--- a/lint-checks/src/main/java/androidx/build/lint/aidl/AidlDefinitionDetector.kt
+++ b/lint-checks/src/main/java/androidx/build/lint/aidl/AidlDefinitionDetector.kt
@@ -31,6 +31,7 @@
 import com.android.tools.lint.detector.api.Scope
 import com.intellij.core.CoreFileTypeRegistry
 import com.intellij.lang.LanguageParserDefinitions
+import com.intellij.openapi.fileTypes.UnknownFileType
 import com.intellij.openapi.vfs.local.CoreLocalFileSystem
 import com.intellij.psi.PsiManager
 import com.intellij.psi.SingleRootFileViewProvider
@@ -44,31 +45,26 @@
     override fun getApplicableFiles() = Scope.OTHER_SCOPE
 
     override fun beforeCheckEachProject(context: Context) {
-        // Neither LanguageParserDefinitions nor CoreFileTypeRegistry are thread-safe, so this is a
-        // best-effort to avoid a race condition during our own access across multiple lint worker
-        // threads.
-        synchronized(intellijCoreLock) {
-            val aidlFileType = AidlFileType.INSTANCE
+        val aidlFileType = AidlFileType.INSTANCE
 
-            // When we run from CLI, the IntelliJ parser (which does not support lexing AIDL) will
-            // already be set. Only the first parser will be used, so we need to remove that parser
-            // before we add our own.
-            val languageParserDefinitions = LanguageParserDefinitions.INSTANCE
-            languageParserDefinitions.apply {
-                allForLanguage(aidlFileType.language).forEach { parser ->
-                    removeExplicitExtension(aidlFileType.language, parser)
+        // We only need to register the language parser once per daemon process...
+        LanguageParserDefinitions.INSTANCE.apply {
+            synchronized(this) {
+                val existingParsers = forLanguage(aidlFileType.language)
+                if (existingParsers == null) {
+                    addExplicitExtension(aidlFileType.language, AidlParserDefinition())
                 }
-                addExplicitExtension(aidlFileType.language, AidlParserDefinition())
             }
+        }
 
-            // Register our parser for the AIDL file type. Files may be registered more than once to
-            // overwrite the associated extension, but only the first call to `registerFileType`
-            // will associate the file with the name returned by `FileType.getName()`.
-            val coreFileTypeRegistry = CoreFileTypeRegistry.getInstance() as CoreFileTypeRegistry
-            coreFileTypeRegistry.registerFileType(
-                aidlFileType,
-                aidlFileType.defaultExtension
-            )
+        // ...but we need to register the file type every time we run Gradle.
+        (CoreFileTypeRegistry.getInstance() as CoreFileTypeRegistry).apply {
+            synchronized(this) {
+                val existingFileType = getFileTypeByExtension(aidlFileType.defaultExtension)
+                if (existingFileType == UnknownFileType.INSTANCE) {
+                    registerFileType(aidlFileType, aidlFileType.defaultExtension)
+                }
+            }
         }
     }
 
@@ -139,9 +135,3 @@
     textRange.startOffset,
     textRange.endOffset
 )
-
-/**
- * Lock object used to synchronize access to IntelliJ registries which are not thread-safe,
- * including [LanguageParserDefinitions] and [CoreFileTypeRegistry].
- */
-private val intellijCoreLock = Any()
diff --git a/lint-checks/src/main/java/androidx/com/android/tools/idea/lang/aidl/AidlLanguage.java b/lint-checks/src/main/java/androidx/com/android/tools/idea/lang/aidl/AidlLanguage.java
index 0a10e27..3e7d669 100644
--- a/lint-checks/src/main/java/androidx/com/android/tools/idea/lang/aidl/AidlLanguage.java
+++ b/lint-checks/src/main/java/androidx/com/android/tools/idea/lang/aidl/AidlLanguage.java
@@ -22,14 +22,12 @@
  * Android IDL Language.
  */
 public class AidlLanguage extends Language {
-  private static final Object INSTANCE_LOCK = new Object();
-
   public static final Language INSTANCE = getOrCreate();
 
   private static Language getOrCreate() {
     // The Language class is not thread-safe, so this is a best-effort to avoid a race condition
-    // during our own access across multiple lint worker threads.
-    synchronized (INSTANCE_LOCK) {
+    // during our own access across multiple lint worker threads and classloaders.
+    synchronized (Language.ANY) {
       Language lang = Language.findLanguageByID(ID);
       if (lang != null) {
         return lang;
diff --git a/media/media/api/public_plus_experimental_current.txt b/media/media/api/public_plus_experimental_current.txt
deleted file mode 100644
index 88dc4db3..0000000
--- a/media/media/api/public_plus_experimental_current.txt
+++ /dev/null
@@ -1,765 +0,0 @@
-// Signature format: 4.0
-package android.support.v4.media {
-
-  public final class MediaBrowserCompat {
-    ctor public MediaBrowserCompat(android.content.Context!, android.content.ComponentName!, android.support.v4.media.MediaBrowserCompat.ConnectionCallback!, android.os.Bundle!);
-    method public void connect();
-    method public void disconnect();
-    method public android.os.Bundle? getExtras();
-    method public void getItem(String, android.support.v4.media.MediaBrowserCompat.ItemCallback);
-    method public String getRoot();
-    method public android.content.ComponentName getServiceComponent();
-    method public android.support.v4.media.session.MediaSessionCompat.Token getSessionToken();
-    method public boolean isConnected();
-    method public void search(String, android.os.Bundle!, android.support.v4.media.MediaBrowserCompat.SearchCallback);
-    method public void sendCustomAction(String, android.os.Bundle!, android.support.v4.media.MediaBrowserCompat.CustomActionCallback?);
-    method public void subscribe(String, android.os.Bundle, android.support.v4.media.MediaBrowserCompat.SubscriptionCallback);
-    method public void subscribe(String, android.support.v4.media.MediaBrowserCompat.SubscriptionCallback);
-    method public void unsubscribe(String);
-    method public void unsubscribe(String, android.support.v4.media.MediaBrowserCompat.SubscriptionCallback);
-    field public static final String CUSTOM_ACTION_DOWNLOAD = "android.support.v4.media.action.DOWNLOAD";
-    field public static final String CUSTOM_ACTION_REMOVE_DOWNLOADED_FILE = "android.support.v4.media.action.REMOVE_DOWNLOADED_FILE";
-    field public static final String EXTRA_DOWNLOAD_PROGRESS = "android.media.browse.extra.DOWNLOAD_PROGRESS";
-    field public static final String EXTRA_MEDIA_ID = "android.media.browse.extra.MEDIA_ID";
-    field public static final String EXTRA_PAGE = "android.media.browse.extra.PAGE";
-    field public static final String EXTRA_PAGE_SIZE = "android.media.browse.extra.PAGE_SIZE";
-  }
-
-  public static class MediaBrowserCompat.ConnectionCallback {
-    ctor public MediaBrowserCompat.ConnectionCallback();
-    method public void onConnected();
-    method public void onConnectionFailed();
-    method public void onConnectionSuspended();
-  }
-
-  public abstract static class MediaBrowserCompat.CustomActionCallback {
-    ctor public MediaBrowserCompat.CustomActionCallback();
-    method public void onError(String!, android.os.Bundle!, android.os.Bundle!);
-    method public void onProgressUpdate(String!, android.os.Bundle!, android.os.Bundle!);
-    method public void onResult(String!, android.os.Bundle!, android.os.Bundle!);
-  }
-
-  public abstract static class MediaBrowserCompat.ItemCallback {
-    ctor public MediaBrowserCompat.ItemCallback();
-    method public void onError(String);
-    method public void onItemLoaded(android.support.v4.media.MediaBrowserCompat.MediaItem!);
-  }
-
-  public static class MediaBrowserCompat.MediaItem implements android.os.Parcelable {
-    ctor public MediaBrowserCompat.MediaItem(android.support.v4.media.MediaDescriptionCompat, int);
-    method public int describeContents();
-    method public static android.support.v4.media.MediaBrowserCompat.MediaItem! fromMediaItem(Object!);
-    method public static java.util.List<android.support.v4.media.MediaBrowserCompat.MediaItem!>! fromMediaItemList(java.util.List<?>!);
-    method public android.support.v4.media.MediaDescriptionCompat getDescription();
-    method public int getFlags();
-    method public String? getMediaId();
-    method public boolean isBrowsable();
-    method public boolean isPlayable();
-    method public void writeToParcel(android.os.Parcel!, int);
-    field public static final android.os.Parcelable.Creator<android.support.v4.media.MediaBrowserCompat.MediaItem!>! CREATOR;
-    field public static final int FLAG_BROWSABLE = 1; // 0x1
-    field public static final int FLAG_PLAYABLE = 2; // 0x2
-  }
-
-  public abstract static class MediaBrowserCompat.SearchCallback {
-    ctor public MediaBrowserCompat.SearchCallback();
-    method public void onError(String, android.os.Bundle!);
-    method public void onSearchResult(String, android.os.Bundle!, java.util.List<android.support.v4.media.MediaBrowserCompat.MediaItem!>);
-  }
-
-  public abstract static class MediaBrowserCompat.SubscriptionCallback {
-    ctor public MediaBrowserCompat.SubscriptionCallback();
-    method public void onChildrenLoaded(String, java.util.List<android.support.v4.media.MediaBrowserCompat.MediaItem!>);
-    method public void onChildrenLoaded(String, java.util.List<android.support.v4.media.MediaBrowserCompat.MediaItem!>, android.os.Bundle);
-    method public void onError(String);
-    method public void onError(String, android.os.Bundle);
-  }
-
-  public final class MediaDescriptionCompat implements android.os.Parcelable {
-    method public int describeContents();
-    method public static android.support.v4.media.MediaDescriptionCompat! fromMediaDescription(Object!);
-    method public CharSequence? getDescription();
-    method public android.os.Bundle? getExtras();
-    method public android.graphics.Bitmap? getIconBitmap();
-    method public android.net.Uri? getIconUri();
-    method public Object! getMediaDescription();
-    method public String? getMediaId();
-    method public android.net.Uri? getMediaUri();
-    method public CharSequence? getSubtitle();
-    method public CharSequence? getTitle();
-    method public void writeToParcel(android.os.Parcel!, int);
-    field public static final long BT_FOLDER_TYPE_ALBUMS = 2L; // 0x2L
-    field public static final long BT_FOLDER_TYPE_ARTISTS = 3L; // 0x3L
-    field public static final long BT_FOLDER_TYPE_GENRES = 4L; // 0x4L
-    field public static final long BT_FOLDER_TYPE_MIXED = 0L; // 0x0L
-    field public static final long BT_FOLDER_TYPE_PLAYLISTS = 5L; // 0x5L
-    field public static final long BT_FOLDER_TYPE_TITLES = 1L; // 0x1L
-    field public static final long BT_FOLDER_TYPE_YEARS = 6L; // 0x6L
-    field public static final android.os.Parcelable.Creator<android.support.v4.media.MediaDescriptionCompat!>! CREATOR;
-    field public static final String EXTRA_BT_FOLDER_TYPE = "android.media.extra.BT_FOLDER_TYPE";
-    field public static final String EXTRA_DOWNLOAD_STATUS = "android.media.extra.DOWNLOAD_STATUS";
-    field public static final long STATUS_DOWNLOADED = 2L; // 0x2L
-    field public static final long STATUS_DOWNLOADING = 1L; // 0x1L
-    field public static final long STATUS_NOT_DOWNLOADED = 0L; // 0x0L
-  }
-
-  public static final class MediaDescriptionCompat.Builder {
-    ctor public MediaDescriptionCompat.Builder();
-    method public android.support.v4.media.MediaDescriptionCompat! build();
-    method public android.support.v4.media.MediaDescriptionCompat.Builder! setDescription(CharSequence?);
-    method public android.support.v4.media.MediaDescriptionCompat.Builder! setExtras(android.os.Bundle?);
-    method public android.support.v4.media.MediaDescriptionCompat.Builder! setIconBitmap(android.graphics.Bitmap?);
-    method public android.support.v4.media.MediaDescriptionCompat.Builder! setIconUri(android.net.Uri?);
-    method public android.support.v4.media.MediaDescriptionCompat.Builder! setMediaId(String?);
-    method public android.support.v4.media.MediaDescriptionCompat.Builder! setMediaUri(android.net.Uri?);
-    method public android.support.v4.media.MediaDescriptionCompat.Builder! setSubtitle(CharSequence?);
-    method public android.support.v4.media.MediaDescriptionCompat.Builder! setTitle(CharSequence?);
-  }
-
-  public final class MediaMetadataCompat implements android.os.Parcelable {
-    method public boolean containsKey(String!);
-    method public int describeContents();
-    method public static android.support.v4.media.MediaMetadataCompat! fromMediaMetadata(Object!);
-    method public android.graphics.Bitmap! getBitmap(String!);
-    method public android.os.Bundle! getBundle();
-    method public android.support.v4.media.MediaDescriptionCompat! getDescription();
-    method public long getLong(String!);
-    method public Object! getMediaMetadata();
-    method public android.support.v4.media.RatingCompat! getRating(String!);
-    method public String! getString(String!);
-    method public CharSequence! getText(String!);
-    method public java.util.Set<java.lang.String!>! keySet();
-    method public int size();
-    method public void writeToParcel(android.os.Parcel!, int);
-    field public static final android.os.Parcelable.Creator<android.support.v4.media.MediaMetadataCompat!>! CREATOR;
-    field public static final String METADATA_KEY_ADVERTISEMENT = "android.media.metadata.ADVERTISEMENT";
-    field public static final String METADATA_KEY_ALBUM = "android.media.metadata.ALBUM";
-    field public static final String METADATA_KEY_ALBUM_ART = "android.media.metadata.ALBUM_ART";
-    field public static final String METADATA_KEY_ALBUM_ARTIST = "android.media.metadata.ALBUM_ARTIST";
-    field public static final String METADATA_KEY_ALBUM_ART_URI = "android.media.metadata.ALBUM_ART_URI";
-    field public static final String METADATA_KEY_ART = "android.media.metadata.ART";
-    field public static final String METADATA_KEY_ARTIST = "android.media.metadata.ARTIST";
-    field public static final String METADATA_KEY_ART_URI = "android.media.metadata.ART_URI";
-    field public static final String METADATA_KEY_AUTHOR = "android.media.metadata.AUTHOR";
-    field public static final String METADATA_KEY_BT_FOLDER_TYPE = "android.media.metadata.BT_FOLDER_TYPE";
-    field public static final String METADATA_KEY_COMPILATION = "android.media.metadata.COMPILATION";
-    field public static final String METADATA_KEY_COMPOSER = "android.media.metadata.COMPOSER";
-    field public static final String METADATA_KEY_DATE = "android.media.metadata.DATE";
-    field public static final String METADATA_KEY_DISC_NUMBER = "android.media.metadata.DISC_NUMBER";
-    field public static final String METADATA_KEY_DISPLAY_DESCRIPTION = "android.media.metadata.DISPLAY_DESCRIPTION";
-    field public static final String METADATA_KEY_DISPLAY_ICON = "android.media.metadata.DISPLAY_ICON";
-    field public static final String METADATA_KEY_DISPLAY_ICON_URI = "android.media.metadata.DISPLAY_ICON_URI";
-    field public static final String METADATA_KEY_DISPLAY_SUBTITLE = "android.media.metadata.DISPLAY_SUBTITLE";
-    field public static final String METADATA_KEY_DISPLAY_TITLE = "android.media.metadata.DISPLAY_TITLE";
-    field public static final String METADATA_KEY_DOWNLOAD_STATUS = "android.media.metadata.DOWNLOAD_STATUS";
-    field public static final String METADATA_KEY_DURATION = "android.media.metadata.DURATION";
-    field public static final String METADATA_KEY_GENRE = "android.media.metadata.GENRE";
-    field public static final String METADATA_KEY_MEDIA_ID = "android.media.metadata.MEDIA_ID";
-    field public static final String METADATA_KEY_MEDIA_URI = "android.media.metadata.MEDIA_URI";
-    field public static final String METADATA_KEY_NUM_TRACKS = "android.media.metadata.NUM_TRACKS";
-    field public static final String METADATA_KEY_RATING = "android.media.metadata.RATING";
-    field public static final String METADATA_KEY_TITLE = "android.media.metadata.TITLE";
-    field public static final String METADATA_KEY_TRACK_NUMBER = "android.media.metadata.TRACK_NUMBER";
-    field public static final String METADATA_KEY_USER_RATING = "android.media.metadata.USER_RATING";
-    field public static final String METADATA_KEY_WRITER = "android.media.metadata.WRITER";
-    field public static final String METADATA_KEY_YEAR = "android.media.metadata.YEAR";
-  }
-
-  public static final class MediaMetadataCompat.Builder {
-    ctor public MediaMetadataCompat.Builder();
-    ctor public MediaMetadataCompat.Builder(android.support.v4.media.MediaMetadataCompat!);
-    method public android.support.v4.media.MediaMetadataCompat! build();
-    method public android.support.v4.media.MediaMetadataCompat.Builder! putBitmap(String!, android.graphics.Bitmap!);
-    method public android.support.v4.media.MediaMetadataCompat.Builder! putLong(String!, long);
-    method public android.support.v4.media.MediaMetadataCompat.Builder! putRating(String!, android.support.v4.media.RatingCompat!);
-    method public android.support.v4.media.MediaMetadataCompat.Builder! putString(String!, String!);
-    method public android.support.v4.media.MediaMetadataCompat.Builder! putText(String!, CharSequence!);
-  }
-
-  public final class RatingCompat implements android.os.Parcelable {
-    method public int describeContents();
-    method public static android.support.v4.media.RatingCompat! fromRating(Object!);
-    method public float getPercentRating();
-    method public Object! getRating();
-    method public int getRatingStyle();
-    method public float getStarRating();
-    method public boolean hasHeart();
-    method public boolean isRated();
-    method public boolean isThumbUp();
-    method public static android.support.v4.media.RatingCompat! newHeartRating(boolean);
-    method public static android.support.v4.media.RatingCompat! newPercentageRating(float);
-    method public static android.support.v4.media.RatingCompat! newStarRating(int, float);
-    method public static android.support.v4.media.RatingCompat! newThumbRating(boolean);
-    method public static android.support.v4.media.RatingCompat! newUnratedRating(int);
-    method public void writeToParcel(android.os.Parcel!, int);
-    field public static final android.os.Parcelable.Creator<android.support.v4.media.RatingCompat!>! CREATOR;
-    field public static final int RATING_3_STARS = 3; // 0x3
-    field public static final int RATING_4_STARS = 4; // 0x4
-    field public static final int RATING_5_STARS = 5; // 0x5
-    field public static final int RATING_HEART = 1; // 0x1
-    field public static final int RATING_NONE = 0; // 0x0
-    field public static final int RATING_PERCENTAGE = 6; // 0x6
-    field public static final int RATING_THUMB_UP_DOWN = 2; // 0x2
-  }
-
-}
-
-package android.support.v4.media.session {
-
-  public final class MediaControllerCompat {
-    ctor public MediaControllerCompat(android.content.Context!, android.support.v4.media.session.MediaSessionCompat);
-    ctor public MediaControllerCompat(android.content.Context!, android.support.v4.media.session.MediaSessionCompat.Token);
-    method public void addQueueItem(android.support.v4.media.MediaDescriptionCompat!);
-    method public void addQueueItem(android.support.v4.media.MediaDescriptionCompat!, int);
-    method public void adjustVolume(int, int);
-    method public boolean dispatchMediaButtonEvent(android.view.KeyEvent!);
-    method public android.os.Bundle! getExtras();
-    method public long getFlags();
-    method public Object! getMediaController();
-    method public static android.support.v4.media.session.MediaControllerCompat! getMediaController(android.app.Activity);
-    method public android.support.v4.media.MediaMetadataCompat! getMetadata();
-    method public String! getPackageName();
-    method public android.support.v4.media.session.MediaControllerCompat.PlaybackInfo! getPlaybackInfo();
-    method public android.support.v4.media.session.PlaybackStateCompat! getPlaybackState();
-    method public java.util.List<android.support.v4.media.session.MediaSessionCompat.QueueItem!>! getQueue();
-    method public CharSequence! getQueueTitle();
-    method public int getRatingType();
-    method public int getRepeatMode();
-    method public android.app.PendingIntent! getSessionActivity();
-    method public android.os.Bundle getSessionInfo();
-    method public android.support.v4.media.session.MediaSessionCompat.Token! getSessionToken();
-    method public int getShuffleMode();
-    method public android.support.v4.media.session.MediaControllerCompat.TransportControls! getTransportControls();
-    method public boolean isCaptioningEnabled();
-    method public boolean isSessionReady();
-    method public void registerCallback(android.support.v4.media.session.MediaControllerCompat.Callback);
-    method public void registerCallback(android.support.v4.media.session.MediaControllerCompat.Callback, android.os.Handler!);
-    method public void removeQueueItem(android.support.v4.media.MediaDescriptionCompat!);
-    method @Deprecated public void removeQueueItemAt(int);
-    method public void sendCommand(String, android.os.Bundle?, android.os.ResultReceiver?);
-    method public static void setMediaController(android.app.Activity, android.support.v4.media.session.MediaControllerCompat!);
-    method public void setVolumeTo(int, int);
-    method public void unregisterCallback(android.support.v4.media.session.MediaControllerCompat.Callback);
-  }
-
-  public abstract static class MediaControllerCompat.Callback implements android.os.IBinder.DeathRecipient {
-    ctor public MediaControllerCompat.Callback();
-    method public void binderDied();
-    method public void onAudioInfoChanged(android.support.v4.media.session.MediaControllerCompat.PlaybackInfo!);
-    method public void onCaptioningEnabledChanged(boolean);
-    method public void onExtrasChanged(android.os.Bundle!);
-    method public void onMetadataChanged(android.support.v4.media.MediaMetadataCompat!);
-    method public void onPlaybackStateChanged(android.support.v4.media.session.PlaybackStateCompat!);
-    method public void onQueueChanged(java.util.List<android.support.v4.media.session.MediaSessionCompat.QueueItem!>!);
-    method public void onQueueTitleChanged(CharSequence!);
-    method public void onRepeatModeChanged(int);
-    method public void onSessionDestroyed();
-    method public void onSessionEvent(String!, android.os.Bundle!);
-    method public void onSessionReady();
-    method public void onShuffleModeChanged(int);
-  }
-
-  public static final class MediaControllerCompat.PlaybackInfo {
-    method public androidx.media.AudioAttributesCompat getAudioAttributes();
-    method @Deprecated public int getAudioStream();
-    method public int getCurrentVolume();
-    method public int getMaxVolume();
-    method public int getPlaybackType();
-    method public int getVolumeControl();
-    field public static final int PLAYBACK_TYPE_LOCAL = 1; // 0x1
-    field public static final int PLAYBACK_TYPE_REMOTE = 2; // 0x2
-  }
-
-  public abstract static class MediaControllerCompat.TransportControls {
-    method public abstract void fastForward();
-    method public abstract void pause();
-    method public abstract void play();
-    method public abstract void playFromMediaId(String!, android.os.Bundle!);
-    method public abstract void playFromSearch(String!, android.os.Bundle!);
-    method public abstract void playFromUri(android.net.Uri!, android.os.Bundle!);
-    method public abstract void prepare();
-    method public abstract void prepareFromMediaId(String!, android.os.Bundle!);
-    method public abstract void prepareFromSearch(String!, android.os.Bundle!);
-    method public abstract void prepareFromUri(android.net.Uri!, android.os.Bundle!);
-    method public abstract void rewind();
-    method public abstract void seekTo(long);
-    method public abstract void sendCustomAction(android.support.v4.media.session.PlaybackStateCompat.CustomAction!, android.os.Bundle!);
-    method public abstract void sendCustomAction(String!, android.os.Bundle!);
-    method public abstract void setCaptioningEnabled(boolean);
-    method public void setPlaybackSpeed(float);
-    method public abstract void setRating(android.support.v4.media.RatingCompat!);
-    method public abstract void setRating(android.support.v4.media.RatingCompat!, android.os.Bundle!);
-    method public abstract void setRepeatMode(int);
-    method public abstract void setShuffleMode(int);
-    method public abstract void skipToNext();
-    method public abstract void skipToPrevious();
-    method public abstract void skipToQueueItem(long);
-    method public abstract void stop();
-    field @Deprecated public static final String EXTRA_LEGACY_STREAM_TYPE = "android.media.session.extra.LEGACY_STREAM_TYPE";
-  }
-
-  public class MediaSessionCompat {
-    ctor public MediaSessionCompat(android.content.Context, String);
-    ctor public MediaSessionCompat(android.content.Context, String, android.content.ComponentName?, android.app.PendingIntent?);
-    ctor public MediaSessionCompat(android.content.Context, String, android.content.ComponentName?, android.app.PendingIntent?, android.os.Bundle?);
-    method public void addOnActiveChangeListener(android.support.v4.media.session.MediaSessionCompat.OnActiveChangeListener!);
-    method public static android.support.v4.media.session.MediaSessionCompat! fromMediaSession(android.content.Context!, Object!);
-    method public android.support.v4.media.session.MediaControllerCompat! getController();
-    method public final androidx.media.MediaSessionManager.RemoteUserInfo getCurrentControllerInfo();
-    method public Object! getMediaSession();
-    method public Object! getRemoteControlClient();
-    method public android.support.v4.media.session.MediaSessionCompat.Token! getSessionToken();
-    method public boolean isActive();
-    method public void release();
-    method public void removeOnActiveChangeListener(android.support.v4.media.session.MediaSessionCompat.OnActiveChangeListener!);
-    method public void sendSessionEvent(String!, android.os.Bundle!);
-    method public void setActive(boolean);
-    method public void setCallback(android.support.v4.media.session.MediaSessionCompat.Callback!);
-    method public void setCallback(android.support.v4.media.session.MediaSessionCompat.Callback!, android.os.Handler!);
-    method public void setCaptioningEnabled(boolean);
-    method public void setExtras(android.os.Bundle!);
-    method public void setFlags(int);
-    method public void setMediaButtonReceiver(android.app.PendingIntent!);
-    method public void setMetadata(android.support.v4.media.MediaMetadataCompat!);
-    method public void setPlaybackState(android.support.v4.media.session.PlaybackStateCompat!);
-    method public void setPlaybackToLocal(int);
-    method public void setPlaybackToRemote(androidx.media.VolumeProviderCompat!);
-    method public void setQueue(java.util.List<android.support.v4.media.session.MediaSessionCompat.QueueItem!>!);
-    method public void setQueueTitle(CharSequence!);
-    method public void setRatingType(int);
-    method public void setRepeatMode(int);
-    method public void setSessionActivity(android.app.PendingIntent!);
-    method public void setShuffleMode(int);
-    field public static final String ACTION_FLAG_AS_INAPPROPRIATE = "android.support.v4.media.session.action.FLAG_AS_INAPPROPRIATE";
-    field public static final String ACTION_FOLLOW = "android.support.v4.media.session.action.FOLLOW";
-    field public static final String ACTION_SKIP_AD = "android.support.v4.media.session.action.SKIP_AD";
-    field public static final String ACTION_UNFOLLOW = "android.support.v4.media.session.action.UNFOLLOW";
-    field public static final String ARGUMENT_MEDIA_ATTRIBUTE = "android.support.v4.media.session.ARGUMENT_MEDIA_ATTRIBUTE";
-    field public static final String ARGUMENT_MEDIA_ATTRIBUTE_VALUE = "android.support.v4.media.session.ARGUMENT_MEDIA_ATTRIBUTE_VALUE";
-    field @Deprecated public static final int FLAG_HANDLES_MEDIA_BUTTONS = 1; // 0x1
-    field public static final int FLAG_HANDLES_QUEUE_COMMANDS = 4; // 0x4
-    field @Deprecated public static final int FLAG_HANDLES_TRANSPORT_CONTROLS = 2; // 0x2
-    field public static final int MEDIA_ATTRIBUTE_ALBUM = 1; // 0x1
-    field public static final int MEDIA_ATTRIBUTE_ARTIST = 0; // 0x0
-    field public static final int MEDIA_ATTRIBUTE_PLAYLIST = 2; // 0x2
-  }
-
-  public abstract static class MediaSessionCompat.Callback {
-    ctor public MediaSessionCompat.Callback();
-    method public void onAddQueueItem(android.support.v4.media.MediaDescriptionCompat!);
-    method public void onAddQueueItem(android.support.v4.media.MediaDescriptionCompat!, int);
-    method public void onCommand(String!, android.os.Bundle!, android.os.ResultReceiver!);
-    method public void onCustomAction(String!, android.os.Bundle!);
-    method public void onFastForward();
-    method public boolean onMediaButtonEvent(android.content.Intent!);
-    method public void onPause();
-    method public void onPlay();
-    method public void onPlayFromMediaId(String!, android.os.Bundle!);
-    method public void onPlayFromSearch(String!, android.os.Bundle!);
-    method public void onPlayFromUri(android.net.Uri!, android.os.Bundle!);
-    method public void onPrepare();
-    method public void onPrepareFromMediaId(String!, android.os.Bundle!);
-    method public void onPrepareFromSearch(String!, android.os.Bundle!);
-    method public void onPrepareFromUri(android.net.Uri!, android.os.Bundle!);
-    method public void onRemoveQueueItem(android.support.v4.media.MediaDescriptionCompat!);
-    method @Deprecated public void onRemoveQueueItemAt(int);
-    method public void onRewind();
-    method public void onSeekTo(long);
-    method public void onSetCaptioningEnabled(boolean);
-    method public void onSetPlaybackSpeed(float);
-    method public void onSetRating(android.support.v4.media.RatingCompat!);
-    method public void onSetRating(android.support.v4.media.RatingCompat!, android.os.Bundle!);
-    method public void onSetRepeatMode(int);
-    method public void onSetShuffleMode(int);
-    method public void onSkipToNext();
-    method public void onSkipToPrevious();
-    method public void onSkipToQueueItem(long);
-    method public void onStop();
-  }
-
-  public static interface MediaSessionCompat.OnActiveChangeListener {
-    method public void onActiveChanged();
-  }
-
-  public static final class MediaSessionCompat.QueueItem implements android.os.Parcelable {
-    ctor public MediaSessionCompat.QueueItem(android.support.v4.media.MediaDescriptionCompat!, long);
-    method public int describeContents();
-    method public static android.support.v4.media.session.MediaSessionCompat.QueueItem! fromQueueItem(Object!);
-    method public static java.util.List<android.support.v4.media.session.MediaSessionCompat.QueueItem!>! fromQueueItemList(java.util.List<?>!);
-    method public android.support.v4.media.MediaDescriptionCompat! getDescription();
-    method public long getQueueId();
-    method public Object! getQueueItem();
-    method public void writeToParcel(android.os.Parcel!, int);
-    field public static final android.os.Parcelable.Creator<android.support.v4.media.session.MediaSessionCompat.QueueItem!>! CREATOR;
-    field public static final int UNKNOWN_ID = -1; // 0xffffffff
-  }
-
-  public static final class MediaSessionCompat.Token implements android.os.Parcelable {
-    method public int describeContents();
-    method public static android.support.v4.media.session.MediaSessionCompat.Token! fromToken(Object!);
-    method public Object! getToken();
-    method public void writeToParcel(android.os.Parcel!, int);
-    field public static final android.os.Parcelable.Creator<android.support.v4.media.session.MediaSessionCompat.Token!>! CREATOR;
-  }
-
-  public class ParcelableVolumeInfo implements android.os.Parcelable {
-    ctor public ParcelableVolumeInfo(android.os.Parcel!);
-    ctor public ParcelableVolumeInfo(int, int, int, int, int);
-    method public int describeContents();
-    method public void writeToParcel(android.os.Parcel!, int);
-    field public static final android.os.Parcelable.Creator<android.support.v4.media.session.ParcelableVolumeInfo!>! CREATOR;
-    field public int audioStream;
-    field public int controlType;
-    field public int currentVolume;
-    field public int maxVolume;
-    field public int volumeType;
-  }
-
-  public final class PlaybackStateCompat implements android.os.Parcelable {
-    method public int describeContents();
-    method public static android.support.v4.media.session.PlaybackStateCompat! fromPlaybackState(Object!);
-    method public long getActions();
-    method public long getActiveQueueItemId();
-    method public long getBufferedPosition();
-    method public java.util.List<android.support.v4.media.session.PlaybackStateCompat.CustomAction!>! getCustomActions();
-    method public int getErrorCode();
-    method public CharSequence! getErrorMessage();
-    method public android.os.Bundle? getExtras();
-    method public long getLastPositionUpdateTime();
-    method public float getPlaybackSpeed();
-    method public Object! getPlaybackState();
-    method public long getPosition();
-    method public int getState();
-    method public static int toKeyCode(long);
-    method public void writeToParcel(android.os.Parcel!, int);
-    field public static final long ACTION_FAST_FORWARD = 64L; // 0x40L
-    field public static final long ACTION_PAUSE = 2L; // 0x2L
-    field public static final long ACTION_PLAY = 4L; // 0x4L
-    field public static final long ACTION_PLAY_FROM_MEDIA_ID = 1024L; // 0x400L
-    field public static final long ACTION_PLAY_FROM_SEARCH = 2048L; // 0x800L
-    field public static final long ACTION_PLAY_FROM_URI = 8192L; // 0x2000L
-    field public static final long ACTION_PLAY_PAUSE = 512L; // 0x200L
-    field public static final long ACTION_PREPARE = 16384L; // 0x4000L
-    field public static final long ACTION_PREPARE_FROM_MEDIA_ID = 32768L; // 0x8000L
-    field public static final long ACTION_PREPARE_FROM_SEARCH = 65536L; // 0x10000L
-    field public static final long ACTION_PREPARE_FROM_URI = 131072L; // 0x20000L
-    field public static final long ACTION_REWIND = 8L; // 0x8L
-    field public static final long ACTION_SEEK_TO = 256L; // 0x100L
-    field public static final long ACTION_SET_CAPTIONING_ENABLED = 1048576L; // 0x100000L
-    field public static final long ACTION_SET_PLAYBACK_SPEED = 4194304L; // 0x400000L
-    field public static final long ACTION_SET_RATING = 128L; // 0x80L
-    field public static final long ACTION_SET_REPEAT_MODE = 262144L; // 0x40000L
-    field public static final long ACTION_SET_SHUFFLE_MODE = 2097152L; // 0x200000L
-    field @Deprecated public static final long ACTION_SET_SHUFFLE_MODE_ENABLED = 524288L; // 0x80000L
-    field public static final long ACTION_SKIP_TO_NEXT = 32L; // 0x20L
-    field public static final long ACTION_SKIP_TO_PREVIOUS = 16L; // 0x10L
-    field public static final long ACTION_SKIP_TO_QUEUE_ITEM = 4096L; // 0x1000L
-    field public static final long ACTION_STOP = 1L; // 0x1L
-    field public static final android.os.Parcelable.Creator<android.support.v4.media.session.PlaybackStateCompat!>! CREATOR;
-    field public static final int ERROR_CODE_ACTION_ABORTED = 10; // 0xa
-    field public static final int ERROR_CODE_APP_ERROR = 1; // 0x1
-    field public static final int ERROR_CODE_AUTHENTICATION_EXPIRED = 3; // 0x3
-    field public static final int ERROR_CODE_CONCURRENT_STREAM_LIMIT = 5; // 0x5
-    field public static final int ERROR_CODE_CONTENT_ALREADY_PLAYING = 8; // 0x8
-    field public static final int ERROR_CODE_END_OF_QUEUE = 11; // 0xb
-    field public static final int ERROR_CODE_NOT_AVAILABLE_IN_REGION = 7; // 0x7
-    field public static final int ERROR_CODE_NOT_SUPPORTED = 2; // 0x2
-    field public static final int ERROR_CODE_PARENTAL_CONTROL_RESTRICTED = 6; // 0x6
-    field public static final int ERROR_CODE_PREMIUM_ACCOUNT_REQUIRED = 4; // 0x4
-    field public static final int ERROR_CODE_SKIP_LIMIT_REACHED = 9; // 0x9
-    field public static final int ERROR_CODE_UNKNOWN_ERROR = 0; // 0x0
-    field public static final long PLAYBACK_POSITION_UNKNOWN = -1L; // 0xffffffffffffffffL
-    field public static final int REPEAT_MODE_ALL = 2; // 0x2
-    field public static final int REPEAT_MODE_GROUP = 3; // 0x3
-    field public static final int REPEAT_MODE_INVALID = -1; // 0xffffffff
-    field public static final int REPEAT_MODE_NONE = 0; // 0x0
-    field public static final int REPEAT_MODE_ONE = 1; // 0x1
-    field public static final int SHUFFLE_MODE_ALL = 1; // 0x1
-    field public static final int SHUFFLE_MODE_GROUP = 2; // 0x2
-    field public static final int SHUFFLE_MODE_INVALID = -1; // 0xffffffff
-    field public static final int SHUFFLE_MODE_NONE = 0; // 0x0
-    field public static final int STATE_BUFFERING = 6; // 0x6
-    field public static final int STATE_CONNECTING = 8; // 0x8
-    field public static final int STATE_ERROR = 7; // 0x7
-    field public static final int STATE_FAST_FORWARDING = 4; // 0x4
-    field public static final int STATE_NONE = 0; // 0x0
-    field public static final int STATE_PAUSED = 2; // 0x2
-    field public static final int STATE_PLAYING = 3; // 0x3
-    field public static final int STATE_REWINDING = 5; // 0x5
-    field public static final int STATE_SKIPPING_TO_NEXT = 10; // 0xa
-    field public static final int STATE_SKIPPING_TO_PREVIOUS = 9; // 0x9
-    field public static final int STATE_SKIPPING_TO_QUEUE_ITEM = 11; // 0xb
-    field public static final int STATE_STOPPED = 1; // 0x1
-  }
-
-  public static final class PlaybackStateCompat.Builder {
-    ctor public PlaybackStateCompat.Builder();
-    ctor public PlaybackStateCompat.Builder(android.support.v4.media.session.PlaybackStateCompat!);
-    method public android.support.v4.media.session.PlaybackStateCompat.Builder! addCustomAction(android.support.v4.media.session.PlaybackStateCompat.CustomAction!);
-    method public android.support.v4.media.session.PlaybackStateCompat.Builder! addCustomAction(String!, String!, int);
-    method public android.support.v4.media.session.PlaybackStateCompat! build();
-    method public android.support.v4.media.session.PlaybackStateCompat.Builder! setActions(long);
-    method public android.support.v4.media.session.PlaybackStateCompat.Builder! setActiveQueueItemId(long);
-    method public android.support.v4.media.session.PlaybackStateCompat.Builder! setBufferedPosition(long);
-    method public android.support.v4.media.session.PlaybackStateCompat.Builder! setErrorMessage(int, CharSequence!);
-    method @Deprecated public android.support.v4.media.session.PlaybackStateCompat.Builder! setErrorMessage(CharSequence!);
-    method public android.support.v4.media.session.PlaybackStateCompat.Builder! setExtras(android.os.Bundle!);
-    method public android.support.v4.media.session.PlaybackStateCompat.Builder! setState(int, long, float);
-    method public android.support.v4.media.session.PlaybackStateCompat.Builder! setState(int, long, float, long);
-  }
-
-  public static final class PlaybackStateCompat.CustomAction implements android.os.Parcelable {
-    method public int describeContents();
-    method public static android.support.v4.media.session.PlaybackStateCompat.CustomAction! fromCustomAction(Object!);
-    method public String! getAction();
-    method public Object! getCustomAction();
-    method public android.os.Bundle! getExtras();
-    method public int getIcon();
-    method public CharSequence! getName();
-    method public void writeToParcel(android.os.Parcel!, int);
-    field public static final android.os.Parcelable.Creator<android.support.v4.media.session.PlaybackStateCompat.CustomAction!>! CREATOR;
-  }
-
-  public static final class PlaybackStateCompat.CustomAction.Builder {
-    ctor public PlaybackStateCompat.CustomAction.Builder(String!, CharSequence!, int);
-    method public android.support.v4.media.session.PlaybackStateCompat.CustomAction! build();
-    method public android.support.v4.media.session.PlaybackStateCompat.CustomAction.Builder! setExtras(android.os.Bundle!);
-  }
-
-}
-
-package androidx.media {
-
-  public class AudioAttributesCompat implements androidx.versionedparcelable.VersionedParcelable {
-    method public int getContentType();
-    method public int getFlags();
-    method public int getLegacyStreamType();
-    method public int getUsage();
-    method public int getVolumeControlStream();
-    method public Object? unwrap();
-    method public static androidx.media.AudioAttributesCompat? wrap(Object);
-    field public static final int CONTENT_TYPE_MOVIE = 3; // 0x3
-    field public static final int CONTENT_TYPE_MUSIC = 2; // 0x2
-    field public static final int CONTENT_TYPE_SONIFICATION = 4; // 0x4
-    field public static final int CONTENT_TYPE_SPEECH = 1; // 0x1
-    field public static final int CONTENT_TYPE_UNKNOWN = 0; // 0x0
-    field public static final int FLAG_AUDIBILITY_ENFORCED = 1; // 0x1
-    field public static final int FLAG_HW_AV_SYNC = 16; // 0x10
-    field public static final int USAGE_ALARM = 4; // 0x4
-    field public static final int USAGE_ASSISTANCE_ACCESSIBILITY = 11; // 0xb
-    field public static final int USAGE_ASSISTANCE_NAVIGATION_GUIDANCE = 12; // 0xc
-    field public static final int USAGE_ASSISTANCE_SONIFICATION = 13; // 0xd
-    field public static final int USAGE_ASSISTANT = 16; // 0x10
-    field public static final int USAGE_GAME = 14; // 0xe
-    field public static final int USAGE_MEDIA = 1; // 0x1
-    field public static final int USAGE_NOTIFICATION = 5; // 0x5
-    field public static final int USAGE_NOTIFICATION_COMMUNICATION_DELAYED = 9; // 0x9
-    field public static final int USAGE_NOTIFICATION_COMMUNICATION_INSTANT = 8; // 0x8
-    field public static final int USAGE_NOTIFICATION_COMMUNICATION_REQUEST = 7; // 0x7
-    field public static final int USAGE_NOTIFICATION_EVENT = 10; // 0xa
-    field public static final int USAGE_NOTIFICATION_RINGTONE = 6; // 0x6
-    field public static final int USAGE_UNKNOWN = 0; // 0x0
-    field public static final int USAGE_VOICE_COMMUNICATION = 2; // 0x2
-    field public static final int USAGE_VOICE_COMMUNICATION_SIGNALLING = 3; // 0x3
-  }
-
-  public static class AudioAttributesCompat.Builder {
-    ctor public AudioAttributesCompat.Builder();
-    ctor public AudioAttributesCompat.Builder(androidx.media.AudioAttributesCompat!);
-    method public androidx.media.AudioAttributesCompat! build();
-    method public androidx.media.AudioAttributesCompat.Builder! setContentType(int);
-    method public androidx.media.AudioAttributesCompat.Builder! setFlags(int);
-    method public androidx.media.AudioAttributesCompat.Builder! setLegacyStreamType(int);
-    method public androidx.media.AudioAttributesCompat.Builder! setUsage(int);
-  }
-
-  public class AudioFocusRequestCompat {
-    method public androidx.media.AudioAttributesCompat getAudioAttributesCompat();
-    method public android.os.Handler getFocusChangeHandler();
-    method public int getFocusGain();
-    method public android.media.AudioManager.OnAudioFocusChangeListener getOnAudioFocusChangeListener();
-    method public boolean willPauseWhenDucked();
-  }
-
-  public static final class AudioFocusRequestCompat.Builder {
-    ctor public AudioFocusRequestCompat.Builder(androidx.media.AudioFocusRequestCompat);
-    ctor public AudioFocusRequestCompat.Builder(int);
-    method public androidx.media.AudioFocusRequestCompat! build();
-    method public androidx.media.AudioFocusRequestCompat.Builder setAudioAttributes(androidx.media.AudioAttributesCompat);
-    method public androidx.media.AudioFocusRequestCompat.Builder setFocusGain(int);
-    method public androidx.media.AudioFocusRequestCompat.Builder setOnAudioFocusChangeListener(android.media.AudioManager.OnAudioFocusChangeListener);
-    method public androidx.media.AudioFocusRequestCompat.Builder setOnAudioFocusChangeListener(android.media.AudioManager.OnAudioFocusChangeListener, android.os.Handler);
-    method public androidx.media.AudioFocusRequestCompat.Builder setWillPauseWhenDucked(boolean);
-  }
-
-  public final class AudioManagerCompat {
-    method public static int abandonAudioFocusRequest(android.media.AudioManager, androidx.media.AudioFocusRequestCompat);
-    method @IntRange(from=0) public static int getStreamMaxVolume(android.media.AudioManager, int);
-    method @IntRange(from=0) public static int getStreamMinVolume(android.media.AudioManager, int);
-    method public static boolean isVolumeFixed(android.media.AudioManager);
-    method public static int requestAudioFocus(android.media.AudioManager, androidx.media.AudioFocusRequestCompat);
-    field public static final int AUDIOFOCUS_GAIN = 1; // 0x1
-    field public static final int AUDIOFOCUS_GAIN_TRANSIENT = 2; // 0x2
-    field public static final int AUDIOFOCUS_GAIN_TRANSIENT_EXCLUSIVE = 4; // 0x4
-    field public static final int AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK = 3; // 0x3
-  }
-
-  public abstract class MediaBrowserServiceCompat extends android.app.Service {
-    ctor public MediaBrowserServiceCompat();
-    method public void dump(java.io.FileDescriptor!, java.io.PrintWriter!, String![]!);
-    method public final android.os.Bundle! getBrowserRootHints();
-    method public final androidx.media.MediaSessionManager.RemoteUserInfo getCurrentBrowserInfo();
-    method public android.support.v4.media.session.MediaSessionCompat.Token? getSessionToken();
-    method public void notifyChildrenChanged(String);
-    method public void notifyChildrenChanged(String, android.os.Bundle);
-    method public android.os.IBinder! onBind(android.content.Intent!);
-    method public void onCustomAction(String, android.os.Bundle!, androidx.media.MediaBrowserServiceCompat.Result<android.os.Bundle!>);
-    method public abstract androidx.media.MediaBrowserServiceCompat.BrowserRoot? onGetRoot(String, int, android.os.Bundle?);
-    method public abstract void onLoadChildren(String, androidx.media.MediaBrowserServiceCompat.Result<java.util.List<android.support.v4.media.MediaBrowserCompat.MediaItem!>!>);
-    method public void onLoadChildren(String, androidx.media.MediaBrowserServiceCompat.Result<java.util.List<android.support.v4.media.MediaBrowserCompat.MediaItem!>!>, android.os.Bundle);
-    method public void onLoadItem(String!, androidx.media.MediaBrowserServiceCompat.Result<android.support.v4.media.MediaBrowserCompat.MediaItem!>);
-    method public void onSearch(String, android.os.Bundle!, androidx.media.MediaBrowserServiceCompat.Result<java.util.List<android.support.v4.media.MediaBrowserCompat.MediaItem!>!>);
-    method public void setSessionToken(android.support.v4.media.session.MediaSessionCompat.Token!);
-    field public static final String SERVICE_INTERFACE = "android.media.browse.MediaBrowserService";
-  }
-
-  public static final class MediaBrowserServiceCompat.BrowserRoot {
-    ctor public MediaBrowserServiceCompat.BrowserRoot(String, android.os.Bundle?);
-    method public android.os.Bundle! getExtras();
-    method public String! getRootId();
-    field public static final String EXTRA_OFFLINE = "android.service.media.extra.OFFLINE";
-    field public static final String EXTRA_RECENT = "android.service.media.extra.RECENT";
-    field public static final String EXTRA_SUGGESTED = "android.service.media.extra.SUGGESTED";
-    field @Deprecated public static final String EXTRA_SUGGESTION_KEYWORDS = "android.service.media.extra.SUGGESTION_KEYWORDS";
-  }
-
-  public static class MediaBrowserServiceCompat.Result<T> {
-    method public void detach();
-    method public void sendError(android.os.Bundle?);
-    method public void sendProgressUpdate(android.os.Bundle?);
-    method public void sendResult(T?);
-  }
-
-  public final class MediaSessionManager {
-    method public static androidx.media.MediaSessionManager getSessionManager(android.content.Context);
-    method public boolean isTrustedForMediaControl(androidx.media.MediaSessionManager.RemoteUserInfo);
-  }
-
-  public static final class MediaSessionManager.RemoteUserInfo {
-    ctor public MediaSessionManager.RemoteUserInfo(String, int, int);
-    method public String getPackageName();
-    method public int getPid();
-    method public int getUid();
-    field public static final String LEGACY_CONTROLLER = "android.media.session.MediaController";
-  }
-
-  public abstract class VolumeProviderCompat {
-    ctor public VolumeProviderCompat(int, int, int);
-    method public final int getCurrentVolume();
-    method public final int getMaxVolume();
-    method public final int getVolumeControl();
-    method public Object! getVolumeProvider();
-    method public void onAdjustVolume(int);
-    method public void onSetVolumeTo(int);
-    method public void setCallback(androidx.media.VolumeProviderCompat.Callback!);
-    method public final void setCurrentVolume(int);
-    field public static final int VOLUME_CONTROL_ABSOLUTE = 2; // 0x2
-    field public static final int VOLUME_CONTROL_FIXED = 0; // 0x0
-    field public static final int VOLUME_CONTROL_RELATIVE = 1; // 0x1
-  }
-
-  public abstract static class VolumeProviderCompat.Callback {
-    ctor public VolumeProviderCompat.Callback();
-    method public abstract void onVolumeChanged(androidx.media.VolumeProviderCompat!);
-  }
-
-}
-
-package androidx.media.app {
-
-  public class NotificationCompat {
-  }
-
-  public static class NotificationCompat.DecoratedMediaCustomViewStyle extends androidx.media.app.NotificationCompat.MediaStyle {
-    ctor public NotificationCompat.DecoratedMediaCustomViewStyle();
-  }
-
-  public static class NotificationCompat.MediaStyle extends androidx.core.app.NotificationCompat.Style {
-    ctor public NotificationCompat.MediaStyle();
-    ctor public NotificationCompat.MediaStyle(androidx.core.app.NotificationCompat.Builder!);
-    method public static android.support.v4.media.session.MediaSessionCompat.Token! getMediaSession(android.app.Notification!);
-    method public androidx.media.app.NotificationCompat.MediaStyle! setCancelButtonIntent(android.app.PendingIntent!);
-    method public androidx.media.app.NotificationCompat.MediaStyle! setMediaSession(android.support.v4.media.session.MediaSessionCompat.Token!);
-    method public androidx.media.app.NotificationCompat.MediaStyle! setShowActionsInCompactView(int...);
-    method public androidx.media.app.NotificationCompat.MediaStyle! setShowCancelButton(boolean);
-  }
-
-}
-
-package androidx.media.session {
-
-  public class MediaButtonReceiver extends android.content.BroadcastReceiver {
-    ctor public MediaButtonReceiver();
-    method public static android.app.PendingIntent! buildMediaButtonPendingIntent(android.content.Context!, android.content.ComponentName!, long);
-    method public static android.app.PendingIntent! buildMediaButtonPendingIntent(android.content.Context!, long);
-    method public static android.view.KeyEvent! handleIntent(android.support.v4.media.session.MediaSessionCompat!, android.content.Intent!);
-    method @RequiresApi(31) protected void onForegroundServiceStartNotAllowedException(android.content.Intent, android.app.ForegroundServiceStartNotAllowedException);
-    method public void onReceive(android.content.Context!, android.content.Intent!);
-  }
-
-}
-
-package androidx.media.utils {
-
-  public final class MediaConstants {
-    field public static final String BROWSER_ROOT_HINTS_KEY_CUSTOM_BROWSER_ACTION_LIMIT = "androidx.media.utils.MediaBrowserCompat.extras.CUSTOM_BROWSER_ACTION_LIMIT";
-    field public static final String BROWSER_ROOT_HINTS_KEY_MEDIA_ART_SIZE_PIXELS = "android.media.extras.MEDIA_ART_SIZE_HINT_PIXELS";
-    field public static final String BROWSER_ROOT_HINTS_KEY_ROOT_CHILDREN_LIMIT = "androidx.media.MediaBrowserCompat.Extras.KEY_ROOT_CHILDREN_LIMIT";
-    field public static final String BROWSER_ROOT_HINTS_KEY_ROOT_CHILDREN_SUPPORTED_FLAGS = "androidx.media.MediaBrowserCompat.Extras.KEY_ROOT_CHILDREN_SUPPORTED_FLAGS";
-    field public static final String BROWSER_SERVICE_EXTRAS_KEY_APPLICATION_PREFERENCES_USING_CAR_APP_LIBRARY_INTENT = "androidx.media.BrowserRoot.Extras.APPLICATION_PREFERENCES_USING_CAR_APP_LIBRARY_INTENT";
-    field public static final String BROWSER_SERVICE_EXTRAS_KEY_CUSTOM_BROWSER_ACTION_ROOT_LIST = "androidx.media.utils.extras.CUSTOM_BROWSER_ACTION_ROOT_LIST";
-    field public static final String BROWSER_SERVICE_EXTRAS_KEY_FAVORITES_MEDIA_ITEM = "androidx.media.BrowserRoot.Extras.FAVORITES_MEDIA_ITEM";
-    field public static final String BROWSER_SERVICE_EXTRAS_KEY_SEARCH_SUPPORTED = "android.media.browse.SEARCH_SUPPORTED";
-    field public static final String DESCRIPTION_EXTRAS_KEY_COMPLETION_PERCENTAGE = "androidx.media.MediaItem.Extras.COMPLETION_PERCENTAGE";
-    field public static final String DESCRIPTION_EXTRAS_KEY_COMPLETION_STATUS = "android.media.extra.PLAYBACK_STATUS";
-    field public static final String DESCRIPTION_EXTRAS_KEY_CONTENT_STYLE_BROWSABLE = "android.media.browse.CONTENT_STYLE_BROWSABLE_HINT";
-    field public static final String DESCRIPTION_EXTRAS_KEY_CONTENT_STYLE_GROUP_TITLE = "android.media.browse.CONTENT_STYLE_GROUP_TITLE_HINT";
-    field public static final String DESCRIPTION_EXTRAS_KEY_CONTENT_STYLE_PLAYABLE = "android.media.browse.CONTENT_STYLE_PLAYABLE_HINT";
-    field public static final String DESCRIPTION_EXTRAS_KEY_CONTENT_STYLE_SINGLE_ITEM = "android.media.browse.CONTENT_STYLE_SINGLE_ITEM_HINT";
-    field public static final String DESCRIPTION_EXTRAS_KEY_CUSTOM_BROWSER_ACTION_ID_LIST = "androidx.media.utils.extras.CUSTOM_BROWSER_ACTION_ID_LIST";
-    field public static final int DESCRIPTION_EXTRAS_VALUE_COMPLETION_STATUS_FULLY_PLAYED = 2; // 0x2
-    field public static final int DESCRIPTION_EXTRAS_VALUE_COMPLETION_STATUS_NOT_PLAYED = 0; // 0x0
-    field public static final int DESCRIPTION_EXTRAS_VALUE_COMPLETION_STATUS_PARTIALLY_PLAYED = 1; // 0x1
-    field public static final int DESCRIPTION_EXTRAS_VALUE_CONTENT_STYLE_CATEGORY_GRID_ITEM = 4; // 0x4
-    field public static final int DESCRIPTION_EXTRAS_VALUE_CONTENT_STYLE_CATEGORY_LIST_ITEM = 3; // 0x3
-    field public static final int DESCRIPTION_EXTRAS_VALUE_CONTENT_STYLE_GRID_ITEM = 2; // 0x2
-    field public static final int DESCRIPTION_EXTRAS_VALUE_CONTENT_STYLE_LIST_ITEM = 1; // 0x1
-    field public static final String EXTRAS_KEY_CUSTOM_BROWSER_ACTION_EXTRAS = "androidx.media.utils.extras.KEY_CUSTOM_BROWSER_ACTION_EXTRAS";
-    field public static final String EXTRAS_KEY_CUSTOM_BROWSER_ACTION_ICON_URI = "androidx.media.utils.extras.KEY_CUSTOM_BROWSER_ACTION_ICON_URI";
-    field public static final String EXTRAS_KEY_CUSTOM_BROWSER_ACTION_ID = "androidx.media.utils.extras.KEY_CUSTOM_BROWSER_ACTION_ID";
-    field public static final String EXTRAS_KEY_CUSTOM_BROWSER_ACTION_LABEL = "androidx.media.utils.extras.KEY_CUSTOM_BROWSER_ACTION_LABEL";
-    field public static final String EXTRAS_KEY_CUSTOM_BROWSER_ACTION_MEDIA_ITEM_ID = "androidx.media.utils.extras.KEY_CUSTOM_BROWSER_ACTION_MEDIA_ITEM_ID";
-    field public static final String EXTRAS_KEY_CUSTOM_BROWSER_ACTION_RESULT_BROWSE_NODE = "androidx.media.utils.extras.KEY_CUSTOM_BROWSER_ACTION_RESULT_BROWSE_NODE";
-    field public static final String EXTRAS_KEY_CUSTOM_BROWSER_ACTION_RESULT_MESSAGE = "androidx.media.utils.extras.KEY_CUSTOM_BROWSER_ACTION_RESULT_MESSAGE";
-    field public static final String EXTRAS_KEY_CUSTOM_BROWSER_ACTION_RESULT_REFRESH_ITEM = "androidx.media.utils.extras.KEY_CUSTOM_BROWSER_ACTION_RESULT_REFRESH_ITEM";
-    field public static final String EXTRAS_KEY_CUSTOM_BROWSER_ACTION_RESULT_SHOW_PLAYING_ITEM = "androidx.media.utils.extras.KEY_CUSTOM_BROWSER_ACTION_RESULT_SHOW_PLAYING_ITEM";
-    field public static final String METADATA_KEY_CONTENT_ID = "androidx.media.MediaMetadatCompat.METADATA_KEY_CONTENT_ID";
-    field public static final String METADATA_KEY_IS_ADVERTISEMENT = "android.media.metadata.ADVERTISEMENT";
-    field public static final String METADATA_KEY_IS_EXPLICIT = "android.media.IS_EXPLICIT";
-    field public static final String METADATA_KEY_NEXT_EPISODE_CONTENT_ID = "androidx.media.MediaMetadatCompat.METADATA_KEY_NEXT_EPISODE_CONTENT_ID";
-    field public static final String METADATA_KEY_SERIES_CONTENT_ID = "androidx.media.MediaMetadatCompat.METADATA_KEY_SERIES_CONTENT_ID";
-    field public static final long METADATA_VALUE_ATTRIBUTE_PRESENT = 1L; // 0x1L
-    field public static final String PLAYBACK_STATE_EXTRAS_KEY_ERROR_RESOLUTION_ACTION_INTENT = "android.media.extras.ERROR_RESOLUTION_ACTION_INTENT";
-    field public static final String PLAYBACK_STATE_EXTRAS_KEY_ERROR_RESOLUTION_ACTION_LABEL = "android.media.extras.ERROR_RESOLUTION_ACTION_LABEL";
-    field public static final String PLAYBACK_STATE_EXTRAS_KEY_ERROR_RESOLUTION_USING_CAR_APP_LIBRARY_INTENT = "androidx.media.PlaybackStateCompat.Extras.ERROR_RESOLUTION_USING_CAR_APP_LIBRARY_INTENT";
-    field public static final String PLAYBACK_STATE_EXTRAS_KEY_MEDIA_ID = "androidx.media.PlaybackStateCompat.Extras.KEY_MEDIA_ID";
-    field public static final String SESSION_EXTRAS_KEY_ACCOUNT_NAME = "androidx.media.MediaSessionCompat.Extras.KEY_ACCOUNT_NAME";
-    field public static final String SESSION_EXTRAS_KEY_ACCOUNT_TYPE = "androidx.media.MediaSessionCompat.Extras.KEY_ACCOUNT_TYPE";
-    field public static final String SESSION_EXTRAS_KEY_SLOT_RESERVATION_SKIP_TO_NEXT = "android.media.playback.ALWAYS_RESERVE_SPACE_FOR.ACTION_SKIP_TO_NEXT";
-    field public static final String SESSION_EXTRAS_KEY_SLOT_RESERVATION_SKIP_TO_PREV = "android.media.playback.ALWAYS_RESERVE_SPACE_FOR.ACTION_SKIP_TO_PREVIOUS";
-    field public static final String TRANSPORT_CONTROLS_EXTRAS_KEY_LEGACY_STREAM_TYPE = "android.media.session.extra.LEGACY_STREAM_TYPE";
-    field public static final String TRANSPORT_CONTROLS_EXTRAS_KEY_SHUFFLE = "androidx.media.MediaControllerCompat.TransportControls.extras.KEY_SHUFFLE";
-  }
-
-}
-
diff --git a/mediarouter/mediarouter/api/current.txt b/mediarouter/mediarouter/api/current.txt
index fbe13f9..3fb8c40 100644
--- a/mediarouter/mediarouter/api/current.txt
+++ b/mediarouter/mediarouter/api/current.txt
@@ -447,7 +447,15 @@
     field public static final int CONNECTION_STATE_CONNECTED = 2; // 0x2
     field public static final int CONNECTION_STATE_CONNECTING = 1; // 0x1
     field public static final int CONNECTION_STATE_DISCONNECTED = 0; // 0x0
+    field public static final int DEVICE_TYPE_AUDIO_VIDEO_RECEIVER = 4; // 0x4
+    field public static final int DEVICE_TYPE_CAR = 9; // 0x9
+    field public static final int DEVICE_TYPE_COMPUTER = 7; // 0x7
+    field public static final int DEVICE_TYPE_GAME_CONSOLE = 8; // 0x8
+    field public static final int DEVICE_TYPE_GROUP = 1000; // 0x3e8
+    field public static final int DEVICE_TYPE_SMARTWATCH = 10; // 0xa
     field public static final int DEVICE_TYPE_SPEAKER = 2; // 0x2
+    field public static final int DEVICE_TYPE_TABLET = 5; // 0x5
+    field public static final int DEVICE_TYPE_TABLET_DOCKED = 6; // 0x6
     field public static final int DEVICE_TYPE_TV = 1; // 0x1
     field public static final int PLAYBACK_TYPE_LOCAL = 0; // 0x0
     field public static final int PLAYBACK_TYPE_REMOTE = 1; // 0x1
diff --git a/mediarouter/mediarouter/api/public_plus_experimental_current.txt b/mediarouter/mediarouter/api/public_plus_experimental_current.txt
deleted file mode 100644
index fbe13f9..0000000
--- a/mediarouter/mediarouter/api/public_plus_experimental_current.txt
+++ /dev/null
@@ -1,558 +0,0 @@
-// Signature format: 4.0
-package androidx.mediarouter.app {
-
-  public class MediaRouteActionProvider extends androidx.core.view.ActionProvider {
-    ctor public MediaRouteActionProvider(android.content.Context);
-    method @Deprecated public void enableDynamicGroup();
-    method public androidx.mediarouter.app.MediaRouteDialogFactory getDialogFactory();
-    method public androidx.mediarouter.app.MediaRouteButton? getMediaRouteButton();
-    method public androidx.mediarouter.media.MediaRouteSelector getRouteSelector();
-    method public android.view.View onCreateActionView();
-    method public androidx.mediarouter.app.MediaRouteButton onCreateMediaRouteButton();
-    method @Deprecated public void setAlwaysVisible(boolean);
-    method public void setDialogFactory(androidx.mediarouter.app.MediaRouteDialogFactory);
-    method public void setRouteSelector(androidx.mediarouter.media.MediaRouteSelector);
-  }
-
-  public class MediaRouteButton extends android.view.View {
-    ctor public MediaRouteButton(android.content.Context);
-    ctor public MediaRouteButton(android.content.Context, android.util.AttributeSet?);
-    ctor public MediaRouteButton(android.content.Context, android.util.AttributeSet?, int);
-    method @Deprecated public void enableDynamicGroup();
-    method public androidx.mediarouter.app.MediaRouteDialogFactory getDialogFactory();
-    method public androidx.mediarouter.media.MediaRouteSelector getRouteSelector();
-    method public void onAttachedToWindow();
-    method public void onDetachedFromWindow();
-    method @Deprecated public void setAlwaysVisible(boolean);
-    method public void setDialogFactory(androidx.mediarouter.app.MediaRouteDialogFactory);
-    method public void setRemoteIndicatorDrawable(android.graphics.drawable.Drawable?);
-    method public void setRouteSelector(androidx.mediarouter.media.MediaRouteSelector);
-    method public boolean showDialog();
-  }
-
-  public class MediaRouteChooserDialog extends androidx.appcompat.app.AppCompatDialog {
-    ctor public MediaRouteChooserDialog(android.content.Context);
-    ctor public MediaRouteChooserDialog(android.content.Context, int);
-    method public androidx.mediarouter.media.MediaRouteSelector getRouteSelector();
-    method public boolean onFilterRoute(androidx.mediarouter.media.MediaRouter.RouteInfo);
-    method public void onFilterRoutes(java.util.List<androidx.mediarouter.media.MediaRouter.RouteInfo!>);
-    method public void refreshRoutes();
-    method public void setRouteSelector(androidx.mediarouter.media.MediaRouteSelector);
-  }
-
-  public class MediaRouteChooserDialogFragment extends androidx.fragment.app.DialogFragment {
-    ctor public MediaRouteChooserDialogFragment();
-    method public androidx.mediarouter.media.MediaRouteSelector getRouteSelector();
-    method public androidx.mediarouter.app.MediaRouteChooserDialog onCreateChooserDialog(android.content.Context, android.os.Bundle?);
-    method public void setRouteSelector(androidx.mediarouter.media.MediaRouteSelector);
-  }
-
-  public class MediaRouteControllerDialog extends androidx.appcompat.app.AlertDialog {
-    ctor public MediaRouteControllerDialog(android.content.Context);
-    ctor public MediaRouteControllerDialog(android.content.Context, int);
-    method public android.view.View? getMediaControlView();
-    method public android.support.v4.media.session.MediaSessionCompat.Token? getMediaSession();
-    method public androidx.mediarouter.media.MediaRouter.RouteInfo getRoute();
-    method public boolean isVolumeControlEnabled();
-    method public android.view.View? onCreateMediaControlView(android.os.Bundle?);
-    method public void setVolumeControlEnabled(boolean);
-  }
-
-  public class MediaRouteControllerDialogFragment extends androidx.fragment.app.DialogFragment {
-    ctor public MediaRouteControllerDialogFragment();
-    method public androidx.mediarouter.app.MediaRouteControllerDialog onCreateControllerDialog(android.content.Context, android.os.Bundle?);
-  }
-
-  public class MediaRouteDialogFactory {
-    ctor public MediaRouteDialogFactory();
-    method public static androidx.mediarouter.app.MediaRouteDialogFactory getDefault();
-    method public androidx.mediarouter.app.MediaRouteChooserDialogFragment onCreateChooserDialogFragment();
-    method public androidx.mediarouter.app.MediaRouteControllerDialogFragment onCreateControllerDialogFragment();
-  }
-
-  public class MediaRouteDiscoveryFragment extends androidx.fragment.app.Fragment {
-    ctor public MediaRouteDiscoveryFragment();
-    method public androidx.mediarouter.media.MediaRouter getMediaRouter();
-    method public androidx.mediarouter.media.MediaRouteSelector getRouteSelector();
-    method public androidx.mediarouter.media.MediaRouter.Callback? onCreateCallback();
-    method public int onPrepareCallbackFlags();
-    method public void setRouteSelector(androidx.mediarouter.media.MediaRouteSelector);
-  }
-
-  public final class SystemOutputSwitcherDialogController {
-    method public static boolean showDialog(android.content.Context);
-  }
-
-}
-
-package androidx.mediarouter.media {
-
-  public final class MediaControlIntent {
-    field public static final String ACTION_END_SESSION = "android.media.intent.action.END_SESSION";
-    field public static final String ACTION_ENQUEUE = "android.media.intent.action.ENQUEUE";
-    field public static final String ACTION_GET_SESSION_STATUS = "android.media.intent.action.GET_SESSION_STATUS";
-    field public static final String ACTION_GET_STATUS = "android.media.intent.action.GET_STATUS";
-    field public static final String ACTION_PAUSE = "android.media.intent.action.PAUSE";
-    field public static final String ACTION_PLAY = "android.media.intent.action.PLAY";
-    field public static final String ACTION_REMOVE = "android.media.intent.action.REMOVE";
-    field public static final String ACTION_RESUME = "android.media.intent.action.RESUME";
-    field public static final String ACTION_SEEK = "android.media.intent.action.SEEK";
-    field public static final String ACTION_SEND_MESSAGE = "android.media.intent.action.SEND_MESSAGE";
-    field public static final String ACTION_START_SESSION = "android.media.intent.action.START_SESSION";
-    field public static final String ACTION_STOP = "android.media.intent.action.STOP";
-    field public static final String CATEGORY_LIVE_AUDIO = "android.media.intent.category.LIVE_AUDIO";
-    field public static final String CATEGORY_LIVE_VIDEO = "android.media.intent.category.LIVE_VIDEO";
-    field public static final String CATEGORY_REMOTE_PLAYBACK = "android.media.intent.category.REMOTE_PLAYBACK";
-    field public static final int ERROR_INVALID_ITEM_ID = 3; // 0x3
-    field public static final int ERROR_INVALID_SESSION_ID = 2; // 0x2
-    field public static final int ERROR_UNKNOWN = 0; // 0x0
-    field public static final int ERROR_UNSUPPORTED_OPERATION = 1; // 0x1
-    field public static final String EXTRA_ERROR_CODE = "android.media.intent.extra.ERROR_CODE";
-    field public static final String EXTRA_ITEM_CONTENT_POSITION = "android.media.intent.extra.ITEM_POSITION";
-    field public static final String EXTRA_ITEM_HTTP_HEADERS = "android.media.intent.extra.HTTP_HEADERS";
-    field public static final String EXTRA_ITEM_ID = "android.media.intent.extra.ITEM_ID";
-    field public static final String EXTRA_ITEM_METADATA = "android.media.intent.extra.ITEM_METADATA";
-    field public static final String EXTRA_ITEM_STATUS = "android.media.intent.extra.ITEM_STATUS";
-    field public static final String EXTRA_ITEM_STATUS_UPDATE_RECEIVER = "android.media.intent.extra.ITEM_STATUS_UPDATE_RECEIVER";
-    field public static final String EXTRA_MESSAGE = "android.media.intent.extra.MESSAGE";
-    field public static final String EXTRA_MESSAGE_RECEIVER = "android.media.intent.extra.MESSAGE_RECEIVER";
-    field public static final String EXTRA_SESSION_ID = "android.media.intent.extra.SESSION_ID";
-    field public static final String EXTRA_SESSION_STATUS = "android.media.intent.extra.SESSION_STATUS";
-    field public static final String EXTRA_SESSION_STATUS_UPDATE_RECEIVER = "android.media.intent.extra.SESSION_STATUS_UPDATE_RECEIVER";
-  }
-
-  public final class MediaItemMetadata {
-    field public static final String KEY_ALBUM_ARTIST = "android.media.metadata.ALBUM_ARTIST";
-    field public static final String KEY_ALBUM_TITLE = "android.media.metadata.ALBUM_TITLE";
-    field public static final String KEY_ARTIST = "android.media.metadata.ARTIST";
-    field public static final String KEY_ARTWORK_URI = "android.media.metadata.ARTWORK_URI";
-    field public static final String KEY_AUTHOR = "android.media.metadata.AUTHOR";
-    field public static final String KEY_COMPOSER = "android.media.metadata.COMPOSER";
-    field public static final String KEY_DISC_NUMBER = "android.media.metadata.DISC_NUMBER";
-    field public static final String KEY_DURATION = "android.media.metadata.DURATION";
-    field public static final String KEY_TITLE = "android.media.metadata.TITLE";
-    field public static final String KEY_TRACK_NUMBER = "android.media.metadata.TRACK_NUMBER";
-    field public static final String KEY_YEAR = "android.media.metadata.YEAR";
-  }
-
-  public final class MediaItemStatus {
-    method public android.os.Bundle asBundle();
-    method public static androidx.mediarouter.media.MediaItemStatus? fromBundle(android.os.Bundle?);
-    method public long getContentDuration();
-    method public long getContentPosition();
-    method public android.os.Bundle? getExtras();
-    method public int getPlaybackState();
-    method public long getTimestamp();
-    field public static final String EXTRA_HTTP_RESPONSE_HEADERS = "android.media.status.extra.HTTP_RESPONSE_HEADERS";
-    field public static final String EXTRA_HTTP_STATUS_CODE = "android.media.status.extra.HTTP_STATUS_CODE";
-    field public static final int PLAYBACK_STATE_BUFFERING = 3; // 0x3
-    field public static final int PLAYBACK_STATE_CANCELED = 5; // 0x5
-    field public static final int PLAYBACK_STATE_ERROR = 7; // 0x7
-    field public static final int PLAYBACK_STATE_FINISHED = 4; // 0x4
-    field public static final int PLAYBACK_STATE_INVALIDATED = 6; // 0x6
-    field public static final int PLAYBACK_STATE_PAUSED = 2; // 0x2
-    field public static final int PLAYBACK_STATE_PENDING = 0; // 0x0
-    field public static final int PLAYBACK_STATE_PLAYING = 1; // 0x1
-  }
-
-  public static final class MediaItemStatus.Builder {
-    ctor public MediaItemStatus.Builder(androidx.mediarouter.media.MediaItemStatus);
-    ctor public MediaItemStatus.Builder(int);
-    method public androidx.mediarouter.media.MediaItemStatus build();
-    method public androidx.mediarouter.media.MediaItemStatus.Builder setContentDuration(long);
-    method public androidx.mediarouter.media.MediaItemStatus.Builder setContentPosition(long);
-    method public androidx.mediarouter.media.MediaItemStatus.Builder setExtras(android.os.Bundle?);
-    method public androidx.mediarouter.media.MediaItemStatus.Builder setPlaybackState(int);
-    method public androidx.mediarouter.media.MediaItemStatus.Builder setTimestamp(long);
-  }
-
-  public final class MediaRouteDescriptor {
-    method public android.os.Bundle asBundle();
-    method public boolean canDisconnectAndKeepPlaying();
-    method public static androidx.mediarouter.media.MediaRouteDescriptor? fromBundle(android.os.Bundle?);
-    method public int getConnectionState();
-    method public java.util.List<android.content.IntentFilter!> getControlFilters();
-    method public String? getDescription();
-    method public int getDeviceType();
-    method public android.os.Bundle? getExtras();
-    method public android.net.Uri? getIconUri();
-    method public String getId();
-    method public String getName();
-    method public int getPlaybackStream();
-    method public int getPlaybackType();
-    method public int getPresentationDisplayId();
-    method public android.content.IntentSender? getSettingsActivity();
-    method public int getVolume();
-    method public int getVolumeHandling();
-    method public int getVolumeMax();
-    method @Deprecated public boolean isConnecting();
-    method public boolean isDynamicGroupRoute();
-    method public boolean isEnabled();
-    method public boolean isValid();
-  }
-
-  public static final class MediaRouteDescriptor.Builder {
-    ctor public MediaRouteDescriptor.Builder(androidx.mediarouter.media.MediaRouteDescriptor);
-    ctor public MediaRouteDescriptor.Builder(String, String);
-    method public androidx.mediarouter.media.MediaRouteDescriptor.Builder addControlFilter(android.content.IntentFilter);
-    method public androidx.mediarouter.media.MediaRouteDescriptor.Builder addControlFilters(java.util.Collection<android.content.IntentFilter!>);
-    method public androidx.mediarouter.media.MediaRouteDescriptor build();
-    method public androidx.mediarouter.media.MediaRouteDescriptor.Builder clearControlFilters();
-    method public androidx.mediarouter.media.MediaRouteDescriptor.Builder setCanDisconnect(boolean);
-    method @Deprecated public androidx.mediarouter.media.MediaRouteDescriptor.Builder setConnecting(boolean);
-    method public androidx.mediarouter.media.MediaRouteDescriptor.Builder setConnectionState(int);
-    method public androidx.mediarouter.media.MediaRouteDescriptor.Builder setDescription(String?);
-    method public androidx.mediarouter.media.MediaRouteDescriptor.Builder setDeviceType(int);
-    method public androidx.mediarouter.media.MediaRouteDescriptor.Builder setEnabled(boolean);
-    method public androidx.mediarouter.media.MediaRouteDescriptor.Builder setExtras(android.os.Bundle?);
-    method public androidx.mediarouter.media.MediaRouteDescriptor.Builder setIconUri(android.net.Uri);
-    method public androidx.mediarouter.media.MediaRouteDescriptor.Builder setId(String);
-    method public androidx.mediarouter.media.MediaRouteDescriptor.Builder setIsDynamicGroupRoute(boolean);
-    method public androidx.mediarouter.media.MediaRouteDescriptor.Builder setName(String);
-    method public androidx.mediarouter.media.MediaRouteDescriptor.Builder setPlaybackStream(int);
-    method public androidx.mediarouter.media.MediaRouteDescriptor.Builder setPlaybackType(int);
-    method public androidx.mediarouter.media.MediaRouteDescriptor.Builder setPresentationDisplayId(int);
-    method public androidx.mediarouter.media.MediaRouteDescriptor.Builder setSettingsActivity(android.content.IntentSender?);
-    method public androidx.mediarouter.media.MediaRouteDescriptor.Builder setVolume(int);
-    method public androidx.mediarouter.media.MediaRouteDescriptor.Builder setVolumeHandling(int);
-    method public androidx.mediarouter.media.MediaRouteDescriptor.Builder setVolumeMax(int);
-  }
-
-  public final class MediaRouteDiscoveryRequest {
-    ctor public MediaRouteDiscoveryRequest(androidx.mediarouter.media.MediaRouteSelector, boolean);
-    method public android.os.Bundle asBundle();
-    method public static androidx.mediarouter.media.MediaRouteDiscoveryRequest? fromBundle(android.os.Bundle?);
-    method public androidx.mediarouter.media.MediaRouteSelector getSelector();
-    method public boolean isActiveScan();
-    method public boolean isValid();
-  }
-
-  public abstract class MediaRouteProvider {
-    ctor public MediaRouteProvider(android.content.Context);
-    method public final android.content.Context getContext();
-    method public final androidx.mediarouter.media.MediaRouteProviderDescriptor? getDescriptor();
-    method public final androidx.mediarouter.media.MediaRouteDiscoveryRequest? getDiscoveryRequest();
-    method public final android.os.Handler getHandler();
-    method public final androidx.mediarouter.media.MediaRouteProvider.ProviderMetadata getMetadata();
-    method public androidx.mediarouter.media.MediaRouteProvider.DynamicGroupRouteController? onCreateDynamicGroupRouteController(String);
-    method public androidx.mediarouter.media.MediaRouteProvider.RouteController? onCreateRouteController(String);
-    method public void onDiscoveryRequestChanged(androidx.mediarouter.media.MediaRouteDiscoveryRequest?);
-    method public final void setCallback(androidx.mediarouter.media.MediaRouteProvider.Callback?);
-    method public final void setDescriptor(androidx.mediarouter.media.MediaRouteProviderDescriptor?);
-    method public final void setDiscoveryRequest(androidx.mediarouter.media.MediaRouteDiscoveryRequest?);
-  }
-
-  public abstract static class MediaRouteProvider.Callback {
-    ctor public MediaRouteProvider.Callback();
-    method public void onDescriptorChanged(androidx.mediarouter.media.MediaRouteProvider, androidx.mediarouter.media.MediaRouteProviderDescriptor?);
-  }
-
-  public abstract static class MediaRouteProvider.DynamicGroupRouteController extends androidx.mediarouter.media.MediaRouteProvider.RouteController {
-    ctor public MediaRouteProvider.DynamicGroupRouteController();
-    method public String? getGroupableSelectionTitle();
-    method public String? getTransferableSectionTitle();
-    method public final void notifyDynamicRoutesChanged(androidx.mediarouter.media.MediaRouteDescriptor, java.util.Collection<androidx.mediarouter.media.MediaRouteProvider.DynamicGroupRouteController.DynamicRouteDescriptor!>);
-    method @Deprecated public final void notifyDynamicRoutesChanged(java.util.Collection<androidx.mediarouter.media.MediaRouteProvider.DynamicGroupRouteController.DynamicRouteDescriptor!>);
-    method public abstract void onAddMemberRoute(String);
-    method public abstract void onRemoveMemberRoute(String);
-    method public abstract void onUpdateMemberRoutes(java.util.List<java.lang.String!>?);
-  }
-
-  public static final class MediaRouteProvider.DynamicGroupRouteController.DynamicRouteDescriptor {
-    method public androidx.mediarouter.media.MediaRouteDescriptor getRouteDescriptor();
-    method public int getSelectionState();
-    method public boolean isGroupable();
-    method public boolean isTransferable();
-    method public boolean isUnselectable();
-    field public static final int SELECTED = 3; // 0x3
-    field public static final int SELECTING = 2; // 0x2
-    field public static final int UNSELECTED = 1; // 0x1
-    field public static final int UNSELECTING = 0; // 0x0
-  }
-
-  public static final class MediaRouteProvider.DynamicGroupRouteController.DynamicRouteDescriptor.Builder {
-    ctor public MediaRouteProvider.DynamicGroupRouteController.DynamicRouteDescriptor.Builder(androidx.mediarouter.media.MediaRouteDescriptor);
-    ctor public MediaRouteProvider.DynamicGroupRouteController.DynamicRouteDescriptor.Builder(androidx.mediarouter.media.MediaRouteProvider.DynamicGroupRouteController.DynamicRouteDescriptor);
-    method public androidx.mediarouter.media.MediaRouteProvider.DynamicGroupRouteController.DynamicRouteDescriptor build();
-    method public androidx.mediarouter.media.MediaRouteProvider.DynamicGroupRouteController.DynamicRouteDescriptor.Builder setIsGroupable(boolean);
-    method public androidx.mediarouter.media.MediaRouteProvider.DynamicGroupRouteController.DynamicRouteDescriptor.Builder setIsTransferable(boolean);
-    method public androidx.mediarouter.media.MediaRouteProvider.DynamicGroupRouteController.DynamicRouteDescriptor.Builder setIsUnselectable(boolean);
-    method public androidx.mediarouter.media.MediaRouteProvider.DynamicGroupRouteController.DynamicRouteDescriptor.Builder setSelectionState(int);
-  }
-
-  public static final class MediaRouteProvider.ProviderMetadata {
-    method public android.content.ComponentName getComponentName();
-    method public String getPackageName();
-  }
-
-  public abstract static class MediaRouteProvider.RouteController {
-    ctor public MediaRouteProvider.RouteController();
-    method public boolean onControlRequest(android.content.Intent, androidx.mediarouter.media.MediaRouter.ControlRequestCallback?);
-    method public void onRelease();
-    method public void onSelect();
-    method public void onSetVolume(int);
-    method @Deprecated public void onUnselect();
-    method public void onUnselect(int);
-    method public void onUpdateVolume(int);
-  }
-
-  public final class MediaRouteProviderDescriptor {
-    method public android.os.Bundle asBundle();
-    method public static androidx.mediarouter.media.MediaRouteProviderDescriptor? fromBundle(android.os.Bundle?);
-    method public java.util.List<androidx.mediarouter.media.MediaRouteDescriptor!> getRoutes();
-    method public boolean isValid();
-    method public boolean supportsDynamicGroupRoute();
-  }
-
-  public static final class MediaRouteProviderDescriptor.Builder {
-    ctor public MediaRouteProviderDescriptor.Builder();
-    ctor public MediaRouteProviderDescriptor.Builder(androidx.mediarouter.media.MediaRouteProviderDescriptor);
-    method public androidx.mediarouter.media.MediaRouteProviderDescriptor.Builder addRoute(androidx.mediarouter.media.MediaRouteDescriptor);
-    method public androidx.mediarouter.media.MediaRouteProviderDescriptor.Builder addRoutes(java.util.Collection<androidx.mediarouter.media.MediaRouteDescriptor!>);
-    method public androidx.mediarouter.media.MediaRouteProviderDescriptor build();
-    method public androidx.mediarouter.media.MediaRouteProviderDescriptor.Builder setSupportsDynamicGroupRoute(boolean);
-  }
-
-  public abstract class MediaRouteProviderService extends android.app.Service {
-    ctor public MediaRouteProviderService();
-    method public androidx.mediarouter.media.MediaRouteProvider? getMediaRouteProvider();
-    method public android.os.IBinder? onBind(android.content.Intent);
-    method public abstract androidx.mediarouter.media.MediaRouteProvider? onCreateMediaRouteProvider();
-    field public static final String SERVICE_INTERFACE = "android.media.MediaRouteProviderService";
-  }
-
-  public final class MediaRouteSelector {
-    method public android.os.Bundle asBundle();
-    method public boolean contains(androidx.mediarouter.media.MediaRouteSelector);
-    method public static androidx.mediarouter.media.MediaRouteSelector? fromBundle(android.os.Bundle?);
-    method public java.util.List<java.lang.String!> getControlCategories();
-    method public boolean hasControlCategory(String?);
-    method public boolean isEmpty();
-    method public boolean isValid();
-    method public boolean matchesControlFilters(java.util.List<android.content.IntentFilter!>?);
-    field public static final androidx.mediarouter.media.MediaRouteSelector! EMPTY;
-  }
-
-  public static final class MediaRouteSelector.Builder {
-    ctor public MediaRouteSelector.Builder();
-    ctor public MediaRouteSelector.Builder(androidx.mediarouter.media.MediaRouteSelector);
-    method public androidx.mediarouter.media.MediaRouteSelector.Builder addControlCategories(java.util.Collection<java.lang.String!>);
-    method public androidx.mediarouter.media.MediaRouteSelector.Builder addControlCategory(String);
-    method public androidx.mediarouter.media.MediaRouteSelector.Builder addSelector(androidx.mediarouter.media.MediaRouteSelector);
-    method public androidx.mediarouter.media.MediaRouteSelector build();
-  }
-
-  public final class MediaRouter {
-    method @MainThread public void addCallback(androidx.mediarouter.media.MediaRouteSelector, androidx.mediarouter.media.MediaRouter.Callback);
-    method @MainThread public void addCallback(androidx.mediarouter.media.MediaRouteSelector, androidx.mediarouter.media.MediaRouter.Callback, int);
-    method @MainThread public void addProvider(androidx.mediarouter.media.MediaRouteProvider);
-    method @MainThread public void addRemoteControlClient(Object);
-    method @MainThread public androidx.mediarouter.media.MediaRouter.RouteInfo? getBluetoothRoute();
-    method @MainThread public androidx.mediarouter.media.MediaRouter.RouteInfo getDefaultRoute();
-    method @MainThread public static androidx.mediarouter.media.MediaRouter getInstance(android.content.Context);
-    method public android.support.v4.media.session.MediaSessionCompat.Token? getMediaSessionToken();
-    method @MainThread public java.util.List<androidx.mediarouter.media.MediaRouter.ProviderInfo!> getProviders();
-    method @MainThread public androidx.mediarouter.media.MediaRouterParams? getRouterParams();
-    method @MainThread public java.util.List<androidx.mediarouter.media.MediaRouter.RouteInfo!> getRoutes();
-    method @MainThread public androidx.mediarouter.media.MediaRouter.RouteInfo getSelectedRoute();
-    method @MainThread public boolean isRouteAvailable(androidx.mediarouter.media.MediaRouteSelector, int);
-    method @MainThread public void removeCallback(androidx.mediarouter.media.MediaRouter.Callback);
-    method @MainThread public void removeProvider(androidx.mediarouter.media.MediaRouteProvider);
-    method @MainThread public void removeRemoteControlClient(Object);
-    method @MainThread public void selectRoute(androidx.mediarouter.media.MediaRouter.RouteInfo);
-    method @MainThread public void setMediaSession(Object?);
-    method @MainThread public void setMediaSessionCompat(android.support.v4.media.session.MediaSessionCompat?);
-    method @MainThread public void setOnPrepareTransferListener(androidx.mediarouter.media.MediaRouter.OnPrepareTransferListener?);
-    method @MainThread public void setRouterParams(androidx.mediarouter.media.MediaRouterParams?);
-    method @MainThread public void unselect(int);
-    method @MainThread public androidx.mediarouter.media.MediaRouter.RouteInfo updateSelectedRoute(androidx.mediarouter.media.MediaRouteSelector);
-    field public static final int AVAILABILITY_FLAG_IGNORE_DEFAULT_ROUTE = 1; // 0x1
-    field public static final int AVAILABILITY_FLAG_REQUIRE_MATCH = 2; // 0x2
-    field public static final int CALLBACK_FLAG_FORCE_DISCOVERY = 8; // 0x8
-    field public static final int CALLBACK_FLAG_PERFORM_ACTIVE_SCAN = 1; // 0x1
-    field public static final int CALLBACK_FLAG_REQUEST_DISCOVERY = 4; // 0x4
-    field public static final int CALLBACK_FLAG_UNFILTERED_EVENTS = 2; // 0x2
-    field public static final int UNSELECT_REASON_DISCONNECTED = 1; // 0x1
-    field public static final int UNSELECT_REASON_ROUTE_CHANGED = 3; // 0x3
-    field public static final int UNSELECT_REASON_STOPPED = 2; // 0x2
-    field public static final int UNSELECT_REASON_UNKNOWN = 0; // 0x0
-  }
-
-  public abstract static class MediaRouter.Callback {
-    ctor public MediaRouter.Callback();
-    method public void onProviderAdded(androidx.mediarouter.media.MediaRouter, androidx.mediarouter.media.MediaRouter.ProviderInfo);
-    method public void onProviderChanged(androidx.mediarouter.media.MediaRouter, androidx.mediarouter.media.MediaRouter.ProviderInfo);
-    method public void onProviderRemoved(androidx.mediarouter.media.MediaRouter, androidx.mediarouter.media.MediaRouter.ProviderInfo);
-    method public void onRouteAdded(androidx.mediarouter.media.MediaRouter, androidx.mediarouter.media.MediaRouter.RouteInfo);
-    method public void onRouteChanged(androidx.mediarouter.media.MediaRouter, androidx.mediarouter.media.MediaRouter.RouteInfo);
-    method public void onRoutePresentationDisplayChanged(androidx.mediarouter.media.MediaRouter, androidx.mediarouter.media.MediaRouter.RouteInfo);
-    method public void onRouteRemoved(androidx.mediarouter.media.MediaRouter, androidx.mediarouter.media.MediaRouter.RouteInfo);
-    method @Deprecated public void onRouteSelected(androidx.mediarouter.media.MediaRouter, androidx.mediarouter.media.MediaRouter.RouteInfo);
-    method public void onRouteSelected(androidx.mediarouter.media.MediaRouter, androidx.mediarouter.media.MediaRouter.RouteInfo, int);
-    method public void onRouteSelected(androidx.mediarouter.media.MediaRouter, androidx.mediarouter.media.MediaRouter.RouteInfo, int, androidx.mediarouter.media.MediaRouter.RouteInfo);
-    method @Deprecated public void onRouteUnselected(androidx.mediarouter.media.MediaRouter, androidx.mediarouter.media.MediaRouter.RouteInfo);
-    method public void onRouteUnselected(androidx.mediarouter.media.MediaRouter, androidx.mediarouter.media.MediaRouter.RouteInfo, int);
-    method public void onRouteVolumeChanged(androidx.mediarouter.media.MediaRouter, androidx.mediarouter.media.MediaRouter.RouteInfo);
-  }
-
-  public abstract static class MediaRouter.ControlRequestCallback {
-    ctor public MediaRouter.ControlRequestCallback();
-    method public void onError(String?, android.os.Bundle?);
-    method public void onResult(android.os.Bundle?);
-  }
-
-  public static interface MediaRouter.OnPrepareTransferListener {
-    method @MainThread public com.google.common.util.concurrent.ListenableFuture<java.lang.Void!>? onPrepareTransfer(androidx.mediarouter.media.MediaRouter.RouteInfo, androidx.mediarouter.media.MediaRouter.RouteInfo);
-  }
-
-  public static final class MediaRouter.ProviderInfo {
-    method public android.content.ComponentName getComponentName();
-    method public String getPackageName();
-    method @MainThread public androidx.mediarouter.media.MediaRouteProvider getProviderInstance();
-    method @MainThread public java.util.List<androidx.mediarouter.media.MediaRouter.RouteInfo!> getRoutes();
-  }
-
-  public static class MediaRouter.RouteInfo {
-    method public boolean canDisconnect();
-    method public int getConnectionState();
-    method public java.util.List<android.content.IntentFilter!> getControlFilters();
-    method public String? getDescription();
-    method public int getDeviceType();
-    method public android.os.Bundle? getExtras();
-    method public android.net.Uri? getIconUri();
-    method public String getId();
-    method public String getName();
-    method public int getPlaybackStream();
-    method public int getPlaybackType();
-    method @MainThread public android.view.Display? getPresentationDisplay();
-    method public androidx.mediarouter.media.MediaRouter.ProviderInfo getProvider();
-    method public android.content.IntentSender? getSettingsIntent();
-    method public int getVolume();
-    method public int getVolumeHandling();
-    method public int getVolumeMax();
-    method @MainThread public boolean isBluetooth();
-    method @Deprecated public boolean isConnecting();
-    method @MainThread public boolean isDefault();
-    method public boolean isDeviceSpeaker();
-    method public boolean isEnabled();
-    method @MainThread public boolean isSelected();
-    method @MainThread public boolean matchesSelector(androidx.mediarouter.media.MediaRouteSelector);
-    method @MainThread public void requestSetVolume(int);
-    method @MainThread public void requestUpdateVolume(int);
-    method @MainThread public void select();
-    method @MainThread public void sendControlRequest(android.content.Intent, androidx.mediarouter.media.MediaRouter.ControlRequestCallback?);
-    method @MainThread public boolean supportsControlAction(String, String);
-    method @MainThread public boolean supportsControlCategory(String);
-    method @MainThread public boolean supportsControlRequest(android.content.Intent);
-    field public static final int CONNECTION_STATE_CONNECTED = 2; // 0x2
-    field public static final int CONNECTION_STATE_CONNECTING = 1; // 0x1
-    field public static final int CONNECTION_STATE_DISCONNECTED = 0; // 0x0
-    field public static final int DEVICE_TYPE_SPEAKER = 2; // 0x2
-    field public static final int DEVICE_TYPE_TV = 1; // 0x1
-    field public static final int PLAYBACK_TYPE_LOCAL = 0; // 0x0
-    field public static final int PLAYBACK_TYPE_REMOTE = 1; // 0x1
-    field public static final int PLAYBACK_VOLUME_FIXED = 0; // 0x0
-    field public static final int PLAYBACK_VOLUME_VARIABLE = 1; // 0x1
-  }
-
-  public class MediaRouterParams {
-    method public int getDialogType();
-    method public boolean isMediaTransferReceiverEnabled();
-    method public boolean isOutputSwitcherEnabled();
-    method public boolean isTransferToLocalEnabled();
-    field public static final int DIALOG_TYPE_DEFAULT = 1; // 0x1
-    field public static final int DIALOG_TYPE_DYNAMIC_GROUP = 2; // 0x2
-    field public static final String ENABLE_GROUP_VOLUME_UX = "androidx.mediarouter.media.MediaRouterParams.ENABLE_GROUP_VOLUME_UX";
-  }
-
-  public static final class MediaRouterParams.Builder {
-    ctor public MediaRouterParams.Builder();
-    ctor public MediaRouterParams.Builder(androidx.mediarouter.media.MediaRouterParams);
-    method public androidx.mediarouter.media.MediaRouterParams build();
-    method public androidx.mediarouter.media.MediaRouterParams.Builder setDialogType(int);
-    method public androidx.mediarouter.media.MediaRouterParams.Builder setMediaTransferReceiverEnabled(boolean);
-    method public androidx.mediarouter.media.MediaRouterParams.Builder setOutputSwitcherEnabled(boolean);
-    method public androidx.mediarouter.media.MediaRouterParams.Builder setTransferToLocalEnabled(boolean);
-  }
-
-  public final class MediaSessionStatus {
-    method public android.os.Bundle asBundle();
-    method public static androidx.mediarouter.media.MediaSessionStatus? fromBundle(android.os.Bundle?);
-    method public android.os.Bundle? getExtras();
-    method public int getSessionState();
-    method public long getTimestamp();
-    method public boolean isQueuePaused();
-    field public static final int SESSION_STATE_ACTIVE = 0; // 0x0
-    field public static final int SESSION_STATE_ENDED = 1; // 0x1
-    field public static final int SESSION_STATE_INVALIDATED = 2; // 0x2
-  }
-
-  public static final class MediaSessionStatus.Builder {
-    ctor public MediaSessionStatus.Builder(androidx.mediarouter.media.MediaSessionStatus);
-    ctor public MediaSessionStatus.Builder(int);
-    method public androidx.mediarouter.media.MediaSessionStatus build();
-    method public androidx.mediarouter.media.MediaSessionStatus.Builder setExtras(android.os.Bundle?);
-    method public androidx.mediarouter.media.MediaSessionStatus.Builder setQueuePaused(boolean);
-    method public androidx.mediarouter.media.MediaSessionStatus.Builder setSessionState(int);
-    method public androidx.mediarouter.media.MediaSessionStatus.Builder setTimestamp(long);
-  }
-
-  public final class MediaTransferReceiver extends android.content.BroadcastReceiver {
-    ctor public MediaTransferReceiver();
-    method public void onReceive(android.content.Context, android.content.Intent);
-  }
-
-  public class RemotePlaybackClient {
-    ctor public RemotePlaybackClient(android.content.Context, androidx.mediarouter.media.MediaRouter.RouteInfo);
-    method public void endSession(android.os.Bundle?, androidx.mediarouter.media.RemotePlaybackClient.SessionActionCallback?);
-    method public void enqueue(android.net.Uri, String?, android.os.Bundle?, long, android.os.Bundle?, androidx.mediarouter.media.RemotePlaybackClient.ItemActionCallback?);
-    method public String? getSessionId();
-    method public void getSessionStatus(android.os.Bundle?, androidx.mediarouter.media.RemotePlaybackClient.SessionActionCallback?);
-    method public void getStatus(String, android.os.Bundle?, androidx.mediarouter.media.RemotePlaybackClient.ItemActionCallback?);
-    method public boolean hasSession();
-    method public boolean isMessagingSupported();
-    method public boolean isQueuingSupported();
-    method public boolean isRemotePlaybackSupported();
-    method public boolean isSessionManagementSupported();
-    method public void pause(android.os.Bundle?, androidx.mediarouter.media.RemotePlaybackClient.SessionActionCallback?);
-    method public void play(android.net.Uri, String?, android.os.Bundle?, long, android.os.Bundle?, androidx.mediarouter.media.RemotePlaybackClient.ItemActionCallback?);
-    method public void release();
-    method public void remove(String, android.os.Bundle?, androidx.mediarouter.media.RemotePlaybackClient.ItemActionCallback?);
-    method public void resume(android.os.Bundle?, androidx.mediarouter.media.RemotePlaybackClient.SessionActionCallback?);
-    method public void seek(String, long, android.os.Bundle?, androidx.mediarouter.media.RemotePlaybackClient.ItemActionCallback?);
-    method public void sendMessage(android.os.Bundle?, androidx.mediarouter.media.RemotePlaybackClient.SessionActionCallback?);
-    method public void setOnMessageReceivedListener(androidx.mediarouter.media.RemotePlaybackClient.OnMessageReceivedListener?);
-    method public void setSessionId(String?);
-    method public void setStatusCallback(androidx.mediarouter.media.RemotePlaybackClient.StatusCallback?);
-    method public void startSession(android.os.Bundle?, androidx.mediarouter.media.RemotePlaybackClient.SessionActionCallback?);
-    method public void stop(android.os.Bundle?, androidx.mediarouter.media.RemotePlaybackClient.SessionActionCallback?);
-  }
-
-  public abstract static class RemotePlaybackClient.ActionCallback {
-    ctor public RemotePlaybackClient.ActionCallback();
-    method public void onError(String?, int, android.os.Bundle?);
-  }
-
-  public abstract static class RemotePlaybackClient.ItemActionCallback extends androidx.mediarouter.media.RemotePlaybackClient.ActionCallback {
-    ctor public RemotePlaybackClient.ItemActionCallback();
-    method public void onResult(android.os.Bundle, String, androidx.mediarouter.media.MediaSessionStatus?, String, androidx.mediarouter.media.MediaItemStatus);
-  }
-
-  public static interface RemotePlaybackClient.OnMessageReceivedListener {
-    method public void onMessageReceived(String, android.os.Bundle?);
-  }
-
-  public abstract static class RemotePlaybackClient.SessionActionCallback extends androidx.mediarouter.media.RemotePlaybackClient.ActionCallback {
-    ctor public RemotePlaybackClient.SessionActionCallback();
-    method public void onResult(android.os.Bundle, String, androidx.mediarouter.media.MediaSessionStatus?);
-  }
-
-  public abstract static class RemotePlaybackClient.StatusCallback {
-    ctor public RemotePlaybackClient.StatusCallback();
-    method public void onItemStatusChanged(android.os.Bundle?, String, androidx.mediarouter.media.MediaSessionStatus?, String, androidx.mediarouter.media.MediaItemStatus);
-    method public void onSessionChanged(String?);
-    method public void onSessionStatusChanged(android.os.Bundle?, String, androidx.mediarouter.media.MediaSessionStatus?);
-  }
-
-}
-
diff --git a/mediarouter/mediarouter/api/restricted_current.txt b/mediarouter/mediarouter/api/restricted_current.txt
index fbe13f9..3fb8c40 100644
--- a/mediarouter/mediarouter/api/restricted_current.txt
+++ b/mediarouter/mediarouter/api/restricted_current.txt
@@ -447,7 +447,15 @@
     field public static final int CONNECTION_STATE_CONNECTED = 2; // 0x2
     field public static final int CONNECTION_STATE_CONNECTING = 1; // 0x1
     field public static final int CONNECTION_STATE_DISCONNECTED = 0; // 0x0
+    field public static final int DEVICE_TYPE_AUDIO_VIDEO_RECEIVER = 4; // 0x4
+    field public static final int DEVICE_TYPE_CAR = 9; // 0x9
+    field public static final int DEVICE_TYPE_COMPUTER = 7; // 0x7
+    field public static final int DEVICE_TYPE_GAME_CONSOLE = 8; // 0x8
+    field public static final int DEVICE_TYPE_GROUP = 1000; // 0x3e8
+    field public static final int DEVICE_TYPE_SMARTWATCH = 10; // 0xa
     field public static final int DEVICE_TYPE_SPEAKER = 2; // 0x2
+    field public static final int DEVICE_TYPE_TABLET = 5; // 0x5
+    field public static final int DEVICE_TYPE_TABLET_DOCKED = 6; // 0x6
     field public static final int DEVICE_TYPE_TV = 1; // 0x1
     field public static final int PLAYBACK_TYPE_LOCAL = 0; // 0x0
     field public static final int PLAYBACK_TYPE_REMOTE = 1; // 0x1
diff --git a/mediarouter/mediarouter/src/main/java/androidx/mediarouter/media/MediaRouteDescriptor.java b/mediarouter/mediarouter/src/main/java/androidx/mediarouter/media/MediaRouteDescriptor.java
index 5976828..a202f44 100644
--- a/mediarouter/mediarouter/src/main/java/androidx/mediarouter/media/MediaRouteDescriptor.java
+++ b/mediarouter/mediarouter/src/main/java/androidx/mediarouter/media/MediaRouteDescriptor.java
@@ -263,10 +263,9 @@
     /**
      * Gets the type of the receiver device associated with this route.
      *
-     * @return The type of the receiver device associated with this route:
-     * {@link MediaRouter.RouteInfo#DEVICE_TYPE_TV} or
-     * {@link MediaRouter.RouteInfo#DEVICE_TYPE_SPEAKER}.
+     * @return The type of the receiver device associated with this route.
      */
+    @MediaRouter.RouteInfo.DeviceType
     public int getDeviceType() {
         return mBundle.getInt(KEY_DEVICE_TYPE);
     }
@@ -718,12 +717,10 @@
         /**
          * Sets the route's receiver device type.
          *
-         * @param deviceType The receive device type of the route:
-         * {@link MediaRouter.RouteInfo#DEVICE_TYPE_TV} or
-         * {@link MediaRouter.RouteInfo#DEVICE_TYPE_SPEAKER}.
+         * @param deviceType The type of the receiver device.
          */
         @NonNull
-        public Builder setDeviceType(int deviceType) {
+        public Builder setDeviceType(@MediaRouter.RouteInfo.DeviceType int deviceType) {
             mBundle.putInt(KEY_DEVICE_TYPE, deviceType);
             return this;
         }
diff --git a/mediarouter/mediarouter/src/main/java/androidx/mediarouter/media/MediaRouter.java b/mediarouter/mediarouter/src/main/java/androidx/mediarouter/media/MediaRouter.java
index 44d918b..dd04930 100644
--- a/mediarouter/mediarouter/src/main/java/androidx/mediarouter/media/MediaRouter.java
+++ b/mediarouter/mediarouter/src/main/java/androidx/mediarouter/media/MediaRouter.java
@@ -1151,9 +1151,23 @@
          */
         public static final int PLAYBACK_TYPE_REMOTE = 1;
 
-        @IntDef({DEVICE_TYPE_UNKNOWN, DEVICE_TYPE_TV, DEVICE_TYPE_SPEAKER, DEVICE_TYPE_BLUETOOTH})
+        @RestrictTo(LIBRARY)
+        @IntDef({
+            DEVICE_TYPE_UNKNOWN,
+            DEVICE_TYPE_TV,
+            DEVICE_TYPE_SPEAKER,
+            DEVICE_TYPE_BLUETOOTH,
+            DEVICE_TYPE_AUDIO_VIDEO_RECEIVER,
+            DEVICE_TYPE_TABLET,
+            DEVICE_TYPE_TABLET_DOCKED,
+            DEVICE_TYPE_COMPUTER,
+            DEVICE_TYPE_GAME_CONSOLE,
+            DEVICE_TYPE_CAR,
+            DEVICE_TYPE_SMARTWATCH,
+            DEVICE_TYPE_GROUP
+        })
         @Retention(RetentionPolicy.SOURCE)
-        private @interface DeviceType {}
+        public @interface DeviceType {}
 
         /**
          * The default receiver device type of the route indicating the type is unknown.
@@ -1188,6 +1202,63 @@
         @RestrictTo(LIBRARY)
         public static final int DEVICE_TYPE_BLUETOOTH = 3;
 
+        /**
+         * A receiver device type indicating that the presentation of the media is happening on an
+         * Audio/Video receiver (AVR).
+         *
+         * @see #getDeviceType
+         */
+        public static final int DEVICE_TYPE_AUDIO_VIDEO_RECEIVER = 4;
+        /**
+         * A receiver device type indicating that the presentation of the media is happening on a
+         * tablet.
+         *
+         * @see #getDeviceType
+         */
+        public static final int DEVICE_TYPE_TABLET = 5;
+        /**
+         * A receiver device type indicating that the presentation of the media is happening on a
+         * docked tablet.
+         *
+         * @see #getDeviceType
+         */
+        public static final int DEVICE_TYPE_TABLET_DOCKED = 6;
+        /**
+         * A receiver device type indicating that the presentation of the media is happening on a
+         * computer.
+         *
+         * @see #getDeviceType
+         */
+        public static final int DEVICE_TYPE_COMPUTER = 7;
+        /**
+         * A receiver device type indicating that the presentation of the media is happening on a
+         * gaming console.
+         *
+         * @see #getDeviceType
+         */
+        public static final int DEVICE_TYPE_GAME_CONSOLE = 8;
+        /**
+         * A receiver device type indicating that the presentation of the media is happening on a
+         * car.
+         *
+         * @see #getDeviceType
+         */
+        public static final int DEVICE_TYPE_CAR = 9;
+        /**
+         * A receiver device type indicating that the presentation of the media is happening on a
+         * smartwatch.
+         *
+         * @see #getDeviceType
+         */
+        public static final int DEVICE_TYPE_SMARTWATCH = 10;
+        /**
+         * A receiver device type indicating that the presentation of the media is happening on a
+         * group of devices.
+         *
+         * @see #getDeviceType
+         */
+        public static final int DEVICE_TYPE_GROUP = 1000;
+
         @IntDef({PLAYBACK_VOLUME_FIXED,PLAYBACK_VOLUME_VARIABLE})
         @Retention(RetentionPolicy.SOURCE)
         private @interface PlaybackVolume {}
@@ -1589,9 +1660,9 @@
         /**
          * Gets the type of the receiver device associated with this route.
          *
-         * @return The type of the receiver device associated with this route:
-         * {@link #DEVICE_TYPE_TV} or {@link #DEVICE_TYPE_SPEAKER}.
+         * @return The type of the receiver device associated with this route.
          */
+        @DeviceType
         public int getDeviceType() {
             return mDeviceType;
         }
diff --git a/mediarouter/mediarouter/src/main/java/androidx/mediarouter/media/SystemMediaRouteProvider.java b/mediarouter/mediarouter/src/main/java/androidx/mediarouter/media/SystemMediaRouteProvider.java
index 2648406..74c12ed 100644
--- a/mediarouter/mediarouter/src/main/java/androidx/mediarouter/media/SystemMediaRouteProvider.java
+++ b/mediarouter/mediarouter/src/main/java/androidx/mediarouter/media/SystemMediaRouteProvider.java
@@ -16,6 +16,7 @@
 
 package androidx.mediarouter.media;
 
+import android.annotation.SuppressLint;
 import android.content.BroadcastReceiver;
 import android.content.ComponentName;
 import android.content.Context;
@@ -862,6 +863,7 @@
             super(context, syncCallback);
         }
 
+        @SuppressLint("WrongConstant") // False positive. See b/283059575.
         @Override
         @DoNotInline
         protected void onBuildSystemRouteDescriptor(SystemRouteRecord record,
diff --git a/mediarouter/mediarouter/src/main/res/values-af/strings.xml b/mediarouter/mediarouter/src/main/res/values-af/strings.xml
index d92200d..bd833f3 100644
--- a/mediarouter/mediarouter/src/main/res/values-af/strings.xml
+++ b/mediarouter/mediarouter/src/main/res/values-af/strings.xml
@@ -41,12 +41,8 @@
     <string name="mr_dialog_groupable_header" msgid="4307018456678388936">"Voeg \'n toestel by"</string>
     <string name="mr_dialog_transferable_header" msgid="6068257520605505468">"Speel op \'n groep"</string>
     <string name="mr_cast_dialog_title_view_placeholder" msgid="2175930138959078155">"Geen inligting beskikbaar nie"</string>
-    <!-- no translation found for mr_chooser_zero_routes_found_title (5213435473397442608) -->
-    <skip />
-    <!-- no translation found for mr_chooser_zero_routes_description (5123320430013505927) -->
-    <skip />
-    <!-- no translation found for mr_chooser_wifi_warning_description (337903053432238985) -->
-    <skip />
-    <!-- no translation found for mr_chooser_done_button_label (7897288652928484627) -->
-    <skip />
+    <string name="mr_chooser_zero_routes_found_title" msgid="5213435473397442608">"Geen toestelle beskikbaar nie"</string>
+    <string name="mr_chooser_zero_routes_description" msgid="5123320430013505927">"Kan nie toestelle kry nie. Maak seker dat jou toestel en die uitsaaitoestel in dieselfde wi-fi-netwerk is en probeer weer."</string>
+    <string name="mr_chooser_wifi_warning_description" msgid="337903053432238985">"Maak seker dat jou toestel en die uitsaaitoestel in dieselfde wi-fi-netwerk is."</string>
+    <string name="mr_chooser_done_button_label" msgid="7897288652928484627">"Klaar"</string>
 </resources>
diff --git a/mediarouter/mediarouter/src/main/res/values-am/strings.xml b/mediarouter/mediarouter/src/main/res/values-am/strings.xml
index b68b906..4619b0d1 100644
--- a/mediarouter/mediarouter/src/main/res/values-am/strings.xml
+++ b/mediarouter/mediarouter/src/main/res/values-am/strings.xml
@@ -41,12 +41,8 @@
     <string name="mr_dialog_groupable_header" msgid="4307018456678388936">"መሣሪያ ያክሉ"</string>
     <string name="mr_dialog_transferable_header" msgid="6068257520605505468">"በቡድን ላይ ያጫውቱ"</string>
     <string name="mr_cast_dialog_title_view_placeholder" msgid="2175930138959078155">"ምንም መረጃ አይገኝም"</string>
-    <!-- no translation found for mr_chooser_zero_routes_found_title (5213435473397442608) -->
-    <skip />
-    <!-- no translation found for mr_chooser_zero_routes_description (5123320430013505927) -->
-    <skip />
-    <!-- no translation found for mr_chooser_wifi_warning_description (337903053432238985) -->
-    <skip />
-    <!-- no translation found for mr_chooser_done_button_label (7897288652928484627) -->
-    <skip />
+    <string name="mr_chooser_zero_routes_found_title" msgid="5213435473397442608">"ምንም መሣሪያዎች አይገኙም"</string>
+    <string name="mr_chooser_zero_routes_description" msgid="5123320430013505927">"መሣሪያዎችን ማግኘት አልተቻለም፣ መሣሪያዎ እና የChromecast መሣሪያው በተመሳሳይ የWi-Fi አውታረ መረብ ላይ እንደሆኑ ያረጋግጡ እና እንደገና ይሞክሩ።"</string>
+    <string name="mr_chooser_wifi_warning_description" msgid="337903053432238985">"መሣሪያዎ እና የChromecast መሣሪያው በተመሳሳይ የWi-Fi አውታረ መረብ ላይ እንደሆኑ ያረጋግጡ።"</string>
+    <string name="mr_chooser_done_button_label" msgid="7897288652928484627">"ተከናውኗል"</string>
 </resources>
diff --git a/mediarouter/mediarouter/src/main/res/values-ar/strings.xml b/mediarouter/mediarouter/src/main/res/values-ar/strings.xml
index 360dd7b..7d41901 100644
--- a/mediarouter/mediarouter/src/main/res/values-ar/strings.xml
+++ b/mediarouter/mediarouter/src/main/res/values-ar/strings.xml
@@ -41,12 +41,8 @@
     <string name="mr_dialog_groupable_header" msgid="4307018456678388936">"إضافة جهاز"</string>
     <string name="mr_dialog_transferable_header" msgid="6068257520605505468">"تشغيل على مجموعة من الأجهزة"</string>
     <string name="mr_cast_dialog_title_view_placeholder" msgid="2175930138959078155">"لا تتوفر أي معلومات"</string>
-    <!-- no translation found for mr_chooser_zero_routes_found_title (5213435473397442608) -->
-    <skip />
-    <!-- no translation found for mr_chooser_zero_routes_description (5123320430013505927) -->
-    <skip />
-    <!-- no translation found for mr_chooser_wifi_warning_description (337903053432238985) -->
-    <skip />
-    <!-- no translation found for mr_chooser_done_button_label (7897288652928484627) -->
-    <skip />
+    <string name="mr_chooser_zero_routes_found_title" msgid="5213435473397442608">"لا تتوفّر أي أجهزة"</string>
+    <string name="mr_chooser_zero_routes_description" msgid="5123320430013505927">"‏يتعذّر العثور على أجهزة. تأكَّد من أنّ جهازك وجهاز البثّ متصلان بشبكة Wi-Fi نفسها."</string>
+    <string name="mr_chooser_wifi_warning_description" msgid="337903053432238985">"‏تأكَّد من أنّ جهازك وجهاز البثّ متصلان بشبكة Wi-Fi نفسها."</string>
+    <string name="mr_chooser_done_button_label" msgid="7897288652928484627">"تم"</string>
 </resources>
diff --git a/mediarouter/mediarouter/src/main/res/values-as/strings.xml b/mediarouter/mediarouter/src/main/res/values-as/strings.xml
index ed65579..60b9c9f 100644
--- a/mediarouter/mediarouter/src/main/res/values-as/strings.xml
+++ b/mediarouter/mediarouter/src/main/res/values-as/strings.xml
@@ -41,12 +41,8 @@
     <string name="mr_dialog_groupable_header" msgid="4307018456678388936">"কোনো এটা ডিভাইচ যোগ কৰক"</string>
     <string name="mr_dialog_transferable_header" msgid="6068257520605505468">"কোনো এটা গোটত প্লে’ কৰক"</string>
     <string name="mr_cast_dialog_title_view_placeholder" msgid="2175930138959078155">"কোনো তথ্য নাই"</string>
-    <!-- no translation found for mr_chooser_zero_routes_found_title (5213435473397442608) -->
-    <skip />
-    <!-- no translation found for mr_chooser_zero_routes_description (5123320430013505927) -->
-    <skip />
-    <!-- no translation found for mr_chooser_wifi_warning_description (337903053432238985) -->
-    <skip />
-    <!-- no translation found for mr_chooser_done_button_label (7897288652928484627) -->
-    <skip />
+    <string name="mr_chooser_zero_routes_found_title" msgid="5213435473397442608">"কোনো ডিভাইচ উপলব্ধ নহয়"</string>
+    <string name="mr_chooser_zero_routes_description" msgid="5123320430013505927">"ডিভাইচ বিচাৰি পাবলৈ সক্ষম হোৱা নাই, আপোনাৰ ডিভাইচটো আৰু কাষ্ট কৰা ডিভাইচটো একেটা ৱাই-ফাই নেটৱৰ্কত থকাটো নিশ্চিত কৰক।"</string>
+    <string name="mr_chooser_wifi_warning_description" msgid="337903053432238985">"আপোনাৰ ডিভাইচটো আৰু কাষ্ট কৰা ডিভাইচটো একেটা ৱাই-ফাই নেটৱৰ্কত থকাটো নিশ্চিত কৰক।"</string>
+    <string name="mr_chooser_done_button_label" msgid="7897288652928484627">"কৰা হ’ল"</string>
 </resources>
diff --git a/mediarouter/mediarouter/src/main/res/values-az/strings.xml b/mediarouter/mediarouter/src/main/res/values-az/strings.xml
index f178a7ee..20ee3c1 100644
--- a/mediarouter/mediarouter/src/main/res/values-az/strings.xml
+++ b/mediarouter/mediarouter/src/main/res/values-az/strings.xml
@@ -41,12 +41,8 @@
     <string name="mr_dialog_groupable_header" msgid="4307018456678388936">"Cihaz əlavə edin"</string>
     <string name="mr_dialog_transferable_header" msgid="6068257520605505468">"Qrupda oxudun"</string>
     <string name="mr_cast_dialog_title_view_placeholder" msgid="2175930138959078155">"Əlçatan məlumat yoxdur"</string>
-    <!-- no translation found for mr_chooser_zero_routes_found_title (5213435473397442608) -->
-    <skip />
-    <!-- no translation found for mr_chooser_zero_routes_description (5123320430013505927) -->
-    <skip />
-    <!-- no translation found for mr_chooser_wifi_warning_description (337903053432238985) -->
-    <skip />
-    <!-- no translation found for mr_chooser_done_button_label (7897288652928484627) -->
-    <skip />
+    <string name="mr_chooser_zero_routes_found_title" msgid="5213435473397442608">"Əlçatan cihaz yoxdur"</string>
+    <string name="mr_chooser_zero_routes_description" msgid="5123320430013505927">"Cihazları tapmaq olmur. Cihaz və Yayım cihazının eyni Wi-Fi şəbəkəsində olduğuna əmin olub, yenidən cəhd edin."</string>
+    <string name="mr_chooser_wifi_warning_description" msgid="337903053432238985">"Cihaz və Yayım cihazı eyni Wi-Fi şəbəkəsində olmalıdır."</string>
+    <string name="mr_chooser_done_button_label" msgid="7897288652928484627">"Hazırdır"</string>
 </resources>
diff --git a/mediarouter/mediarouter/src/main/res/values-b+sr+Latn/strings.xml b/mediarouter/mediarouter/src/main/res/values-b+sr+Latn/strings.xml
index 482284d..e27efdc 100644
--- a/mediarouter/mediarouter/src/main/res/values-b+sr+Latn/strings.xml
+++ b/mediarouter/mediarouter/src/main/res/values-b+sr+Latn/strings.xml
@@ -41,12 +41,8 @@
     <string name="mr_dialog_groupable_header" msgid="4307018456678388936">"Dodajte uređaj"</string>
     <string name="mr_dialog_transferable_header" msgid="6068257520605505468">"Puštajte u grupi"</string>
     <string name="mr_cast_dialog_title_view_placeholder" msgid="2175930138959078155">"Nema dostupnih informacija"</string>
-    <!-- no translation found for mr_chooser_zero_routes_found_title (5213435473397442608) -->
-    <skip />
-    <!-- no translation found for mr_chooser_zero_routes_description (5123320430013505927) -->
-    <skip />
-    <!-- no translation found for mr_chooser_wifi_warning_description (337903053432238985) -->
-    <skip />
-    <!-- no translation found for mr_chooser_done_button_label (7897288652928484627) -->
-    <skip />
+    <string name="mr_chooser_zero_routes_found_title" msgid="5213435473397442608">"Nije dostupan nijedan uređaj"</string>
+    <string name="mr_chooser_zero_routes_description" msgid="5123320430013505927">"Nismo pronašli uređaje. Uverite se da su vaš uređaj i uređaj za prebacivanje na istoj WiFi mreži."</string>
+    <string name="mr_chooser_wifi_warning_description" msgid="337903053432238985">"Uverite se da su uređaj i uređaj za prebacivanje na istoj WiFi mreži."</string>
+    <string name="mr_chooser_done_button_label" msgid="7897288652928484627">"Gotovo"</string>
 </resources>
diff --git a/mediarouter/mediarouter/src/main/res/values-be/strings.xml b/mediarouter/mediarouter/src/main/res/values-be/strings.xml
index 9edfde2..cdbeea5 100644
--- a/mediarouter/mediarouter/src/main/res/values-be/strings.xml
+++ b/mediarouter/mediarouter/src/main/res/values-be/strings.xml
@@ -41,12 +41,8 @@
     <string name="mr_dialog_groupable_header" msgid="4307018456678388936">"Дадаць прыладу"</string>
     <string name="mr_dialog_transferable_header" msgid="6068257520605505468">"Прайграць на групе прылад"</string>
     <string name="mr_cast_dialog_title_view_placeholder" msgid="2175930138959078155">"Інфармацыя адсутнічае"</string>
-    <!-- no translation found for mr_chooser_zero_routes_found_title (5213435473397442608) -->
-    <skip />
-    <!-- no translation found for mr_chooser_zero_routes_description (5123320430013505927) -->
-    <skip />
-    <!-- no translation found for mr_chooser_wifi_warning_description (337903053432238985) -->
-    <skip />
-    <!-- no translation found for mr_chooser_done_button_label (7897288652928484627) -->
-    <skip />
+    <string name="mr_chooser_zero_routes_found_title" msgid="5213435473397442608">"Няма даступных прылад"</string>
+    <string name="mr_chooser_zero_routes_description" msgid="5123320430013505927">"Не ўдалося знайсці прыладу. Пераканайцеся, што ваша прылада і прылада для трансляцыі падключаны да адной і той жа сеткі Wi-Fi."</string>
+    <string name="mr_chooser_wifi_warning_description" msgid="337903053432238985">"Пераканайцеся, што ваша прылада і прылада для трансляцыі падключаны да адной і той жа сеткі Wi-Fi."</string>
+    <string name="mr_chooser_done_button_label" msgid="7897288652928484627">"Гатова"</string>
 </resources>
diff --git a/mediarouter/mediarouter/src/main/res/values-bg/strings.xml b/mediarouter/mediarouter/src/main/res/values-bg/strings.xml
index 497a794..1d7862c 100644
--- a/mediarouter/mediarouter/src/main/res/values-bg/strings.xml
+++ b/mediarouter/mediarouter/src/main/res/values-bg/strings.xml
@@ -41,12 +41,8 @@
     <string name="mr_dialog_groupable_header" msgid="4307018456678388936">"Добавяне на устройство"</string>
     <string name="mr_dialog_transferable_header" msgid="6068257520605505468">"Възпроизвеждане в група"</string>
     <string name="mr_cast_dialog_title_view_placeholder" msgid="2175930138959078155">"Няма налична информация"</string>
-    <!-- no translation found for mr_chooser_zero_routes_found_title (5213435473397442608) -->
-    <skip />
-    <!-- no translation found for mr_chooser_zero_routes_description (5123320430013505927) -->
-    <skip />
-    <!-- no translation found for mr_chooser_wifi_warning_description (337903053432238985) -->
-    <skip />
-    <!-- no translation found for mr_chooser_done_button_label (7897288652928484627) -->
-    <skip />
+    <string name="mr_chooser_zero_routes_found_title" msgid="5213435473397442608">"Няма налични устройства"</string>
+    <string name="mr_chooser_zero_routes_description" msgid="5123320430013505927">"Не могат да се намерят устройства. Уверете се, че устройството ви и устройството Cast са в една и съща Wi-Fi мрежа, и опитайте отново."</string>
+    <string name="mr_chooser_wifi_warning_description" msgid="337903053432238985">"Уверете се, че устройството ви и устройството Cast са в една и съща Wi-Fi мрежа."</string>
+    <string name="mr_chooser_done_button_label" msgid="7897288652928484627">"Готово"</string>
 </resources>
diff --git a/mediarouter/mediarouter/src/main/res/values-bn/strings.xml b/mediarouter/mediarouter/src/main/res/values-bn/strings.xml
index 7966f96..b494578 100644
--- a/mediarouter/mediarouter/src/main/res/values-bn/strings.xml
+++ b/mediarouter/mediarouter/src/main/res/values-bn/strings.xml
@@ -41,12 +41,8 @@
     <string name="mr_dialog_groupable_header" msgid="4307018456678388936">"একটি ডিভাইস যোগ করুন"</string>
     <string name="mr_dialog_transferable_header" msgid="6068257520605505468">"গ্রুপে প্লে করুন"</string>
     <string name="mr_cast_dialog_title_view_placeholder" msgid="2175930138959078155">"কোনও তথ্য নেই"</string>
-    <!-- no translation found for mr_chooser_zero_routes_found_title (5213435473397442608) -->
-    <skip />
-    <!-- no translation found for mr_chooser_zero_routes_description (5123320430013505927) -->
-    <skip />
-    <!-- no translation found for mr_chooser_wifi_warning_description (337903053432238985) -->
-    <skip />
-    <!-- no translation found for mr_chooser_done_button_label (7897288652928484627) -->
-    <skip />
+    <string name="mr_chooser_zero_routes_found_title" msgid="5213435473397442608">"কোনও ডিভাইস উপলভ্য নেই"</string>
+    <string name="mr_chooser_zero_routes_description" msgid="5123320430013505927">"ডিভাইস খুঁজে না পেলে, আপনার ডিভাইস ও কাস্ট ডিভাইস একই ওয়াই-ফাই নেটওয়ার্কে আছে কিনা তা ভালভাবে দেখে নিয়ে আবার চেষ্টা করুন।"</string>
+    <string name="mr_chooser_wifi_warning_description" msgid="337903053432238985">"আপনার ডিভাইস ও কাস্ট ডিভাইস একই ওয়াই-ফাই নেটওয়ার্কে রয়েছে কিনা তা ভালভাবে দেখে নিন।"</string>
+    <string name="mr_chooser_done_button_label" msgid="7897288652928484627">"হয়ে গেছে"</string>
 </resources>
diff --git a/mediarouter/mediarouter/src/main/res/values-bs/strings.xml b/mediarouter/mediarouter/src/main/res/values-bs/strings.xml
index 3182fd5..212a482 100644
--- a/mediarouter/mediarouter/src/main/res/values-bs/strings.xml
+++ b/mediarouter/mediarouter/src/main/res/values-bs/strings.xml
@@ -41,12 +41,8 @@
     <string name="mr_dialog_groupable_header" msgid="4307018456678388936">"Dodajte uređaj"</string>
     <string name="mr_dialog_transferable_header" msgid="6068257520605505468">"Reproduciranje u grupi"</string>
     <string name="mr_cast_dialog_title_view_placeholder" msgid="2175930138959078155">"Nema dostupnih informacija"</string>
-    <!-- no translation found for mr_chooser_zero_routes_found_title (5213435473397442608) -->
-    <skip />
-    <!-- no translation found for mr_chooser_zero_routes_description (5123320430013505927) -->
-    <skip />
-    <!-- no translation found for mr_chooser_wifi_warning_description (337903053432238985) -->
-    <skip />
-    <!-- no translation found for mr_chooser_done_button_label (7897288652928484627) -->
-    <skip />
+    <string name="mr_chooser_zero_routes_found_title" msgid="5213435473397442608">"Nema dostupnih uređaja"</string>
+    <string name="mr_chooser_zero_routes_description" msgid="5123320430013505927">"Nije moguće pronaći uređaje. Provjerite jesu li vaš uređaj i uređaj za emitiranje na istoj WiFi mreži i pokušajte ponovo."</string>
+    <string name="mr_chooser_wifi_warning_description" msgid="337903053432238985">"Provjerite jesu li vaš uređaj i uređaj za emitiranje na istoj WiFi mreži."</string>
+    <string name="mr_chooser_done_button_label" msgid="7897288652928484627">"Gotovo"</string>
 </resources>
diff --git a/mediarouter/mediarouter/src/main/res/values-ca/strings.xml b/mediarouter/mediarouter/src/main/res/values-ca/strings.xml
index d0641a2..86a8f3e 100644
--- a/mediarouter/mediarouter/src/main/res/values-ca/strings.xml
+++ b/mediarouter/mediarouter/src/main/res/values-ca/strings.xml
@@ -41,12 +41,8 @@
     <string name="mr_dialog_groupable_header" msgid="4307018456678388936">"Afegeix un dispositiu"</string>
     <string name="mr_dialog_transferable_header" msgid="6068257520605505468">"Reprodueix en un grup"</string>
     <string name="mr_cast_dialog_title_view_placeholder" msgid="2175930138959078155">"No hi ha informació disponible"</string>
-    <!-- no translation found for mr_chooser_zero_routes_found_title (5213435473397442608) -->
-    <skip />
-    <!-- no translation found for mr_chooser_zero_routes_description (5123320430013505927) -->
-    <skip />
-    <!-- no translation found for mr_chooser_wifi_warning_description (337903053432238985) -->
-    <skip />
-    <!-- no translation found for mr_chooser_done_button_label (7897288652928484627) -->
-    <skip />
+    <string name="mr_chooser_zero_routes_found_title" msgid="5213435473397442608">"No hi ha cap dispositiu disponible"</string>
+    <string name="mr_chooser_zero_routes_description" msgid="5123320430013505927">"No es poden trobar els dispositius. Assegura\'t que el teu dispositiu i el dispositiu d\'emissió estiguin connectats a la mateixa xarxa Wi‐Fi i torna-ho a provar."</string>
+    <string name="mr_chooser_wifi_warning_description" msgid="337903053432238985">"Comprova que el teu dispositiu i el dispositiu d\'emissió estiguin connectats a la mateixa xarxa Wi‐Fi."</string>
+    <string name="mr_chooser_done_button_label" msgid="7897288652928484627">"Fet"</string>
 </resources>
diff --git a/mediarouter/mediarouter/src/main/res/values-cs/strings.xml b/mediarouter/mediarouter/src/main/res/values-cs/strings.xml
index 1385da1..367b916 100644
--- a/mediarouter/mediarouter/src/main/res/values-cs/strings.xml
+++ b/mediarouter/mediarouter/src/main/res/values-cs/strings.xml
@@ -41,12 +41,8 @@
     <string name="mr_dialog_groupable_header" msgid="4307018456678388936">"Přidání zařízení"</string>
     <string name="mr_dialog_transferable_header" msgid="6068257520605505468">"Přehrávání ve skupině"</string>
     <string name="mr_cast_dialog_title_view_placeholder" msgid="2175930138959078155">"Nejsou k dispozici žádné informace"</string>
-    <!-- no translation found for mr_chooser_zero_routes_found_title (5213435473397442608) -->
-    <skip />
-    <!-- no translation found for mr_chooser_zero_routes_description (5123320430013505927) -->
-    <skip />
-    <!-- no translation found for mr_chooser_wifi_warning_description (337903053432238985) -->
-    <skip />
-    <!-- no translation found for mr_chooser_done_button_label (7897288652928484627) -->
-    <skip />
+    <string name="mr_chooser_zero_routes_found_title" msgid="5213435473397442608">"Nejsou k dispozici žádná zařízení"</string>
+    <string name="mr_chooser_zero_routes_description" msgid="5123320430013505927">"Zařízení se nepodařilo najít. Zařízení a streamovací zařízení musí být připojeny ke stejné síti Wi-Fi. Zkuste to znovu."</string>
+    <string name="mr_chooser_wifi_warning_description" msgid="337903053432238985">"Zařízení a streamovací zařízení musí být připojeny ke stejné síti Wi-Fi."</string>
+    <string name="mr_chooser_done_button_label" msgid="7897288652928484627">"Hotovo"</string>
 </resources>
diff --git a/mediarouter/mediarouter/src/main/res/values-da/strings.xml b/mediarouter/mediarouter/src/main/res/values-da/strings.xml
index b385462..de4ce91 100644
--- a/mediarouter/mediarouter/src/main/res/values-da/strings.xml
+++ b/mediarouter/mediarouter/src/main/res/values-da/strings.xml
@@ -41,12 +41,8 @@
     <string name="mr_dialog_groupable_header" msgid="4307018456678388936">"Tilføj en enhed"</string>
     <string name="mr_dialog_transferable_header" msgid="6068257520605505468">"Afspil på en gruppe"</string>
     <string name="mr_cast_dialog_title_view_placeholder" msgid="2175930138959078155">"Der er ingen tilgængelige oplysninger"</string>
-    <!-- no translation found for mr_chooser_zero_routes_found_title (5213435473397442608) -->
-    <skip />
-    <!-- no translation found for mr_chooser_zero_routes_description (5123320430013505927) -->
-    <skip />
-    <!-- no translation found for mr_chooser_wifi_warning_description (337903053432238985) -->
-    <skip />
-    <!-- no translation found for mr_chooser_done_button_label (7897288652928484627) -->
-    <skip />
+    <string name="mr_chooser_zero_routes_found_title" msgid="5213435473397442608">"Der er ingen tilgængelige enheder"</string>
+    <string name="mr_chooser_zero_routes_description" msgid="5123320430013505927">"Det var ikke muligt at finde enhederne. Sørg for, at din enhed og Cast-enheden har forbindelse til det samme Wi-Fi-netværk, og prøv igen."</string>
+    <string name="mr_chooser_wifi_warning_description" msgid="337903053432238985">"Sørg for, at din enhed og Cast-enheden har forbindelse til det samme Wi-Fi-netværk."</string>
+    <string name="mr_chooser_done_button_label" msgid="7897288652928484627">"Udfør"</string>
 </resources>
diff --git a/mediarouter/mediarouter/src/main/res/values-de/strings.xml b/mediarouter/mediarouter/src/main/res/values-de/strings.xml
index 65cdfe6..5a2f44c 100644
--- a/mediarouter/mediarouter/src/main/res/values-de/strings.xml
+++ b/mediarouter/mediarouter/src/main/res/values-de/strings.xml
@@ -41,12 +41,8 @@
     <string name="mr_dialog_groupable_header" msgid="4307018456678388936">"Gerät hinzufügen"</string>
     <string name="mr_dialog_transferable_header" msgid="6068257520605505468">"Auf einem Gruppengerät abspielen"</string>
     <string name="mr_cast_dialog_title_view_placeholder" msgid="2175930138959078155">"Keine Informationen verfügbar"</string>
-    <!-- no translation found for mr_chooser_zero_routes_found_title (5213435473397442608) -->
-    <skip />
-    <!-- no translation found for mr_chooser_zero_routes_description (5123320430013505927) -->
-    <skip />
-    <!-- no translation found for mr_chooser_wifi_warning_description (337903053432238985) -->
-    <skip />
-    <!-- no translation found for mr_chooser_done_button_label (7897288652928484627) -->
-    <skip />
+    <string name="mr_chooser_zero_routes_found_title" msgid="5213435473397442608">"Keine Geräte verfügbar"</string>
+    <string name="mr_chooser_zero_routes_description" msgid="5123320430013505927">"Geräte konnten nicht gefunden werden. Prüfe, ob dein Gerät und das Übertragungsgerät mit demselben WLAN verbunden sind."</string>
+    <string name="mr_chooser_wifi_warning_description" msgid="337903053432238985">"Achte darauf, dass dein Gerät und das Übertragungsgerät mit demselben WLAN verbunden sind."</string>
+    <string name="mr_chooser_done_button_label" msgid="7897288652928484627">"Fertig"</string>
 </resources>
diff --git a/mediarouter/mediarouter/src/main/res/values-el/strings.xml b/mediarouter/mediarouter/src/main/res/values-el/strings.xml
index 6d2abc3..aa0ada2 100644
--- a/mediarouter/mediarouter/src/main/res/values-el/strings.xml
+++ b/mediarouter/mediarouter/src/main/res/values-el/strings.xml
@@ -41,12 +41,8 @@
     <string name="mr_dialog_groupable_header" msgid="4307018456678388936">"Προσθήκη συσκευής"</string>
     <string name="mr_dialog_transferable_header" msgid="6068257520605505468">"Αναπαραγωγή σε κάποια ομάδα"</string>
     <string name="mr_cast_dialog_title_view_placeholder" msgid="2175930138959078155">"Δεν υπάρχουν διαθέσιμες πληροφορίες"</string>
-    <!-- no translation found for mr_chooser_zero_routes_found_title (5213435473397442608) -->
-    <skip />
-    <!-- no translation found for mr_chooser_zero_routes_description (5123320430013505927) -->
-    <skip />
-    <!-- no translation found for mr_chooser_wifi_warning_description (337903053432238985) -->
-    <skip />
-    <!-- no translation found for mr_chooser_done_button_label (7897288652928484627) -->
-    <skip />
+    <string name="mr_chooser_zero_routes_found_title" msgid="5213435473397442608">"Δεν υπάρχουν διαθέσιμες συσκευές"</string>
+    <string name="mr_chooser_zero_routes_description" msgid="5123320430013505927">"Δεν είναι δυνατή η εύρεση συσκευών. Βεβαιωθείτε ότι η συσκευή σας και η συσκευή μετάδοσης είναι στο ίδιο δίκτυο Wi-Fi και δοκιμάστε ξανά."</string>
+    <string name="mr_chooser_wifi_warning_description" msgid="337903053432238985">"Βεβαιωθείτε ότι η συσκευή σας και η συσκευή μετάδοσης είναι στο ίδιο δίκτυο Wi-Fi."</string>
+    <string name="mr_chooser_done_button_label" msgid="7897288652928484627">"Τέλος"</string>
 </resources>
diff --git a/mediarouter/mediarouter/src/main/res/values-en-rAU/strings.xml b/mediarouter/mediarouter/src/main/res/values-en-rAU/strings.xml
index 0af3fbc..5f58f94 100644
--- a/mediarouter/mediarouter/src/main/res/values-en-rAU/strings.xml
+++ b/mediarouter/mediarouter/src/main/res/values-en-rAU/strings.xml
@@ -41,12 +41,8 @@
     <string name="mr_dialog_groupable_header" msgid="4307018456678388936">"Add a device"</string>
     <string name="mr_dialog_transferable_header" msgid="6068257520605505468">"Play on a group"</string>
     <string name="mr_cast_dialog_title_view_placeholder" msgid="2175930138959078155">"No info available"</string>
-    <!-- no translation found for mr_chooser_zero_routes_found_title (5213435473397442608) -->
-    <skip />
-    <!-- no translation found for mr_chooser_zero_routes_description (5123320430013505927) -->
-    <skip />
-    <!-- no translation found for mr_chooser_wifi_warning_description (337903053432238985) -->
-    <skip />
-    <!-- no translation found for mr_chooser_done_button_label (7897288652928484627) -->
-    <skip />
+    <string name="mr_chooser_zero_routes_found_title" msgid="5213435473397442608">"No devices available"</string>
+    <string name="mr_chooser_zero_routes_description" msgid="5123320430013505927">"Unable to find devices, make sure that your device and the cast device are on the same Wi-Fi network and try again."</string>
+    <string name="mr_chooser_wifi_warning_description" msgid="337903053432238985">"Make sure that your device and the cast device are on the same Wi-Fi network."</string>
+    <string name="mr_chooser_done_button_label" msgid="7897288652928484627">"Done"</string>
 </resources>
diff --git a/mediarouter/mediarouter/src/main/res/values-en-rGB/strings.xml b/mediarouter/mediarouter/src/main/res/values-en-rGB/strings.xml
index 0af3fbc..5f58f94 100644
--- a/mediarouter/mediarouter/src/main/res/values-en-rGB/strings.xml
+++ b/mediarouter/mediarouter/src/main/res/values-en-rGB/strings.xml
@@ -41,12 +41,8 @@
     <string name="mr_dialog_groupable_header" msgid="4307018456678388936">"Add a device"</string>
     <string name="mr_dialog_transferable_header" msgid="6068257520605505468">"Play on a group"</string>
     <string name="mr_cast_dialog_title_view_placeholder" msgid="2175930138959078155">"No info available"</string>
-    <!-- no translation found for mr_chooser_zero_routes_found_title (5213435473397442608) -->
-    <skip />
-    <!-- no translation found for mr_chooser_zero_routes_description (5123320430013505927) -->
-    <skip />
-    <!-- no translation found for mr_chooser_wifi_warning_description (337903053432238985) -->
-    <skip />
-    <!-- no translation found for mr_chooser_done_button_label (7897288652928484627) -->
-    <skip />
+    <string name="mr_chooser_zero_routes_found_title" msgid="5213435473397442608">"No devices available"</string>
+    <string name="mr_chooser_zero_routes_description" msgid="5123320430013505927">"Unable to find devices, make sure that your device and the cast device are on the same Wi-Fi network and try again."</string>
+    <string name="mr_chooser_wifi_warning_description" msgid="337903053432238985">"Make sure that your device and the cast device are on the same Wi-Fi network."</string>
+    <string name="mr_chooser_done_button_label" msgid="7897288652928484627">"Done"</string>
 </resources>
diff --git a/mediarouter/mediarouter/src/main/res/values-en-rIN/strings.xml b/mediarouter/mediarouter/src/main/res/values-en-rIN/strings.xml
index 0af3fbc..5f58f94 100644
--- a/mediarouter/mediarouter/src/main/res/values-en-rIN/strings.xml
+++ b/mediarouter/mediarouter/src/main/res/values-en-rIN/strings.xml
@@ -41,12 +41,8 @@
     <string name="mr_dialog_groupable_header" msgid="4307018456678388936">"Add a device"</string>
     <string name="mr_dialog_transferable_header" msgid="6068257520605505468">"Play on a group"</string>
     <string name="mr_cast_dialog_title_view_placeholder" msgid="2175930138959078155">"No info available"</string>
-    <!-- no translation found for mr_chooser_zero_routes_found_title (5213435473397442608) -->
-    <skip />
-    <!-- no translation found for mr_chooser_zero_routes_description (5123320430013505927) -->
-    <skip />
-    <!-- no translation found for mr_chooser_wifi_warning_description (337903053432238985) -->
-    <skip />
-    <!-- no translation found for mr_chooser_done_button_label (7897288652928484627) -->
-    <skip />
+    <string name="mr_chooser_zero_routes_found_title" msgid="5213435473397442608">"No devices available"</string>
+    <string name="mr_chooser_zero_routes_description" msgid="5123320430013505927">"Unable to find devices, make sure that your device and the cast device are on the same Wi-Fi network and try again."</string>
+    <string name="mr_chooser_wifi_warning_description" msgid="337903053432238985">"Make sure that your device and the cast device are on the same Wi-Fi network."</string>
+    <string name="mr_chooser_done_button_label" msgid="7897288652928484627">"Done"</string>
 </resources>
diff --git a/mediarouter/mediarouter/src/main/res/values-es-rUS/strings.xml b/mediarouter/mediarouter/src/main/res/values-es-rUS/strings.xml
index 1aad2e0..939e6ba 100644
--- a/mediarouter/mediarouter/src/main/res/values-es-rUS/strings.xml
+++ b/mediarouter/mediarouter/src/main/res/values-es-rUS/strings.xml
@@ -41,12 +41,8 @@
     <string name="mr_dialog_groupable_header" msgid="4307018456678388936">"Agregar un dispositivo"</string>
     <string name="mr_dialog_transferable_header" msgid="6068257520605505468">"Reproducir en un grupo"</string>
     <string name="mr_cast_dialog_title_view_placeholder" msgid="2175930138959078155">"Sin información disponible"</string>
-    <!-- no translation found for mr_chooser_zero_routes_found_title (5213435473397442608) -->
-    <skip />
-    <!-- no translation found for mr_chooser_zero_routes_description (5123320430013505927) -->
-    <skip />
-    <!-- no translation found for mr_chooser_wifi_warning_description (337903053432238985) -->
-    <skip />
-    <!-- no translation found for mr_chooser_done_button_label (7897288652928484627) -->
-    <skip />
+    <string name="mr_chooser_zero_routes_found_title" msgid="5213435473397442608">"No hay dispositivos disponibles"</string>
+    <string name="mr_chooser_zero_routes_description" msgid="5123320430013505927">"No se encontraron dispositivos. Asegúrate de que tu dispositivo y el dispositivo de transmisión están conectados a la misma red Wi-Fi, y vuelve a intentarlo."</string>
+    <string name="mr_chooser_wifi_warning_description" msgid="337903053432238985">"Asegúrate de que tu dispositivo y el dispositivo de transmisión están conectados a la misma red Wi-Fi."</string>
+    <string name="mr_chooser_done_button_label" msgid="7897288652928484627">"Listo"</string>
 </resources>
diff --git a/mediarouter/mediarouter/src/main/res/values-es/strings.xml b/mediarouter/mediarouter/src/main/res/values-es/strings.xml
index 1352bcd..3559c7a 100644
--- a/mediarouter/mediarouter/src/main/res/values-es/strings.xml
+++ b/mediarouter/mediarouter/src/main/res/values-es/strings.xml
@@ -41,12 +41,8 @@
     <string name="mr_dialog_groupable_header" msgid="4307018456678388936">"Añadir un dispositivo"</string>
     <string name="mr_dialog_transferable_header" msgid="6068257520605505468">"Reproducir en un grupo"</string>
     <string name="mr_cast_dialog_title_view_placeholder" msgid="2175930138959078155">"No hay información disponible"</string>
-    <!-- no translation found for mr_chooser_zero_routes_found_title (5213435473397442608) -->
-    <skip />
-    <!-- no translation found for mr_chooser_zero_routes_description (5123320430013505927) -->
-    <skip />
-    <!-- no translation found for mr_chooser_wifi_warning_description (337903053432238985) -->
-    <skip />
-    <!-- no translation found for mr_chooser_done_button_label (7897288652928484627) -->
-    <skip />
+    <string name="mr_chooser_zero_routes_found_title" msgid="5213435473397442608">"No hay dispositivos disponibles"</string>
+    <string name="mr_chooser_zero_routes_description" msgid="5123320430013505927">"No se han podido encontrar los dispositivos. Comprueba que tu dispositivo y el dispositivo de emisión estén conectados a la misma red Wi-Fi y vuelve a intentarlo."</string>
+    <string name="mr_chooser_wifi_warning_description" msgid="337903053432238985">"Comprueba que tu dispositivo y el dispositivo de emisión estén conectados a la misma red Wi‑Fi."</string>
+    <string name="mr_chooser_done_button_label" msgid="7897288652928484627">"Listo"</string>
 </resources>
diff --git a/mediarouter/mediarouter/src/main/res/values-et/strings.xml b/mediarouter/mediarouter/src/main/res/values-et/strings.xml
index e616867..153797f 100644
--- a/mediarouter/mediarouter/src/main/res/values-et/strings.xml
+++ b/mediarouter/mediarouter/src/main/res/values-et/strings.xml
@@ -41,12 +41,8 @@
     <string name="mr_dialog_groupable_header" msgid="4307018456678388936">"Seadme lisamine"</string>
     <string name="mr_dialog_transferable_header" msgid="6068257520605505468">"Grupis esitamine"</string>
     <string name="mr_cast_dialog_title_view_placeholder" msgid="2175930138959078155">"Teave puudub"</string>
-    <!-- no translation found for mr_chooser_zero_routes_found_title (5213435473397442608) -->
-    <skip />
-    <!-- no translation found for mr_chooser_zero_routes_description (5123320430013505927) -->
-    <skip />
-    <!-- no translation found for mr_chooser_wifi_warning_description (337903053432238985) -->
-    <skip />
-    <!-- no translation found for mr_chooser_done_button_label (7897288652928484627) -->
-    <skip />
+    <string name="mr_chooser_zero_routes_found_title" msgid="5213435473397442608">"Ühtegi seadet pole saadaval"</string>
+    <string name="mr_chooser_zero_routes_description" msgid="5123320430013505927">"Seadmeid ei õnnestu leida. Veenduge, et teie seade ja ülekandeseade oleksid samas WiFi-võrgus, ja proovige uuesti."</string>
+    <string name="mr_chooser_wifi_warning_description" msgid="337903053432238985">"Veenduge, et teie seade ja ülekandeseade oleksid samas WiFi-võrgus."</string>
+    <string name="mr_chooser_done_button_label" msgid="7897288652928484627">"Valmis"</string>
 </resources>
diff --git a/mediarouter/mediarouter/src/main/res/values-eu/strings.xml b/mediarouter/mediarouter/src/main/res/values-eu/strings.xml
index 5a8f9ee..64eb18b 100644
--- a/mediarouter/mediarouter/src/main/res/values-eu/strings.xml
+++ b/mediarouter/mediarouter/src/main/res/values-eu/strings.xml
@@ -41,12 +41,8 @@
     <string name="mr_dialog_groupable_header" msgid="4307018456678388936">"Gehitu gailu bat"</string>
     <string name="mr_dialog_transferable_header" msgid="6068257520605505468">"Erreproduzitu talde batean"</string>
     <string name="mr_cast_dialog_title_view_placeholder" msgid="2175930138959078155">"Ez dago informaziorik"</string>
-    <!-- no translation found for mr_chooser_zero_routes_found_title (5213435473397442608) -->
-    <skip />
-    <!-- no translation found for mr_chooser_zero_routes_description (5123320430013505927) -->
-    <skip />
-    <!-- no translation found for mr_chooser_wifi_warning_description (337903053432238985) -->
-    <skip />
-    <!-- no translation found for mr_chooser_done_button_label (7897288652928484627) -->
-    <skip />
+    <string name="mr_chooser_zero_routes_found_title" msgid="5213435473397442608">"Ez dago gailurik"</string>
+    <string name="mr_chooser_zero_routes_description" msgid="5123320430013505927">"Ezin dira aurkitu gailuak. Ziurtatu gailua eta igorpen-gailua wifi-sare berean daudela. Ondoren, saiatu berriro."</string>
+    <string name="mr_chooser_wifi_warning_description" msgid="337903053432238985">"Ziurtatu gailua eta igorpen-gailua wifi-sare berean daudela."</string>
+    <string name="mr_chooser_done_button_label" msgid="7897288652928484627">"Eginda"</string>
 </resources>
diff --git a/mediarouter/mediarouter/src/main/res/values-fa/strings.xml b/mediarouter/mediarouter/src/main/res/values-fa/strings.xml
index a89fa74..538d9f6 100644
--- a/mediarouter/mediarouter/src/main/res/values-fa/strings.xml
+++ b/mediarouter/mediarouter/src/main/res/values-fa/strings.xml
@@ -41,12 +41,8 @@
     <string name="mr_dialog_groupable_header" msgid="4307018456678388936">"افزودن دستگاه"</string>
     <string name="mr_dialog_transferable_header" msgid="6068257520605505468">"بازی در گروه"</string>
     <string name="mr_cast_dialog_title_view_placeholder" msgid="2175930138959078155">"اطلاعاتی در دسترس نیست"</string>
-    <!-- no translation found for mr_chooser_zero_routes_found_title (5213435473397442608) -->
-    <skip />
-    <!-- no translation found for mr_chooser_zero_routes_description (5123320430013505927) -->
-    <skip />
-    <!-- no translation found for mr_chooser_wifi_warning_description (337903053432238985) -->
-    <skip />
-    <!-- no translation found for mr_chooser_done_button_label (7897288652928484627) -->
-    <skip />
+    <string name="mr_chooser_zero_routes_found_title" msgid="5213435473397442608">"دستگاهی موجود نیست"</string>
+    <string name="mr_chooser_zero_routes_description" msgid="5123320430013505927">"‏دستگاه‌ها پیدا نشدند؛ مطمئن شوید دستگاهتان و «دستگاه پخش» به یک شبکه Wi-Fi متصل باشند و دوباره امتحان کنید."</string>
+    <string name="mr_chooser_wifi_warning_description" msgid="337903053432238985">"‏مطمئن شوید دستگاهتان و «دستگاه پخش» به یک شبکه Wi-Fi متصل باشند."</string>
+    <string name="mr_chooser_done_button_label" msgid="7897288652928484627">"تمام"</string>
 </resources>
diff --git a/mediarouter/mediarouter/src/main/res/values-fi/strings.xml b/mediarouter/mediarouter/src/main/res/values-fi/strings.xml
index 16ecc20..92f367b 100644
--- a/mediarouter/mediarouter/src/main/res/values-fi/strings.xml
+++ b/mediarouter/mediarouter/src/main/res/values-fi/strings.xml
@@ -41,12 +41,8 @@
     <string name="mr_dialog_groupable_header" msgid="4307018456678388936">"Lisää laite"</string>
     <string name="mr_dialog_transferable_header" msgid="6068257520605505468">"Toista ryhmässä"</string>
     <string name="mr_cast_dialog_title_view_placeholder" msgid="2175930138959078155">"Ei tietoja saatavilla"</string>
-    <!-- no translation found for mr_chooser_zero_routes_found_title (5213435473397442608) -->
-    <skip />
-    <!-- no translation found for mr_chooser_zero_routes_description (5123320430013505927) -->
-    <skip />
-    <!-- no translation found for mr_chooser_wifi_warning_description (337903053432238985) -->
-    <skip />
-    <!-- no translation found for mr_chooser_done_button_label (7897288652928484627) -->
-    <skip />
+    <string name="mr_chooser_zero_routes_found_title" msgid="5213435473397442608">"Ei laitteita käytettävissä"</string>
+    <string name="mr_chooser_zero_routes_description" msgid="5123320430013505927">"Laitteita ei löydy. Varmista, että laite ja striimauslaite ovat yhteydessä samaan Wi-Fi-verkkoon, ja yritä uudelleen."</string>
+    <string name="mr_chooser_wifi_warning_description" msgid="337903053432238985">"Varmista, että laite ja striimauslaite ovat yhteydessä samaan Wi-Fi-verkkoon."</string>
+    <string name="mr_chooser_done_button_label" msgid="7897288652928484627">"Valmis"</string>
 </resources>
diff --git a/mediarouter/mediarouter/src/main/res/values-fr-rCA/strings.xml b/mediarouter/mediarouter/src/main/res/values-fr-rCA/strings.xml
index 738aae0..5a907b4 100644
--- a/mediarouter/mediarouter/src/main/res/values-fr-rCA/strings.xml
+++ b/mediarouter/mediarouter/src/main/res/values-fr-rCA/strings.xml
@@ -41,12 +41,8 @@
     <string name="mr_dialog_groupable_header" msgid="4307018456678388936">"Ajouter un appareil"</string>
     <string name="mr_dialog_transferable_header" msgid="6068257520605505468">"Faire jouer sur un groupe d\'appareils"</string>
     <string name="mr_cast_dialog_title_view_placeholder" msgid="2175930138959078155">"Aucune donnée trouvée"</string>
-    <!-- no translation found for mr_chooser_zero_routes_found_title (5213435473397442608) -->
-    <skip />
-    <!-- no translation found for mr_chooser_zero_routes_description (5123320430013505927) -->
-    <skip />
-    <!-- no translation found for mr_chooser_wifi_warning_description (337903053432238985) -->
-    <skip />
-    <!-- no translation found for mr_chooser_done_button_label (7897288652928484627) -->
-    <skip />
+    <string name="mr_chooser_zero_routes_found_title" msgid="5213435473397442608">"Aucun appareil à proximité"</string>
+    <string name="mr_chooser_zero_routes_description" msgid="5123320430013505927">"Impossible de trouver les appareils. Assurez-vous que votre appareil et l\'appareil de diffusion sont connectés au même réseau Wi-Fi et réessayez."</string>
+    <string name="mr_chooser_wifi_warning_description" msgid="337903053432238985">"Assurez-vous que votre appareil et l\'appareil de diffusion sont connectés au même réseau Wi-Fi."</string>
+    <string name="mr_chooser_done_button_label" msgid="7897288652928484627">"OK"</string>
 </resources>
diff --git a/mediarouter/mediarouter/src/main/res/values-fr/strings.xml b/mediarouter/mediarouter/src/main/res/values-fr/strings.xml
index 6646d65..e017eb6 100644
--- a/mediarouter/mediarouter/src/main/res/values-fr/strings.xml
+++ b/mediarouter/mediarouter/src/main/res/values-fr/strings.xml
@@ -41,12 +41,8 @@
     <string name="mr_dialog_groupable_header" msgid="4307018456678388936">"Ajouter un appareil"</string>
     <string name="mr_dialog_transferable_header" msgid="6068257520605505468">"Lire sur un groupe d\'appareils"</string>
     <string name="mr_cast_dialog_title_view_placeholder" msgid="2175930138959078155">"Aucune information disponible"</string>
-    <!-- no translation found for mr_chooser_zero_routes_found_title (5213435473397442608) -->
-    <skip />
-    <!-- no translation found for mr_chooser_zero_routes_description (5123320430013505927) -->
-    <skip />
-    <!-- no translation found for mr_chooser_wifi_warning_description (337903053432238985) -->
-    <skip />
-    <!-- no translation found for mr_chooser_done_button_label (7897288652928484627) -->
-    <skip />
+    <string name="mr_chooser_zero_routes_found_title" msgid="5213435473397442608">"Aucun appareil disponible"</string>
+    <string name="mr_chooser_zero_routes_description" msgid="5123320430013505927">"Appareils introuvables. Assurez-vous que votre appareil et l\'appareil Cast sont connectés au même réseau Wi-Fi, puis réessayez."</string>
+    <string name="mr_chooser_wifi_warning_description" msgid="337903053432238985">"Assurez-vous que votre appareil et l\'appareil Cast sont connectés au même réseau Wi-Fi."</string>
+    <string name="mr_chooser_done_button_label" msgid="7897288652928484627">"OK"</string>
 </resources>
diff --git a/mediarouter/mediarouter/src/main/res/values-gl/strings.xml b/mediarouter/mediarouter/src/main/res/values-gl/strings.xml
index 6117f73..22b00ed 100644
--- a/mediarouter/mediarouter/src/main/res/values-gl/strings.xml
+++ b/mediarouter/mediarouter/src/main/res/values-gl/strings.xml
@@ -41,12 +41,8 @@
     <string name="mr_dialog_groupable_header" msgid="4307018456678388936">"Engadir un dispositivo"</string>
     <string name="mr_dialog_transferable_header" msgid="6068257520605505468">"Reproducir nun grupo"</string>
     <string name="mr_cast_dialog_title_view_placeholder" msgid="2175930138959078155">"Non hai información dispoñible"</string>
-    <!-- no translation found for mr_chooser_zero_routes_found_title (5213435473397442608) -->
-    <skip />
-    <!-- no translation found for mr_chooser_zero_routes_description (5123320430013505927) -->
-    <skip />
-    <!-- no translation found for mr_chooser_wifi_warning_description (337903053432238985) -->
-    <skip />
-    <!-- no translation found for mr_chooser_done_button_label (7897288652928484627) -->
-    <skip />
+    <string name="mr_chooser_zero_routes_found_title" msgid="5213435473397442608">"Non hai dispositivos dispoñibles"</string>
+    <string name="mr_chooser_zero_routes_description" msgid="5123320430013505927">"Se non dás atopado os dispositivos, asegúrate de que o teu dispositivo e o de emisión estean na mesma rede wifi antes de tentalo de novo."</string>
+    <string name="mr_chooser_wifi_warning_description" msgid="337903053432238985">"Asegúrate de que o teu dispositivo e o de emisión estean na mesma rede wifi."</string>
+    <string name="mr_chooser_done_button_label" msgid="7897288652928484627">"Feito"</string>
 </resources>
diff --git a/mediarouter/mediarouter/src/main/res/values-gu/strings.xml b/mediarouter/mediarouter/src/main/res/values-gu/strings.xml
index 5d12ade..adb67b5 100644
--- a/mediarouter/mediarouter/src/main/res/values-gu/strings.xml
+++ b/mediarouter/mediarouter/src/main/res/values-gu/strings.xml
@@ -41,12 +41,8 @@
     <string name="mr_dialog_groupable_header" msgid="4307018456678388936">"ડિવાઇસ ઉમેરો"</string>
     <string name="mr_dialog_transferable_header" msgid="6068257520605505468">"જૂથમાં રમો"</string>
     <string name="mr_cast_dialog_title_view_placeholder" msgid="2175930138959078155">"કોઈ માહિતી ઉપલબ્ધ નથી"</string>
-    <!-- no translation found for mr_chooser_zero_routes_found_title (5213435473397442608) -->
-    <skip />
-    <!-- no translation found for mr_chooser_zero_routes_description (5123320430013505927) -->
-    <skip />
-    <!-- no translation found for mr_chooser_wifi_warning_description (337903053432238985) -->
-    <skip />
-    <!-- no translation found for mr_chooser_done_button_label (7897288652928484627) -->
-    <skip />
+    <string name="mr_chooser_zero_routes_found_title" msgid="5213435473397442608">"કોઈ ડિવાઇસ ઉપલબ્ધ નથી"</string>
+    <string name="mr_chooser_zero_routes_description" msgid="5123320430013505927">"ડિવાઇસ શોધી ન શકતા હો તો ખાતરી કરો કે તમારા ડિવાઇસ અને કાસ્ટ કરી શકતા ડિવાઇસને એક જ વાઇ-ફાઇ નેટવર્ક સાથે કનેક્ટ કર્યા હોય અને ફરી પ્રયાસ કરો."</string>
+    <string name="mr_chooser_wifi_warning_description" msgid="337903053432238985">"ખાતરી કરો કે તમારા ડિવાઇસ અને કાસ્ટ કરી શકતા ડિવાઇસને એક જ વાઇ-ફાઇ નેટવર્ક સાથે કનેક્ટ કર્યા હોય."</string>
+    <string name="mr_chooser_done_button_label" msgid="7897288652928484627">"થઈ ગયું"</string>
 </resources>
diff --git a/mediarouter/mediarouter/src/main/res/values-hi/strings.xml b/mediarouter/mediarouter/src/main/res/values-hi/strings.xml
index edd8c71..3e79783 100644
--- a/mediarouter/mediarouter/src/main/res/values-hi/strings.xml
+++ b/mediarouter/mediarouter/src/main/res/values-hi/strings.xml
@@ -41,12 +41,8 @@
     <string name="mr_dialog_groupable_header" msgid="4307018456678388936">"कोई डिवाइस जोड़ें"</string>
     <string name="mr_dialog_transferable_header" msgid="6068257520605505468">"समूह में खेलें"</string>
     <string name="mr_cast_dialog_title_view_placeholder" msgid="2175930138959078155">"कोई जानकारी मौजूद नहीं है"</string>
-    <!-- no translation found for mr_chooser_zero_routes_found_title (5213435473397442608) -->
-    <skip />
-    <!-- no translation found for mr_chooser_zero_routes_description (5123320430013505927) -->
-    <skip />
-    <!-- no translation found for mr_chooser_wifi_warning_description (337903053432238985) -->
-    <skip />
-    <!-- no translation found for mr_chooser_done_button_label (7897288652928484627) -->
-    <skip />
+    <string name="mr_chooser_zero_routes_found_title" msgid="5213435473397442608">"कोई डिवाइस मौजूद नहीं है"</string>
+    <string name="mr_chooser_zero_routes_description" msgid="5123320430013505927">"डिवाइस नहीं मिल रहे हैं. पक्का करें कि आपका डिवाइस उसी वाई-फ़ाई नेटवर्क से कनेक्ट किया गया हो जिससे कास्ट डिवाइस को कनेक्ट किया गया है और फिर से कोशिश करें."</string>
+    <string name="mr_chooser_wifi_warning_description" msgid="337903053432238985">"पक्का करें कि आपका डिवाइस उसी वाई-फ़ाई नेटवर्क से कनेक्ट किया गया हो जिससे कास्ट डिवाइस को कनेक्ट किया गया है."</string>
+    <string name="mr_chooser_done_button_label" msgid="7897288652928484627">"हो गया"</string>
 </resources>
diff --git a/mediarouter/mediarouter/src/main/res/values-hr/strings.xml b/mediarouter/mediarouter/src/main/res/values-hr/strings.xml
index a5d9a4a..249c298 100644
--- a/mediarouter/mediarouter/src/main/res/values-hr/strings.xml
+++ b/mediarouter/mediarouter/src/main/res/values-hr/strings.xml
@@ -41,12 +41,8 @@
     <string name="mr_dialog_groupable_header" msgid="4307018456678388936">"Dodavanje uređaja"</string>
     <string name="mr_dialog_transferable_header" msgid="6068257520605505468">"Reprodukcija u grupi"</string>
     <string name="mr_cast_dialog_title_view_placeholder" msgid="2175930138959078155">"Informacije nisu dostupne"</string>
-    <!-- no translation found for mr_chooser_zero_routes_found_title (5213435473397442608) -->
-    <skip />
-    <!-- no translation found for mr_chooser_zero_routes_description (5123320430013505927) -->
-    <skip />
-    <!-- no translation found for mr_chooser_wifi_warning_description (337903053432238985) -->
-    <skip />
-    <!-- no translation found for mr_chooser_done_button_label (7897288652928484627) -->
-    <skip />
+    <string name="mr_chooser_zero_routes_found_title" msgid="5213435473397442608">"Nema dostupnih uređaja"</string>
+    <string name="mr_chooser_zero_routes_description" msgid="5123320430013505927">"Uređaji nisu pronađeni, provjerite jesu li vaš uređaj i uređaj za emitiranje na istoj Wi-Fi mreži i pokušajte ponovo."</string>
+    <string name="mr_chooser_wifi_warning_description" msgid="337903053432238985">"Provjerite jesu li vaš uređaj i uređaj za emitiranje na istoj Wi-Fi mreži."</string>
+    <string name="mr_chooser_done_button_label" msgid="7897288652928484627">"Gotovo"</string>
 </resources>
diff --git a/mediarouter/mediarouter/src/main/res/values-hu/strings.xml b/mediarouter/mediarouter/src/main/res/values-hu/strings.xml
index e71a892..d19ec1c 100644
--- a/mediarouter/mediarouter/src/main/res/values-hu/strings.xml
+++ b/mediarouter/mediarouter/src/main/res/values-hu/strings.xml
@@ -41,12 +41,8 @@
     <string name="mr_dialog_groupable_header" msgid="4307018456678388936">"Eszköz hozzáadása"</string>
     <string name="mr_dialog_transferable_header" msgid="6068257520605505468">"Lejátszás eszközcsoportban"</string>
     <string name="mr_cast_dialog_title_view_placeholder" msgid="2175930138959078155">"Nincs információ"</string>
-    <!-- no translation found for mr_chooser_zero_routes_found_title (5213435473397442608) -->
-    <skip />
-    <!-- no translation found for mr_chooser_zero_routes_description (5123320430013505927) -->
-    <skip />
-    <!-- no translation found for mr_chooser_wifi_warning_description (337903053432238985) -->
-    <skip />
-    <!-- no translation found for mr_chooser_done_button_label (7897288652928484627) -->
-    <skip />
+    <string name="mr_chooser_zero_routes_found_title" msgid="5213435473397442608">"Nincs rendelkezésre álló eszköz"</string>
+    <string name="mr_chooser_zero_routes_description" msgid="5123320430013505927">"Nem találhatók eszközök, győződjön meg arról, hogy az eszköz és a Cast-eszköz ugyanazon a Wi-Fi-hálózaton van, majd próbálja újra."</string>
+    <string name="mr_chooser_wifi_warning_description" msgid="337903053432238985">"Győződjön meg arról, hogy az eszköz és a Cast-eszköz ugyanazon a Wi-Fi-hálózaton van."</string>
+    <string name="mr_chooser_done_button_label" msgid="7897288652928484627">"Kész"</string>
 </resources>
diff --git a/mediarouter/mediarouter/src/main/res/values-hy/strings.xml b/mediarouter/mediarouter/src/main/res/values-hy/strings.xml
index 609fc37..997de42 100644
--- a/mediarouter/mediarouter/src/main/res/values-hy/strings.xml
+++ b/mediarouter/mediarouter/src/main/res/values-hy/strings.xml
@@ -41,12 +41,8 @@
     <string name="mr_dialog_groupable_header" msgid="4307018456678388936">"Ավելացրեք սարք"</string>
     <string name="mr_dialog_transferable_header" msgid="6068257520605505468">"Նվագարկեք սարքերի խմբում"</string>
     <string name="mr_cast_dialog_title_view_placeholder" msgid="2175930138959078155">"Հասանելի տեղեկություններ չկան"</string>
-    <!-- no translation found for mr_chooser_zero_routes_found_title (5213435473397442608) -->
-    <skip />
-    <!-- no translation found for mr_chooser_zero_routes_description (5123320430013505927) -->
-    <skip />
-    <!-- no translation found for mr_chooser_wifi_warning_description (337903053432238985) -->
-    <skip />
-    <!-- no translation found for mr_chooser_done_button_label (7897288652928484627) -->
-    <skip />
+    <string name="mr_chooser_zero_routes_found_title" msgid="5213435473397442608">"Հասանելի սարքեր չկան"</string>
+    <string name="mr_chooser_zero_routes_description" msgid="5123320430013505927">"Չհաջողվեց սարքեր գտնել։ Համոզվեք, որ ձեր սարքը և Google Cast սարքը նույն Wi-Fi ցանցում են, և նորից փորձեք։"</string>
+    <string name="mr_chooser_wifi_warning_description" msgid="337903053432238985">"Համոզվեք, որ ձեր սարքը և Google Cast սարքը նույն Wi-Fi ցանցում են։"</string>
+    <string name="mr_chooser_done_button_label" msgid="7897288652928484627">"Պատրաստ է"</string>
 </resources>
diff --git a/mediarouter/mediarouter/src/main/res/values-in/strings.xml b/mediarouter/mediarouter/src/main/res/values-in/strings.xml
index 7c89622..15d261a 100644
--- a/mediarouter/mediarouter/src/main/res/values-in/strings.xml
+++ b/mediarouter/mediarouter/src/main/res/values-in/strings.xml
@@ -41,12 +41,8 @@
     <string name="mr_dialog_groupable_header" msgid="4307018456678388936">"Tambahkan perangkat"</string>
     <string name="mr_dialog_transferable_header" msgid="6068257520605505468">"Putar di grup"</string>
     <string name="mr_cast_dialog_title_view_placeholder" msgid="2175930138959078155">"Info tidak tersedia"</string>
-    <!-- no translation found for mr_chooser_zero_routes_found_title (5213435473397442608) -->
-    <skip />
-    <!-- no translation found for mr_chooser_zero_routes_description (5123320430013505927) -->
-    <skip />
-    <!-- no translation found for mr_chooser_wifi_warning_description (337903053432238985) -->
-    <skip />
-    <!-- no translation found for mr_chooser_done_button_label (7897288652928484627) -->
-    <skip />
+    <string name="mr_chooser_zero_routes_found_title" msgid="5213435473397442608">"Perangkat tidak tersedia"</string>
+    <string name="mr_chooser_zero_routes_description" msgid="5123320430013505927">"Tidak dapat menemukan perangkat, pastikan perangkat Anda dan perangkat Transmisi berada pada jaringan Wi-Fi yang sama, lalu coba lagi."</string>
+    <string name="mr_chooser_wifi_warning_description" msgid="337903053432238985">"Pastikan perangkat Anda dan perangkat Transmisi berada pada jaringan Wi-Fi yang sama."</string>
+    <string name="mr_chooser_done_button_label" msgid="7897288652928484627">"Selesai"</string>
 </resources>
diff --git a/mediarouter/mediarouter/src/main/res/values-is/strings.xml b/mediarouter/mediarouter/src/main/res/values-is/strings.xml
index 8e7c465..aa6cc3c 100644
--- a/mediarouter/mediarouter/src/main/res/values-is/strings.xml
+++ b/mediarouter/mediarouter/src/main/res/values-is/strings.xml
@@ -41,12 +41,8 @@
     <string name="mr_dialog_groupable_header" msgid="4307018456678388936">"Bæta tæki við"</string>
     <string name="mr_dialog_transferable_header" msgid="6068257520605505468">"Spila í hóp"</string>
     <string name="mr_cast_dialog_title_view_placeholder" msgid="2175930138959078155">"Engar upplýsingar í boði"</string>
-    <!-- no translation found for mr_chooser_zero_routes_found_title (5213435473397442608) -->
-    <skip />
-    <!-- no translation found for mr_chooser_zero_routes_description (5123320430013505927) -->
-    <skip />
-    <!-- no translation found for mr_chooser_wifi_warning_description (337903053432238985) -->
-    <skip />
-    <!-- no translation found for mr_chooser_done_button_label (7897288652928484627) -->
-    <skip />
+    <string name="mr_chooser_zero_routes_found_title" msgid="5213435473397442608">"Engin tæki í boði"</string>
+    <string name="mr_chooser_zero_routes_description" msgid="5123320430013505927">"Tæki finnast ekki. Gakktu úr skugga um að tækið þitt og útsendingartækið séu tengd sama WiFi-neti."</string>
+    <string name="mr_chooser_wifi_warning_description" msgid="337903053432238985">"Gakktu úr skugga um að tækið þitt og útsendingartækið séu tengd sama WiFi-neti."</string>
+    <string name="mr_chooser_done_button_label" msgid="7897288652928484627">"Lokið"</string>
 </resources>
diff --git a/mediarouter/mediarouter/src/main/res/values-it/strings.xml b/mediarouter/mediarouter/src/main/res/values-it/strings.xml
index 61fab4b..028f6b7 100644
--- a/mediarouter/mediarouter/src/main/res/values-it/strings.xml
+++ b/mediarouter/mediarouter/src/main/res/values-it/strings.xml
@@ -41,12 +41,8 @@
     <string name="mr_dialog_groupable_header" msgid="4307018456678388936">"Aggiungi un dispositivo"</string>
     <string name="mr_dialog_transferable_header" msgid="6068257520605505468">"Riproduci su un gruppo"</string>
     <string name="mr_cast_dialog_title_view_placeholder" msgid="2175930138959078155">"Nessuna informazione disponibile"</string>
-    <!-- no translation found for mr_chooser_zero_routes_found_title (5213435473397442608) -->
-    <skip />
-    <!-- no translation found for mr_chooser_zero_routes_description (5123320430013505927) -->
-    <skip />
-    <!-- no translation found for mr_chooser_wifi_warning_description (337903053432238985) -->
-    <skip />
-    <!-- no translation found for mr_chooser_done_button_label (7897288652928484627) -->
-    <skip />
+    <string name="mr_chooser_zero_routes_found_title" msgid="5213435473397442608">"Nessun dispositivo disponibile"</string>
+    <string name="mr_chooser_zero_routes_description" msgid="5123320430013505927">"Impossibile trovare dispositivi, assicurati che il dispositivo e il dispositivo di trasmissione siano sulla stessa rete Wi-Fi e riprova."</string>
+    <string name="mr_chooser_wifi_warning_description" msgid="337903053432238985">"Assicurati che il tuo dispositivo e quello di trasmissione siano collegati alla stessa rete Wi-Fi."</string>
+    <string name="mr_chooser_done_button_label" msgid="7897288652928484627">"Fine"</string>
 </resources>
diff --git a/mediarouter/mediarouter/src/main/res/values-iw/strings.xml b/mediarouter/mediarouter/src/main/res/values-iw/strings.xml
index 57e4a8b..b8d39d2 100644
--- a/mediarouter/mediarouter/src/main/res/values-iw/strings.xml
+++ b/mediarouter/mediarouter/src/main/res/values-iw/strings.xml
@@ -41,12 +41,8 @@
     <string name="mr_dialog_groupable_header" msgid="4307018456678388936">"הוספת מכשיר"</string>
     <string name="mr_dialog_transferable_header" msgid="6068257520605505468">"הפעלה בקבוצה"</string>
     <string name="mr_cast_dialog_title_view_placeholder" msgid="2175930138959078155">"אין מידע זמין"</string>
-    <!-- no translation found for mr_chooser_zero_routes_found_title (5213435473397442608) -->
-    <skip />
-    <!-- no translation found for mr_chooser_zero_routes_description (5123320430013505927) -->
-    <skip />
-    <!-- no translation found for mr_chooser_wifi_warning_description (337903053432238985) -->
-    <skip />
-    <!-- no translation found for mr_chooser_done_button_label (7897288652928484627) -->
-    <skip />
+    <string name="mr_chooser_zero_routes_found_title" msgid="5213435473397442608">"אין מכשירים זמינים"</string>
+    <string name="mr_chooser_zero_routes_description" msgid="5123320430013505927">"‏המכשירים לא נמצאו, צריך לוודא שהמכשיר שלך ומכשיר ה-CAST מחוברים לאותה רשת Wi-Fi ולנסות שוב."</string>
+    <string name="mr_chooser_wifi_warning_description" msgid="337903053432238985">"‏יש לוודא שהמכשיר שלך ומכשיר ה-CAST מחוברים לאותה רשת Wi-Fi."</string>
+    <string name="mr_chooser_done_button_label" msgid="7897288652928484627">"סיום"</string>
 </resources>
diff --git a/mediarouter/mediarouter/src/main/res/values-ja/strings.xml b/mediarouter/mediarouter/src/main/res/values-ja/strings.xml
index 2b81561..1611cb2 100644
--- a/mediarouter/mediarouter/src/main/res/values-ja/strings.xml
+++ b/mediarouter/mediarouter/src/main/res/values-ja/strings.xml
@@ -41,12 +41,8 @@
     <string name="mr_dialog_groupable_header" msgid="4307018456678388936">"デバイスの追加"</string>
     <string name="mr_dialog_transferable_header" msgid="6068257520605505468">"グループで再生"</string>
     <string name="mr_cast_dialog_title_view_placeholder" msgid="2175930138959078155">"情報がありません"</string>
-    <!-- no translation found for mr_chooser_zero_routes_found_title (5213435473397442608) -->
-    <skip />
-    <!-- no translation found for mr_chooser_zero_routes_description (5123320430013505927) -->
-    <skip />
-    <!-- no translation found for mr_chooser_wifi_warning_description (337903053432238985) -->
-    <skip />
-    <!-- no translation found for mr_chooser_done_button_label (7897288652928484627) -->
-    <skip />
+    <string name="mr_chooser_zero_routes_found_title" msgid="5213435473397442608">"利用可能なデバイスがありません"</string>
+    <string name="mr_chooser_zero_routes_description" msgid="5123320430013505927">"デバイスが見つかりませんでした。お使いのデバイスとキャスト デバイスが同じ Wi-Fi ネットワークに接続されていることを確認して、もう一度お試しください。"</string>
+    <string name="mr_chooser_wifi_warning_description" msgid="337903053432238985">"お使いのデバイスとキャスト デバイスが同じ Wi-Fi ネットワークに接続されていることを確認してください。"</string>
+    <string name="mr_chooser_done_button_label" msgid="7897288652928484627">"完了"</string>
 </resources>
diff --git a/mediarouter/mediarouter/src/main/res/values-ka/strings.xml b/mediarouter/mediarouter/src/main/res/values-ka/strings.xml
index 27f748c..114665f 100644
--- a/mediarouter/mediarouter/src/main/res/values-ka/strings.xml
+++ b/mediarouter/mediarouter/src/main/res/values-ka/strings.xml
@@ -41,12 +41,8 @@
     <string name="mr_dialog_groupable_header" msgid="4307018456678388936">"მოწყობილობის დამატება"</string>
     <string name="mr_dialog_transferable_header" msgid="6068257520605505468">"ჯგუფში დაკვრა"</string>
     <string name="mr_cast_dialog_title_view_placeholder" msgid="2175930138959078155">"ინფორმაცია მიუწვდომელია"</string>
-    <!-- no translation found for mr_chooser_zero_routes_found_title (5213435473397442608) -->
-    <skip />
-    <!-- no translation found for mr_chooser_zero_routes_description (5123320430013505927) -->
-    <skip />
-    <!-- no translation found for mr_chooser_wifi_warning_description (337903053432238985) -->
-    <skip />
-    <!-- no translation found for mr_chooser_done_button_label (7897288652928484627) -->
-    <skip />
+    <string name="mr_chooser_zero_routes_found_title" msgid="5213435473397442608">"ხელმისაწვდომი მოწყობილობები არ არის"</string>
+    <string name="mr_chooser_zero_routes_description" msgid="5123320430013505927">"მოწყობილობების პოვნა ვერ ხერხდება — დარწმუნდით, რომ თქვენი და გადაცემის მოწყობილობა ერთსა და იმავე Wi-Fi ქსელთანაა დაკავშირებული და სცადეთ ხელახლა."</string>
+    <string name="mr_chooser_wifi_warning_description" msgid="337903053432238985">"დარწმუნდით, რომ თქვენი და გადაცემის მოწყობილობა ერთსა და იმავე Wi-Fi ქსელთანაა დაკავშირებული."</string>
+    <string name="mr_chooser_done_button_label" msgid="7897288652928484627">"მზადაა"</string>
 </resources>
diff --git a/mediarouter/mediarouter/src/main/res/values-kk/strings.xml b/mediarouter/mediarouter/src/main/res/values-kk/strings.xml
index 8cc0255..c385983 100644
--- a/mediarouter/mediarouter/src/main/res/values-kk/strings.xml
+++ b/mediarouter/mediarouter/src/main/res/values-kk/strings.xml
@@ -41,12 +41,8 @@
     <string name="mr_dialog_groupable_header" msgid="4307018456678388936">"Құрылғы енгізу"</string>
     <string name="mr_dialog_transferable_header" msgid="6068257520605505468">"Топта ойнату"</string>
     <string name="mr_cast_dialog_title_view_placeholder" msgid="2175930138959078155">"Ешқандай ақпарат жоқ"</string>
-    <!-- no translation found for mr_chooser_zero_routes_found_title (5213435473397442608) -->
-    <skip />
-    <!-- no translation found for mr_chooser_zero_routes_description (5123320430013505927) -->
-    <skip />
-    <!-- no translation found for mr_chooser_wifi_warning_description (337903053432238985) -->
-    <skip />
-    <!-- no translation found for mr_chooser_done_button_label (7897288652928484627) -->
-    <skip />
+    <string name="mr_chooser_zero_routes_found_title" msgid="5213435473397442608">"Ешқандай құрылғы табылмады"</string>
+    <string name="mr_chooser_zero_routes_description" msgid="5123320430013505927">"Ешқандай құрылғы табылмай тұр. Құрылғыңыз бен трансляциялау құрылғысы бір Wi-Fi желісіне жалғанғанын тексеріңіз де қайталап көріңіз."</string>
+    <string name="mr_chooser_wifi_warning_description" msgid="337903053432238985">"Құрылғыңыз бен трансляциялау құрылғысы бір Wi-Fi желісіне жалғанғанын тексеріңіз."</string>
+    <string name="mr_chooser_done_button_label" msgid="7897288652928484627">"Дайын"</string>
 </resources>
diff --git a/mediarouter/mediarouter/src/main/res/values-km/strings.xml b/mediarouter/mediarouter/src/main/res/values-km/strings.xml
index 5c7cc84..8c3e141 100644
--- a/mediarouter/mediarouter/src/main/res/values-km/strings.xml
+++ b/mediarouter/mediarouter/src/main/res/values-km/strings.xml
@@ -41,12 +41,8 @@
     <string name="mr_dialog_groupable_header" msgid="4307018456678388936">"បញ្ចូលឧបករណ៍"</string>
     <string name="mr_dialog_transferable_header" msgid="6068257520605505468">"លេងនៅ​លើក្រុម"</string>
     <string name="mr_cast_dialog_title_view_placeholder" msgid="2175930138959078155">"មិនមានព័ត៌មានទេ"</string>
-    <!-- no translation found for mr_chooser_zero_routes_found_title (5213435473397442608) -->
-    <skip />
-    <!-- no translation found for mr_chooser_zero_routes_description (5123320430013505927) -->
-    <skip />
-    <!-- no translation found for mr_chooser_wifi_warning_description (337903053432238985) -->
-    <skip />
-    <!-- no translation found for mr_chooser_done_button_label (7897288652928484627) -->
-    <skip />
+    <string name="mr_chooser_zero_routes_found_title" msgid="5213435473397442608">"មិន​មាន​ឧបករណ៍​ទេ"</string>
+    <string name="mr_chooser_zero_routes_description" msgid="5123320430013505927">"រកមិនឃើញឧបករណ៍ទេ សូមប្រាកដថា ឧបករណ៍របស់អ្នក និងឧបករណ៍បញ្ជូនស្ថិតលើបណ្ដាញ Wi-Fi តែមួយ រួចព្យាយាមម្ដងទៀត។"</string>
+    <string name="mr_chooser_wifi_warning_description" msgid="337903053432238985">"សូមប្រាកដថា ឧបករណ៍របស់អ្នក និងឧបករណ៍បញ្ជូន​ស្ថិតលើបណ្តាញ Wi-Fi តែមួយ។"</string>
+    <string name="mr_chooser_done_button_label" msgid="7897288652928484627">"រួចរាល់"</string>
 </resources>
diff --git a/mediarouter/mediarouter/src/main/res/values-kn/strings.xml b/mediarouter/mediarouter/src/main/res/values-kn/strings.xml
index 152904b..484924c9 100644
--- a/mediarouter/mediarouter/src/main/res/values-kn/strings.xml
+++ b/mediarouter/mediarouter/src/main/res/values-kn/strings.xml
@@ -41,12 +41,8 @@
     <string name="mr_dialog_groupable_header" msgid="4307018456678388936">"ಸಾಧನವನ್ನು ಸೇರಿಸಿ"</string>
     <string name="mr_dialog_transferable_header" msgid="6068257520605505468">"ಗುಂಪಿನಲ್ಲಿ ಪ್ಲೇ ಮಾಡಿ"</string>
     <string name="mr_cast_dialog_title_view_placeholder" msgid="2175930138959078155">"ಯಾವುದೇ ಮಾಹಿತಿ ಲಭ್ಯವಿಲ್ಲ"</string>
-    <!-- no translation found for mr_chooser_zero_routes_found_title (5213435473397442608) -->
-    <skip />
-    <!-- no translation found for mr_chooser_zero_routes_description (5123320430013505927) -->
-    <skip />
-    <!-- no translation found for mr_chooser_wifi_warning_description (337903053432238985) -->
-    <skip />
-    <!-- no translation found for mr_chooser_done_button_label (7897288652928484627) -->
-    <skip />
+    <string name="mr_chooser_zero_routes_found_title" msgid="5213435473397442608">"ಯಾವುದೇ ಸಾಧನಗಳು ಲಭ್ಯವಿಲ್ಲ"</string>
+    <string name="mr_chooser_zero_routes_description" msgid="5123320430013505927">"ಸಾಧನಗಳನ್ನು ಹುಡುಕಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ, ನಿಮ್ಮ ಸಾಧನ ಮತ್ತು ಬಿತ್ತರಿಸುವ ಸಾಧನವು ಒಂದೇ ವೈ-ಫೈ ನೆಟ್‌ವರ್ಕ್‌ನಲ್ಲಿದೆಯೇ ಎಂಬುದನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ ಹಾಗೂ ಪುನಃ ಪ್ರಯತ್ನಿಸಿ."</string>
+    <string name="mr_chooser_wifi_warning_description" msgid="337903053432238985">"ನಿಮ್ಮ ಸಾಧನ ಮತ್ತು ಬಿತ್ತರಿಸುವ ಸಾಧನವು ಒಂದೇ ವೈ-ಫೈ ನೆಟ್‌ವರ್ಕ್‌ನಲ್ಲಿರುವುದನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ."</string>
+    <string name="mr_chooser_done_button_label" msgid="7897288652928484627">"ಮುಗಿದಿದೆ"</string>
 </resources>
diff --git a/mediarouter/mediarouter/src/main/res/values-ko/strings.xml b/mediarouter/mediarouter/src/main/res/values-ko/strings.xml
index a3a9163..7c49342 100644
--- a/mediarouter/mediarouter/src/main/res/values-ko/strings.xml
+++ b/mediarouter/mediarouter/src/main/res/values-ko/strings.xml
@@ -41,12 +41,8 @@
     <string name="mr_dialog_groupable_header" msgid="4307018456678388936">"기기 추가"</string>
     <string name="mr_dialog_transferable_header" msgid="6068257520605505468">"그룹에서 재생"</string>
     <string name="mr_cast_dialog_title_view_placeholder" msgid="2175930138959078155">"사용할 수 있는 정보 없음"</string>
-    <!-- no translation found for mr_chooser_zero_routes_found_title (5213435473397442608) -->
-    <skip />
-    <!-- no translation found for mr_chooser_zero_routes_description (5123320430013505927) -->
-    <skip />
-    <!-- no translation found for mr_chooser_wifi_warning_description (337903053432238985) -->
-    <skip />
-    <!-- no translation found for mr_chooser_done_button_label (7897288652928484627) -->
-    <skip />
+    <string name="mr_chooser_zero_routes_found_title" msgid="5213435473397442608">"사용 가능한 기기 없음"</string>
+    <string name="mr_chooser_zero_routes_description" msgid="5123320430013505927">"기기를 찾을 수 없습니다. 기기와 Cast 기기가 동일한 Wi-Fi 네트워크에 연결되어 있는지 확인 후 다시 시도하세요."</string>
+    <string name="mr_chooser_wifi_warning_description" msgid="337903053432238985">"기기와 Cast 기기가 동일한 Wi-Fi 네트워크에 연결되어 있는지 확인하세요."</string>
+    <string name="mr_chooser_done_button_label" msgid="7897288652928484627">"완료"</string>
 </resources>
diff --git a/mediarouter/mediarouter/src/main/res/values-ky/strings.xml b/mediarouter/mediarouter/src/main/res/values-ky/strings.xml
index e51e3d0..d47a45d 100644
--- a/mediarouter/mediarouter/src/main/res/values-ky/strings.xml
+++ b/mediarouter/mediarouter/src/main/res/values-ky/strings.xml
@@ -41,12 +41,8 @@
     <string name="mr_dialog_groupable_header" msgid="4307018456678388936">"Түзмөк кошуу"</string>
     <string name="mr_dialog_transferable_header" msgid="6068257520605505468">"Топто ойнотуу"</string>
     <string name="mr_cast_dialog_title_view_placeholder" msgid="2175930138959078155">"Эч маалымат жок"</string>
-    <!-- no translation found for mr_chooser_zero_routes_found_title (5213435473397442608) -->
-    <skip />
-    <!-- no translation found for mr_chooser_zero_routes_description (5123320430013505927) -->
-    <skip />
-    <!-- no translation found for mr_chooser_wifi_warning_description (337903053432238985) -->
-    <skip />
-    <!-- no translation found for mr_chooser_done_button_label (7897288652928484627) -->
-    <skip />
+    <string name="mr_chooser_zero_routes_found_title" msgid="5213435473397442608">"Жеткиликтүү түзмөктөр жок"</string>
+    <string name="mr_chooser_zero_routes_description" msgid="5123320430013505927">"Түзмөктөр табылбай жатат. Түзмөгүңүз менен тышкы экранга чыгаруучу түзмөк бир Wi-Fi тармагына туташканын текшерип, кайталап көрүңүз."</string>
+    <string name="mr_chooser_wifi_warning_description" msgid="337903053432238985">"Түзмөгүңүз менен тышкы экранга чыгаруучу түзмөк бир Wi-Fi тармагына туташып турушу керек."</string>
+    <string name="mr_chooser_done_button_label" msgid="7897288652928484627">"Бүттү"</string>
 </resources>
diff --git a/mediarouter/mediarouter/src/main/res/values-lo/strings.xml b/mediarouter/mediarouter/src/main/res/values-lo/strings.xml
index 9fad7af..f666704 100644
--- a/mediarouter/mediarouter/src/main/res/values-lo/strings.xml
+++ b/mediarouter/mediarouter/src/main/res/values-lo/strings.xml
@@ -41,12 +41,8 @@
     <string name="mr_dialog_groupable_header" msgid="4307018456678388936">"ເພີ່ມ​ອຸ​ປະ​ກອນ"</string>
     <string name="mr_dialog_transferable_header" msgid="6068257520605505468">"ຫຼິ້ນຢູ່ກຸ່ມ"</string>
     <string name="mr_cast_dialog_title_view_placeholder" msgid="2175930138959078155">"ບໍ່ມີຂໍ້ມູນ"</string>
-    <!-- no translation found for mr_chooser_zero_routes_found_title (5213435473397442608) -->
-    <skip />
-    <!-- no translation found for mr_chooser_zero_routes_description (5123320430013505927) -->
-    <skip />
-    <!-- no translation found for mr_chooser_wifi_warning_description (337903053432238985) -->
-    <skip />
-    <!-- no translation found for mr_chooser_done_button_label (7897288652928484627) -->
-    <skip />
+    <string name="mr_chooser_zero_routes_found_title" msgid="5213435473397442608">"ບໍ່ມີອຸປະກອນທີ່ສາມາດໃຊ້ໄດ້"</string>
+    <string name="mr_chooser_zero_routes_description" msgid="5123320430013505927">"ບໍ່ພົບອຸປະກອນ, ກວດສອບວ່າອຸປະກອນຂອງທ່ານ ແລະ ອຸປະກອນ Chromecast ໃຊ້ເຄືອຂ່າຍ Wi-Fi ດຽວກັນ ແລ້ວລອງໃໝ່."</string>
+    <string name="mr_chooser_wifi_warning_description" msgid="337903053432238985">"ກວດສອບວ່າອຸປະກອນຂອງທ່ານ ແລະ ອຸປະກອນ Chromecast ໃຊ້ເຄືອຂ່າຍ Wi-Fi ດຽວກັນ."</string>
+    <string name="mr_chooser_done_button_label" msgid="7897288652928484627">"ແລ້ວໆ"</string>
 </resources>
diff --git a/mediarouter/mediarouter/src/main/res/values-lt/strings.xml b/mediarouter/mediarouter/src/main/res/values-lt/strings.xml
index aca94fe..4acffae 100644
--- a/mediarouter/mediarouter/src/main/res/values-lt/strings.xml
+++ b/mediarouter/mediarouter/src/main/res/values-lt/strings.xml
@@ -41,12 +41,8 @@
     <string name="mr_dialog_groupable_header" msgid="4307018456678388936">"Įrenginio pridėjimas"</string>
     <string name="mr_dialog_transferable_header" msgid="6068257520605505468">"Leidimas grupėje"</string>
     <string name="mr_cast_dialog_title_view_placeholder" msgid="2175930138959078155">"Nėra jokios informacijos"</string>
-    <!-- no translation found for mr_chooser_zero_routes_found_title (5213435473397442608) -->
-    <skip />
-    <!-- no translation found for mr_chooser_zero_routes_description (5123320430013505927) -->
-    <skip />
-    <!-- no translation found for mr_chooser_wifi_warning_description (337903053432238985) -->
-    <skip />
-    <!-- no translation found for mr_chooser_done_button_label (7897288652928484627) -->
-    <skip />
+    <string name="mr_chooser_zero_routes_found_title" msgid="5213435473397442608">"Nėra jokių pasiekiamų įrenginių"</string>
+    <string name="mr_chooser_zero_routes_description" msgid="5123320430013505927">"Nepavyko rasti įrenginių. Įsitikinkite, kad jūsų ir perdavimo įrenginiai prijungti prie to paties „Wi-Fi“ tinklo ir bandykite dar kartą."</string>
+    <string name="mr_chooser_wifi_warning_description" msgid="337903053432238985">"Įsitikinkite, kad jūsų ir perdavimo įrenginiai prijungti prie to paties „Wi-Fi“ tinklo."</string>
+    <string name="mr_chooser_done_button_label" msgid="7897288652928484627">"Atlikta"</string>
 </resources>
diff --git a/mediarouter/mediarouter/src/main/res/values-lv/strings.xml b/mediarouter/mediarouter/src/main/res/values-lv/strings.xml
index c3bbe2c..e24841c 100644
--- a/mediarouter/mediarouter/src/main/res/values-lv/strings.xml
+++ b/mediarouter/mediarouter/src/main/res/values-lv/strings.xml
@@ -41,12 +41,8 @@
     <string name="mr_dialog_groupable_header" msgid="4307018456678388936">"Pievienot ierīci"</string>
     <string name="mr_dialog_transferable_header" msgid="6068257520605505468">"Atskaņošana grupā"</string>
     <string name="mr_cast_dialog_title_view_placeholder" msgid="2175930138959078155">"Nav informācijas"</string>
-    <!-- no translation found for mr_chooser_zero_routes_found_title (5213435473397442608) -->
-    <skip />
-    <!-- no translation found for mr_chooser_zero_routes_description (5123320430013505927) -->
-    <skip />
-    <!-- no translation found for mr_chooser_wifi_warning_description (337903053432238985) -->
-    <skip />
-    <!-- no translation found for mr_chooser_done_button_label (7897288652928484627) -->
-    <skip />
+    <string name="mr_chooser_zero_routes_found_title" msgid="5213435473397442608">"Nav pieejamu ierīču"</string>
+    <string name="mr_chooser_zero_routes_description" msgid="5123320430013505927">"Nevar atrast ierīces. Pārbaudiet, vai jūsu ierīce un apraides ierīce ir savienota ar vienu un to pašu Wi‑Fi tīklu, un mēģiniet vēlreiz."</string>
+    <string name="mr_chooser_wifi_warning_description" msgid="337903053432238985">"Pārbaudiet, vai jūsu ierīce un apraides ierīce ir savienota ar vienu un to pašu Wi‑Fi tīklu."</string>
+    <string name="mr_chooser_done_button_label" msgid="7897288652928484627">"Gatavs"</string>
 </resources>
diff --git a/mediarouter/mediarouter/src/main/res/values-mk/strings.xml b/mediarouter/mediarouter/src/main/res/values-mk/strings.xml
index aa622b2..db6ad85 100644
--- a/mediarouter/mediarouter/src/main/res/values-mk/strings.xml
+++ b/mediarouter/mediarouter/src/main/res/values-mk/strings.xml
@@ -41,12 +41,8 @@
     <string name="mr_dialog_groupable_header" msgid="4307018456678388936">"Додајте уред"</string>
     <string name="mr_dialog_transferable_header" msgid="6068257520605505468">"Пуштете на група"</string>
     <string name="mr_cast_dialog_title_view_placeholder" msgid="2175930138959078155">"Нема достапни информации"</string>
-    <!-- no translation found for mr_chooser_zero_routes_found_title (5213435473397442608) -->
-    <skip />
-    <!-- no translation found for mr_chooser_zero_routes_description (5123320430013505927) -->
-    <skip />
-    <!-- no translation found for mr_chooser_wifi_warning_description (337903053432238985) -->
-    <skip />
-    <!-- no translation found for mr_chooser_done_button_label (7897288652928484627) -->
-    <skip />
+    <string name="mr_chooser_zero_routes_found_title" msgid="5213435473397442608">"Нема достапни уреди"</string>
+    <string name="mr_chooser_zero_routes_description" msgid="5123320430013505927">"Не може да се најдат уреди. Проверете дали вашиот уред и уредот со Cast се на истата Wi-Fi мрежа, па обидете се повторно."</string>
+    <string name="mr_chooser_wifi_warning_description" msgid="337903053432238985">"Проверете дали вашиот уред и уредот со Cast се на истата Wi-Fi мрежа."</string>
+    <string name="mr_chooser_done_button_label" msgid="7897288652928484627">"Готово"</string>
 </resources>
diff --git a/mediarouter/mediarouter/src/main/res/values-ml/strings.xml b/mediarouter/mediarouter/src/main/res/values-ml/strings.xml
index 225af4b..98778c6 100644
--- a/mediarouter/mediarouter/src/main/res/values-ml/strings.xml
+++ b/mediarouter/mediarouter/src/main/res/values-ml/strings.xml
@@ -41,12 +41,8 @@
     <string name="mr_dialog_groupable_header" msgid="4307018456678388936">"ഒരു ഉപകരണം ചേർക്കുക"</string>
     <string name="mr_dialog_transferable_header" msgid="6068257520605505468">"ഒരു ഗ്രൂപ്പിൽ പ്ലേ ചെയ്യുക"</string>
     <string name="mr_cast_dialog_title_view_placeholder" msgid="2175930138959078155">"വിവരങ്ങളൊന്നും ലഭ്യമല്ല"</string>
-    <!-- no translation found for mr_chooser_zero_routes_found_title (5213435473397442608) -->
-    <skip />
-    <!-- no translation found for mr_chooser_zero_routes_description (5123320430013505927) -->
-    <skip />
-    <!-- no translation found for mr_chooser_wifi_warning_description (337903053432238985) -->
-    <skip />
-    <!-- no translation found for mr_chooser_done_button_label (7897288652928484627) -->
-    <skip />
+    <string name="mr_chooser_zero_routes_found_title" msgid="5213435473397442608">"ഉപകരണങ്ങളൊന്നും ലഭ്യമല്ല"</string>
+    <string name="mr_chooser_zero_routes_description" msgid="5123320430013505927">"ഉപകരണങ്ങൾ കണ്ടെത്താനായില്ല, നിങ്ങളുടെ ഉപകരണവും കാസ്‌റ്റ് ഉപകരണവും ഒരേ വെെഫെെ നെറ്റ്‌വർക്കിലാണ് ഉള്ളതെന്ന് ഉറപ്പാക്കി വീണ്ടും ശ്രമിക്കുക."</string>
+    <string name="mr_chooser_wifi_warning_description" msgid="337903053432238985">"നിങ്ങളുടെ ഉപകരണവും കാസ്‌റ്റ് ഉപകരണവും ഒരേ വെെഫെെ നെറ്റ്‌വർക്കിലാണ് ഉള്ളതെന്ന് ഉറപ്പാക്കുക."</string>
+    <string name="mr_chooser_done_button_label" msgid="7897288652928484627">"പൂർത്തിയായി"</string>
 </resources>
diff --git a/mediarouter/mediarouter/src/main/res/values-mn/strings.xml b/mediarouter/mediarouter/src/main/res/values-mn/strings.xml
index 17670e2..7a5b367 100644
--- a/mediarouter/mediarouter/src/main/res/values-mn/strings.xml
+++ b/mediarouter/mediarouter/src/main/res/values-mn/strings.xml
@@ -41,12 +41,8 @@
     <string name="mr_dialog_groupable_header" msgid="4307018456678388936">"Төхөөрөмж нэмэх"</string>
     <string name="mr_dialog_transferable_header" msgid="6068257520605505468">"Бүлэгт тоглуулах"</string>
     <string name="mr_cast_dialog_title_view_placeholder" msgid="2175930138959078155">"Мэдээлэл алга"</string>
-    <!-- no translation found for mr_chooser_zero_routes_found_title (5213435473397442608) -->
-    <skip />
-    <!-- no translation found for mr_chooser_zero_routes_description (5123320430013505927) -->
-    <skip />
-    <!-- no translation found for mr_chooser_wifi_warning_description (337903053432238985) -->
-    <skip />
-    <!-- no translation found for mr_chooser_done_button_label (7897288652928484627) -->
-    <skip />
+    <string name="mr_chooser_zero_routes_found_title" msgid="5213435473397442608">"Ямар ч боломжтой төхөөрөмж байхгүй"</string>
+    <string name="mr_chooser_zero_routes_description" msgid="5123320430013505927">"Төхөөрөмжүүдийг олох боломжгүй. Таны төхөөрөмж болон дамжуулагч төхөөрөмж ижил Wi-Fi сүлжээнд холбогдсон эсэхийг шалгаад дахин оролдоно уу."</string>
+    <string name="mr_chooser_wifi_warning_description" msgid="337903053432238985">"Таны төхөөрөмж болон дамжуулагч төхөөрөмж ижил Wi-Fi сүлжээнд холбогдсон эсэхийг шалгана уу."</string>
+    <string name="mr_chooser_done_button_label" msgid="7897288652928484627">"Болсон"</string>
 </resources>
diff --git a/mediarouter/mediarouter/src/main/res/values-mr/strings.xml b/mediarouter/mediarouter/src/main/res/values-mr/strings.xml
index 69cae09..4bec966 100644
--- a/mediarouter/mediarouter/src/main/res/values-mr/strings.xml
+++ b/mediarouter/mediarouter/src/main/res/values-mr/strings.xml
@@ -41,12 +41,8 @@
     <string name="mr_dialog_groupable_header" msgid="4307018456678388936">"डिव्हाइस जोडा"</string>
     <string name="mr_dialog_transferable_header" msgid="6068257520605505468">"गटावर प्ले करा"</string>
     <string name="mr_cast_dialog_title_view_placeholder" msgid="2175930138959078155">"कोणतीही माहिती उपलब्ध नाही"</string>
-    <!-- no translation found for mr_chooser_zero_routes_found_title (5213435473397442608) -->
-    <skip />
-    <!-- no translation found for mr_chooser_zero_routes_description (5123320430013505927) -->
-    <skip />
-    <!-- no translation found for mr_chooser_wifi_warning_description (337903053432238985) -->
-    <skip />
-    <!-- no translation found for mr_chooser_done_button_label (7897288652928484627) -->
-    <skip />
+    <string name="mr_chooser_zero_routes_found_title" msgid="5213435473397442608">"कोणतीही डिव्हाइस उपलब्ध नाहीत"</string>
+    <string name="mr_chooser_zero_routes_description" msgid="5123320430013505927">"डिव्हाइस शोधता आली नाहीत, तुमचे डिव्हाइस आणि कास्‍ट डिव्‍हाइस एकाच वाय-फाय नेटवर्कवर असल्याची खात्री करा आणि पुन्हा प्रयत्न करा."</string>
+    <string name="mr_chooser_wifi_warning_description" msgid="337903053432238985">"तुमचे डिव्हाइस आणि कास्‍ट डिव्‍हाइस एकाच वाय-फाय नेटवर्कवर असल्याची खात्री करा."</string>
+    <string name="mr_chooser_done_button_label" msgid="7897288652928484627">"पूर्ण झाले"</string>
 </resources>
diff --git a/mediarouter/mediarouter/src/main/res/values-ms/strings.xml b/mediarouter/mediarouter/src/main/res/values-ms/strings.xml
index a6a76ee..858660e 100644
--- a/mediarouter/mediarouter/src/main/res/values-ms/strings.xml
+++ b/mediarouter/mediarouter/src/main/res/values-ms/strings.xml
@@ -41,12 +41,8 @@
     <string name="mr_dialog_groupable_header" msgid="4307018456678388936">"Tambah peranti"</string>
     <string name="mr_dialog_transferable_header" msgid="6068257520605505468">"Mainkan pada kumpulan"</string>
     <string name="mr_cast_dialog_title_view_placeholder" msgid="2175930138959078155">"Maklumat tidak tersedia"</string>
-    <!-- no translation found for mr_chooser_zero_routes_found_title (5213435473397442608) -->
-    <skip />
-    <!-- no translation found for mr_chooser_zero_routes_description (5123320430013505927) -->
-    <skip />
-    <!-- no translation found for mr_chooser_wifi_warning_description (337903053432238985) -->
-    <skip />
-    <!-- no translation found for mr_chooser_done_button_label (7897288652928484627) -->
-    <skip />
+    <string name="mr_chooser_zero_routes_found_title" msgid="5213435473397442608">"Tiada peranti tersedia"</string>
+    <string name="mr_chooser_zero_routes_description" msgid="5123320430013505927">"Tidak dapat menemukan peranti, pastikan peranti anda dan peranti Cast menggunakan rangkaian Wi-Fi yang sama dan cuba lagi."</string>
+    <string name="mr_chooser_wifi_warning_description" msgid="337903053432238985">"Pastikan peranti anda dan peranti Cast menggunakan rangkaian Wi-Fi yang sama."</string>
+    <string name="mr_chooser_done_button_label" msgid="7897288652928484627">"Selesai"</string>
 </resources>
diff --git a/mediarouter/mediarouter/src/main/res/values-my/strings.xml b/mediarouter/mediarouter/src/main/res/values-my/strings.xml
index 1f00f1a..ca1f5a9 100644
--- a/mediarouter/mediarouter/src/main/res/values-my/strings.xml
+++ b/mediarouter/mediarouter/src/main/res/values-my/strings.xml
@@ -41,12 +41,8 @@
     <string name="mr_dialog_groupable_header" msgid="4307018456678388936">"စက်ပစ္စည်း ထည့်ခြင်း"</string>
     <string name="mr_dialog_transferable_header" msgid="6068257520605505468">"အုပ်စုလိုက် ဖွင့်ခြင်း"</string>
     <string name="mr_cast_dialog_title_view_placeholder" msgid="2175930138959078155">"အချက်အလက် မရရှိနိုင်ပါ"</string>
-    <!-- no translation found for mr_chooser_zero_routes_found_title (5213435473397442608) -->
-    <skip />
-    <!-- no translation found for mr_chooser_zero_routes_description (5123320430013505927) -->
-    <skip />
-    <!-- no translation found for mr_chooser_wifi_warning_description (337903053432238985) -->
-    <skip />
-    <!-- no translation found for mr_chooser_done_button_label (7897288652928484627) -->
-    <skip />
+    <string name="mr_chooser_zero_routes_found_title" msgid="5213435473397442608">"စက်များ မရနိုင်ပါ"</string>
+    <string name="mr_chooser_zero_routes_description" msgid="5123320430013505927">"စက်များ ရှာမတွေ့ပါ။ သင်၏စက်နှင့် ‘ကာစ်လုပ်နိုင်သည့် စက်’ တို့သည် Wi-Fi ကွန်ရက်တစ်ခုတည်းသို့ ချိတ်ဆက်ထားကြောင်း သေချာစေပြီးနောက် ထပ်စမ်းကြည့်ပါ။"</string>
+    <string name="mr_chooser_wifi_warning_description" msgid="337903053432238985">"သင်၏စက်နှင့် ‘ကာစ်လုပ်နိုင်သည့် စက်’ တို့သည် Wi-Fi ကွန်ရက်တစ်ခုတည်းသို့ ချိတ်ဆက်ထားကြောင်း သေချာပါစေ။"</string>
+    <string name="mr_chooser_done_button_label" msgid="7897288652928484627">"ပြီးပြီ"</string>
 </resources>
diff --git a/mediarouter/mediarouter/src/main/res/values-nb/strings.xml b/mediarouter/mediarouter/src/main/res/values-nb/strings.xml
index 43be34f..9150f1c 100644
--- a/mediarouter/mediarouter/src/main/res/values-nb/strings.xml
+++ b/mediarouter/mediarouter/src/main/res/values-nb/strings.xml
@@ -41,12 +41,8 @@
     <string name="mr_dialog_groupable_header" msgid="4307018456678388936">"Legg til en enhet"</string>
     <string name="mr_dialog_transferable_header" msgid="6068257520605505468">"Spill i en gruppe"</string>
     <string name="mr_cast_dialog_title_view_placeholder" msgid="2175930138959078155">"Ingen informasjon er tilgjengelig"</string>
-    <!-- no translation found for mr_chooser_zero_routes_found_title (5213435473397442608) -->
-    <skip />
-    <!-- no translation found for mr_chooser_zero_routes_description (5123320430013505927) -->
-    <skip />
-    <!-- no translation found for mr_chooser_wifi_warning_description (337903053432238985) -->
-    <skip />
-    <!-- no translation found for mr_chooser_done_button_label (7897288652928484627) -->
-    <skip />
+    <string name="mr_chooser_zero_routes_found_title" msgid="5213435473397442608">"Ingen enheter er tilgjengelige"</string>
+    <string name="mr_chooser_zero_routes_description" msgid="5123320430013505927">"Finner ikke enheter. Sjekk at enheten og Cast-enheten er koblet til samme wifi-nettverk, og prøv på nytt."</string>
+    <string name="mr_chooser_wifi_warning_description" msgid="337903053432238985">"Sjekk at enheten og Cast-enheten er koblet til samme wifi-nettverk."</string>
+    <string name="mr_chooser_done_button_label" msgid="7897288652928484627">"Ferdig"</string>
 </resources>
diff --git a/mediarouter/mediarouter/src/main/res/values-ne/strings.xml b/mediarouter/mediarouter/src/main/res/values-ne/strings.xml
index aef78a2..318b0a0 100644
--- a/mediarouter/mediarouter/src/main/res/values-ne/strings.xml
+++ b/mediarouter/mediarouter/src/main/res/values-ne/strings.xml
@@ -41,12 +41,8 @@
     <string name="mr_dialog_groupable_header" msgid="4307018456678388936">"डिभाइस थप्नुहोस्"</string>
     <string name="mr_dialog_transferable_header" msgid="6068257520605505468">"कुनै समूहमा प्ले गर्नुहोस्"</string>
     <string name="mr_cast_dialog_title_view_placeholder" msgid="2175930138959078155">"कुनै पनि जानकारी उपलब्ध छैन"</string>
-    <!-- no translation found for mr_chooser_zero_routes_found_title (5213435473397442608) -->
-    <skip />
-    <!-- no translation found for mr_chooser_zero_routes_description (5123320430013505927) -->
-    <skip />
-    <!-- no translation found for mr_chooser_wifi_warning_description (337903053432238985) -->
-    <skip />
-    <!-- no translation found for mr_chooser_done_button_label (7897288652928484627) -->
-    <skip />
+    <string name="mr_chooser_zero_routes_found_title" msgid="5213435473397442608">"कुनै पनि डिभाइस उपलब्ध छैन"</string>
+    <string name="mr_chooser_zero_routes_description" msgid="5123320430013505927">"डिभाइसहरू भेट्टाउन सकिएन। तपाईंको डिभाइस र कास्ट डिभाइस एउटै Wi-Fi नेटवर्कमा कनेक्ट गरिएका छन् भन्ने कुरा सुनिश्चित गर्नुहोस् र फेरि प्रयास गर्नुहोस्।"</string>
+    <string name="mr_chooser_wifi_warning_description" msgid="337903053432238985">"तपाईंको डिभाइस र कास्ट डिभाइस एउटै Wi-Fi नेटवर्कमा कनेक्ट गरिएका छन् भन्ने कुरा सुनिश्चित गर्नुहोस्।"</string>
+    <string name="mr_chooser_done_button_label" msgid="7897288652928484627">"सम्पन्न भयो"</string>
 </resources>
diff --git a/mediarouter/mediarouter/src/main/res/values-nl/strings.xml b/mediarouter/mediarouter/src/main/res/values-nl/strings.xml
index 41e6dec..2e54321 100644
--- a/mediarouter/mediarouter/src/main/res/values-nl/strings.xml
+++ b/mediarouter/mediarouter/src/main/res/values-nl/strings.xml
@@ -41,12 +41,8 @@
     <string name="mr_dialog_groupable_header" msgid="4307018456678388936">"Een apparaat toevoegen"</string>
     <string name="mr_dialog_transferable_header" msgid="6068257520605505468">"Afspelen in een groep"</string>
     <string name="mr_cast_dialog_title_view_placeholder" msgid="2175930138959078155">"Geen informatie beschikbaar"</string>
-    <!-- no translation found for mr_chooser_zero_routes_found_title (5213435473397442608) -->
-    <skip />
-    <!-- no translation found for mr_chooser_zero_routes_description (5123320430013505927) -->
-    <skip />
-    <!-- no translation found for mr_chooser_wifi_warning_description (337903053432238985) -->
-    <skip />
-    <!-- no translation found for mr_chooser_done_button_label (7897288652928484627) -->
-    <skip />
+    <string name="mr_chooser_zero_routes_found_title" msgid="5213435473397442608">"Geen apparaten beschikbaar"</string>
+    <string name="mr_chooser_zero_routes_description" msgid="5123320430013505927">"Kan geen apparaten vinden. Zorg dat je apparaat en het cast-apparaat verbinding hebben met hetzelfde wifi-netwerk en probeer het opnieuw."</string>
+    <string name="mr_chooser_wifi_warning_description" msgid="337903053432238985">"Zorg dat je apparaat en het cast-apparaat verbinding hebben met hetzelfde wifi-netwerk."</string>
+    <string name="mr_chooser_done_button_label" msgid="7897288652928484627">"Klaar"</string>
 </resources>
diff --git a/mediarouter/mediarouter/src/main/res/values-or/strings.xml b/mediarouter/mediarouter/src/main/res/values-or/strings.xml
index dcef71d..a6d5692 100644
--- a/mediarouter/mediarouter/src/main/res/values-or/strings.xml
+++ b/mediarouter/mediarouter/src/main/res/values-or/strings.xml
@@ -41,12 +41,8 @@
     <string name="mr_dialog_groupable_header" msgid="4307018456678388936">"ଏକ ଡିଭାଇସ୍‍ ଯୋଗ କରନ୍ତୁ"</string>
     <string name="mr_dialog_transferable_header" msgid="6068257520605505468">"ଏକ ଗ୍ରୁପ୍‌ରେ ପ୍ଲେ କରନ୍ତୁ"</string>
     <string name="mr_cast_dialog_title_view_placeholder" msgid="2175930138959078155">"କୌଣସି ସୂଚନା ଉପଲବ୍ଧ ନାହିଁ"</string>
-    <!-- no translation found for mr_chooser_zero_routes_found_title (5213435473397442608) -->
-    <skip />
-    <!-- no translation found for mr_chooser_zero_routes_description (5123320430013505927) -->
-    <skip />
-    <!-- no translation found for mr_chooser_wifi_warning_description (337903053432238985) -->
-    <skip />
-    <!-- no translation found for mr_chooser_done_button_label (7897288652928484627) -->
-    <skip />
+    <string name="mr_chooser_zero_routes_found_title" msgid="5213435473397442608">"କୌଣସି ଡିଭାଇସ ଉପଲବ୍ଧ ନାହିଁ"</string>
+    <string name="mr_chooser_zero_routes_description" msgid="5123320430013505927">"ଡିଭାଇସଗୁଡ଼ିକୁ ଖୋଜିବାରେ ଅସମର୍ଥ, ଆପଣଙ୍କ ଡିଭାଇସ ଏବଂ କାଷ୍ଟ ଡିଭାଇସ ସମାନ ୱାଇ-ଫାଇ ନେଟୱାର୍କରେ ଅଛି ବୋଲି ସୁନିଶ୍ଚିତ କରି ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।"</string>
+    <string name="mr_chooser_wifi_warning_description" msgid="337903053432238985">"ଆପଣଙ୍କ ଡିଭାଇସ ଏବଂ କାଷ୍ଟ ଡିଭାଇସ ସମାନ ୱାଇ-ଫାଇ ନେଟୱାର୍କରେ ଅଛି ବୋଲି ସୁନିଶ୍ଚିତ କରନ୍ତୁ।"</string>
+    <string name="mr_chooser_done_button_label" msgid="7897288652928484627">"ହୋଇଗଲା"</string>
 </resources>
diff --git a/mediarouter/mediarouter/src/main/res/values-pa/strings.xml b/mediarouter/mediarouter/src/main/res/values-pa/strings.xml
index 8396b1f..bb647c9 100644
--- a/mediarouter/mediarouter/src/main/res/values-pa/strings.xml
+++ b/mediarouter/mediarouter/src/main/res/values-pa/strings.xml
@@ -41,12 +41,8 @@
     <string name="mr_dialog_groupable_header" msgid="4307018456678388936">"ਕੋਈ ਡੀਵਾਈਸ ਸ਼ਾਮਲ ਕਰੋ"</string>
     <string name="mr_dialog_transferable_header" msgid="6068257520605505468">"ਕਿਸੇ ਗਰੁੱਪ ਵਿੱਚ ਖੇਡੋ"</string>
     <string name="mr_cast_dialog_title_view_placeholder" msgid="2175930138959078155">"ਕੋਈ ਜਾਣਕਾਰੀ ਉਪਲਬਧ ਨਹੀਂ"</string>
-    <!-- no translation found for mr_chooser_zero_routes_found_title (5213435473397442608) -->
-    <skip />
-    <!-- no translation found for mr_chooser_zero_routes_description (5123320430013505927) -->
-    <skip />
-    <!-- no translation found for mr_chooser_wifi_warning_description (337903053432238985) -->
-    <skip />
-    <!-- no translation found for mr_chooser_done_button_label (7897288652928484627) -->
-    <skip />
+    <string name="mr_chooser_zero_routes_found_title" msgid="5213435473397442608">"ਕੋਈ ਡੀਵਾਈਸ ਉਪਲਬਧ ਨਹੀਂ ਹੈ"</string>
+    <string name="mr_chooser_zero_routes_description" msgid="5123320430013505927">"ਡੀਵਾਈਸਾਂ ਨੂੰ ਲੱਭਿਆ ਨਹੀਂ ਜਾ ਸਕਿਆ, ਪੱਕਾ ਕਰੋ ਕਿ ਤੁਹਾਡਾ ਡੀਵਾਈਸ ਅਤੇ ਕਾਸਟ ਡੀਵਾਈਸ ਇੱਕੋ ਵਾਈ-ਫਾਈ ਨੈੱਟਵਰਕ \'ਤੇ ਹਨ ਅਤੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"</string>
+    <string name="mr_chooser_wifi_warning_description" msgid="337903053432238985">"ਪੱਕਾ ਕਰੋ ਕਿ ਤੁਹਾਡਾ ਡੀਵਾਈਸ ਅਤੇ ਕਾਸਟ ਡੀਵਾਈਸ ਇੱਕੋ ਵਾਈ-ਫਾਈ ਨੈੱਟਵਰਕ \'ਤੇ ਹਨ।"</string>
+    <string name="mr_chooser_done_button_label" msgid="7897288652928484627">"ਹੋ ਗਿਆ"</string>
 </resources>
diff --git a/mediarouter/mediarouter/src/main/res/values-pl/strings.xml b/mediarouter/mediarouter/src/main/res/values-pl/strings.xml
index fd06cce..3463d58 100644
--- a/mediarouter/mediarouter/src/main/res/values-pl/strings.xml
+++ b/mediarouter/mediarouter/src/main/res/values-pl/strings.xml
@@ -41,12 +41,8 @@
     <string name="mr_dialog_groupable_header" msgid="4307018456678388936">"Dodaj urządzenie"</string>
     <string name="mr_dialog_transferable_header" msgid="6068257520605505468">"Odtwórz w grupie"</string>
     <string name="mr_cast_dialog_title_view_placeholder" msgid="2175930138959078155">"Brak informacji"</string>
-    <!-- no translation found for mr_chooser_zero_routes_found_title (5213435473397442608) -->
-    <skip />
-    <!-- no translation found for mr_chooser_zero_routes_description (5123320430013505927) -->
-    <skip />
-    <!-- no translation found for mr_chooser_wifi_warning_description (337903053432238985) -->
-    <skip />
-    <!-- no translation found for mr_chooser_done_button_label (7897288652928484627) -->
-    <skip />
+    <string name="mr_chooser_zero_routes_found_title" msgid="5213435473397442608">"Brak dostępnych urządzeń"</string>
+    <string name="mr_chooser_zero_routes_description" msgid="5123320430013505927">"Nie można znaleźć urządzeń. Upewnij się, że Twoje urządzenie oraz urządzenie przesyłające są w tej samej sieci Wi-Fi, i spróbuj ponownie."</string>
+    <string name="mr_chooser_wifi_warning_description" msgid="337903053432238985">"Upewnij się, że Twoje urządzenie oraz urządzenie przesyłające są w tej samej sieci Wi-Fi."</string>
+    <string name="mr_chooser_done_button_label" msgid="7897288652928484627">"Gotowe"</string>
 </resources>
diff --git a/mediarouter/mediarouter/src/main/res/values-pt-rBR/strings.xml b/mediarouter/mediarouter/src/main/res/values-pt-rBR/strings.xml
index 1c15e96..ea1dfac 100644
--- a/mediarouter/mediarouter/src/main/res/values-pt-rBR/strings.xml
+++ b/mediarouter/mediarouter/src/main/res/values-pt-rBR/strings.xml
@@ -41,12 +41,8 @@
     <string name="mr_dialog_groupable_header" msgid="4307018456678388936">"Adicionar um dispositivo"</string>
     <string name="mr_dialog_transferable_header" msgid="6068257520605505468">"Reproduzir em um grupo"</string>
     <string name="mr_cast_dialog_title_view_placeholder" msgid="2175930138959078155">"Nenhuma informação disponível"</string>
-    <!-- no translation found for mr_chooser_zero_routes_found_title (5213435473397442608) -->
-    <skip />
-    <!-- no translation found for mr_chooser_zero_routes_description (5123320430013505927) -->
-    <skip />
-    <!-- no translation found for mr_chooser_wifi_warning_description (337903053432238985) -->
-    <skip />
-    <!-- no translation found for mr_chooser_done_button_label (7897288652928484627) -->
-    <skip />
+    <string name="mr_chooser_zero_routes_found_title" msgid="5213435473397442608">"Nenhum dispositivo disponível"</string>
+    <string name="mr_chooser_zero_routes_description" msgid="5123320430013505927">"Não foi possível encontrar dispositivos. Confira se o seu dispositivo e o de transmissão estão conectados à mesma rede Wi-Fi e tente de novo."</string>
+    <string name="mr_chooser_wifi_warning_description" msgid="337903053432238985">"Confira se o seu dispositivo e o de transmissão estão conectados à mesma rede Wi-Fi."</string>
+    <string name="mr_chooser_done_button_label" msgid="7897288652928484627">"Concluído"</string>
 </resources>
diff --git a/mediarouter/mediarouter/src/main/res/values-pt-rPT/strings.xml b/mediarouter/mediarouter/src/main/res/values-pt-rPT/strings.xml
index c4a9b98..5483924 100644
--- a/mediarouter/mediarouter/src/main/res/values-pt-rPT/strings.xml
+++ b/mediarouter/mediarouter/src/main/res/values-pt-rPT/strings.xml
@@ -41,12 +41,8 @@
     <string name="mr_dialog_groupable_header" msgid="4307018456678388936">"Adicionar um dispositivo"</string>
     <string name="mr_dialog_transferable_header" msgid="6068257520605505468">"Reproduzir num grupo"</string>
     <string name="mr_cast_dialog_title_view_placeholder" msgid="2175930138959078155">"Nenhuma informação disponível"</string>
-    <!-- no translation found for mr_chooser_zero_routes_found_title (5213435473397442608) -->
-    <skip />
-    <!-- no translation found for mr_chooser_zero_routes_description (5123320430013505927) -->
-    <skip />
-    <!-- no translation found for mr_chooser_wifi_warning_description (337903053432238985) -->
-    <skip />
-    <!-- no translation found for mr_chooser_done_button_label (7897288652928484627) -->
-    <skip />
+    <string name="mr_chooser_zero_routes_found_title" msgid="5213435473397442608">"Nenhum dispositivo disponível"</string>
+    <string name="mr_chooser_zero_routes_description" msgid="5123320430013505927">"Não foi possível encontrar dispositivos. Certifique-se de que o seu dispositivo e o dispositivo de transmissão estão ligados à mesma rede Wi-Fi e tente novamente."</string>
+    <string name="mr_chooser_wifi_warning_description" msgid="337903053432238985">"Certifique-se de que o seu dispositivo e o dispositivo de transmissão estão ligados à mesma rede Wi-Fi."</string>
+    <string name="mr_chooser_done_button_label" msgid="7897288652928484627">"Concluído"</string>
 </resources>
diff --git a/mediarouter/mediarouter/src/main/res/values-pt/strings.xml b/mediarouter/mediarouter/src/main/res/values-pt/strings.xml
index 1c15e96..ea1dfac 100644
--- a/mediarouter/mediarouter/src/main/res/values-pt/strings.xml
+++ b/mediarouter/mediarouter/src/main/res/values-pt/strings.xml
@@ -41,12 +41,8 @@
     <string name="mr_dialog_groupable_header" msgid="4307018456678388936">"Adicionar um dispositivo"</string>
     <string name="mr_dialog_transferable_header" msgid="6068257520605505468">"Reproduzir em um grupo"</string>
     <string name="mr_cast_dialog_title_view_placeholder" msgid="2175930138959078155">"Nenhuma informação disponível"</string>
-    <!-- no translation found for mr_chooser_zero_routes_found_title (5213435473397442608) -->
-    <skip />
-    <!-- no translation found for mr_chooser_zero_routes_description (5123320430013505927) -->
-    <skip />
-    <!-- no translation found for mr_chooser_wifi_warning_description (337903053432238985) -->
-    <skip />
-    <!-- no translation found for mr_chooser_done_button_label (7897288652928484627) -->
-    <skip />
+    <string name="mr_chooser_zero_routes_found_title" msgid="5213435473397442608">"Nenhum dispositivo disponível"</string>
+    <string name="mr_chooser_zero_routes_description" msgid="5123320430013505927">"Não foi possível encontrar dispositivos. Confira se o seu dispositivo e o de transmissão estão conectados à mesma rede Wi-Fi e tente de novo."</string>
+    <string name="mr_chooser_wifi_warning_description" msgid="337903053432238985">"Confira se o seu dispositivo e o de transmissão estão conectados à mesma rede Wi-Fi."</string>
+    <string name="mr_chooser_done_button_label" msgid="7897288652928484627">"Concluído"</string>
 </resources>
diff --git a/mediarouter/mediarouter/src/main/res/values-ro/strings.xml b/mediarouter/mediarouter/src/main/res/values-ro/strings.xml
index bf4841e..b7ea8b2 100644
--- a/mediarouter/mediarouter/src/main/res/values-ro/strings.xml
+++ b/mediarouter/mediarouter/src/main/res/values-ro/strings.xml
@@ -41,12 +41,8 @@
     <string name="mr_dialog_groupable_header" msgid="4307018456678388936">"Adaugă un dispozitiv"</string>
     <string name="mr_dialog_transferable_header" msgid="6068257520605505468">"Redă într-un grup"</string>
     <string name="mr_cast_dialog_title_view_placeholder" msgid="2175930138959078155">"Nu sunt informații disponibile"</string>
-    <!-- no translation found for mr_chooser_zero_routes_found_title (5213435473397442608) -->
-    <skip />
-    <!-- no translation found for mr_chooser_zero_routes_description (5123320430013505927) -->
-    <skip />
-    <!-- no translation found for mr_chooser_wifi_warning_description (337903053432238985) -->
-    <skip />
-    <!-- no translation found for mr_chooser_done_button_label (7897288652928484627) -->
-    <skip />
+    <string name="mr_chooser_zero_routes_found_title" msgid="5213435473397442608">"Nu sunt disponibile dispozitive"</string>
+    <string name="mr_chooser_zero_routes_description" msgid="5123320430013505927">"Nu s-au găsit dispozitive. Asigură-te că dispozitivul tău și dispozitivul de proiecție sunt conectate la aceeași rețea Wi-Fi și încearcă din nou."</string>
+    <string name="mr_chooser_wifi_warning_description" msgid="337903053432238985">"Asigură-te că dispozitivul tău și dispozitivul de proiecție sunt conectate la aceeași rețea Wi-Fi."</string>
+    <string name="mr_chooser_done_button_label" msgid="7897288652928484627">"Gata"</string>
 </resources>
diff --git a/mediarouter/mediarouter/src/main/res/values-ru/strings.xml b/mediarouter/mediarouter/src/main/res/values-ru/strings.xml
index 99c5462..c6ec1fd 100644
--- a/mediarouter/mediarouter/src/main/res/values-ru/strings.xml
+++ b/mediarouter/mediarouter/src/main/res/values-ru/strings.xml
@@ -41,12 +41,8 @@
     <string name="mr_dialog_groupable_header" msgid="4307018456678388936">"Добавление устройства"</string>
     <string name="mr_dialog_transferable_header" msgid="6068257520605505468">"Воспроизведение в группе"</string>
     <string name="mr_cast_dialog_title_view_placeholder" msgid="2175930138959078155">"Данных нет"</string>
-    <!-- no translation found for mr_chooser_zero_routes_found_title (5213435473397442608) -->
-    <skip />
-    <!-- no translation found for mr_chooser_zero_routes_description (5123320430013505927) -->
-    <skip />
-    <!-- no translation found for mr_chooser_wifi_warning_description (337903053432238985) -->
-    <skip />
-    <!-- no translation found for mr_chooser_done_button_label (7897288652928484627) -->
-    <skip />
+    <string name="mr_chooser_zero_routes_found_title" msgid="5213435473397442608">"Нет доступных устройств"</string>
+    <string name="mr_chooser_zero_routes_description" msgid="5123320430013505927">"Не удается найти устройства. Убедитесь, что они подключены к одной и той же сети Wi-Fi."</string>
+    <string name="mr_chooser_wifi_warning_description" msgid="337903053432238985">"Убедитесь, что это устройство и устройство для трансляции подключены к одной и той же сети Wi-Fi."</string>
+    <string name="mr_chooser_done_button_label" msgid="7897288652928484627">"Готово"</string>
 </resources>
diff --git a/mediarouter/mediarouter/src/main/res/values-si/strings.xml b/mediarouter/mediarouter/src/main/res/values-si/strings.xml
index d9054f7..830a8bd 100644
--- a/mediarouter/mediarouter/src/main/res/values-si/strings.xml
+++ b/mediarouter/mediarouter/src/main/res/values-si/strings.xml
@@ -41,12 +41,8 @@
     <string name="mr_dialog_groupable_header" msgid="4307018456678388936">"උපාංගයක් එක් කරන්න"</string>
     <string name="mr_dialog_transferable_header" msgid="6068257520605505468">"සමූහයක ධාවනය කරන්න"</string>
     <string name="mr_cast_dialog_title_view_placeholder" msgid="2175930138959078155">"ලබා ගත හැකි තොරතුරු නොමැත"</string>
-    <!-- no translation found for mr_chooser_zero_routes_found_title (5213435473397442608) -->
-    <skip />
-    <!-- no translation found for mr_chooser_zero_routes_description (5123320430013505927) -->
-    <skip />
-    <!-- no translation found for mr_chooser_wifi_warning_description (337903053432238985) -->
-    <skip />
-    <!-- no translation found for mr_chooser_done_button_label (7897288652928484627) -->
-    <skip />
+    <string name="mr_chooser_zero_routes_found_title" msgid="5213435473397442608">"කිසිදු උපාංගයක් නොමැත"</string>
+    <string name="mr_chooser_zero_routes_description" msgid="5123320430013505927">"උපාංග සොයා ගැනීමට නොහැකි වේ, ඔබේ උපාංගය සහ Cast උපාංගය එකම Wi-Fi ජාලයක ඇති බව සහතික කර ගෙන නැවත උත්සාහ කරන්න."</string>
+    <string name="mr_chooser_wifi_warning_description" msgid="337903053432238985">"ඔබේ උපාංගය සහ Cast උපාංගය එකම Wi-Fi ජාලයක ඇති බව සහතික කර ගන්න."</string>
+    <string name="mr_chooser_done_button_label" msgid="7897288652928484627">"නිමයි"</string>
 </resources>
diff --git a/mediarouter/mediarouter/src/main/res/values-sk/strings.xml b/mediarouter/mediarouter/src/main/res/values-sk/strings.xml
index 0283410..4f96aa2 100644
--- a/mediarouter/mediarouter/src/main/res/values-sk/strings.xml
+++ b/mediarouter/mediarouter/src/main/res/values-sk/strings.xml
@@ -41,12 +41,8 @@
     <string name="mr_dialog_groupable_header" msgid="4307018456678388936">"Pridanie zariadenia"</string>
     <string name="mr_dialog_transferable_header" msgid="6068257520605505468">"Prehrávanie v skupine"</string>
     <string name="mr_cast_dialog_title_view_placeholder" msgid="2175930138959078155">"Nie sú k dispozícii žiadne informácie"</string>
-    <!-- no translation found for mr_chooser_zero_routes_found_title (5213435473397442608) -->
-    <skip />
-    <!-- no translation found for mr_chooser_zero_routes_description (5123320430013505927) -->
-    <skip />
-    <!-- no translation found for mr_chooser_wifi_warning_description (337903053432238985) -->
-    <skip />
-    <!-- no translation found for mr_chooser_done_button_label (7897288652928484627) -->
-    <skip />
+    <string name="mr_chooser_zero_routes_found_title" msgid="5213435473397442608">"Nie sú k dispozícii žiadne zariadenia"</string>
+    <string name="mr_chooser_zero_routes_description" msgid="5123320430013505927">"Zariadenia sa nedajú nájsť. Skontrolujte, či sú vaše zariadenie a zariadenie na prenos pripojené k rovnakej sieti Wi‑Fi, a skúste to znova."</string>
+    <string name="mr_chooser_wifi_warning_description" msgid="337903053432238985">"Skontrolujte, či sú vaše zariadenie a zariadenie na prenos pripojené k rovnakej sieti Wi‑Fi."</string>
+    <string name="mr_chooser_done_button_label" msgid="7897288652928484627">"Hotovo"</string>
 </resources>
diff --git a/mediarouter/mediarouter/src/main/res/values-sl/strings.xml b/mediarouter/mediarouter/src/main/res/values-sl/strings.xml
index 5889dfb..10732e6 100644
--- a/mediarouter/mediarouter/src/main/res/values-sl/strings.xml
+++ b/mediarouter/mediarouter/src/main/res/values-sl/strings.xml
@@ -41,12 +41,8 @@
     <string name="mr_dialog_groupable_header" msgid="4307018456678388936">"Dodajanje naprave"</string>
     <string name="mr_dialog_transferable_header" msgid="6068257520605505468">"Predvajanje v skupini"</string>
     <string name="mr_cast_dialog_title_view_placeholder" msgid="2175930138959078155">"Ni podatkov"</string>
-    <!-- no translation found for mr_chooser_zero_routes_found_title (5213435473397442608) -->
-    <skip />
-    <!-- no translation found for mr_chooser_zero_routes_description (5123320430013505927) -->
-    <skip />
-    <!-- no translation found for mr_chooser_wifi_warning_description (337903053432238985) -->
-    <skip />
-    <!-- no translation found for mr_chooser_done_button_label (7897288652928484627) -->
-    <skip />
+    <string name="mr_chooser_zero_routes_found_title" msgid="5213435473397442608">"Nobena naprava ni na voljo"</string>
+    <string name="mr_chooser_zero_routes_description" msgid="5123320430013505927">"Naprav ni mogoče najti. Prepričajte se, da sta vaša naprava in naprava za predvajanje povezani v isto omrežje Wi-Fi, in poskusite znova."</string>
+    <string name="mr_chooser_wifi_warning_description" msgid="337903053432238985">"Prepričajte se, da sta vaša naprava in naprava za predvajanje povezani v isto omrežje Wi-Fi."</string>
+    <string name="mr_chooser_done_button_label" msgid="7897288652928484627">"Končano"</string>
 </resources>
diff --git a/mediarouter/mediarouter/src/main/res/values-sq/strings.xml b/mediarouter/mediarouter/src/main/res/values-sq/strings.xml
index 8b7c925..15cee8a 100644
--- a/mediarouter/mediarouter/src/main/res/values-sq/strings.xml
+++ b/mediarouter/mediarouter/src/main/res/values-sq/strings.xml
@@ -41,12 +41,8 @@
     <string name="mr_dialog_groupable_header" msgid="4307018456678388936">"Shto një pajisje"</string>
     <string name="mr_dialog_transferable_header" msgid="6068257520605505468">"Luaj në një grup"</string>
     <string name="mr_cast_dialog_title_view_placeholder" msgid="2175930138959078155">"Nuk jepet asnjë informacion"</string>
-    <!-- no translation found for mr_chooser_zero_routes_found_title (5213435473397442608) -->
-    <skip />
-    <!-- no translation found for mr_chooser_zero_routes_description (5123320430013505927) -->
-    <skip />
-    <!-- no translation found for mr_chooser_wifi_warning_description (337903053432238985) -->
-    <skip />
-    <!-- no translation found for mr_chooser_done_button_label (7897288652928484627) -->
-    <skip />
+    <string name="mr_chooser_zero_routes_found_title" msgid="5213435473397442608">"Nuk ofrohet asnjë pajisje"</string>
+    <string name="mr_chooser_zero_routes_description" msgid="5123320430013505927">"Pajisjet nuk mund të gjenden. Sigurohu që pajisja jote dhe pajisja e transmetimit me teknologjinë \"cast\" të jenë në të njëjtin rrjet Wi-Fi dhe provo përsëri."</string>
+    <string name="mr_chooser_wifi_warning_description" msgid="337903053432238985">"Sigurohu që si pajisja jote ashtu edhe pajisja e transmetimit me teknologjinë \"cast\" të jenë në të njëjtin rrjet Wi-Fi."</string>
+    <string name="mr_chooser_done_button_label" msgid="7897288652928484627">"U krye"</string>
 </resources>
diff --git a/mediarouter/mediarouter/src/main/res/values-sr/strings.xml b/mediarouter/mediarouter/src/main/res/values-sr/strings.xml
index ad33c85..6d72f70 100644
--- a/mediarouter/mediarouter/src/main/res/values-sr/strings.xml
+++ b/mediarouter/mediarouter/src/main/res/values-sr/strings.xml
@@ -41,12 +41,8 @@
     <string name="mr_dialog_groupable_header" msgid="4307018456678388936">"Додајте уређај"</string>
     <string name="mr_dialog_transferable_header" msgid="6068257520605505468">"Пуштајте у групи"</string>
     <string name="mr_cast_dialog_title_view_placeholder" msgid="2175930138959078155">"Нема доступних информација"</string>
-    <!-- no translation found for mr_chooser_zero_routes_found_title (5213435473397442608) -->
-    <skip />
-    <!-- no translation found for mr_chooser_zero_routes_description (5123320430013505927) -->
-    <skip />
-    <!-- no translation found for mr_chooser_wifi_warning_description (337903053432238985) -->
-    <skip />
-    <!-- no translation found for mr_chooser_done_button_label (7897288652928484627) -->
-    <skip />
+    <string name="mr_chooser_zero_routes_found_title" msgid="5213435473397442608">"Није доступан ниједан уређај"</string>
+    <string name="mr_chooser_zero_routes_description" msgid="5123320430013505927">"Нисмо пронашли уређаје. Уверите се да су ваш уређај и уређај за пребацивање на истој WiFi мрежи."</string>
+    <string name="mr_chooser_wifi_warning_description" msgid="337903053432238985">"Уверите се да су уређај и уређај за пребацивање на истој WiFi мрежи."</string>
+    <string name="mr_chooser_done_button_label" msgid="7897288652928484627">"Готово"</string>
 </resources>
diff --git a/mediarouter/mediarouter/src/main/res/values-sv/strings.xml b/mediarouter/mediarouter/src/main/res/values-sv/strings.xml
index f1716ad..9f26dc2 100644
--- a/mediarouter/mediarouter/src/main/res/values-sv/strings.xml
+++ b/mediarouter/mediarouter/src/main/res/values-sv/strings.xml
@@ -41,12 +41,8 @@
     <string name="mr_dialog_groupable_header" msgid="4307018456678388936">"Lägga till en enhet"</string>
     <string name="mr_dialog_transferable_header" msgid="6068257520605505468">"Spela upp på en grupp enheter"</string>
     <string name="mr_cast_dialog_title_view_placeholder" msgid="2175930138959078155">"Det finns ingen tillgänglig information"</string>
-    <!-- no translation found for mr_chooser_zero_routes_found_title (5213435473397442608) -->
-    <skip />
-    <!-- no translation found for mr_chooser_zero_routes_description (5123320430013505927) -->
-    <skip />
-    <!-- no translation found for mr_chooser_wifi_warning_description (337903053432238985) -->
-    <skip />
-    <!-- no translation found for mr_chooser_done_button_label (7897288652928484627) -->
-    <skip />
+    <string name="mr_chooser_zero_routes_found_title" msgid="5213435473397442608">"Inga tillgängliga enheter"</string>
+    <string name="mr_chooser_zero_routes_description" msgid="5123320430013505927">"Det gick inte att hitta enheter. Kontrollera att din enhet och Cast-enheten är anslutna till samma wifi-nätverk och pröva igen."</string>
+    <string name="mr_chooser_wifi_warning_description" msgid="337903053432238985">"Kontrollera att din enhet och Cast-enheten är anslutna till samma wifi-nätverk."</string>
+    <string name="mr_chooser_done_button_label" msgid="7897288652928484627">"Klart"</string>
 </resources>
diff --git a/mediarouter/mediarouter/src/main/res/values-sw/strings.xml b/mediarouter/mediarouter/src/main/res/values-sw/strings.xml
index 6c73e06..d1fac7e 100644
--- a/mediarouter/mediarouter/src/main/res/values-sw/strings.xml
+++ b/mediarouter/mediarouter/src/main/res/values-sw/strings.xml
@@ -41,12 +41,8 @@
     <string name="mr_dialog_groupable_header" msgid="4307018456678388936">"Ongeza kifaa"</string>
     <string name="mr_dialog_transferable_header" msgid="6068257520605505468">"Cheza kwenye kikundi"</string>
     <string name="mr_cast_dialog_title_view_placeholder" msgid="2175930138959078155">"Hakuna maelezo yaliyopatikana"</string>
-    <!-- no translation found for mr_chooser_zero_routes_found_title (5213435473397442608) -->
-    <skip />
-    <!-- no translation found for mr_chooser_zero_routes_description (5123320430013505927) -->
-    <skip />
-    <!-- no translation found for mr_chooser_wifi_warning_description (337903053432238985) -->
-    <skip />
-    <!-- no translation found for mr_chooser_done_button_label (7897288652928484627) -->
-    <skip />
+    <string name="mr_chooser_zero_routes_found_title" msgid="5213435473397442608">"Hakuna vifaa vilivyopatikana"</string>
+    <string name="mr_chooser_zero_routes_description" msgid="5123320430013505927">"Imeshindwa kupata vifaa, hakikisha kifaa chako na Kifaa kinachotuma maudhui vimeunganishwa kwenye mtandao mmoja wa Wi-Fi."</string>
+    <string name="mr_chooser_wifi_warning_description" msgid="337903053432238985">"Hakikisha kifaa chako na Kifaa kinachotuma maudhui vimeunganishwa kwenye mtandao mmoja wa Wi-Fi."</string>
+    <string name="mr_chooser_done_button_label" msgid="7897288652928484627">"Nimemaliza"</string>
 </resources>
diff --git a/mediarouter/mediarouter/src/main/res/values-ta/strings.xml b/mediarouter/mediarouter/src/main/res/values-ta/strings.xml
index 61fdf59..ee8cab7 100644
--- a/mediarouter/mediarouter/src/main/res/values-ta/strings.xml
+++ b/mediarouter/mediarouter/src/main/res/values-ta/strings.xml
@@ -41,12 +41,8 @@
     <string name="mr_dialog_groupable_header" msgid="4307018456678388936">"சாதனத்தைச் சேர்த்தல்"</string>
     <string name="mr_dialog_transferable_header" msgid="6068257520605505468">"குழுவில் இயக்கு"</string>
     <string name="mr_cast_dialog_title_view_placeholder" msgid="2175930138959078155">"தகவல் எதுவுமில்லை"</string>
-    <!-- no translation found for mr_chooser_zero_routes_found_title (5213435473397442608) -->
-    <skip />
-    <!-- no translation found for mr_chooser_zero_routes_description (5123320430013505927) -->
-    <skip />
-    <!-- no translation found for mr_chooser_wifi_warning_description (337903053432238985) -->
-    <skip />
-    <!-- no translation found for mr_chooser_done_button_label (7897288652928484627) -->
-    <skip />
+    <string name="mr_chooser_zero_routes_found_title" msgid="5213435473397442608">"சாதனங்கள் இல்லை"</string>
+    <string name="mr_chooser_zero_routes_description" msgid="5123320430013505927">"சாதனங்களைக் கண்டறிய முடியவில்லை, உங்கள் சாதனமும் அனுப்பும் சாதனமும் ஒரே வைஃபை நெட்வொர்க்கில் இணைக்கப்பட்டிருப்பதை உறுதிசெய்து மீண்டும் முயலவும்."</string>
+    <string name="mr_chooser_wifi_warning_description" msgid="337903053432238985">"உங்கள் சாதனமும் அனுப்பும் சாதனமும் ஒரே வைஃபை நெட்வொர்க்கில் இணைக்கப்பட்டிருப்பதை உறுதிசெய்துகொள்ளவும்."</string>
+    <string name="mr_chooser_done_button_label" msgid="7897288652928484627">"முடிந்தது"</string>
 </resources>
diff --git a/mediarouter/mediarouter/src/main/res/values-te/strings.xml b/mediarouter/mediarouter/src/main/res/values-te/strings.xml
index e3a416b..e2c79ed 100644
--- a/mediarouter/mediarouter/src/main/res/values-te/strings.xml
+++ b/mediarouter/mediarouter/src/main/res/values-te/strings.xml
@@ -41,12 +41,8 @@
     <string name="mr_dialog_groupable_header" msgid="4307018456678388936">"పరికరాన్ని జోడించండి"</string>
     <string name="mr_dialog_transferable_header" msgid="6068257520605505468">"గ్రూప్‌లో ప్లే చేయండి"</string>
     <string name="mr_cast_dialog_title_view_placeholder" msgid="2175930138959078155">"సమాచారం అందుబాటులో లేదు"</string>
-    <!-- no translation found for mr_chooser_zero_routes_found_title (5213435473397442608) -->
-    <skip />
-    <!-- no translation found for mr_chooser_zero_routes_description (5123320430013505927) -->
-    <skip />
-    <!-- no translation found for mr_chooser_wifi_warning_description (337903053432238985) -->
-    <skip />
-    <!-- no translation found for mr_chooser_done_button_label (7897288652928484627) -->
-    <skip />
+    <string name="mr_chooser_zero_routes_found_title" msgid="5213435473397442608">"పరికరాలు ఏవీ అందుబాటులో లేవు"</string>
+    <string name="mr_chooser_zero_routes_description" msgid="5123320430013505927">"పరికరాలను కనుగొనడం సాధ్యపడలేదు, మీ పరికరం, ప్రసార పరికరం ఒకే Wi-Fi నెట్‌వర్క్‌లో ఉన్నాయని నిర్ధారించుకుని, మళ్లీ ట్రై చేయండి."</string>
+    <string name="mr_chooser_wifi_warning_description" msgid="337903053432238985">"మీ పరికరం, ప్రసార పరికరం ఒకే Wi-Fi నెట్‌వర్క్‌లో ఉన్నాయని నిర్ధారించుకోండి."</string>
+    <string name="mr_chooser_done_button_label" msgid="7897288652928484627">"పూర్తయింది"</string>
 </resources>
diff --git a/mediarouter/mediarouter/src/main/res/values-th/strings.xml b/mediarouter/mediarouter/src/main/res/values-th/strings.xml
index 6128c15..9738543 100644
--- a/mediarouter/mediarouter/src/main/res/values-th/strings.xml
+++ b/mediarouter/mediarouter/src/main/res/values-th/strings.xml
@@ -41,12 +41,8 @@
     <string name="mr_dialog_groupable_header" msgid="4307018456678388936">"เพิ่มอุปกรณ์"</string>
     <string name="mr_dialog_transferable_header" msgid="6068257520605505468">"เล่นในกลุ่ม"</string>
     <string name="mr_cast_dialog_title_view_placeholder" msgid="2175930138959078155">"ไม่มีข้อมูล"</string>
-    <!-- no translation found for mr_chooser_zero_routes_found_title (5213435473397442608) -->
-    <skip />
-    <!-- no translation found for mr_chooser_zero_routes_description (5123320430013505927) -->
-    <skip />
-    <!-- no translation found for mr_chooser_wifi_warning_description (337903053432238985) -->
-    <skip />
-    <!-- no translation found for mr_chooser_done_button_label (7897288652928484627) -->
-    <skip />
+    <string name="mr_chooser_zero_routes_found_title" msgid="5213435473397442608">"ไม่มีอุปกรณ์ที่ใช้ได้"</string>
+    <string name="mr_chooser_zero_routes_description" msgid="5123320430013505927">"หาอุปกรณ์ไม่พบ ตรวจสอบว่าอุปกรณ์ของคุณและอุปกรณ์แคสต์ใช้เครือข่าย Wi-Fi เดียวกันแล้วลองอีกครั้ง"</string>
+    <string name="mr_chooser_wifi_warning_description" msgid="337903053432238985">"ตรวจสอบว่าอุปกรณ์ของคุณและอุปกรณ์แคสต์ใช้เครือข่าย Wi-Fi เดียวกัน"</string>
+    <string name="mr_chooser_done_button_label" msgid="7897288652928484627">"เสร็จสิ้น"</string>
 </resources>
diff --git a/mediarouter/mediarouter/src/main/res/values-tl/strings.xml b/mediarouter/mediarouter/src/main/res/values-tl/strings.xml
index 09d27ab..be497a3 100644
--- a/mediarouter/mediarouter/src/main/res/values-tl/strings.xml
+++ b/mediarouter/mediarouter/src/main/res/values-tl/strings.xml
@@ -41,12 +41,8 @@
     <string name="mr_dialog_groupable_header" msgid="4307018456678388936">"Magdagdag ng device"</string>
     <string name="mr_dialog_transferable_header" msgid="6068257520605505468">"I-play sa isang pangkat"</string>
     <string name="mr_cast_dialog_title_view_placeholder" msgid="2175930138959078155">"Walang available na impormasyon"</string>
-    <!-- no translation found for mr_chooser_zero_routes_found_title (5213435473397442608) -->
-    <skip />
-    <!-- no translation found for mr_chooser_zero_routes_description (5123320430013505927) -->
-    <skip />
-    <!-- no translation found for mr_chooser_wifi_warning_description (337903053432238985) -->
-    <skip />
-    <!-- no translation found for mr_chooser_done_button_label (7897288652928484627) -->
-    <skip />
+    <string name="mr_chooser_zero_routes_found_title" msgid="5213435473397442608">"Walang available na device"</string>
+    <string name="mr_chooser_zero_routes_description" msgid="5123320430013505927">"Hindi makahanap ng mga device, tiyaking nakakonekta sa iisang Wi-Fi network ang iyong device at ang Cast device at subukan ulit."</string>
+    <string name="mr_chooser_wifi_warning_description" msgid="337903053432238985">"Tiyaking nakakonekta sa iisang Wi-Fi network ang iyong device at ang Cast device."</string>
+    <string name="mr_chooser_done_button_label" msgid="7897288652928484627">"Tapos na"</string>
 </resources>
diff --git a/mediarouter/mediarouter/src/main/res/values-tr/strings.xml b/mediarouter/mediarouter/src/main/res/values-tr/strings.xml
index a2848f8..3bc302e 100644
--- a/mediarouter/mediarouter/src/main/res/values-tr/strings.xml
+++ b/mediarouter/mediarouter/src/main/res/values-tr/strings.xml
@@ -41,12 +41,8 @@
     <string name="mr_dialog_groupable_header" msgid="4307018456678388936">"Cihaz ekleyin"</string>
     <string name="mr_dialog_transferable_header" msgid="6068257520605505468">"Bir grupta oynatın"</string>
     <string name="mr_cast_dialog_title_view_placeholder" msgid="2175930138959078155">"Bilgi yok"</string>
-    <!-- no translation found for mr_chooser_zero_routes_found_title (5213435473397442608) -->
-    <skip />
-    <!-- no translation found for mr_chooser_zero_routes_description (5123320430013505927) -->
-    <skip />
-    <!-- no translation found for mr_chooser_wifi_warning_description (337903053432238985) -->
-    <skip />
-    <!-- no translation found for mr_chooser_done_button_label (7897288652928484627) -->
-    <skip />
+    <string name="mr_chooser_zero_routes_found_title" msgid="5213435473397442608">"Kullanılabilir cihaz yok"</string>
+    <string name="mr_chooser_zero_routes_description" msgid="5123320430013505927">"Cihaz bulunamadı. Cihazınızın ve yayın cihazının aynı kablosuz ağa bağlı olduğundan emin olup tekrar deneyin."</string>
+    <string name="mr_chooser_wifi_warning_description" msgid="337903053432238985">"Cihazınızın yayın cihazınızla aynı kablosuz ağa bağlı olduğundan emin olun."</string>
+    <string name="mr_chooser_done_button_label" msgid="7897288652928484627">"Bitti"</string>
 </resources>
diff --git a/mediarouter/mediarouter/src/main/res/values-uk/strings.xml b/mediarouter/mediarouter/src/main/res/values-uk/strings.xml
index c52083d..e997a99 100644
--- a/mediarouter/mediarouter/src/main/res/values-uk/strings.xml
+++ b/mediarouter/mediarouter/src/main/res/values-uk/strings.xml
@@ -41,12 +41,8 @@
     <string name="mr_dialog_groupable_header" msgid="4307018456678388936">"Додати пристрій"</string>
     <string name="mr_dialog_transferable_header" msgid="6068257520605505468">"Увімкнути на групі пристроїв"</string>
     <string name="mr_cast_dialog_title_view_placeholder" msgid="2175930138959078155">"Немає інформації"</string>
-    <!-- no translation found for mr_chooser_zero_routes_found_title (5213435473397442608) -->
-    <skip />
-    <!-- no translation found for mr_chooser_zero_routes_description (5123320430013505927) -->
-    <skip />
-    <!-- no translation found for mr_chooser_wifi_warning_description (337903053432238985) -->
-    <skip />
-    <!-- no translation found for mr_chooser_done_button_label (7897288652928484627) -->
-    <skip />
+    <string name="mr_chooser_zero_routes_found_title" msgid="5213435473397442608">"Немає доступних пристроїв"</string>
+    <string name="mr_chooser_zero_routes_description" msgid="5123320430013505927">"Не вдається знайти пристрої. Переконайтеся, що ваш пристрій і пристрій для трансляції підключено до однієї мережі Wi-Fi, і повторіть спробу."</string>
+    <string name="mr_chooser_wifi_warning_description" msgid="337903053432238985">"Переконайтеся, що ваш пристрій і пристрій для трансляції підключено до однієї мережі Wi-Fi."</string>
+    <string name="mr_chooser_done_button_label" msgid="7897288652928484627">"Готово"</string>
 </resources>
diff --git a/mediarouter/mediarouter/src/main/res/values-ur/strings.xml b/mediarouter/mediarouter/src/main/res/values-ur/strings.xml
index 4491aec..a0b934d 100644
--- a/mediarouter/mediarouter/src/main/res/values-ur/strings.xml
+++ b/mediarouter/mediarouter/src/main/res/values-ur/strings.xml
@@ -41,12 +41,8 @@
     <string name="mr_dialog_groupable_header" msgid="4307018456678388936">"کوئی آلہ شامل کریں"</string>
     <string name="mr_dialog_transferable_header" msgid="6068257520605505468">"گروپ پر چلائیں"</string>
     <string name="mr_cast_dialog_title_view_placeholder" msgid="2175930138959078155">"کوئی معلومات دستیاب نہیں"</string>
-    <!-- no translation found for mr_chooser_zero_routes_found_title (5213435473397442608) -->
-    <skip />
-    <!-- no translation found for mr_chooser_zero_routes_description (5123320430013505927) -->
-    <skip />
-    <!-- no translation found for mr_chooser_wifi_warning_description (337903053432238985) -->
-    <skip />
-    <!-- no translation found for mr_chooser_done_button_label (7897288652928484627) -->
-    <skip />
+    <string name="mr_chooser_zero_routes_found_title" msgid="5213435473397442608">"کوئی آلہ دستیاب نہیں ہے"</string>
+    <string name="mr_chooser_zero_routes_description" msgid="5123320430013505927">"‏آلات تلاش کرنے سے قاصر، یقینی بنائیں کہ آپ کا آلہ اور کاسٹ آلہ ایک ہی Wi-Fi نیٹ ورک پر ہیں اور دوبارہ کوشش کریں۔"</string>
+    <string name="mr_chooser_wifi_warning_description" msgid="337903053432238985">"‏یقینی بنائیں کہ آپ کا آلہ اور کاسٹ آلہ ایک ہی Wi-Fi نیٹ ورک پر ہیں۔"</string>
+    <string name="mr_chooser_done_button_label" msgid="7897288652928484627">"ہو گیا"</string>
 </resources>
diff --git a/mediarouter/mediarouter/src/main/res/values-uz/strings.xml b/mediarouter/mediarouter/src/main/res/values-uz/strings.xml
index 6bd6c65..106568b 100644
--- a/mediarouter/mediarouter/src/main/res/values-uz/strings.xml
+++ b/mediarouter/mediarouter/src/main/res/values-uz/strings.xml
@@ -41,12 +41,8 @@
     <string name="mr_dialog_groupable_header" msgid="4307018456678388936">"Qurilma qo‘shish"</string>
     <string name="mr_dialog_transferable_header" msgid="6068257520605505468">"Guruhda ijro qilish"</string>
     <string name="mr_cast_dialog_title_view_placeholder" msgid="2175930138959078155">"Hech narsa topilmadi"</string>
-    <!-- no translation found for mr_chooser_zero_routes_found_title (5213435473397442608) -->
-    <skip />
-    <!-- no translation found for mr_chooser_zero_routes_description (5123320430013505927) -->
-    <skip />
-    <!-- no translation found for mr_chooser_wifi_warning_description (337903053432238985) -->
-    <skip />
-    <!-- no translation found for mr_chooser_done_button_label (7897288652928484627) -->
-    <skip />
+    <string name="mr_chooser_zero_routes_found_title" msgid="5213435473397442608">"Hech qanday qurilma topilmadi"</string>
+    <string name="mr_chooser_zero_routes_description" msgid="5123320430013505927">"Qurilmalar topilmadi, qurilmangiz va translatsiya qurilmasi bir xil Wi-Fi tarmoqqa ulanganini tekshiring va qaytadan urining."</string>
+    <string name="mr_chooser_wifi_warning_description" msgid="337903053432238985">"Qurilmangiz va translatsiya qurilmasi bir xil Wi-Fi tarmoqqa ulangan boʻlishi lozim."</string>
+    <string name="mr_chooser_done_button_label" msgid="7897288652928484627">"Tayyor"</string>
 </resources>
diff --git a/mediarouter/mediarouter/src/main/res/values-vi/strings.xml b/mediarouter/mediarouter/src/main/res/values-vi/strings.xml
index 01c6a1c..54ac79f 100644
--- a/mediarouter/mediarouter/src/main/res/values-vi/strings.xml
+++ b/mediarouter/mediarouter/src/main/res/values-vi/strings.xml
@@ -41,12 +41,8 @@
     <string name="mr_dialog_groupable_header" msgid="4307018456678388936">"Thêm thiết bị"</string>
     <string name="mr_dialog_transferable_header" msgid="6068257520605505468">"Phát trên nhóm"</string>
     <string name="mr_cast_dialog_title_view_placeholder" msgid="2175930138959078155">"Không có thông tin nào"</string>
-    <!-- no translation found for mr_chooser_zero_routes_found_title (5213435473397442608) -->
-    <skip />
-    <!-- no translation found for mr_chooser_zero_routes_description (5123320430013505927) -->
-    <skip />
-    <!-- no translation found for mr_chooser_wifi_warning_description (337903053432238985) -->
-    <skip />
-    <!-- no translation found for mr_chooser_done_button_label (7897288652928484627) -->
-    <skip />
+    <string name="mr_chooser_zero_routes_found_title" msgid="5213435473397442608">"Không có thiết bị nào"</string>
+    <string name="mr_chooser_zero_routes_description" msgid="5123320430013505927">"Không tìm thấy thiết bị, hãy đảm bảo thiết bị của bạn và Thiết bị truyền sử dụng cùng một mạng Wi-Fi."</string>
+    <string name="mr_chooser_wifi_warning_description" msgid="337903053432238985">"Hãy đảm bảo thiết bị của bạn và Thiết bị truyền sử dụng cùng một mạng Wi-Fi."</string>
+    <string name="mr_chooser_done_button_label" msgid="7897288652928484627">"Xong"</string>
 </resources>
diff --git a/mediarouter/mediarouter/src/main/res/values-zh-rCN/strings.xml b/mediarouter/mediarouter/src/main/res/values-zh-rCN/strings.xml
index 912d9ea..e90a3d8 100644
--- a/mediarouter/mediarouter/src/main/res/values-zh-rCN/strings.xml
+++ b/mediarouter/mediarouter/src/main/res/values-zh-rCN/strings.xml
@@ -41,12 +41,8 @@
     <string name="mr_dialog_groupable_header" msgid="4307018456678388936">"添加设备"</string>
     <string name="mr_dialog_transferable_header" msgid="6068257520605505468">"在一组设备上播放"</string>
     <string name="mr_cast_dialog_title_view_placeholder" msgid="2175930138959078155">"没有任何相关信息"</string>
-    <!-- no translation found for mr_chooser_zero_routes_found_title (5213435473397442608) -->
-    <skip />
-    <!-- no translation found for mr_chooser_zero_routes_description (5123320430013505927) -->
-    <skip />
-    <!-- no translation found for mr_chooser_wifi_warning_description (337903053432238985) -->
-    <skip />
-    <!-- no translation found for mr_chooser_done_button_label (7897288652928484627) -->
-    <skip />
+    <string name="mr_chooser_zero_routes_found_title" msgid="5213435473397442608">"没有可用的设备"</string>
+    <string name="mr_chooser_zero_routes_description" msgid="5123320430013505927">"无法找到设备,确保您的设备和投放设备使用的是同一个 WLAN 网络,然后重试。"</string>
+    <string name="mr_chooser_wifi_warning_description" msgid="337903053432238985">"确保您的设备和投放设备使用的是同一个 WLAN 网络。"</string>
+    <string name="mr_chooser_done_button_label" msgid="7897288652928484627">"完成"</string>
 </resources>
diff --git a/mediarouter/mediarouter/src/main/res/values-zh-rHK/strings.xml b/mediarouter/mediarouter/src/main/res/values-zh-rHK/strings.xml
index 90d792c..c907ac9 100644
--- a/mediarouter/mediarouter/src/main/res/values-zh-rHK/strings.xml
+++ b/mediarouter/mediarouter/src/main/res/values-zh-rHK/strings.xml
@@ -41,12 +41,8 @@
     <string name="mr_dialog_groupable_header" msgid="4307018456678388936">"新增裝置"</string>
     <string name="mr_dialog_transferable_header" msgid="6068257520605505468">"在群組裝置中播放"</string>
     <string name="mr_cast_dialog_title_view_placeholder" msgid="2175930138959078155">"沒有資料可以提供"</string>
-    <!-- no translation found for mr_chooser_zero_routes_found_title (5213435473397442608) -->
-    <skip />
-    <!-- no translation found for mr_chooser_zero_routes_description (5123320430013505927) -->
-    <skip />
-    <!-- no translation found for mr_chooser_wifi_warning_description (337903053432238985) -->
-    <skip />
-    <!-- no translation found for mr_chooser_done_button_label (7897288652928484627) -->
-    <skip />
+    <string name="mr_chooser_zero_routes_found_title" msgid="5213435473397442608">"沒有可用的裝置"</string>
+    <string name="mr_chooser_zero_routes_description" msgid="5123320430013505927">"找不到裝置。請確保你的裝置與投放裝置已連線至相同的 Wi-Fi 網絡,然後再試一次。"</string>
+    <string name="mr_chooser_wifi_warning_description" msgid="337903053432238985">"請確保你的裝置與投放裝置已連線至相同的 Wi-Fi 網絡。"</string>
+    <string name="mr_chooser_done_button_label" msgid="7897288652928484627">"完成"</string>
 </resources>
diff --git a/mediarouter/mediarouter/src/main/res/values-zh-rTW/strings.xml b/mediarouter/mediarouter/src/main/res/values-zh-rTW/strings.xml
index 36e2645..a4977fa 100644
--- a/mediarouter/mediarouter/src/main/res/values-zh-rTW/strings.xml
+++ b/mediarouter/mediarouter/src/main/res/values-zh-rTW/strings.xml
@@ -41,12 +41,8 @@
     <string name="mr_dialog_groupable_header" msgid="4307018456678388936">"新增裝置"</string>
     <string name="mr_dialog_transferable_header" msgid="6068257520605505468">"在群組上播放"</string>
     <string name="mr_cast_dialog_title_view_placeholder" msgid="2175930138959078155">"沒有可用的資訊"</string>
-    <!-- no translation found for mr_chooser_zero_routes_found_title (5213435473397442608) -->
-    <skip />
-    <!-- no translation found for mr_chooser_zero_routes_description (5123320430013505927) -->
-    <skip />
-    <!-- no translation found for mr_chooser_wifi_warning_description (337903053432238985) -->
-    <skip />
-    <!-- no translation found for mr_chooser_done_button_label (7897288652928484627) -->
-    <skip />
+    <string name="mr_chooser_zero_routes_found_title" msgid="5213435473397442608">"找不到裝置"</string>
+    <string name="mr_chooser_zero_routes_description" msgid="5123320430013505927">"找不到裝置。請確認你的裝置和投放裝置已連上同一個 Wi-Fi 網路,然後再試一次。"</string>
+    <string name="mr_chooser_wifi_warning_description" msgid="337903053432238985">"請確認你的裝置和投放裝置已連上同一個 Wi-Fi 網路。"</string>
+    <string name="mr_chooser_done_button_label" msgid="7897288652928484627">"完成"</string>
 </resources>
diff --git a/mediarouter/mediarouter/src/main/res/values-zu/strings.xml b/mediarouter/mediarouter/src/main/res/values-zu/strings.xml
index c8774f2..5b03991 100644
--- a/mediarouter/mediarouter/src/main/res/values-zu/strings.xml
+++ b/mediarouter/mediarouter/src/main/res/values-zu/strings.xml
@@ -41,12 +41,8 @@
     <string name="mr_dialog_groupable_header" msgid="4307018456678388936">"Engeza idivayisi"</string>
     <string name="mr_dialog_transferable_header" msgid="6068257520605505468">"Dlala eqenjini"</string>
     <string name="mr_cast_dialog_title_view_placeholder" msgid="2175930138959078155">"Alukho ulwazi olutholakalayo"</string>
-    <!-- no translation found for mr_chooser_zero_routes_found_title (5213435473397442608) -->
-    <skip />
-    <!-- no translation found for mr_chooser_zero_routes_description (5123320430013505927) -->
-    <skip />
-    <!-- no translation found for mr_chooser_wifi_warning_description (337903053432238985) -->
-    <skip />
-    <!-- no translation found for mr_chooser_done_button_label (7897288652928484627) -->
-    <skip />
+    <string name="mr_chooser_zero_routes_found_title" msgid="5213435473397442608">"Ayikho idivayisi etholakalayo"</string>
+    <string name="mr_chooser_zero_routes_description" msgid="5123320430013505927">"Awukwazi ukuthola amadivayisi, qinisekisa ukuthi idivayisi yakho nedivayisi ye-Cast zikunethiwekhi efanayo ye-Wi-Fi bese uyazama futhi."</string>
+    <string name="mr_chooser_wifi_warning_description" msgid="337903053432238985">"Qinisekisa ukuthi idivayisi yakho Nedivayisi yabalingisi zikunethiwekhi efanayo ye-Wi-Fi."</string>
+    <string name="mr_chooser_done_button_label" msgid="7897288652928484627">"Kwenziwe"</string>
 </resources>
diff --git a/navigation/navigation-ui/api/current.txt b/navigation/navigation-ui/api/current.txt
index a463f82..5094c7e 100644
--- a/navigation/navigation-ui/api/current.txt
+++ b/navigation/navigation-ui/api/current.txt
@@ -61,6 +61,7 @@
     method public static boolean navigateUp(androidx.navigation.NavController navController, androidx.customview.widget.Openable? openableLayout);
     method public static boolean navigateUp(androidx.navigation.NavController navController, androidx.navigation.ui.AppBarConfiguration configuration);
     method public static boolean onNavDestinationSelected(android.view.MenuItem item, androidx.navigation.NavController navController);
+    method @androidx.navigation.ui.NavigationUiSaveStateControl public static boolean onNavDestinationSelected(android.view.MenuItem item, androidx.navigation.NavController navController, boolean saveState);
     method public static void setupActionBarWithNavController(androidx.appcompat.app.AppCompatActivity activity, androidx.navigation.NavController navController);
     method public static void setupActionBarWithNavController(androidx.appcompat.app.AppCompatActivity activity, androidx.navigation.NavController navController, androidx.customview.widget.Openable? openableLayout);
     method public static void setupActionBarWithNavController(androidx.appcompat.app.AppCompatActivity activity, androidx.navigation.NavController navController, optional androidx.navigation.ui.AppBarConfiguration configuration);
@@ -71,10 +72,15 @@
     method public static void setupWithNavController(com.google.android.material.appbar.CollapsingToolbarLayout collapsingToolbarLayout, androidx.appcompat.widget.Toolbar toolbar, androidx.navigation.NavController navController, androidx.customview.widget.Openable? openableLayout);
     method public static void setupWithNavController(com.google.android.material.appbar.CollapsingToolbarLayout collapsingToolbarLayout, androidx.appcompat.widget.Toolbar toolbar, androidx.navigation.NavController navController, optional androidx.navigation.ui.AppBarConfiguration configuration);
     method public static void setupWithNavController(com.google.android.material.navigation.NavigationBarView navigationBarView, androidx.navigation.NavController navController);
+    method @androidx.navigation.ui.NavigationUiSaveStateControl public static void setupWithNavController(com.google.android.material.navigation.NavigationBarView navigationBarView, androidx.navigation.NavController navController, boolean saveState);
     method public static void setupWithNavController(com.google.android.material.navigation.NavigationView navigationView, androidx.navigation.NavController navController);
+    method @androidx.navigation.ui.NavigationUiSaveStateControl public static void setupWithNavController(com.google.android.material.navigation.NavigationView navigationView, androidx.navigation.NavController navController, boolean saveState);
     field public static final androidx.navigation.ui.NavigationUI INSTANCE;
   }
 
+  @kotlin.RequiresOptIn(level=kotlin.RequiresOptIn.Level.WARNING) @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.RUNTIME) @kotlin.annotation.Target(allowedTargets=kotlin.annotation.AnnotationTarget.FUNCTION) public @interface NavigationUiSaveStateControl {
+  }
+
   public final class NavigationViewKt {
     method public static void setupWithNavController(com.google.android.material.navigation.NavigationView, androidx.navigation.NavController navController);
   }
diff --git a/navigation/navigation-ui/api/public_plus_experimental_current.txt b/navigation/navigation-ui/api/public_plus_experimental_current.txt
deleted file mode 100644
index 5094c7e..0000000
--- a/navigation/navigation-ui/api/public_plus_experimental_current.txt
+++ /dev/null
@@ -1,94 +0,0 @@
-// Signature format: 4.0
-package androidx.navigation.ui {
-
-  public final class ActivityKt {
-    method public static void setupActionBarWithNavController(androidx.appcompat.app.AppCompatActivity, androidx.navigation.NavController navController, androidx.drawerlayout.widget.DrawerLayout? drawerLayout);
-    method public static void setupActionBarWithNavController(androidx.appcompat.app.AppCompatActivity, androidx.navigation.NavController navController, optional androidx.navigation.ui.AppBarConfiguration configuration);
-  }
-
-  public final class AppBarConfiguration {
-    method @Deprecated public androidx.drawerlayout.widget.DrawerLayout? getDrawerLayout();
-    method public androidx.navigation.ui.AppBarConfiguration.OnNavigateUpListener? getFallbackOnNavigateUpListener();
-    method public androidx.customview.widget.Openable? getOpenableLayout();
-    method public java.util.Set<java.lang.Integer> getTopLevelDestinations();
-    method public boolean isTopLevelDestination(androidx.navigation.NavDestination destination);
-    property @Deprecated public final androidx.drawerlayout.widget.DrawerLayout? drawerLayout;
-    property public final androidx.navigation.ui.AppBarConfiguration.OnNavigateUpListener? fallbackOnNavigateUpListener;
-    property public final androidx.customview.widget.Openable? openableLayout;
-    property public final java.util.Set<java.lang.Integer> topLevelDestinations;
-  }
-
-  public static final class AppBarConfiguration.Builder {
-    ctor public AppBarConfiguration.Builder(android.view.Menu topLevelMenu);
-    ctor public AppBarConfiguration.Builder(androidx.navigation.NavGraph navGraph);
-    ctor public AppBarConfiguration.Builder(int... topLevelDestinationIds);
-    ctor public AppBarConfiguration.Builder(java.util.Set<java.lang.Integer> topLevelDestinationIds);
-    method public androidx.navigation.ui.AppBarConfiguration build();
-    method @Deprecated public androidx.navigation.ui.AppBarConfiguration.Builder setDrawerLayout(androidx.drawerlayout.widget.DrawerLayout? drawerLayout);
-    method public androidx.navigation.ui.AppBarConfiguration.Builder setFallbackOnNavigateUpListener(androidx.navigation.ui.AppBarConfiguration.OnNavigateUpListener? fallbackOnNavigateUpListener);
-    method public androidx.navigation.ui.AppBarConfiguration.Builder setOpenableLayout(androidx.customview.widget.Openable? openableLayout);
-  }
-
-  public static fun interface AppBarConfiguration.OnNavigateUpListener {
-    method public boolean onNavigateUp();
-  }
-
-  public final class AppBarConfigurationKt {
-    method public static inline androidx.navigation.ui.AppBarConfiguration AppBarConfiguration(android.view.Menu topLevelMenu, optional androidx.customview.widget.Openable? drawerLayout, optional kotlin.jvm.functions.Function0<java.lang.Boolean> fallbackOnNavigateUpListener);
-    method public static inline androidx.navigation.ui.AppBarConfiguration AppBarConfiguration(androidx.navigation.NavGraph navGraph, optional androidx.customview.widget.Openable? drawerLayout, optional kotlin.jvm.functions.Function0<java.lang.Boolean> fallbackOnNavigateUpListener);
-    method public static inline androidx.navigation.ui.AppBarConfiguration AppBarConfiguration(java.util.Set<java.lang.Integer> topLevelDestinationIds, optional androidx.customview.widget.Openable? drawerLayout, optional kotlin.jvm.functions.Function0<java.lang.Boolean> fallbackOnNavigateUpListener);
-  }
-
-  public final class BottomNavigationViewKt {
-    method public static void setupWithNavController(com.google.android.material.navigation.NavigationBarView, androidx.navigation.NavController navController);
-  }
-
-  public final class CollapsingToolbarLayoutKt {
-    method public static void setupWithNavController(com.google.android.material.appbar.CollapsingToolbarLayout, androidx.appcompat.widget.Toolbar toolbar, androidx.navigation.NavController navController, androidx.drawerlayout.widget.DrawerLayout? drawerLayout);
-    method public static void setupWithNavController(com.google.android.material.appbar.CollapsingToolbarLayout, androidx.appcompat.widget.Toolbar toolbar, androidx.navigation.NavController navController, optional androidx.navigation.ui.AppBarConfiguration configuration);
-  }
-
-  public final class MenuItemKt {
-    method public static boolean onNavDestinationSelected(android.view.MenuItem, androidx.navigation.NavController navController);
-  }
-
-  public final class NavControllerKt {
-    method public static boolean navigateUp(androidx.navigation.NavController, androidx.customview.widget.Openable? drawerLayout);
-    method public static boolean navigateUp(androidx.navigation.NavController, androidx.navigation.ui.AppBarConfiguration appBarConfiguration);
-  }
-
-  public final class NavigationUI {
-    method public static boolean navigateUp(androidx.navigation.NavController navController, androidx.customview.widget.Openable? openableLayout);
-    method public static boolean navigateUp(androidx.navigation.NavController navController, androidx.navigation.ui.AppBarConfiguration configuration);
-    method public static boolean onNavDestinationSelected(android.view.MenuItem item, androidx.navigation.NavController navController);
-    method @androidx.navigation.ui.NavigationUiSaveStateControl public static boolean onNavDestinationSelected(android.view.MenuItem item, androidx.navigation.NavController navController, boolean saveState);
-    method public static void setupActionBarWithNavController(androidx.appcompat.app.AppCompatActivity activity, androidx.navigation.NavController navController);
-    method public static void setupActionBarWithNavController(androidx.appcompat.app.AppCompatActivity activity, androidx.navigation.NavController navController, androidx.customview.widget.Openable? openableLayout);
-    method public static void setupActionBarWithNavController(androidx.appcompat.app.AppCompatActivity activity, androidx.navigation.NavController navController, optional androidx.navigation.ui.AppBarConfiguration configuration);
-    method public static void setupWithNavController(androidx.appcompat.widget.Toolbar toolbar, androidx.navigation.NavController navController);
-    method public static void setupWithNavController(androidx.appcompat.widget.Toolbar toolbar, androidx.navigation.NavController navController, androidx.customview.widget.Openable? openableLayout);
-    method public static void setupWithNavController(androidx.appcompat.widget.Toolbar toolbar, androidx.navigation.NavController navController, optional androidx.navigation.ui.AppBarConfiguration configuration);
-    method public static void setupWithNavController(com.google.android.material.appbar.CollapsingToolbarLayout collapsingToolbarLayout, androidx.appcompat.widget.Toolbar toolbar, androidx.navigation.NavController navController);
-    method public static void setupWithNavController(com.google.android.material.appbar.CollapsingToolbarLayout collapsingToolbarLayout, androidx.appcompat.widget.Toolbar toolbar, androidx.navigation.NavController navController, androidx.customview.widget.Openable? openableLayout);
-    method public static void setupWithNavController(com.google.android.material.appbar.CollapsingToolbarLayout collapsingToolbarLayout, androidx.appcompat.widget.Toolbar toolbar, androidx.navigation.NavController navController, optional androidx.navigation.ui.AppBarConfiguration configuration);
-    method public static void setupWithNavController(com.google.android.material.navigation.NavigationBarView navigationBarView, androidx.navigation.NavController navController);
-    method @androidx.navigation.ui.NavigationUiSaveStateControl public static void setupWithNavController(com.google.android.material.navigation.NavigationBarView navigationBarView, androidx.navigation.NavController navController, boolean saveState);
-    method public static void setupWithNavController(com.google.android.material.navigation.NavigationView navigationView, androidx.navigation.NavController navController);
-    method @androidx.navigation.ui.NavigationUiSaveStateControl public static void setupWithNavController(com.google.android.material.navigation.NavigationView navigationView, androidx.navigation.NavController navController, boolean saveState);
-    field public static final androidx.navigation.ui.NavigationUI INSTANCE;
-  }
-
-  @kotlin.RequiresOptIn(level=kotlin.RequiresOptIn.Level.WARNING) @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.RUNTIME) @kotlin.annotation.Target(allowedTargets=kotlin.annotation.AnnotationTarget.FUNCTION) public @interface NavigationUiSaveStateControl {
-  }
-
-  public final class NavigationViewKt {
-    method public static void setupWithNavController(com.google.android.material.navigation.NavigationView, androidx.navigation.NavController navController);
-  }
-
-  public final class ToolbarKt {
-    method public static void setupWithNavController(androidx.appcompat.widget.Toolbar, androidx.navigation.NavController navController, androidx.drawerlayout.widget.DrawerLayout? drawerLayout);
-    method public static void setupWithNavController(androidx.appcompat.widget.Toolbar, androidx.navigation.NavController navController, optional androidx.navigation.ui.AppBarConfiguration configuration);
-  }
-
-}
-
diff --git a/navigation/navigation-ui/api/restricted_current.txt b/navigation/navigation-ui/api/restricted_current.txt
index a463f82..5094c7e 100644
--- a/navigation/navigation-ui/api/restricted_current.txt
+++ b/navigation/navigation-ui/api/restricted_current.txt
@@ -61,6 +61,7 @@
     method public static boolean navigateUp(androidx.navigation.NavController navController, androidx.customview.widget.Openable? openableLayout);
     method public static boolean navigateUp(androidx.navigation.NavController navController, androidx.navigation.ui.AppBarConfiguration configuration);
     method public static boolean onNavDestinationSelected(android.view.MenuItem item, androidx.navigation.NavController navController);
+    method @androidx.navigation.ui.NavigationUiSaveStateControl public static boolean onNavDestinationSelected(android.view.MenuItem item, androidx.navigation.NavController navController, boolean saveState);
     method public static void setupActionBarWithNavController(androidx.appcompat.app.AppCompatActivity activity, androidx.navigation.NavController navController);
     method public static void setupActionBarWithNavController(androidx.appcompat.app.AppCompatActivity activity, androidx.navigation.NavController navController, androidx.customview.widget.Openable? openableLayout);
     method public static void setupActionBarWithNavController(androidx.appcompat.app.AppCompatActivity activity, androidx.navigation.NavController navController, optional androidx.navigation.ui.AppBarConfiguration configuration);
@@ -71,10 +72,15 @@
     method public static void setupWithNavController(com.google.android.material.appbar.CollapsingToolbarLayout collapsingToolbarLayout, androidx.appcompat.widget.Toolbar toolbar, androidx.navigation.NavController navController, androidx.customview.widget.Openable? openableLayout);
     method public static void setupWithNavController(com.google.android.material.appbar.CollapsingToolbarLayout collapsingToolbarLayout, androidx.appcompat.widget.Toolbar toolbar, androidx.navigation.NavController navController, optional androidx.navigation.ui.AppBarConfiguration configuration);
     method public static void setupWithNavController(com.google.android.material.navigation.NavigationBarView navigationBarView, androidx.navigation.NavController navController);
+    method @androidx.navigation.ui.NavigationUiSaveStateControl public static void setupWithNavController(com.google.android.material.navigation.NavigationBarView navigationBarView, androidx.navigation.NavController navController, boolean saveState);
     method public static void setupWithNavController(com.google.android.material.navigation.NavigationView navigationView, androidx.navigation.NavController navController);
+    method @androidx.navigation.ui.NavigationUiSaveStateControl public static void setupWithNavController(com.google.android.material.navigation.NavigationView navigationView, androidx.navigation.NavController navController, boolean saveState);
     field public static final androidx.navigation.ui.NavigationUI INSTANCE;
   }
 
+  @kotlin.RequiresOptIn(level=kotlin.RequiresOptIn.Level.WARNING) @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.RUNTIME) @kotlin.annotation.Target(allowedTargets=kotlin.annotation.AnnotationTarget.FUNCTION) public @interface NavigationUiSaveStateControl {
+  }
+
   public final class NavigationViewKt {
     method public static void setupWithNavController(com.google.android.material.navigation.NavigationView, androidx.navigation.NavController navController);
   }
diff --git a/paging/paging-testing/api/current.txt b/paging/paging-testing/api/current.txt
index 586efd3..3ff4756 100644
--- a/paging/paging-testing/api/current.txt
+++ b/paging/paging-testing/api/current.txt
@@ -1,7 +1,7 @@
 // Signature format: 4.0
 package androidx.paging.testing {
 
-  public enum ErrorRecovery {
+  @VisibleForTesting public enum ErrorRecovery {
     method public static androidx.paging.testing.ErrorRecovery valueOf(String value) throws java.lang.IllegalArgumentException, java.lang.NullPointerException;
     method public static androidx.paging.testing.ErrorRecovery[] values();
     enum_constant public static final androidx.paging.testing.ErrorRecovery RETRY;
@@ -9,15 +9,15 @@
     enum_constant public static final androidx.paging.testing.ErrorRecovery THROW;
   }
 
-  public fun interface LoadErrorHandler {
+  @VisibleForTesting public fun interface LoadErrorHandler {
     method public androidx.paging.testing.ErrorRecovery onError(androidx.paging.CombinedLoadStates combinedLoadStates);
   }
 
   public final class PagerFlowSnapshotKt {
-    method public static suspend <Value> Object? asSnapshot(kotlinx.coroutines.flow.Flow<androidx.paging.PagingData<Value>>, optional androidx.paging.testing.LoadErrorHandler onError, optional kotlin.jvm.functions.Function2<? super androidx.paging.testing.SnapshotLoader<Value>,? super kotlin.coroutines.Continuation<kotlin.Unit>,?> loadOperations, optional kotlin.coroutines.Continuation<java.util.List<Value>>);
+    method @VisibleForTesting public static suspend <Value> Object? asSnapshot(kotlinx.coroutines.flow.Flow<androidx.paging.PagingData<Value>>, optional androidx.paging.testing.LoadErrorHandler onError, optional kotlin.jvm.functions.Function2<? super androidx.paging.testing.SnapshotLoader<Value>,? super kotlin.coroutines.Continuation<kotlin.Unit>,?> loadOperations, optional kotlin.coroutines.Continuation<java.util.List<Value>>);
   }
 
-  public final class SnapshotLoader<Value> {
+  @VisibleForTesting public final class SnapshotLoader<Value> {
     method public suspend Object? appendScrollWhile(kotlin.jvm.functions.Function1<Value,java.lang.Boolean> predicate, kotlin.coroutines.Continuation<kotlin.Unit>);
     method public suspend Object? flingTo(int index, kotlin.coroutines.Continuation<kotlin.Unit>);
     method public suspend Object? prependScrollWhile(kotlin.jvm.functions.Function1<Value,java.lang.Boolean> predicate, kotlin.coroutines.Continuation<kotlin.Unit>);
@@ -26,11 +26,11 @@
   }
 
   public final class StaticListPagingSourceFactoryKt {
-    method public static <Value> androidx.paging.PagingSourceFactory<java.lang.Integer,Value> asPagingSourceFactory(java.util.List<? extends Value>);
-    method public static <Value> androidx.paging.PagingSourceFactory<java.lang.Integer,Value> asPagingSourceFactory(kotlinx.coroutines.flow.Flow<java.util.List<Value>>, kotlinx.coroutines.CoroutineScope coroutineScope);
+    method @VisibleForTesting public static <Value> androidx.paging.PagingSourceFactory<java.lang.Integer,Value> asPagingSourceFactory(java.util.List<? extends Value>);
+    method @VisibleForTesting public static <Value> androidx.paging.PagingSourceFactory<java.lang.Integer,Value> asPagingSourceFactory(kotlinx.coroutines.flow.Flow<java.util.List<Value>>, kotlinx.coroutines.CoroutineScope coroutineScope);
   }
 
-  public final class TestPager<Key, Value> {
+  @VisibleForTesting public final class TestPager<Key, Value> {
     ctor public TestPager(androidx.paging.PagingConfig config, androidx.paging.PagingSource<Key,Value> pagingSource);
     method public suspend Object? append(kotlin.coroutines.Continuation<androidx.paging.PagingSource.LoadResult<Key,Value>>);
     method public suspend Object? getLastLoadedPage(kotlin.coroutines.Continuation<androidx.paging.PagingSource.LoadResult.Page<Key,Value>>);
diff --git a/paging/paging-testing/api/restricted_current.txt b/paging/paging-testing/api/restricted_current.txt
index 586efd3..3ff4756 100644
--- a/paging/paging-testing/api/restricted_current.txt
+++ b/paging/paging-testing/api/restricted_current.txt
@@ -1,7 +1,7 @@
 // Signature format: 4.0
 package androidx.paging.testing {
 
-  public enum ErrorRecovery {
+  @VisibleForTesting public enum ErrorRecovery {
     method public static androidx.paging.testing.ErrorRecovery valueOf(String value) throws java.lang.IllegalArgumentException, java.lang.NullPointerException;
     method public static androidx.paging.testing.ErrorRecovery[] values();
     enum_constant public static final androidx.paging.testing.ErrorRecovery RETRY;
@@ -9,15 +9,15 @@
     enum_constant public static final androidx.paging.testing.ErrorRecovery THROW;
   }
 
-  public fun interface LoadErrorHandler {
+  @VisibleForTesting public fun interface LoadErrorHandler {
     method public androidx.paging.testing.ErrorRecovery onError(androidx.paging.CombinedLoadStates combinedLoadStates);
   }
 
   public final class PagerFlowSnapshotKt {
-    method public static suspend <Value> Object? asSnapshot(kotlinx.coroutines.flow.Flow<androidx.paging.PagingData<Value>>, optional androidx.paging.testing.LoadErrorHandler onError, optional kotlin.jvm.functions.Function2<? super androidx.paging.testing.SnapshotLoader<Value>,? super kotlin.coroutines.Continuation<kotlin.Unit>,?> loadOperations, optional kotlin.coroutines.Continuation<java.util.List<Value>>);
+    method @VisibleForTesting public static suspend <Value> Object? asSnapshot(kotlinx.coroutines.flow.Flow<androidx.paging.PagingData<Value>>, optional androidx.paging.testing.LoadErrorHandler onError, optional kotlin.jvm.functions.Function2<? super androidx.paging.testing.SnapshotLoader<Value>,? super kotlin.coroutines.Continuation<kotlin.Unit>,?> loadOperations, optional kotlin.coroutines.Continuation<java.util.List<Value>>);
   }
 
-  public final class SnapshotLoader<Value> {
+  @VisibleForTesting public final class SnapshotLoader<Value> {
     method public suspend Object? appendScrollWhile(kotlin.jvm.functions.Function1<Value,java.lang.Boolean> predicate, kotlin.coroutines.Continuation<kotlin.Unit>);
     method public suspend Object? flingTo(int index, kotlin.coroutines.Continuation<kotlin.Unit>);
     method public suspend Object? prependScrollWhile(kotlin.jvm.functions.Function1<Value,java.lang.Boolean> predicate, kotlin.coroutines.Continuation<kotlin.Unit>);
@@ -26,11 +26,11 @@
   }
 
   public final class StaticListPagingSourceFactoryKt {
-    method public static <Value> androidx.paging.PagingSourceFactory<java.lang.Integer,Value> asPagingSourceFactory(java.util.List<? extends Value>);
-    method public static <Value> androidx.paging.PagingSourceFactory<java.lang.Integer,Value> asPagingSourceFactory(kotlinx.coroutines.flow.Flow<java.util.List<Value>>, kotlinx.coroutines.CoroutineScope coroutineScope);
+    method @VisibleForTesting public static <Value> androidx.paging.PagingSourceFactory<java.lang.Integer,Value> asPagingSourceFactory(java.util.List<? extends Value>);
+    method @VisibleForTesting public static <Value> androidx.paging.PagingSourceFactory<java.lang.Integer,Value> asPagingSourceFactory(kotlinx.coroutines.flow.Flow<java.util.List<Value>>, kotlinx.coroutines.CoroutineScope coroutineScope);
   }
 
-  public final class TestPager<Key, Value> {
+  @VisibleForTesting public final class TestPager<Key, Value> {
     ctor public TestPager(androidx.paging.PagingConfig config, androidx.paging.PagingSource<Key,Value> pagingSource);
     method public suspend Object? append(kotlin.coroutines.Continuation<androidx.paging.PagingSource.LoadResult<Key,Value>>);
     method public suspend Object? getLastLoadedPage(kotlin.coroutines.Continuation<androidx.paging.PagingSource.LoadResult.Page<Key,Value>>);
diff --git a/paging/paging-testing/build.gradle b/paging/paging-testing/build.gradle
index 9557e62..c01f6cc 100644
--- a/paging/paging-testing/build.gradle
+++ b/paging/paging-testing/build.gradle
@@ -37,7 +37,7 @@
 
 androidx {
     name = "Paging Testing Extensions"
-    type = LibraryType.PUBLISHED_LIBRARY
+    type = LibraryType.PUBLISHED_TEST_LIBRARY
     inceptionYear = "2022"
     description = "Test artifact for Paging implementation"
     publish = Publish.SNAPSHOT_AND_RELEASE
diff --git a/paging/paging-testing/src/main/java/androidx/paging/testing/LoadErrorHandler.kt b/paging/paging-testing/src/main/java/androidx/paging/testing/LoadErrorHandler.kt
index 2e8df82..32c7b02 100644
--- a/paging/paging-testing/src/main/java/androidx/paging/testing/LoadErrorHandler.kt
+++ b/paging/paging-testing/src/main/java/androidx/paging/testing/LoadErrorHandler.kt
@@ -16,6 +16,7 @@
 
 package androidx.paging.testing
 
+import androidx.annotation.VisibleForTesting
 import androidx.paging.CombinedLoadStates
 import androidx.paging.LoadState
 import androidx.paging.PagingDataDiffer
@@ -26,6 +27,7 @@
  * An interface to implement the error recovery strategy when [PagingSource]
  * returns a [LoadResult.Error].
  */
+@VisibleForTesting
 public fun interface LoadErrorHandler {
     /**
      * The lambda that should return an [ErrorRecovery] given the [CombinedLoadStates]
@@ -48,6 +50,7 @@
  * is indicated when [PagingDataDiffer.loadStateFlow] emits a [CombinedLoadStates] where one or
  * more of the [LoadState] is [LoadState.Error].
  */
+@VisibleForTesting
 public enum class ErrorRecovery {
     /**
      * Rethrow the original [Throwable][LoadState.Error.error] that was caught when loading from
diff --git a/paging/paging-testing/src/main/java/androidx/paging/testing/PagerFlowSnapshot.kt b/paging/paging-testing/src/main/java/androidx/paging/testing/PagerFlowSnapshot.kt
index 3098cf1..0882b80 100644
--- a/paging/paging-testing/src/main/java/androidx/paging/testing/PagerFlowSnapshot.kt
+++ b/paging/paging-testing/src/main/java/androidx/paging/testing/PagerFlowSnapshot.kt
@@ -16,6 +16,7 @@
 
 package androidx.paging.testing
 
+import androidx.annotation.VisibleForTesting
 import androidx.paging.CombinedLoadStates
 import androidx.paging.DifferCallback
 import androidx.paging.ItemSnapshotList
@@ -50,6 +51,7 @@
  *
  * @param loadOperations The block containing [SnapshotLoader] load operations.
  */
+@VisibleForTesting
 public suspend fun <Value : Any> Flow<PagingData<Value>>.asSnapshot(
     onError: LoadErrorHandler = LoadErrorHandler { THROW },
     loadOperations: suspend SnapshotLoader<Value>.() -> @JvmSuppressWildcards Unit = { }
diff --git a/paging/paging-testing/src/main/java/androidx/paging/testing/SnapshotLoader.kt b/paging/paging-testing/src/main/java/androidx/paging/testing/SnapshotLoader.kt
index f58f866..040a7f1 100644
--- a/paging/paging-testing/src/main/java/androidx/paging/testing/SnapshotLoader.kt
+++ b/paging/paging-testing/src/main/java/androidx/paging/testing/SnapshotLoader.kt
@@ -16,6 +16,7 @@
 
 package androidx.paging.testing
 
+import androidx.annotation.VisibleForTesting
 import androidx.paging.DifferCallback
 import androidx.paging.LoadType.APPEND
 import androidx.paging.LoadType.PREPEND
@@ -38,6 +39,7 @@
  * Tracks generational information and provides the listener to [DifferCallback] on
  * [PagingDataDiffer] operations.
  */
+@VisibleForTesting
 public class SnapshotLoader<Value : Any> internal constructor(
     private val differ: PagingDataDiffer<Value>,
     private val errorHandler: LoadErrorHandler,
diff --git a/paging/paging-testing/src/main/java/androidx/paging/testing/StaticListPagingSourceFactory.kt b/paging/paging-testing/src/main/java/androidx/paging/testing/StaticListPagingSourceFactory.kt
index 6744b5e..000e2a1 100644
--- a/paging/paging-testing/src/main/java/androidx/paging/testing/StaticListPagingSourceFactory.kt
+++ b/paging/paging-testing/src/main/java/androidx/paging/testing/StaticListPagingSourceFactory.kt
@@ -16,6 +16,7 @@
 
 package androidx.paging.testing
 
+import androidx.annotation.VisibleForTesting
 import androidx.paging.InvalidatingPagingSourceFactory
 import androidx.paging.LoadType.REFRESH
 import androidx.paging.Pager
@@ -40,6 +41,7 @@
  *
  * @param coroutineScope the CoroutineScope to collect from the Flow of list.
  */
+@VisibleForTesting
 public fun <Value : Any> Flow<@JvmSuppressWildcards List<Value>>.asPagingSourceFactory(
     coroutineScope: CoroutineScope
 ): PagingSourceFactory<Int, Value> {
@@ -74,5 +76,6 @@
  * the data source. This means any PagingSources generated by the same factory will load from
  * the exact same list of data.
  */
+@VisibleForTesting
 public fun <Value : Any> List<Value>.asPagingSourceFactory(): PagingSourceFactory<Int, Value> =
     PagingSourceFactory { StaticListPagingSource(this) }
diff --git a/paging/paging-testing/src/main/java/androidx/paging/testing/TestPager.kt b/paging/paging-testing/src/main/java/androidx/paging/testing/TestPager.kt
index bcd13ec..bcecbead 100644
--- a/paging/paging-testing/src/main/java/androidx/paging/testing/TestPager.kt
+++ b/paging/paging-testing/src/main/java/androidx/paging/testing/TestPager.kt
@@ -16,6 +16,7 @@
 
 package androidx.paging.testing
 
+import androidx.annotation.VisibleForTesting
 import androidx.paging.LoadType
 import androidx.paging.LoadType.APPEND
 import androidx.paging.LoadType.PREPEND
@@ -44,6 +45,7 @@
  * @param config the [PagingConfig] to configure this TestPager's loading behavior.
  * @param pagingSource the [PagingSource] to load data from.
  */
+@VisibleForTesting
 public class TestPager<Key : Any, Value : Any>(
     private val config: PagingConfig,
     private val pagingSource: PagingSource<Key, Value>,
diff --git a/playground-common/androidx-shared.properties b/playground-common/androidx-shared.properties
index 5bfc174..3866038 100644
--- a/playground-common/androidx-shared.properties
+++ b/playground-common/androidx-shared.properties
@@ -50,23 +50,18 @@
 # Suppress Compatibility migration. Opt-out is matched first.
 
 # First stage of Suppress Compatibility migration.
-androidx.suppress.compatibility.optout.abc=activity/activity/,appsearch/appsearch/,appsearch/appsearch-builtin-types/,appsearch/appsearch-play/,compose/,core/core/,core/core-telecom/,credentials/credentials/
 androidx.suppress.compatibility.optin.abc=a,b,c
 
 # Second stage of Suppress Compatibility migration
-androidx.suppress.compatibility.optout.defg=graphics/graphics-path/,graphics/graphics-core/
 androidx.suppress.compatibility.optin.defg=d,e,f,g
 
 # Third stage of Suppress Compatibility migration
-androidx.suppress.compatibility.optout.hijklm=health/connect/connect-client/,heifwriter/heifwriter/,hilt/hilt-navigation-fragment/,media/media/,mediarouter/mediarouter/
 androidx.suppress.compatibility.optin.hijklm=h,i,j,k,l,m
 
 # Fourth stage of Suppress Compatibility migration
-androidx.suppress.compatibility.optout.nopqrst=navigation/navigation-ui/,privacysandbox/ads/ads-adservices/,privacysandbox/sdkruntime/sdkruntime-client/,privacysandbox/sdkruntime/sdkruntime-core/,privacysandbox/ui/ui-client/,privacysandbox/ui/ui-core/,privacysandbox/ui/ui-provider/,transition/transition/
 androidx.suppress.compatibility.optin.nopqrst=n,o,p,q,r,s,t
 
 # Fifth stage of Suppress Compatibility migration
-androidx.suppress.compatibility.optout.uvwxyz=wear/compose/compose-foundation/,wear/protolayout/protolayout-expression/,wear/protolayout/protolayout-material/,wear/watchface/watchface-client/,window/window/,window/window-java/,window/extensions/extensions/,work/work-datatransfer/
 androidx.suppress.compatibility.optin.uvwxyz=u,v,w,x,y,z
 
 # Disable features we do not use
diff --git a/privacysandbox/ads/ads-adservices/api/public_plus_experimental_1.0.0-beta05.txt b/privacysandbox/ads/ads-adservices/api/public_plus_experimental_1.0.0-beta05.txt
deleted file mode 100644
index 30cd307..0000000
--- a/privacysandbox/ads/ads-adservices/api/public_plus_experimental_1.0.0-beta05.txt
+++ /dev/null
@@ -1,345 +0,0 @@
-// Signature format: 4.0
-package androidx.privacysandbox.ads.adservices.adid {
-
-  public final class AdId {
-    method public String getAdId();
-    method public boolean isLimitAdTrackingEnabled();
-    property public final String adId;
-    property public final boolean isLimitAdTrackingEnabled;
-  }
-
-  public abstract class AdIdManager {
-    method @RequiresPermission(android.adservices.common.AdServicesPermissions.ACCESS_ADSERVICES_AD_ID) public abstract suspend Object? getAdId(kotlin.coroutines.Continuation<? super androidx.privacysandbox.ads.adservices.adid.AdId>);
-    method public static final androidx.privacysandbox.ads.adservices.adid.AdIdManager? obtain(android.content.Context context);
-    field public static final androidx.privacysandbox.ads.adservices.adid.AdIdManager.Companion Companion;
-  }
-
-  public static final class AdIdManager.Companion {
-    method public androidx.privacysandbox.ads.adservices.adid.AdIdManager? obtain(android.content.Context context);
-  }
-
-}
-
-package androidx.privacysandbox.ads.adservices.adselection {
-
-  public final class AdSelectionConfig {
-    ctor public AdSelectionConfig(androidx.privacysandbox.ads.adservices.common.AdTechIdentifier seller, android.net.Uri decisionLogicUri, java.util.List<androidx.privacysandbox.ads.adservices.common.AdTechIdentifier> customAudienceBuyers, androidx.privacysandbox.ads.adservices.common.AdSelectionSignals adSelectionSignals, androidx.privacysandbox.ads.adservices.common.AdSelectionSignals sellerSignals, java.util.Map<androidx.privacysandbox.ads.adservices.common.AdTechIdentifier,androidx.privacysandbox.ads.adservices.common.AdSelectionSignals> perBuyerSignals, android.net.Uri trustedScoringSignalsUri);
-    method public androidx.privacysandbox.ads.adservices.common.AdSelectionSignals getAdSelectionSignals();
-    method public java.util.List<androidx.privacysandbox.ads.adservices.common.AdTechIdentifier> getCustomAudienceBuyers();
-    method public android.net.Uri getDecisionLogicUri();
-    method public java.util.Map<androidx.privacysandbox.ads.adservices.common.AdTechIdentifier,androidx.privacysandbox.ads.adservices.common.AdSelectionSignals> getPerBuyerSignals();
-    method public androidx.privacysandbox.ads.adservices.common.AdTechIdentifier getSeller();
-    method public androidx.privacysandbox.ads.adservices.common.AdSelectionSignals getSellerSignals();
-    method public android.net.Uri getTrustedScoringSignalsUri();
-    property public final androidx.privacysandbox.ads.adservices.common.AdSelectionSignals adSelectionSignals;
-    property public final java.util.List<androidx.privacysandbox.ads.adservices.common.AdTechIdentifier> customAudienceBuyers;
-    property public final android.net.Uri decisionLogicUri;
-    property public final java.util.Map<androidx.privacysandbox.ads.adservices.common.AdTechIdentifier,androidx.privacysandbox.ads.adservices.common.AdSelectionSignals> perBuyerSignals;
-    property public final androidx.privacysandbox.ads.adservices.common.AdTechIdentifier seller;
-    property public final androidx.privacysandbox.ads.adservices.common.AdSelectionSignals sellerSignals;
-    property public final android.net.Uri trustedScoringSignalsUri;
-  }
-
-  public abstract class AdSelectionManager {
-    method public static final androidx.privacysandbox.ads.adservices.adselection.AdSelectionManager? obtain(android.content.Context context);
-    method @RequiresPermission(android.adservices.common.AdServicesPermissions.ACCESS_ADSERVICES_CUSTOM_AUDIENCE) public abstract suspend Object? reportImpression(androidx.privacysandbox.ads.adservices.adselection.ReportImpressionRequest reportImpressionRequest, kotlin.coroutines.Continuation<? super kotlin.Unit>);
-    method @RequiresPermission(android.adservices.common.AdServicesPermissions.ACCESS_ADSERVICES_CUSTOM_AUDIENCE) public abstract suspend Object? selectAds(androidx.privacysandbox.ads.adservices.adselection.AdSelectionConfig adSelectionConfig, kotlin.coroutines.Continuation<? super androidx.privacysandbox.ads.adservices.adselection.AdSelectionOutcome>);
-    field public static final androidx.privacysandbox.ads.adservices.adselection.AdSelectionManager.Companion Companion;
-  }
-
-  public static final class AdSelectionManager.Companion {
-    method public androidx.privacysandbox.ads.adservices.adselection.AdSelectionManager? obtain(android.content.Context context);
-  }
-
-  public final class AdSelectionOutcome {
-    ctor public AdSelectionOutcome(long adSelectionId, android.net.Uri renderUri);
-    method public long getAdSelectionId();
-    method public android.net.Uri getRenderUri();
-    property public final long adSelectionId;
-    property public final android.net.Uri renderUri;
-  }
-
-  public final class ReportImpressionRequest {
-    ctor public ReportImpressionRequest(long adSelectionId, androidx.privacysandbox.ads.adservices.adselection.AdSelectionConfig adSelectionConfig);
-    method public androidx.privacysandbox.ads.adservices.adselection.AdSelectionConfig getAdSelectionConfig();
-    method public long getAdSelectionId();
-    property public final androidx.privacysandbox.ads.adservices.adselection.AdSelectionConfig adSelectionConfig;
-    property public final long adSelectionId;
-  }
-
-}
-
-package androidx.privacysandbox.ads.adservices.appsetid {
-
-  public final class AppSetId {
-    ctor public AppSetId(String id, int scope);
-    method public String getId();
-    method public int getScope();
-    property public final String id;
-    property public final int scope;
-    field public static final androidx.privacysandbox.ads.adservices.appsetid.AppSetId.Companion Companion;
-    field public static final int SCOPE_APP = 1; // 0x1
-    field public static final int SCOPE_DEVELOPER = 2; // 0x2
-  }
-
-  public static final class AppSetId.Companion {
-  }
-
-  public abstract class AppSetIdManager {
-    method public abstract suspend Object? getAppSetId(kotlin.coroutines.Continuation<? super androidx.privacysandbox.ads.adservices.appsetid.AppSetId>);
-    method public static final androidx.privacysandbox.ads.adservices.appsetid.AppSetIdManager? obtain(android.content.Context context);
-    field public static final androidx.privacysandbox.ads.adservices.appsetid.AppSetIdManager.Companion Companion;
-  }
-
-  public static final class AppSetIdManager.Companion {
-    method public androidx.privacysandbox.ads.adservices.appsetid.AppSetIdManager? obtain(android.content.Context context);
-  }
-
-}
-
-package androidx.privacysandbox.ads.adservices.common {
-
-  public final class AdData {
-    ctor public AdData(android.net.Uri renderUri, String metadata);
-    method public String getMetadata();
-    method public android.net.Uri getRenderUri();
-    property public final String metadata;
-    property public final android.net.Uri renderUri;
-  }
-
-  public final class AdSelectionSignals {
-    ctor public AdSelectionSignals(String signals);
-    method public String getSignals();
-    property public final String signals;
-  }
-
-  public final class AdTechIdentifier {
-    ctor public AdTechIdentifier(String identifier);
-    method public String getIdentifier();
-    property public final String identifier;
-  }
-
-}
-
-package androidx.privacysandbox.ads.adservices.customaudience {
-
-  public final class CustomAudience {
-    ctor public CustomAudience(androidx.privacysandbox.ads.adservices.common.AdTechIdentifier buyer, String name, android.net.Uri dailyUpdateUri, android.net.Uri biddingLogicUri, java.util.List<androidx.privacysandbox.ads.adservices.common.AdData> ads, optional java.time.Instant? activationTime, optional java.time.Instant? expirationTime, optional androidx.privacysandbox.ads.adservices.common.AdSelectionSignals? userBiddingSignals, optional androidx.privacysandbox.ads.adservices.customaudience.TrustedBiddingData? trustedBiddingSignals);
-    method public java.time.Instant? getActivationTime();
-    method public java.util.List<androidx.privacysandbox.ads.adservices.common.AdData> getAds();
-    method public android.net.Uri getBiddingLogicUri();
-    method public androidx.privacysandbox.ads.adservices.common.AdTechIdentifier getBuyer();
-    method public android.net.Uri getDailyUpdateUri();
-    method public java.time.Instant? getExpirationTime();
-    method public String getName();
-    method public androidx.privacysandbox.ads.adservices.customaudience.TrustedBiddingData? getTrustedBiddingSignals();
-    method public androidx.privacysandbox.ads.adservices.common.AdSelectionSignals? getUserBiddingSignals();
-    property public final java.time.Instant? activationTime;
-    property public final java.util.List<androidx.privacysandbox.ads.adservices.common.AdData> ads;
-    property public final android.net.Uri biddingLogicUri;
-    property public final androidx.privacysandbox.ads.adservices.common.AdTechIdentifier buyer;
-    property public final android.net.Uri dailyUpdateUri;
-    property public final java.time.Instant? expirationTime;
-    property public final String name;
-    property public final androidx.privacysandbox.ads.adservices.customaudience.TrustedBiddingData? trustedBiddingSignals;
-    property public final androidx.privacysandbox.ads.adservices.common.AdSelectionSignals? userBiddingSignals;
-  }
-
-  public static final class CustomAudience.Builder {
-    ctor public CustomAudience.Builder(androidx.privacysandbox.ads.adservices.common.AdTechIdentifier buyer, String name, android.net.Uri dailyUpdateUri, android.net.Uri biddingLogicUri, java.util.List<androidx.privacysandbox.ads.adservices.common.AdData> ads);
-    method public androidx.privacysandbox.ads.adservices.customaudience.CustomAudience build();
-    method public androidx.privacysandbox.ads.adservices.customaudience.CustomAudience.Builder setActivationTime(java.time.Instant activationTime);
-    method public androidx.privacysandbox.ads.adservices.customaudience.CustomAudience.Builder setAds(java.util.List<androidx.privacysandbox.ads.adservices.common.AdData> ads);
-    method public androidx.privacysandbox.ads.adservices.customaudience.CustomAudience.Builder setBiddingLogicUri(android.net.Uri biddingLogicUri);
-    method public androidx.privacysandbox.ads.adservices.customaudience.CustomAudience.Builder setBuyer(androidx.privacysandbox.ads.adservices.common.AdTechIdentifier buyer);
-    method public androidx.privacysandbox.ads.adservices.customaudience.CustomAudience.Builder setDailyUpdateUri(android.net.Uri dailyUpdateUri);
-    method public androidx.privacysandbox.ads.adservices.customaudience.CustomAudience.Builder setExpirationTime(java.time.Instant expirationTime);
-    method public androidx.privacysandbox.ads.adservices.customaudience.CustomAudience.Builder setName(String name);
-    method public androidx.privacysandbox.ads.adservices.customaudience.CustomAudience.Builder setTrustedBiddingData(androidx.privacysandbox.ads.adservices.customaudience.TrustedBiddingData trustedBiddingSignals);
-    method public androidx.privacysandbox.ads.adservices.customaudience.CustomAudience.Builder setUserBiddingSignals(androidx.privacysandbox.ads.adservices.common.AdSelectionSignals userBiddingSignals);
-  }
-
-  public abstract class CustomAudienceManager {
-    method @RequiresPermission(android.adservices.common.AdServicesPermissions.ACCESS_ADSERVICES_CUSTOM_AUDIENCE) public abstract suspend Object? joinCustomAudience(androidx.privacysandbox.ads.adservices.customaudience.JoinCustomAudienceRequest request, kotlin.coroutines.Continuation<? super kotlin.Unit>);
-    method @RequiresPermission(android.adservices.common.AdServicesPermissions.ACCESS_ADSERVICES_CUSTOM_AUDIENCE) public abstract suspend Object? leaveCustomAudience(androidx.privacysandbox.ads.adservices.customaudience.LeaveCustomAudienceRequest request, kotlin.coroutines.Continuation<? super kotlin.Unit>);
-    method public static final androidx.privacysandbox.ads.adservices.customaudience.CustomAudienceManager? obtain(android.content.Context context);
-    field public static final androidx.privacysandbox.ads.adservices.customaudience.CustomAudienceManager.Companion Companion;
-  }
-
-  public static final class CustomAudienceManager.Companion {
-    method public androidx.privacysandbox.ads.adservices.customaudience.CustomAudienceManager? obtain(android.content.Context context);
-  }
-
-  public final class JoinCustomAudienceRequest {
-    ctor public JoinCustomAudienceRequest(androidx.privacysandbox.ads.adservices.customaudience.CustomAudience customAudience);
-    method public androidx.privacysandbox.ads.adservices.customaudience.CustomAudience getCustomAudience();
-    property public final androidx.privacysandbox.ads.adservices.customaudience.CustomAudience customAudience;
-  }
-
-  public final class LeaveCustomAudienceRequest {
-    ctor public LeaveCustomAudienceRequest(androidx.privacysandbox.ads.adservices.common.AdTechIdentifier buyer, String name);
-    method public androidx.privacysandbox.ads.adservices.common.AdTechIdentifier getBuyer();
-    method public String getName();
-    property public final androidx.privacysandbox.ads.adservices.common.AdTechIdentifier buyer;
-    property public final String name;
-  }
-
-  public final class TrustedBiddingData {
-    ctor public TrustedBiddingData(android.net.Uri trustedBiddingUri, java.util.List<java.lang.String> trustedBiddingKeys);
-    method public java.util.List<java.lang.String> getTrustedBiddingKeys();
-    method public android.net.Uri getTrustedBiddingUri();
-    property public final java.util.List<java.lang.String> trustedBiddingKeys;
-    property public final android.net.Uri trustedBiddingUri;
-  }
-
-}
-
-package androidx.privacysandbox.ads.adservices.measurement {
-
-  @RequiresApi(android.os.Build.VERSION_CODES.TIRAMISU) public final class DeletionRequest {
-    ctor public DeletionRequest(int deletionMode, int matchBehavior, optional java.time.Instant start, optional java.time.Instant end, optional java.util.List<? extends android.net.Uri> domainUris, optional java.util.List<? extends android.net.Uri> originUris);
-    method public int getDeletionMode();
-    method public java.util.List<android.net.Uri> getDomainUris();
-    method public java.time.Instant getEnd();
-    method public int getMatchBehavior();
-    method public java.util.List<android.net.Uri> getOriginUris();
-    method public java.time.Instant getStart();
-    property public final int deletionMode;
-    property public final java.util.List<android.net.Uri> domainUris;
-    property public final java.time.Instant end;
-    property public final int matchBehavior;
-    property public final java.util.List<android.net.Uri> originUris;
-    property public final java.time.Instant start;
-    field public static final androidx.privacysandbox.ads.adservices.measurement.DeletionRequest.Companion Companion;
-    field public static final int DELETION_MODE_ALL = 0; // 0x0
-    field public static final int DELETION_MODE_EXCLUDE_INTERNAL_DATA = 1; // 0x1
-    field public static final int MATCH_BEHAVIOR_DELETE = 0; // 0x0
-    field public static final int MATCH_BEHAVIOR_PRESERVE = 1; // 0x1
-  }
-
-  @RequiresApi(android.os.Build.VERSION_CODES.TIRAMISU) public static final class DeletionRequest.Builder {
-    ctor public DeletionRequest.Builder(int deletionMode, int matchBehavior);
-    method public androidx.privacysandbox.ads.adservices.measurement.DeletionRequest build();
-    method public androidx.privacysandbox.ads.adservices.measurement.DeletionRequest.Builder setDomainUris(java.util.List<? extends android.net.Uri> domainUris);
-    method public androidx.privacysandbox.ads.adservices.measurement.DeletionRequest.Builder setEnd(java.time.Instant end);
-    method public androidx.privacysandbox.ads.adservices.measurement.DeletionRequest.Builder setOriginUris(java.util.List<? extends android.net.Uri> originUris);
-    method public androidx.privacysandbox.ads.adservices.measurement.DeletionRequest.Builder setStart(java.time.Instant start);
-  }
-
-  public static final class DeletionRequest.Companion {
-  }
-
-  public abstract class MeasurementManager {
-    ctor public MeasurementManager();
-    method public abstract suspend Object? deleteRegistrations(androidx.privacysandbox.ads.adservices.measurement.DeletionRequest deletionRequest, kotlin.coroutines.Continuation<? super kotlin.Unit>);
-    method @RequiresPermission(android.adservices.common.AdServicesPermissions.ACCESS_ADSERVICES_ATTRIBUTION) public abstract suspend Object? getMeasurementApiStatus(kotlin.coroutines.Continuation<? super java.lang.Integer>);
-    method public static final androidx.privacysandbox.ads.adservices.measurement.MeasurementManager? obtain(android.content.Context context);
-    method @RequiresPermission(android.adservices.common.AdServicesPermissions.ACCESS_ADSERVICES_ATTRIBUTION) public abstract suspend Object? registerSource(android.net.Uri attributionSource, android.view.InputEvent? inputEvent, kotlin.coroutines.Continuation<? super kotlin.Unit>);
-    method @RequiresPermission(android.adservices.common.AdServicesPermissions.ACCESS_ADSERVICES_ATTRIBUTION) public abstract suspend Object? registerTrigger(android.net.Uri trigger, kotlin.coroutines.Continuation<? super kotlin.Unit>);
-    method @RequiresPermission(android.adservices.common.AdServicesPermissions.ACCESS_ADSERVICES_ATTRIBUTION) public abstract suspend Object? registerWebSource(androidx.privacysandbox.ads.adservices.measurement.WebSourceRegistrationRequest request, kotlin.coroutines.Continuation<? super kotlin.Unit>);
-    method @RequiresPermission(android.adservices.common.AdServicesPermissions.ACCESS_ADSERVICES_ATTRIBUTION) public abstract suspend Object? registerWebTrigger(androidx.privacysandbox.ads.adservices.measurement.WebTriggerRegistrationRequest request, kotlin.coroutines.Continuation<? super kotlin.Unit>);
-    field public static final androidx.privacysandbox.ads.adservices.measurement.MeasurementManager.Companion Companion;
-    field public static final int MEASUREMENT_API_STATE_DISABLED = 0; // 0x0
-    field public static final int MEASUREMENT_API_STATE_ENABLED = 1; // 0x1
-  }
-
-  public static final class MeasurementManager.Companion {
-    method public androidx.privacysandbox.ads.adservices.measurement.MeasurementManager? obtain(android.content.Context context);
-  }
-
-  @RequiresApi(android.os.Build.VERSION_CODES.TIRAMISU) public final class WebSourceParams {
-    ctor public WebSourceParams(android.net.Uri registrationUri, boolean debugKeyAllowed);
-    method public boolean getDebugKeyAllowed();
-    method public android.net.Uri getRegistrationUri();
-    property public final boolean debugKeyAllowed;
-    property public final android.net.Uri registrationUri;
-  }
-
-  @RequiresApi(android.os.Build.VERSION_CODES.TIRAMISU) public final class WebSourceRegistrationRequest {
-    ctor public WebSourceRegistrationRequest(java.util.List<androidx.privacysandbox.ads.adservices.measurement.WebSourceParams> webSourceParams, android.net.Uri topOriginUri, optional android.view.InputEvent? inputEvent, optional android.net.Uri? appDestination, optional android.net.Uri? webDestination, optional android.net.Uri? verifiedDestination);
-    method public android.net.Uri? getAppDestination();
-    method public android.view.InputEvent? getInputEvent();
-    method public android.net.Uri getTopOriginUri();
-    method public android.net.Uri? getVerifiedDestination();
-    method public android.net.Uri? getWebDestination();
-    method public java.util.List<androidx.privacysandbox.ads.adservices.measurement.WebSourceParams> getWebSourceParams();
-    property public final android.net.Uri? appDestination;
-    property public final android.view.InputEvent? inputEvent;
-    property public final android.net.Uri topOriginUri;
-    property public final android.net.Uri? verifiedDestination;
-    property public final android.net.Uri? webDestination;
-    property public final java.util.List<androidx.privacysandbox.ads.adservices.measurement.WebSourceParams> webSourceParams;
-  }
-
-  public static final class WebSourceRegistrationRequest.Builder {
-    ctor public WebSourceRegistrationRequest.Builder(java.util.List<androidx.privacysandbox.ads.adservices.measurement.WebSourceParams> webSourceParams, android.net.Uri topOriginUri);
-    method public androidx.privacysandbox.ads.adservices.measurement.WebSourceRegistrationRequest build();
-    method public androidx.privacysandbox.ads.adservices.measurement.WebSourceRegistrationRequest.Builder setAppDestination(android.net.Uri? appDestination);
-    method public androidx.privacysandbox.ads.adservices.measurement.WebSourceRegistrationRequest.Builder setInputEvent(android.view.InputEvent inputEvent);
-    method public androidx.privacysandbox.ads.adservices.measurement.WebSourceRegistrationRequest.Builder setVerifiedDestination(android.net.Uri? verifiedDestination);
-    method public androidx.privacysandbox.ads.adservices.measurement.WebSourceRegistrationRequest.Builder setWebDestination(android.net.Uri? webDestination);
-  }
-
-  @RequiresApi(android.os.Build.VERSION_CODES.TIRAMISU) public final class WebTriggerParams {
-    ctor public WebTriggerParams(android.net.Uri registrationUri, boolean debugKeyAllowed);
-    method public boolean getDebugKeyAllowed();
-    method public android.net.Uri getRegistrationUri();
-    property public final boolean debugKeyAllowed;
-    property public final android.net.Uri registrationUri;
-  }
-
-  @RequiresApi(android.os.Build.VERSION_CODES.TIRAMISU) public final class WebTriggerRegistrationRequest {
-    ctor public WebTriggerRegistrationRequest(java.util.List<androidx.privacysandbox.ads.adservices.measurement.WebTriggerParams> webTriggerParams, android.net.Uri destination);
-    method public android.net.Uri getDestination();
-    method public java.util.List<androidx.privacysandbox.ads.adservices.measurement.WebTriggerParams> getWebTriggerParams();
-    property public final android.net.Uri destination;
-    property public final java.util.List<androidx.privacysandbox.ads.adservices.measurement.WebTriggerParams> webTriggerParams;
-  }
-
-}
-
-package androidx.privacysandbox.ads.adservices.topics {
-
-  public final class GetTopicsRequest {
-    ctor public GetTopicsRequest(optional String adsSdkName, optional boolean shouldRecordObservation);
-    method public String getAdsSdkName();
-    method public boolean getShouldRecordObservation();
-    property public final String adsSdkName;
-    property public final boolean shouldRecordObservation;
-  }
-
-  public static final class GetTopicsRequest.Builder {
-    ctor public GetTopicsRequest.Builder();
-    method public androidx.privacysandbox.ads.adservices.topics.GetTopicsRequest build();
-    method public androidx.privacysandbox.ads.adservices.topics.GetTopicsRequest.Builder setAdsSdkName(String adsSdkName);
-    method public androidx.privacysandbox.ads.adservices.topics.GetTopicsRequest.Builder setShouldRecordObservation(boolean shouldRecordObservation);
-  }
-
-  public final class GetTopicsResponse {
-    ctor public GetTopicsResponse(java.util.List<androidx.privacysandbox.ads.adservices.topics.Topic> topics);
-    method public java.util.List<androidx.privacysandbox.ads.adservices.topics.Topic> getTopics();
-    property public final java.util.List<androidx.privacysandbox.ads.adservices.topics.Topic> topics;
-  }
-
-  public final class Topic {
-    ctor public Topic(long taxonomyVersion, long modelVersion, int topicId);
-    method public long getModelVersion();
-    method public long getTaxonomyVersion();
-    method public int getTopicId();
-    property public final long modelVersion;
-    property public final long taxonomyVersion;
-    property public final int topicId;
-  }
-
-  public abstract class TopicsManager {
-    method @RequiresPermission(android.adservices.common.AdServicesPermissions.ACCESS_ADSERVICES_TOPICS) public abstract suspend Object? getTopics(androidx.privacysandbox.ads.adservices.topics.GetTopicsRequest request, kotlin.coroutines.Continuation<? super androidx.privacysandbox.ads.adservices.topics.GetTopicsResponse>);
-    method public static final androidx.privacysandbox.ads.adservices.topics.TopicsManager? obtain(android.content.Context context);
-    field public static final androidx.privacysandbox.ads.adservices.topics.TopicsManager.Companion Companion;
-  }
-
-  public static final class TopicsManager.Companion {
-    method public androidx.privacysandbox.ads.adservices.topics.TopicsManager? obtain(android.content.Context context);
-  }
-
-}
-
diff --git a/privacysandbox/ads/ads-adservices/api/public_plus_experimental_current.txt b/privacysandbox/ads/ads-adservices/api/public_plus_experimental_current.txt
deleted file mode 100644
index 30cd307..0000000
--- a/privacysandbox/ads/ads-adservices/api/public_plus_experimental_current.txt
+++ /dev/null
@@ -1,345 +0,0 @@
-// Signature format: 4.0
-package androidx.privacysandbox.ads.adservices.adid {
-
-  public final class AdId {
-    method public String getAdId();
-    method public boolean isLimitAdTrackingEnabled();
-    property public final String adId;
-    property public final boolean isLimitAdTrackingEnabled;
-  }
-
-  public abstract class AdIdManager {
-    method @RequiresPermission(android.adservices.common.AdServicesPermissions.ACCESS_ADSERVICES_AD_ID) public abstract suspend Object? getAdId(kotlin.coroutines.Continuation<? super androidx.privacysandbox.ads.adservices.adid.AdId>);
-    method public static final androidx.privacysandbox.ads.adservices.adid.AdIdManager? obtain(android.content.Context context);
-    field public static final androidx.privacysandbox.ads.adservices.adid.AdIdManager.Companion Companion;
-  }
-
-  public static final class AdIdManager.Companion {
-    method public androidx.privacysandbox.ads.adservices.adid.AdIdManager? obtain(android.content.Context context);
-  }
-
-}
-
-package androidx.privacysandbox.ads.adservices.adselection {
-
-  public final class AdSelectionConfig {
-    ctor public AdSelectionConfig(androidx.privacysandbox.ads.adservices.common.AdTechIdentifier seller, android.net.Uri decisionLogicUri, java.util.List<androidx.privacysandbox.ads.adservices.common.AdTechIdentifier> customAudienceBuyers, androidx.privacysandbox.ads.adservices.common.AdSelectionSignals adSelectionSignals, androidx.privacysandbox.ads.adservices.common.AdSelectionSignals sellerSignals, java.util.Map<androidx.privacysandbox.ads.adservices.common.AdTechIdentifier,androidx.privacysandbox.ads.adservices.common.AdSelectionSignals> perBuyerSignals, android.net.Uri trustedScoringSignalsUri);
-    method public androidx.privacysandbox.ads.adservices.common.AdSelectionSignals getAdSelectionSignals();
-    method public java.util.List<androidx.privacysandbox.ads.adservices.common.AdTechIdentifier> getCustomAudienceBuyers();
-    method public android.net.Uri getDecisionLogicUri();
-    method public java.util.Map<androidx.privacysandbox.ads.adservices.common.AdTechIdentifier,androidx.privacysandbox.ads.adservices.common.AdSelectionSignals> getPerBuyerSignals();
-    method public androidx.privacysandbox.ads.adservices.common.AdTechIdentifier getSeller();
-    method public androidx.privacysandbox.ads.adservices.common.AdSelectionSignals getSellerSignals();
-    method public android.net.Uri getTrustedScoringSignalsUri();
-    property public final androidx.privacysandbox.ads.adservices.common.AdSelectionSignals adSelectionSignals;
-    property public final java.util.List<androidx.privacysandbox.ads.adservices.common.AdTechIdentifier> customAudienceBuyers;
-    property public final android.net.Uri decisionLogicUri;
-    property public final java.util.Map<androidx.privacysandbox.ads.adservices.common.AdTechIdentifier,androidx.privacysandbox.ads.adservices.common.AdSelectionSignals> perBuyerSignals;
-    property public final androidx.privacysandbox.ads.adservices.common.AdTechIdentifier seller;
-    property public final androidx.privacysandbox.ads.adservices.common.AdSelectionSignals sellerSignals;
-    property public final android.net.Uri trustedScoringSignalsUri;
-  }
-
-  public abstract class AdSelectionManager {
-    method public static final androidx.privacysandbox.ads.adservices.adselection.AdSelectionManager? obtain(android.content.Context context);
-    method @RequiresPermission(android.adservices.common.AdServicesPermissions.ACCESS_ADSERVICES_CUSTOM_AUDIENCE) public abstract suspend Object? reportImpression(androidx.privacysandbox.ads.adservices.adselection.ReportImpressionRequest reportImpressionRequest, kotlin.coroutines.Continuation<? super kotlin.Unit>);
-    method @RequiresPermission(android.adservices.common.AdServicesPermissions.ACCESS_ADSERVICES_CUSTOM_AUDIENCE) public abstract suspend Object? selectAds(androidx.privacysandbox.ads.adservices.adselection.AdSelectionConfig adSelectionConfig, kotlin.coroutines.Continuation<? super androidx.privacysandbox.ads.adservices.adselection.AdSelectionOutcome>);
-    field public static final androidx.privacysandbox.ads.adservices.adselection.AdSelectionManager.Companion Companion;
-  }
-
-  public static final class AdSelectionManager.Companion {
-    method public androidx.privacysandbox.ads.adservices.adselection.AdSelectionManager? obtain(android.content.Context context);
-  }
-
-  public final class AdSelectionOutcome {
-    ctor public AdSelectionOutcome(long adSelectionId, android.net.Uri renderUri);
-    method public long getAdSelectionId();
-    method public android.net.Uri getRenderUri();
-    property public final long adSelectionId;
-    property public final android.net.Uri renderUri;
-  }
-
-  public final class ReportImpressionRequest {
-    ctor public ReportImpressionRequest(long adSelectionId, androidx.privacysandbox.ads.adservices.adselection.AdSelectionConfig adSelectionConfig);
-    method public androidx.privacysandbox.ads.adservices.adselection.AdSelectionConfig getAdSelectionConfig();
-    method public long getAdSelectionId();
-    property public final androidx.privacysandbox.ads.adservices.adselection.AdSelectionConfig adSelectionConfig;
-    property public final long adSelectionId;
-  }
-
-}
-
-package androidx.privacysandbox.ads.adservices.appsetid {
-
-  public final class AppSetId {
-    ctor public AppSetId(String id, int scope);
-    method public String getId();
-    method public int getScope();
-    property public final String id;
-    property public final int scope;
-    field public static final androidx.privacysandbox.ads.adservices.appsetid.AppSetId.Companion Companion;
-    field public static final int SCOPE_APP = 1; // 0x1
-    field public static final int SCOPE_DEVELOPER = 2; // 0x2
-  }
-
-  public static final class AppSetId.Companion {
-  }
-
-  public abstract class AppSetIdManager {
-    method public abstract suspend Object? getAppSetId(kotlin.coroutines.Continuation<? super androidx.privacysandbox.ads.adservices.appsetid.AppSetId>);
-    method public static final androidx.privacysandbox.ads.adservices.appsetid.AppSetIdManager? obtain(android.content.Context context);
-    field public static final androidx.privacysandbox.ads.adservices.appsetid.AppSetIdManager.Companion Companion;
-  }
-
-  public static final class AppSetIdManager.Companion {
-    method public androidx.privacysandbox.ads.adservices.appsetid.AppSetIdManager? obtain(android.content.Context context);
-  }
-
-}
-
-package androidx.privacysandbox.ads.adservices.common {
-
-  public final class AdData {
-    ctor public AdData(android.net.Uri renderUri, String metadata);
-    method public String getMetadata();
-    method public android.net.Uri getRenderUri();
-    property public final String metadata;
-    property public final android.net.Uri renderUri;
-  }
-
-  public final class AdSelectionSignals {
-    ctor public AdSelectionSignals(String signals);
-    method public String getSignals();
-    property public final String signals;
-  }
-
-  public final class AdTechIdentifier {
-    ctor public AdTechIdentifier(String identifier);
-    method public String getIdentifier();
-    property public final String identifier;
-  }
-
-}
-
-package androidx.privacysandbox.ads.adservices.customaudience {
-
-  public final class CustomAudience {
-    ctor public CustomAudience(androidx.privacysandbox.ads.adservices.common.AdTechIdentifier buyer, String name, android.net.Uri dailyUpdateUri, android.net.Uri biddingLogicUri, java.util.List<androidx.privacysandbox.ads.adservices.common.AdData> ads, optional java.time.Instant? activationTime, optional java.time.Instant? expirationTime, optional androidx.privacysandbox.ads.adservices.common.AdSelectionSignals? userBiddingSignals, optional androidx.privacysandbox.ads.adservices.customaudience.TrustedBiddingData? trustedBiddingSignals);
-    method public java.time.Instant? getActivationTime();
-    method public java.util.List<androidx.privacysandbox.ads.adservices.common.AdData> getAds();
-    method public android.net.Uri getBiddingLogicUri();
-    method public androidx.privacysandbox.ads.adservices.common.AdTechIdentifier getBuyer();
-    method public android.net.Uri getDailyUpdateUri();
-    method public java.time.Instant? getExpirationTime();
-    method public String getName();
-    method public androidx.privacysandbox.ads.adservices.customaudience.TrustedBiddingData? getTrustedBiddingSignals();
-    method public androidx.privacysandbox.ads.adservices.common.AdSelectionSignals? getUserBiddingSignals();
-    property public final java.time.Instant? activationTime;
-    property public final java.util.List<androidx.privacysandbox.ads.adservices.common.AdData> ads;
-    property public final android.net.Uri biddingLogicUri;
-    property public final androidx.privacysandbox.ads.adservices.common.AdTechIdentifier buyer;
-    property public final android.net.Uri dailyUpdateUri;
-    property public final java.time.Instant? expirationTime;
-    property public final String name;
-    property public final androidx.privacysandbox.ads.adservices.customaudience.TrustedBiddingData? trustedBiddingSignals;
-    property public final androidx.privacysandbox.ads.adservices.common.AdSelectionSignals? userBiddingSignals;
-  }
-
-  public static final class CustomAudience.Builder {
-    ctor public CustomAudience.Builder(androidx.privacysandbox.ads.adservices.common.AdTechIdentifier buyer, String name, android.net.Uri dailyUpdateUri, android.net.Uri biddingLogicUri, java.util.List<androidx.privacysandbox.ads.adservices.common.AdData> ads);
-    method public androidx.privacysandbox.ads.adservices.customaudience.CustomAudience build();
-    method public androidx.privacysandbox.ads.adservices.customaudience.CustomAudience.Builder setActivationTime(java.time.Instant activationTime);
-    method public androidx.privacysandbox.ads.adservices.customaudience.CustomAudience.Builder setAds(java.util.List<androidx.privacysandbox.ads.adservices.common.AdData> ads);
-    method public androidx.privacysandbox.ads.adservices.customaudience.CustomAudience.Builder setBiddingLogicUri(android.net.Uri biddingLogicUri);
-    method public androidx.privacysandbox.ads.adservices.customaudience.CustomAudience.Builder setBuyer(androidx.privacysandbox.ads.adservices.common.AdTechIdentifier buyer);
-    method public androidx.privacysandbox.ads.adservices.customaudience.CustomAudience.Builder setDailyUpdateUri(android.net.Uri dailyUpdateUri);
-    method public androidx.privacysandbox.ads.adservices.customaudience.CustomAudience.Builder setExpirationTime(java.time.Instant expirationTime);
-    method public androidx.privacysandbox.ads.adservices.customaudience.CustomAudience.Builder setName(String name);
-    method public androidx.privacysandbox.ads.adservices.customaudience.CustomAudience.Builder setTrustedBiddingData(androidx.privacysandbox.ads.adservices.customaudience.TrustedBiddingData trustedBiddingSignals);
-    method public androidx.privacysandbox.ads.adservices.customaudience.CustomAudience.Builder setUserBiddingSignals(androidx.privacysandbox.ads.adservices.common.AdSelectionSignals userBiddingSignals);
-  }
-
-  public abstract class CustomAudienceManager {
-    method @RequiresPermission(android.adservices.common.AdServicesPermissions.ACCESS_ADSERVICES_CUSTOM_AUDIENCE) public abstract suspend Object? joinCustomAudience(androidx.privacysandbox.ads.adservices.customaudience.JoinCustomAudienceRequest request, kotlin.coroutines.Continuation<? super kotlin.Unit>);
-    method @RequiresPermission(android.adservices.common.AdServicesPermissions.ACCESS_ADSERVICES_CUSTOM_AUDIENCE) public abstract suspend Object? leaveCustomAudience(androidx.privacysandbox.ads.adservices.customaudience.LeaveCustomAudienceRequest request, kotlin.coroutines.Continuation<? super kotlin.Unit>);
-    method public static final androidx.privacysandbox.ads.adservices.customaudience.CustomAudienceManager? obtain(android.content.Context context);
-    field public static final androidx.privacysandbox.ads.adservices.customaudience.CustomAudienceManager.Companion Companion;
-  }
-
-  public static final class CustomAudienceManager.Companion {
-    method public androidx.privacysandbox.ads.adservices.customaudience.CustomAudienceManager? obtain(android.content.Context context);
-  }
-
-  public final class JoinCustomAudienceRequest {
-    ctor public JoinCustomAudienceRequest(androidx.privacysandbox.ads.adservices.customaudience.CustomAudience customAudience);
-    method public androidx.privacysandbox.ads.adservices.customaudience.CustomAudience getCustomAudience();
-    property public final androidx.privacysandbox.ads.adservices.customaudience.CustomAudience customAudience;
-  }
-
-  public final class LeaveCustomAudienceRequest {
-    ctor public LeaveCustomAudienceRequest(androidx.privacysandbox.ads.adservices.common.AdTechIdentifier buyer, String name);
-    method public androidx.privacysandbox.ads.adservices.common.AdTechIdentifier getBuyer();
-    method public String getName();
-    property public final androidx.privacysandbox.ads.adservices.common.AdTechIdentifier buyer;
-    property public final String name;
-  }
-
-  public final class TrustedBiddingData {
-    ctor public TrustedBiddingData(android.net.Uri trustedBiddingUri, java.util.List<java.lang.String> trustedBiddingKeys);
-    method public java.util.List<java.lang.String> getTrustedBiddingKeys();
-    method public android.net.Uri getTrustedBiddingUri();
-    property public final java.util.List<java.lang.String> trustedBiddingKeys;
-    property public final android.net.Uri trustedBiddingUri;
-  }
-
-}
-
-package androidx.privacysandbox.ads.adservices.measurement {
-
-  @RequiresApi(android.os.Build.VERSION_CODES.TIRAMISU) public final class DeletionRequest {
-    ctor public DeletionRequest(int deletionMode, int matchBehavior, optional java.time.Instant start, optional java.time.Instant end, optional java.util.List<? extends android.net.Uri> domainUris, optional java.util.List<? extends android.net.Uri> originUris);
-    method public int getDeletionMode();
-    method public java.util.List<android.net.Uri> getDomainUris();
-    method public java.time.Instant getEnd();
-    method public int getMatchBehavior();
-    method public java.util.List<android.net.Uri> getOriginUris();
-    method public java.time.Instant getStart();
-    property public final int deletionMode;
-    property public final java.util.List<android.net.Uri> domainUris;
-    property public final java.time.Instant end;
-    property public final int matchBehavior;
-    property public final java.util.List<android.net.Uri> originUris;
-    property public final java.time.Instant start;
-    field public static final androidx.privacysandbox.ads.adservices.measurement.DeletionRequest.Companion Companion;
-    field public static final int DELETION_MODE_ALL = 0; // 0x0
-    field public static final int DELETION_MODE_EXCLUDE_INTERNAL_DATA = 1; // 0x1
-    field public static final int MATCH_BEHAVIOR_DELETE = 0; // 0x0
-    field public static final int MATCH_BEHAVIOR_PRESERVE = 1; // 0x1
-  }
-
-  @RequiresApi(android.os.Build.VERSION_CODES.TIRAMISU) public static final class DeletionRequest.Builder {
-    ctor public DeletionRequest.Builder(int deletionMode, int matchBehavior);
-    method public androidx.privacysandbox.ads.adservices.measurement.DeletionRequest build();
-    method public androidx.privacysandbox.ads.adservices.measurement.DeletionRequest.Builder setDomainUris(java.util.List<? extends android.net.Uri> domainUris);
-    method public androidx.privacysandbox.ads.adservices.measurement.DeletionRequest.Builder setEnd(java.time.Instant end);
-    method public androidx.privacysandbox.ads.adservices.measurement.DeletionRequest.Builder setOriginUris(java.util.List<? extends android.net.Uri> originUris);
-    method public androidx.privacysandbox.ads.adservices.measurement.DeletionRequest.Builder setStart(java.time.Instant start);
-  }
-
-  public static final class DeletionRequest.Companion {
-  }
-
-  public abstract class MeasurementManager {
-    ctor public MeasurementManager();
-    method public abstract suspend Object? deleteRegistrations(androidx.privacysandbox.ads.adservices.measurement.DeletionRequest deletionRequest, kotlin.coroutines.Continuation<? super kotlin.Unit>);
-    method @RequiresPermission(android.adservices.common.AdServicesPermissions.ACCESS_ADSERVICES_ATTRIBUTION) public abstract suspend Object? getMeasurementApiStatus(kotlin.coroutines.Continuation<? super java.lang.Integer>);
-    method public static final androidx.privacysandbox.ads.adservices.measurement.MeasurementManager? obtain(android.content.Context context);
-    method @RequiresPermission(android.adservices.common.AdServicesPermissions.ACCESS_ADSERVICES_ATTRIBUTION) public abstract suspend Object? registerSource(android.net.Uri attributionSource, android.view.InputEvent? inputEvent, kotlin.coroutines.Continuation<? super kotlin.Unit>);
-    method @RequiresPermission(android.adservices.common.AdServicesPermissions.ACCESS_ADSERVICES_ATTRIBUTION) public abstract suspend Object? registerTrigger(android.net.Uri trigger, kotlin.coroutines.Continuation<? super kotlin.Unit>);
-    method @RequiresPermission(android.adservices.common.AdServicesPermissions.ACCESS_ADSERVICES_ATTRIBUTION) public abstract suspend Object? registerWebSource(androidx.privacysandbox.ads.adservices.measurement.WebSourceRegistrationRequest request, kotlin.coroutines.Continuation<? super kotlin.Unit>);
-    method @RequiresPermission(android.adservices.common.AdServicesPermissions.ACCESS_ADSERVICES_ATTRIBUTION) public abstract suspend Object? registerWebTrigger(androidx.privacysandbox.ads.adservices.measurement.WebTriggerRegistrationRequest request, kotlin.coroutines.Continuation<? super kotlin.Unit>);
-    field public static final androidx.privacysandbox.ads.adservices.measurement.MeasurementManager.Companion Companion;
-    field public static final int MEASUREMENT_API_STATE_DISABLED = 0; // 0x0
-    field public static final int MEASUREMENT_API_STATE_ENABLED = 1; // 0x1
-  }
-
-  public static final class MeasurementManager.Companion {
-    method public androidx.privacysandbox.ads.adservices.measurement.MeasurementManager? obtain(android.content.Context context);
-  }
-
-  @RequiresApi(android.os.Build.VERSION_CODES.TIRAMISU) public final class WebSourceParams {
-    ctor public WebSourceParams(android.net.Uri registrationUri, boolean debugKeyAllowed);
-    method public boolean getDebugKeyAllowed();
-    method public android.net.Uri getRegistrationUri();
-    property public final boolean debugKeyAllowed;
-    property public final android.net.Uri registrationUri;
-  }
-
-  @RequiresApi(android.os.Build.VERSION_CODES.TIRAMISU) public final class WebSourceRegistrationRequest {
-    ctor public WebSourceRegistrationRequest(java.util.List<androidx.privacysandbox.ads.adservices.measurement.WebSourceParams> webSourceParams, android.net.Uri topOriginUri, optional android.view.InputEvent? inputEvent, optional android.net.Uri? appDestination, optional android.net.Uri? webDestination, optional android.net.Uri? verifiedDestination);
-    method public android.net.Uri? getAppDestination();
-    method public android.view.InputEvent? getInputEvent();
-    method public android.net.Uri getTopOriginUri();
-    method public android.net.Uri? getVerifiedDestination();
-    method public android.net.Uri? getWebDestination();
-    method public java.util.List<androidx.privacysandbox.ads.adservices.measurement.WebSourceParams> getWebSourceParams();
-    property public final android.net.Uri? appDestination;
-    property public final android.view.InputEvent? inputEvent;
-    property public final android.net.Uri topOriginUri;
-    property public final android.net.Uri? verifiedDestination;
-    property public final android.net.Uri? webDestination;
-    property public final java.util.List<androidx.privacysandbox.ads.adservices.measurement.WebSourceParams> webSourceParams;
-  }
-
-  public static final class WebSourceRegistrationRequest.Builder {
-    ctor public WebSourceRegistrationRequest.Builder(java.util.List<androidx.privacysandbox.ads.adservices.measurement.WebSourceParams> webSourceParams, android.net.Uri topOriginUri);
-    method public androidx.privacysandbox.ads.adservices.measurement.WebSourceRegistrationRequest build();
-    method public androidx.privacysandbox.ads.adservices.measurement.WebSourceRegistrationRequest.Builder setAppDestination(android.net.Uri? appDestination);
-    method public androidx.privacysandbox.ads.adservices.measurement.WebSourceRegistrationRequest.Builder setInputEvent(android.view.InputEvent inputEvent);
-    method public androidx.privacysandbox.ads.adservices.measurement.WebSourceRegistrationRequest.Builder setVerifiedDestination(android.net.Uri? verifiedDestination);
-    method public androidx.privacysandbox.ads.adservices.measurement.WebSourceRegistrationRequest.Builder setWebDestination(android.net.Uri? webDestination);
-  }
-
-  @RequiresApi(android.os.Build.VERSION_CODES.TIRAMISU) public final class WebTriggerParams {
-    ctor public WebTriggerParams(android.net.Uri registrationUri, boolean debugKeyAllowed);
-    method public boolean getDebugKeyAllowed();
-    method public android.net.Uri getRegistrationUri();
-    property public final boolean debugKeyAllowed;
-    property public final android.net.Uri registrationUri;
-  }
-
-  @RequiresApi(android.os.Build.VERSION_CODES.TIRAMISU) public final class WebTriggerRegistrationRequest {
-    ctor public WebTriggerRegistrationRequest(java.util.List<androidx.privacysandbox.ads.adservices.measurement.WebTriggerParams> webTriggerParams, android.net.Uri destination);
-    method public android.net.Uri getDestination();
-    method public java.util.List<androidx.privacysandbox.ads.adservices.measurement.WebTriggerParams> getWebTriggerParams();
-    property public final android.net.Uri destination;
-    property public final java.util.List<androidx.privacysandbox.ads.adservices.measurement.WebTriggerParams> webTriggerParams;
-  }
-
-}
-
-package androidx.privacysandbox.ads.adservices.topics {
-
-  public final class GetTopicsRequest {
-    ctor public GetTopicsRequest(optional String adsSdkName, optional boolean shouldRecordObservation);
-    method public String getAdsSdkName();
-    method public boolean getShouldRecordObservation();
-    property public final String adsSdkName;
-    property public final boolean shouldRecordObservation;
-  }
-
-  public static final class GetTopicsRequest.Builder {
-    ctor public GetTopicsRequest.Builder();
-    method public androidx.privacysandbox.ads.adservices.topics.GetTopicsRequest build();
-    method public androidx.privacysandbox.ads.adservices.topics.GetTopicsRequest.Builder setAdsSdkName(String adsSdkName);
-    method public androidx.privacysandbox.ads.adservices.topics.GetTopicsRequest.Builder setShouldRecordObservation(boolean shouldRecordObservation);
-  }
-
-  public final class GetTopicsResponse {
-    ctor public GetTopicsResponse(java.util.List<androidx.privacysandbox.ads.adservices.topics.Topic> topics);
-    method public java.util.List<androidx.privacysandbox.ads.adservices.topics.Topic> getTopics();
-    property public final java.util.List<androidx.privacysandbox.ads.adservices.topics.Topic> topics;
-  }
-
-  public final class Topic {
-    ctor public Topic(long taxonomyVersion, long modelVersion, int topicId);
-    method public long getModelVersion();
-    method public long getTaxonomyVersion();
-    method public int getTopicId();
-    property public final long modelVersion;
-    property public final long taxonomyVersion;
-    property public final int topicId;
-  }
-
-  public abstract class TopicsManager {
-    method @RequiresPermission(android.adservices.common.AdServicesPermissions.ACCESS_ADSERVICES_TOPICS) public abstract suspend Object? getTopics(androidx.privacysandbox.ads.adservices.topics.GetTopicsRequest request, kotlin.coroutines.Continuation<? super androidx.privacysandbox.ads.adservices.topics.GetTopicsResponse>);
-    method public static final androidx.privacysandbox.ads.adservices.topics.TopicsManager? obtain(android.content.Context context);
-    field public static final androidx.privacysandbox.ads.adservices.topics.TopicsManager.Companion Companion;
-  }
-
-  public static final class TopicsManager.Companion {
-    method public androidx.privacysandbox.ads.adservices.topics.TopicsManager? obtain(android.content.Context context);
-  }
-
-}
-
diff --git a/privacysandbox/sdkruntime/sdkruntime-client/api/public_plus_experimental_current.txt b/privacysandbox/sdkruntime/sdkruntime-client/api/public_plus_experimental_current.txt
deleted file mode 100644
index 8d97c00..0000000
--- a/privacysandbox/sdkruntime/sdkruntime-client/api/public_plus_experimental_current.txt
+++ /dev/null
@@ -1,23 +0,0 @@
-// Signature format: 4.0
-package androidx.privacysandbox.sdkruntime.client {
-
-  public final class SdkSandboxManagerCompat {
-    method public void addSdkSandboxProcessDeathCallback(java.util.concurrent.Executor callbackExecutor, androidx.privacysandbox.sdkruntime.client.SdkSandboxProcessDeathCallbackCompat callback);
-    method public static androidx.privacysandbox.sdkruntime.client.SdkSandboxManagerCompat from(android.content.Context context);
-    method public java.util.List<androidx.privacysandbox.sdkruntime.core.SandboxedSdkCompat> getSandboxedSdks();
-    method @kotlin.jvm.Throws(exceptionClasses=LoadSdkCompatException::class) public suspend Object? loadSdk(String sdkName, android.os.Bundle params, kotlin.coroutines.Continuation<? super androidx.privacysandbox.sdkruntime.core.SandboxedSdkCompat>) throws androidx.privacysandbox.sdkruntime.core.LoadSdkCompatException;
-    method public void removeSdkSandboxProcessDeathCallback(androidx.privacysandbox.sdkruntime.client.SdkSandboxProcessDeathCallbackCompat callback);
-    method public void unloadSdk(String sdkName);
-    field public static final androidx.privacysandbox.sdkruntime.client.SdkSandboxManagerCompat.Companion Companion;
-  }
-
-  public static final class SdkSandboxManagerCompat.Companion {
-    method public androidx.privacysandbox.sdkruntime.client.SdkSandboxManagerCompat from(android.content.Context context);
-  }
-
-  public interface SdkSandboxProcessDeathCallbackCompat {
-    method public void onSdkSandboxDied();
-  }
-
-}
-
diff --git a/privacysandbox/sdkruntime/sdkruntime-core/api/public_plus_experimental_current.txt b/privacysandbox/sdkruntime/sdkruntime-core/api/public_plus_experimental_current.txt
deleted file mode 100644
index 56a2116..0000000
--- a/privacysandbox/sdkruntime/sdkruntime-core/api/public_plus_experimental_current.txt
+++ /dev/null
@@ -1,67 +0,0 @@
-// Signature format: 4.0
-package androidx.privacysandbox.sdkruntime.core {
-
-  public final class LoadSdkCompatException extends java.lang.Exception {
-    ctor public LoadSdkCompatException(Throwable cause, android.os.Bundle extraInfo);
-    method public android.os.Bundle getExtraInformation();
-    method public int getLoadSdkErrorCode();
-    property public final android.os.Bundle extraInformation;
-    property public final int loadSdkErrorCode;
-    field public static final androidx.privacysandbox.sdkruntime.core.LoadSdkCompatException.Companion Companion;
-    field public static final int LOAD_SDK_ALREADY_LOADED = 101; // 0x65
-    field public static final int LOAD_SDK_INTERNAL_ERROR = 500; // 0x1f4
-    field public static final int LOAD_SDK_NOT_FOUND = 100; // 0x64
-    field public static final int LOAD_SDK_SDK_DEFINED_ERROR = 102; // 0x66
-    field public static final int LOAD_SDK_SDK_SANDBOX_DISABLED = 103; // 0x67
-    field public static final int SDK_SANDBOX_PROCESS_NOT_AVAILABLE = 503; // 0x1f7
-  }
-
-  public static final class LoadSdkCompatException.Companion {
-  }
-
-  public final class SandboxedSdkCompat {
-    ctor public SandboxedSdkCompat(android.os.IBinder sdkInterface);
-    method public android.os.IBinder? getInterface();
-    method public androidx.privacysandbox.sdkruntime.core.SandboxedSdkInfo? getSdkInfo();
-  }
-
-  public final class SandboxedSdkInfo {
-    ctor public SandboxedSdkInfo(String name, long version);
-    method public String getName();
-    method public long getVersion();
-    property public final String name;
-    property public final long version;
-  }
-
-  @RequiresExtension(extension=android.os.ext.SdkExtensions.AD_SERVICES, version=4) public final class SandboxedSdkProviderAdapter extends android.app.sdksandbox.SandboxedSdkProvider {
-    ctor public SandboxedSdkProviderAdapter();
-    method public android.view.View getView(android.content.Context windowContext, android.os.Bundle params, int width, int height);
-    method @kotlin.jvm.Throws(exceptionClasses=LoadSdkException::class) public android.app.sdksandbox.SandboxedSdk onLoadSdk(android.os.Bundle params) throws android.app.sdksandbox.LoadSdkException;
-  }
-
-  public abstract class SandboxedSdkProviderCompat {
-    ctor public SandboxedSdkProviderCompat();
-    method public final void attachContext(android.content.Context context);
-    method public void beforeUnloadSdk();
-    method public final android.content.Context? getContext();
-    method public abstract android.view.View getView(android.content.Context windowContext, android.os.Bundle params, int width, int height);
-    method @kotlin.jvm.Throws(exceptionClasses=LoadSdkCompatException::class) public abstract androidx.privacysandbox.sdkruntime.core.SandboxedSdkCompat onLoadSdk(android.os.Bundle params) throws androidx.privacysandbox.sdkruntime.core.LoadSdkCompatException;
-    property public final android.content.Context? context;
-  }
-
-}
-
-package androidx.privacysandbox.sdkruntime.core.controller {
-
-  public final class SdkSandboxControllerCompat {
-    method public static androidx.privacysandbox.sdkruntime.core.controller.SdkSandboxControllerCompat from(android.content.Context context);
-    method public java.util.List<androidx.privacysandbox.sdkruntime.core.SandboxedSdkCompat> getSandboxedSdks();
-    field public static final androidx.privacysandbox.sdkruntime.core.controller.SdkSandboxControllerCompat.Companion Companion;
-  }
-
-  public static final class SdkSandboxControllerCompat.Companion {
-    method public androidx.privacysandbox.sdkruntime.core.controller.SdkSandboxControllerCompat from(android.content.Context context);
-  }
-
-}
-
diff --git a/privacysandbox/ui/ui-client/api/public_plus_experimental_current.txt b/privacysandbox/ui/ui-client/api/public_plus_experimental_current.txt
deleted file mode 100644
index ae23335..0000000
--- a/privacysandbox/ui/ui-client/api/public_plus_experimental_current.txt
+++ /dev/null
@@ -1,48 +0,0 @@
-// Signature format: 4.0
-package androidx.privacysandbox.ui.client {
-
-  @RequiresApi(android.os.Build.VERSION_CODES.TIRAMISU) public final class SandboxedUiAdapterFactory {
-    method public androidx.privacysandbox.ui.core.SandboxedUiAdapter createFromCoreLibInfo(android.os.Bundle coreLibInfo);
-    field public static final androidx.privacysandbox.ui.client.SandboxedUiAdapterFactory INSTANCE;
-  }
-
-}
-
-package androidx.privacysandbox.ui.client.view {
-
-  public abstract sealed class SandboxedSdkUiSessionState {
-  }
-
-  public static final class SandboxedSdkUiSessionState.Active extends androidx.privacysandbox.ui.client.view.SandboxedSdkUiSessionState {
-    field public static final androidx.privacysandbox.ui.client.view.SandboxedSdkUiSessionState.Active INSTANCE;
-  }
-
-  public static final class SandboxedSdkUiSessionState.Error extends androidx.privacysandbox.ui.client.view.SandboxedSdkUiSessionState {
-    ctor public SandboxedSdkUiSessionState.Error(Throwable throwable);
-    method public Throwable getThrowable();
-    property public final Throwable throwable;
-  }
-
-  public static final class SandboxedSdkUiSessionState.Idle extends androidx.privacysandbox.ui.client.view.SandboxedSdkUiSessionState {
-    field public static final androidx.privacysandbox.ui.client.view.SandboxedSdkUiSessionState.Idle INSTANCE;
-  }
-
-  public static final class SandboxedSdkUiSessionState.Loading extends androidx.privacysandbox.ui.client.view.SandboxedSdkUiSessionState {
-    field public static final androidx.privacysandbox.ui.client.view.SandboxedSdkUiSessionState.Loading INSTANCE;
-  }
-
-  public fun interface SandboxedSdkUiSessionStateChangedListener {
-    method public void onStateChanged(androidx.privacysandbox.ui.client.view.SandboxedSdkUiSessionState state);
-  }
-
-  @RequiresApi(android.os.Build.VERSION_CODES.TIRAMISU) public final class SandboxedSdkView extends android.view.ViewGroup {
-    ctor public SandboxedSdkView(android.content.Context context);
-    ctor public SandboxedSdkView(android.content.Context context, optional android.util.AttributeSet? attrs);
-    method public void addStateChangedListener(androidx.privacysandbox.ui.client.view.SandboxedSdkUiSessionStateChangedListener stateChangedListener);
-    method public void removeStateChangedListener(androidx.privacysandbox.ui.client.view.SandboxedSdkUiSessionStateChangedListener stateChangedListener);
-    method public void setAdapter(androidx.privacysandbox.ui.core.SandboxedUiAdapter sandboxedUiAdapter);
-    method public void setZOrderOnTopAndEnableUserInteraction(boolean setOnTop);
-  }
-
-}
-
diff --git a/privacysandbox/ui/ui-client/src/androidTest/java/androidx/privacysandbox/ui/client/test/SandboxedSdkViewTest.kt b/privacysandbox/ui/ui-client/src/androidTest/java/androidx/privacysandbox/ui/client/test/SandboxedSdkViewTest.kt
index 68778460..9670896 100644
--- a/privacysandbox/ui/ui-client/src/androidTest/java/androidx/privacysandbox/ui/client/test/SandboxedSdkViewTest.kt
+++ b/privacysandbox/ui/ui-client/src/androidTest/java/androidx/privacysandbox/ui/client/test/SandboxedSdkViewTest.kt
@@ -95,6 +95,11 @@
         var isSessionOpened = false
         var internalClient: SandboxedUiAdapter.SessionClient? = null
         var testSession: TestSession? = null
+        var isZOrderOnTop = true
+
+        // When set to true, the onSessionOpened callback will only be invoked when specified
+        // by the test. This is to test race conditions when the session is being loaded.
+        var delayOpenSessionCallback = false
 
         override fun openSession(
             context: Context,
@@ -107,11 +112,18 @@
             internalClient = client
             testSession =
                 TestSession(context, initialWidth, initialHeight, resizeLatch, configChangedLatch)
-            client.onSessionOpened(testSession!!)
+            if (!delayOpenSessionCallback) {
+                client.onSessionOpened(testSession!!)
+            }
             isSessionOpened = true
+            this.isZOrderOnTop = isZOrderOnTop
             openSessionLatch?.countDown()
         }
 
+        internal fun sendOnSessionOpened() {
+            internalClient?.onSessionOpened(testSession!!)
+        }
+
         inner class TestSession(
             context: Context,
             initialWidth: Int,
@@ -120,7 +132,7 @@
             private var configChangedLatch: CountDownLatch?
         ) : SandboxedUiAdapter.Session {
 
-            var isZOrderChanged = false
+            var zOrderChangedLatch: CountDownLatch = CountDownLatch(1)
 
             override val view: View = View(context)
 
@@ -137,7 +149,8 @@
             }
 
             override fun notifyZOrderChanged(isZOrderOnTop: Boolean) {
-                isZOrderChanged = true
+                this@TestSandboxedUiAdapter.isZOrderOnTop = isZOrderOnTop
+                zOrderChangedLatch.countDown()
             }
 
             override fun notifyConfigurationChanged(configuration: Configuration) {
@@ -225,11 +238,7 @@
 
     @Test
     fun onAttachedToWindowTest() {
-        activity.runOnUiThread(Runnable {
-            activity.findViewById<LinearLayout>(
-                R.id.mainlayout
-            ).addView(view)
-        })
+        addViewToLayout()
         openSessionLatch.await(TIMEOUT, TimeUnit.MILLISECONDS)
         assertTrue(testSandboxedUiAdapter.isSessionOpened)
         assertTrue(view.childCount == 1)
@@ -240,11 +249,7 @@
     fun childViewRemovedOnErrorTest() {
         assertTrue(view.childCount == 0)
 
-        activity.runOnUiThread(Runnable {
-            activity.findViewById<LinearLayout>(
-                R.id.mainlayout
-            ).addView(view)
-        })
+        addViewToLayout()
 
         openSessionLatch.await(TIMEOUT, TimeUnit.MILLISECONDS)
         assertTrue(openSessionLatch.count == 0.toLong())
@@ -259,32 +264,78 @@
 
     @Test
     fun onZOrderChangedTest() {
-        val layout = activity.findViewById<LinearLayout>(
-            R.id.mainlayout
-        )
+        addViewToLayout()
 
-        view.setZOrderOnTopAndEnableUserInteraction(true)
-        resizeLatch.await(TIMEOUT, TimeUnit.MILLISECONDS)
-        testSandboxedUiAdapter.testSession?.let { assertFalse(it.isZOrderChanged) }
+        // When session is opened, the provider should not receive a Z-order notification.
+        assertThat(openSessionLatch.await(TIMEOUT, TimeUnit.MILLISECONDS)).isTrue()
+        val session = testSandboxedUiAdapter.testSession!!
+        val adapter = testSandboxedUiAdapter
+        assertThat(session.zOrderChangedLatch.await(TIMEOUT, TimeUnit.MILLISECONDS)).isFalse()
+        assertThat(adapter.isZOrderOnTop).isTrue()
 
-        activity.runOnUiThread(Runnable {
-            layout.addView(view)
-        })
+        // When state changes to false, the provider should be notified.
         view.setZOrderOnTopAndEnableUserInteraction(false)
+        assertThat(session.zOrderChangedLatch.await(TIMEOUT, TimeUnit.MILLISECONDS)).isTrue()
+        assertThat(adapter.isZOrderOnTop).isFalse()
 
-        resizeLatch.await(TIMEOUT, TimeUnit.MILLISECONDS)
-        testSandboxedUiAdapter.testSession?.let { assertTrue(it.isZOrderChanged) }
-        assertTrue(resizeLatch.count == 0.toLong())
+        // When state changes back to true, the provider should be notified.
+        session.zOrderChangedLatch = CountDownLatch(1)
+        view.setZOrderOnTopAndEnableUserInteraction(true)
+        assertThat(session.zOrderChangedLatch.await(TIMEOUT, TimeUnit.MILLISECONDS)).isTrue()
+        assertThat(adapter.isZOrderOnTop).isTrue()
+    }
+
+    @Test
+    fun onZOrderUnchangedTest() {
+        addViewToLayout()
+
+        // When session is opened, the provider should not receive a Z-order notification.
+        assertThat(openSessionLatch.await(TIMEOUT, TimeUnit.MILLISECONDS)).isTrue()
+        val session = testSandboxedUiAdapter.testSession!!
+        val adapter = testSandboxedUiAdapter
+        assertThat(adapter.isZOrderOnTop).isTrue()
+
+        // When Z-order state is unchanged, the provider should not be notified.
+        session.zOrderChangedLatch = CountDownLatch(1)
+        view.setZOrderOnTopAndEnableUserInteraction(true)
+        assertThat(session.zOrderChangedLatch.await(TIMEOUT, TimeUnit.MILLISECONDS)).isFalse()
+        assertThat(adapter.isZOrderOnTop).isTrue()
+    }
+
+    @Test
+    fun setZOrderNotOnTopBeforeOpeningSession() {
+        view.setZOrderOnTopAndEnableUserInteraction(false)
+        addViewToLayout()
+        assertThat(openSessionLatch.await(TIMEOUT, TimeUnit.MILLISECONDS)).isTrue()
+        val session = testSandboxedUiAdapter.testSession!!
+
+        // The initial Z-order state is passed to the session, but notifyZOrderChanged is not called
+        assertThat(session.zOrderChangedLatch.await(TIMEOUT, TimeUnit.MILLISECONDS)).isFalse()
+        assertThat(testSandboxedUiAdapter.isZOrderOnTop).isFalse()
+    }
+
+    @Test
+    fun setZOrderNotOnTopWhileSessionLoading() {
+        testSandboxedUiAdapter.delayOpenSessionCallback = true
+        addViewToLayout()
+        assertThat(openSessionLatch.await(TIMEOUT, TimeUnit.MILLISECONDS)).isTrue()
+        view.setZOrderOnTopAndEnableUserInteraction(false)
+        val session = testSandboxedUiAdapter.testSession!!
+        assertThat(session.zOrderChangedLatch.await(TIMEOUT, TimeUnit.MILLISECONDS)).isFalse()
+        activity.runOnUiThread {
+            testSandboxedUiAdapter.sendOnSessionOpened()
+        }
+
+        // After session has opened, the pending Z order changed made while loading is notified
+        // th the session.
+        assertThat(session.zOrderChangedLatch.await(TIMEOUT, TimeUnit.MILLISECONDS)).isTrue()
+        assertThat(testSandboxedUiAdapter.isZOrderOnTop).isFalse()
     }
 
     @Test
     @Ignore("b/272324246")
     fun onConfigurationChangedTest() {
-        val layout = activity.findViewById<LinearLayout>(R.id.mainlayout)
-
-        activity.runOnUiThread(Runnable {
-            layout.addView(view)
-        })
+        addViewToLayout()
 
         openSessionLatch.await(TIMEOUT, TimeUnit.MILLISECONDS)
         assertTrue(openSessionLatch.count == 0.toLong())
@@ -297,16 +348,12 @@
 
     @Test
     fun onSizeChangedTest() {
-        val layout = activity.findViewById<LinearLayout>(
-            R.id.mainlayout
-        )
-
-        activity.runOnUiThread(Runnable {
-            layout.addView(view)
+        addViewToLayout()
+        assertThat(openSessionLatch.await(TIMEOUT, TimeUnit.MILLISECONDS)).isTrue()
+        activity.runOnUiThread {
             view.layoutParams = LinearLayout.LayoutParams(100, 200)
-        })
-        resizeLatch.await(TIMEOUT, TimeUnit.MILLISECONDS)
-        assertTrue(resizeLatch.count == 0.toLong())
+        }
+        assertThat(resizeLatch.await(TIMEOUT, TimeUnit.MILLISECONDS)).isTrue()
         assertTrue(view.width == 100 && view.height == 200)
     }
 
@@ -356,4 +403,12 @@
             "XML overrides SandboxedSdkView.isTransitionGroup", view.isTransitionGroup
         )
     }
+
+    private fun addViewToLayout() {
+        activity.runOnUiThread {
+            activity.findViewById<LinearLayout>(
+                R.id.mainlayout
+            ).addView(view)
+        }
+    }
 }
diff --git a/privacysandbox/ui/ui-client/src/main/java/androidx/privacysandbox/ui/client/view/SandboxedSdkView.kt b/privacysandbox/ui/ui-client/src/main/java/androidx/privacysandbox/ui/client/view/SandboxedSdkView.kt
index 8cb8485..7842b0a 100644
--- a/privacysandbox/ui/ui-client/src/main/java/androidx/privacysandbox/ui/client/view/SandboxedSdkView.kt
+++ b/privacysandbox/ui/ui-client/src/main/java/androidx/privacysandbox/ui/client/view/SandboxedSdkView.kt
@@ -124,11 +124,14 @@
         checkClientOpenSession()
     }
 
+    /**
+     * Sets the Z-ordering of the [SandboxedSdkView]'s surface, relative to its window.
+     */
     fun setZOrderOnTopAndEnableUserInteraction(setOnTop: Boolean) {
         if (setOnTop == isZOrderOnTop) return
-        this.isZOrderOnTop = setOnTop
-        checkClientOpenSession()
         client?.notifyZOrderChanged(setOnTop)
+        isZOrderOnTop = setOnTop
+        checkClientOpenSession()
     }
 
     private fun checkClientOpenSession() {
@@ -251,16 +254,16 @@
         oldHeight: Int
     ) {
         super.onSizeChanged(width, height, oldWidth, oldHeight)
-        checkClientOpenSession()
         client?.notifyResized(width, height)
+        checkClientOpenSession()
     }
 
     // TODO(b/270971893) Compare to old configuration before notifying of configuration change.
     override fun onConfigurationChanged(config: Configuration?) {
         requireNotNull(config) { "Config cannot be null" }
         super.onConfigurationChanged(config)
-        checkClientOpenSession()
         client?.notifyConfigurationChanged(config)
+        checkClientOpenSession()
     }
 
     /**
@@ -330,9 +333,7 @@
         private var pendingWidth: Int? = null
         private var pendingHeight: Int? = null
 
-        // pendingZOrderOnTop ensures visible and interactive provider UI as long as the UI is
-        // unobstructed to the user.
-        private var pendingZOrderOnTop: Boolean? = true
+        private var pendingZOrderOnTop: Boolean? = null
         private var pendingConfiguration: Configuration? = null
 
         fun notifyConfigurationChanged(configuration: Configuration) {
@@ -390,6 +391,7 @@
             pendingZOrderOnTop?.let {
                 session.notifyZOrderChanged(it)
             }
+            pendingZOrderOnTop = null
         }
 
         override fun onSessionError(throwable: Throwable) {
diff --git a/privacysandbox/ui/ui-core/api/public_plus_experimental_current.txt b/privacysandbox/ui/ui-core/api/public_plus_experimental_current.txt
deleted file mode 100644
index 4154b4b..0000000
--- a/privacysandbox/ui/ui-core/api/public_plus_experimental_current.txt
+++ /dev/null
@@ -1,31 +0,0 @@
-// Signature format: 4.0
-package androidx.privacysandbox.ui.core {
-
-  public interface SandboxedUiAdapter {
-    method public void openSession(android.content.Context context, int initialWidth, int initialHeight, boolean isZOrderOnTop, java.util.concurrent.Executor clientExecutor, androidx.privacysandbox.ui.core.SandboxedUiAdapter.SessionClient client);
-  }
-
-  public static interface SandboxedUiAdapter.Session {
-    method public void close();
-    method public android.view.View getView();
-    method public void notifyConfigurationChanged(android.content.res.Configuration configuration);
-    method public void notifyResized(int width, int height);
-    method public void notifyZOrderChanged(boolean isZOrderOnTop);
-    property public abstract android.view.View view;
-  }
-
-  public static interface SandboxedUiAdapter.SessionClient {
-    method public void onResizeRequested(int width, int height);
-    method public void onSessionError(Throwable throwable);
-    method public void onSessionOpened(androidx.privacysandbox.ui.core.SandboxedUiAdapter.Session session);
-  }
-
-  public final class SdkRuntimeUiLibVersions {
-    method public int getClientVersion();
-    property public final int clientVersion;
-    field public static final androidx.privacysandbox.ui.core.SdkRuntimeUiLibVersions INSTANCE;
-    field public static final int apiVersion = 1; // 0x1
-  }
-
-}
-
diff --git a/privacysandbox/ui/ui-provider/api/public_plus_experimental_current.txt b/privacysandbox/ui/ui-provider/api/public_plus_experimental_current.txt
deleted file mode 100644
index 20170b4..0000000
--- a/privacysandbox/ui/ui-provider/api/public_plus_experimental_current.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-// Signature format: 4.0
-package androidx.privacysandbox.ui.provider {
-
-  @RequiresApi(33) public final class SandboxedUiAdapterProxy {
-    method @RequiresApi(android.os.Build.VERSION_CODES.TIRAMISU) public static android.os.Bundle toCoreLibInfo(androidx.privacysandbox.ui.core.SandboxedUiAdapter, android.content.Context context);
-  }
-
-}
-
diff --git a/room/integration-tests/kotlintestapp/src/androidTestWithKspGenKotlin/java/androidx/room/integration/kotlintestapp/test/ValueClassConverterWrapperTest.kt b/room/integration-tests/kotlintestapp/src/androidTestWithKspGenKotlin/java/androidx/room/integration/kotlintestapp/test/ValueClassConverterWrapperTest.kt
index 8b605d9..14344bb 100644
--- a/room/integration-tests/kotlintestapp/src/androidTestWithKspGenKotlin/java/androidx/room/integration/kotlintestapp/test/ValueClassConverterWrapperTest.kt
+++ b/room/integration-tests/kotlintestapp/src/androidTestWithKspGenKotlin/java/androidx/room/integration/kotlintestapp/test/ValueClassConverterWrapperTest.kt
@@ -18,6 +18,7 @@
 
 import android.content.Context
 import androidx.kruth.assertThat
+import androidx.kruth.assertThrows
 import androidx.room.Dao
 import androidx.room.Database
 import androidx.room.Entity
@@ -76,6 +77,9 @@
     @JvmInline
     value class UserWithByteArray(val password: ByteArray)
 
+    @JvmInline
+    value class NullableValue(val data: Int?)
+
     @Entity
     @TypeConverters(DateConverter::class, SchrodingerConverter::class)
     class UserInfo(
@@ -113,17 +117,32 @@
         }
     }
 
+    @Entity
+    data class UserInfoNullable(
+        @PrimaryKey
+        val pk: Int,
+        val nullableUserIntPwd: UserWithInt?,
+        val nullableData: NullableValue,
+        val doubleNullableData: NullableValue?
+    )
+
     @Dao
     interface SampleDao {
         @Query("SELECT * FROM UserInfo")
         fun getEntity(): UserInfo
 
+        @Query("SELECT * FROM UserInfoNullable")
+        fun getNullableEntity(): UserInfoNullable
+
         @Insert
         fun insert(item: UserInfo)
+
+        @Insert
+        fun insertNullableEntity(item: UserInfoNullable)
     }
 
     @Database(
-        entities = [UserInfo::class],
+        entities = [UserInfo::class, UserInfoNullable::class],
         version = 1,
         exportSchema = false
     )
@@ -167,6 +186,38 @@
         assertThat(readEntity).isEqualTo(customerInfo)
     }
 
+    @Test
+    fun readAndWriteNullableValueClassToDatabase() {
+        val data = UserInfoNullable(
+            pk = 1,
+            nullableUserIntPwd = null,
+            nullableData = NullableValue(1),
+            null
+        )
+
+        db.dao().insertNullableEntity(data)
+
+        val readEntity = db.dao().getNullableEntity()
+
+        assertThat(readEntity).isEqualTo(data)
+    }
+
+    @Test
+    fun invalidWriteNullableValueClassToDatabase() {
+        val data = UserInfoNullable(
+            pk = 1,
+            nullableUserIntPwd = null,
+            nullableData = NullableValue(null),
+            null
+        )
+
+        assertThrows<IllegalStateException> {
+            db.dao().insertNullableEntity(data)
+        }.hasMessageThat().isEqualTo(
+            "Cannot bind nullable value of inline class to a NOT NULL column."
+        )
+    }
+
     @Before
     fun initDb() {
         val context = ApplicationProvider.getApplicationContext<Context>()
diff --git a/room/room-compiler-processing/build.gradle b/room/room-compiler-processing/build.gradle
index f8d3190..07001c6 100644
--- a/room/room-compiler-processing/build.gradle
+++ b/room/room-compiler-processing/build.gradle
@@ -40,6 +40,11 @@
     configurations = [project.configurations.shadowed]
     relocate("kotlinx.metadata", "androidx.room.jarjarred.kotlinx.metadata")
     mergeServiceFiles() // kotlinx-metadata-jvm has a service descriptor that needs transformation
+    // Exclude Kotlin metadata files from kotlinx-metadata-jvm
+    exclude 'META-INF/kotlinx-metadata-jvm.kotlin_module'
+    exclude 'META-INF/kotlinx-metadata.kotlin_module'
+    exclude 'META-INF/metadata.jvm.kotlin_module'
+    exclude 'META-INF/metadata.kotlin_module'
 }
 
 jar {
diff --git a/room/room-compiler-processing/src/main/java/androidx/room/compiler/codegen/XCodeBlock.kt b/room/room-compiler-processing/src/main/java/androidx/room/compiler/codegen/XCodeBlock.kt
index e384141..28bb824 100644
--- a/room/room-compiler-processing/src/main/java/androidx/room/compiler/codegen/XCodeBlock.kt
+++ b/room/room-compiler-processing/src/main/java/androidx/room/compiler/codegen/XCodeBlock.kt
@@ -155,7 +155,7 @@
                     CodeLanguage.JAVA -> "new "
                     CodeLanguage.KOTLIN -> ""
                 }
-                add("$newKeyword%T($argsFormat)", typeName, *args)
+                add("$newKeyword%T($argsFormat)", typeName.copy(nullable = false), *args)
             }.build()
         }
 
diff --git a/room/room-compiler-processing/src/main/java/androidx/room/compiler/processing/ksp/KSTypeVarianceResolver.kt b/room/room-compiler-processing/src/main/java/androidx/room/compiler/processing/ksp/KSTypeVarianceResolver.kt
index 2687c5e..ca11a18 100644
--- a/room/room-compiler-processing/src/main/java/androidx/room/compiler/processing/ksp/KSTypeVarianceResolver.kt
+++ b/room/room-compiler-processing/src/main/java/androidx/room/compiler/processing/ksp/KSTypeVarianceResolver.kt
@@ -51,7 +51,9 @@
      */
     @OptIn(KspExperimental::class)
     fun applyTypeVariance(type: KSType, scope: KSTypeVarianceResolverScope?): KSType {
-        if (type.isError || scope?.needsWildcardResolution == false) {
+        if (type.isError ||
+            resolver.isJavaRawType(type) ||
+            scope?.needsWildcardResolution == false) {
             // There's nothing to resolve in this case, so just return the original type.
             return type
         }
diff --git a/room/room-compiler-processing/src/test/java/androidx/room/compiler/processing/XTypeTest.kt b/room/room-compiler-processing/src/test/java/androidx/room/compiler/processing/XTypeTest.kt
index 12b61d7..babbadec 100644
--- a/room/room-compiler-processing/src/test/java/androidx/room/compiler/processing/XTypeTest.kt
+++ b/room/room-compiler-processing/src/test/java/androidx/room/compiler/processing/XTypeTest.kt
@@ -67,9 +67,11 @@
             package foo.bar;
             import java.io.InputStream;
             import java.util.Set;
+            import java.util.List;
             class Parent<InputStreamType extends InputStream> {
                 public void wildcardParam(Set<?> param1) {}
-                public void rawTypeParam(Set param1) {}
+                public void rawParamType(Set param1) {}
+                public void rawParamTypeArgument(List<Set> param1) {}
             }
             """.trimIndent()
         )
@@ -145,9 +147,42 @@
                         )
                 }
             }
-            type.typeElement!!.getMethodByJvmName("rawTypeParam").let { method ->
-                val rawTypeParam = method.parameters.first()
-                assertThat(rawTypeParam.type.typeArguments).isEmpty()
+            type.typeElement!!.getMethodByJvmName("rawParamType").let { method ->
+                val rawParamType = method.parameters.first()
+                assertThat(rawParamType.type.typeArguments).isEmpty()
+                assertThat(rawParamType.type.asTypeName().java).isEqualTo(
+                    JClassName.get("java.util", "Set")
+                )
+                if (it.isKsp) {
+                    assertThat(rawParamType.type.asTypeName().kotlin).isEqualTo(
+                        KClassName("kotlin.collections", "MutableSet")
+                    )
+                }
+            }
+            type.typeElement!!.getMethodByJvmName("rawParamTypeArgument").let { method ->
+                val rawParamTypeArgument = method.parameters.first()
+                assertThat(rawParamTypeArgument.type.asTypeName().java).isEqualTo(
+                    JParameterizedTypeName.get(
+                        JClassName.get("java.util", "List"),
+                        JClassName.get("java.util", "Set"),
+                    )
+                )
+                if (it.isKsp) {
+                    assertThat(rawParamTypeArgument.type.asTypeName().kotlin).isEqualTo(
+                        KClassName("kotlin.collections", "MutableList").parameterizedBy(
+                            KClassName("kotlin.collections", "MutableSet")
+                        )
+                    )
+                }
+                val rawTypeArgument = rawParamTypeArgument.type.typeArguments.single()
+                assertThat(rawTypeArgument.asTypeName().java).isEqualTo(
+                    JClassName.get("java.util", "Set")
+                )
+                if (it.isKsp) {
+                    assertThat(rawTypeArgument.asTypeName().kotlin).isEqualTo(
+                        KClassName("kotlin.collections", "MutableSet")
+                    )
+                }
             }
         }
     }
diff --git a/room/room-compiler/src/main/kotlin/androidx/room/solver/TypeAdapterStore.kt b/room/room-compiler/src/main/kotlin/androidx/room/solver/TypeAdapterStore.kt
index 030d092..39bc50e 100644
--- a/room/room-compiler/src/main/kotlin/androidx/room/solver/TypeAdapterStore.kt
+++ b/room/room-compiler/src/main/kotlin/androidx/room/solver/TypeAdapterStore.kt
@@ -380,7 +380,9 @@
             // Extract the type value of the Value class element
             val underlyingProperty = typeElement.getValueClassUnderlyingProperty()
             val underlyingTypeColumnAdapter = findColumnTypeAdapter(
-                out = underlyingProperty.asMemberOf(type),
+                // Find an adapter for the non-null underlying type, nullability will be handled
+                // by the value class adapter.
+                out = underlyingProperty.asMemberOf(type).makeNonNullable(),
                 affinity = affinity,
                 skipDefaultConverter = false
             ) ?: return null
diff --git a/room/room-compiler/src/main/kotlin/androidx/room/solver/types/ValueClassConverterWrapper.kt b/room/room-compiler/src/main/kotlin/androidx/room/solver/types/ValueClassConverterWrapper.kt
index 57a2247..cc2d6ee 100644
--- a/room/room-compiler/src/main/kotlin/androidx/room/solver/types/ValueClassConverterWrapper.kt
+++ b/room/room-compiler/src/main/kotlin/androidx/room/solver/types/ValueClassConverterWrapper.kt
@@ -79,15 +79,28 @@
     ) {
         scope.builder.apply {
             val propertyName = scope.getTmpVar("_$valuePropertyName")
-            addLocalVariable(
-                name = propertyName,
-                typeName = valueTypeColumnAdapter.outTypeName,
-                assignExpr = XCodeBlock.of(
+            val assignmentBlock = if (out.nullability == XNullability.NONNULL) {
+                // TODO(b/249984504): Generate / output a better message.
+                XCodeBlock.of(
                     scope.language,
-                    "%L.%L",
+                    "checkNotNull(%L.%L) { %S }",
+                    valueVarName,
+                    valuePropertyName,
+                    "Cannot bind nullable value of inline class to a NOT NULL column."
+                )
+            } else {
+                XCodeBlock.of(
+                    scope.language,
+                    "%L?.%L",
                     valueVarName,
                     valuePropertyName
                 )
+            }
+            addLocalVariable(
+                name = propertyName,
+                typeName = valueTypeColumnAdapter.outTypeName
+                    .copy(nullable = out.nullability != XNullability.NONNULL),
+                assignExpr = assignmentBlock
             )
 
             if (out.nullability == XNullability.NONNULL) {
diff --git a/room/room-compiler/src/test/kotlin/androidx/room/writer/DaoKotlinCodeGenTest.kt b/room/room-compiler/src/test/kotlin/androidx/room/writer/DaoKotlinCodeGenTest.kt
index 11f0ed7..fbf60ac 100644
--- a/room/room-compiler/src/test/kotlin/androidx/room/writer/DaoKotlinCodeGenTest.kt
+++ b/room/room-compiler/src/test/kotlin/androidx/room/writer/DaoKotlinCodeGenTest.kt
@@ -2214,7 +2214,7 @@
     }
 
     @Test
-    fun valueClassConverter() {
+    fun pojoRowAdapter_valueClassConverter() {
         val testName = object {}.javaClass.enclosingMethod!!.name
         val src = Source.kotlin(
             "MyDao.kt",
@@ -2235,6 +2235,9 @@
             value class LongValueClass(val data: Long)
 
             @JvmInline
+            value class NullableLongValueClass(val data: Long?)
+
+            @JvmInline
             value class UUIDValueClass(val data: UUID)
 
             @JvmInline
@@ -2245,6 +2248,9 @@
                 @PrimaryKey
                 val pk: LongValueClass,
                 val uuidData: UUIDValueClass,
+                val nullableUuidData: UUIDValueClass?,
+                val nullableLongData: NullableLongValueClass,
+                val doubleNullableLongData: NullableLongValueClass?,
                 val genericData: GenericValueClass<String>
             )
             """.trimIndent()
diff --git a/room/room-compiler/src/test/test-data/kotlinCodeGen/pojoRowAdapter_valueClassConverter.kt b/room/room-compiler/src/test/test-data/kotlinCodeGen/pojoRowAdapter_valueClassConverter.kt
new file mode 100644
index 0000000..501c3ed
--- /dev/null
+++ b/room/room-compiler/src/test/test-data/kotlinCodeGen/pojoRowAdapter_valueClassConverter.kt
@@ -0,0 +1,141 @@
+import android.database.Cursor
+import androidx.room.EntityInsertionAdapter
+import androidx.room.RoomDatabase
+import androidx.room.RoomSQLiteQuery
+import androidx.room.RoomSQLiteQuery.Companion.acquire
+import androidx.room.util.convertByteToUUID
+import androidx.room.util.convertUUIDToByte
+import androidx.room.util.getColumnIndexOrThrow
+import androidx.room.util.query
+import androidx.sqlite.db.SupportSQLiteStatement
+import java.lang.Class
+import java.util.UUID
+import javax.`annotation`.processing.Generated
+import kotlin.Int
+import kotlin.Long
+import kotlin.String
+import kotlin.Suppress
+import kotlin.Unit
+import kotlin.collections.List
+import kotlin.jvm.JvmStatic
+
+@Generated(value = ["androidx.room.RoomProcessor"])
+@Suppress(names = ["UNCHECKED_CAST", "DEPRECATION", "REDUNDANT_PROJECTION"])
+public class MyDao_Impl(
+    __db: RoomDatabase,
+) : MyDao {
+    private val __db: RoomDatabase
+
+    private val __insertionAdapterOfMyEntity: EntityInsertionAdapter<MyEntity>
+    init {
+        this.__db = __db
+        this.__insertionAdapterOfMyEntity = object : EntityInsertionAdapter<MyEntity>(__db) {
+            public override fun createQuery(): String =
+                "INSERT OR ABORT INTO `MyEntity` (`pk`,`uuidData`,`nullableUuidData`,`nullableLongData`,`doubleNullableLongData`,`genericData`) VALUES (?,?,?,?,?,?)"
+
+            public override fun bind(statement: SupportSQLiteStatement, entity: MyEntity): Unit {
+                val _data: Long = checkNotNull(entity.pk.data) {
+                    "Cannot bind nullable value of inline class to a NOT NULL column." }
+                statement.bindLong(1, _data)
+                val _data_1: UUID = checkNotNull(entity.uuidData.data) {
+                    "Cannot bind nullable value of inline class to a NOT NULL column." }
+                statement.bindBlob(2, convertUUIDToByte(_data_1))
+                val _tmpNullableUuidData: UUIDValueClass? = entity.nullableUuidData
+                val _data_2: UUID? = _tmpNullableUuidData?.data
+                if (_data_2 == null) {
+                    statement.bindNull(3)
+                } else {
+                    statement.bindBlob(3, convertUUIDToByte(_data_2))
+                }
+                val _data_3: Long = checkNotNull(entity.nullableLongData.data) {
+                    "Cannot bind nullable value of inline class to a NOT NULL column." }
+                statement.bindLong(4, _data_3)
+                val _tmpDoubleNullableLongData: NullableLongValueClass? = entity.doubleNullableLongData
+                val _data_4: Long? = _tmpDoubleNullableLongData?.data
+                if (_data_4 == null) {
+                    statement.bindNull(5)
+                } else {
+                    statement.bindLong(5, _data_4)
+                }
+                val _password: String = checkNotNull(entity.genericData.password) {
+                    "Cannot bind nullable value of inline class to a NOT NULL column." }
+                statement.bindString(6, _password)
+            }
+        }
+    }
+
+    public override fun addEntity(item: MyEntity): Unit {
+        __db.assertNotSuspendingTransaction()
+        __db.beginTransaction()
+        try {
+            __insertionAdapterOfMyEntity.insert(item)
+            __db.setTransactionSuccessful()
+        } finally {
+            __db.endTransaction()
+        }
+    }
+
+    public override fun getEntity(): MyEntity {
+        val _sql: String = "SELECT * FROM MyEntity"
+        val _statement: RoomSQLiteQuery = acquire(_sql, 0)
+        __db.assertNotSuspendingTransaction()
+        val _cursor: Cursor = query(__db, _statement, false, null)
+        try {
+            val _cursorIndexOfPk: Int = getColumnIndexOrThrow(_cursor, "pk")
+            val _cursorIndexOfUuidData: Int = getColumnIndexOrThrow(_cursor, "uuidData")
+            val _cursorIndexOfNullableUuidData: Int = getColumnIndexOrThrow(_cursor, "nullableUuidData")
+            val _cursorIndexOfNullableLongData: Int = getColumnIndexOrThrow(_cursor, "nullableLongData")
+            val _cursorIndexOfDoubleNullableLongData: Int = getColumnIndexOrThrow(_cursor,
+                "doubleNullableLongData")
+            val _cursorIndexOfGenericData: Int = getColumnIndexOrThrow(_cursor, "genericData")
+            val _result: MyEntity
+            if (_cursor.moveToFirst()) {
+                val _tmpPk: LongValueClass
+                val _data: Long
+                _data = _cursor.getLong(_cursorIndexOfPk)
+                _tmpPk = LongValueClass(_data)
+                val _tmpUuidData: UUIDValueClass
+                val _data_1: UUID
+                _data_1 = convertByteToUUID(_cursor.getBlob(_cursorIndexOfUuidData))
+                _tmpUuidData = UUIDValueClass(_data_1)
+                val _tmpNullableUuidData: UUIDValueClass?
+                if (_cursor.isNull(_cursorIndexOfNullableUuidData)) {
+                    _tmpNullableUuidData = null
+                } else {
+                    val _data_2: UUID
+                    _data_2 = convertByteToUUID(_cursor.getBlob(_cursorIndexOfNullableUuidData))
+                    _tmpNullableUuidData = UUIDValueClass(_data_2)
+                }
+                val _tmpNullableLongData: NullableLongValueClass
+                val _data_3: Long
+                _data_3 = _cursor.getLong(_cursorIndexOfNullableLongData)
+                _tmpNullableLongData = NullableLongValueClass(_data_3)
+                val _tmpDoubleNullableLongData: NullableLongValueClass?
+                if (_cursor.isNull(_cursorIndexOfDoubleNullableLongData)) {
+                    _tmpDoubleNullableLongData = null
+                } else {
+                    val _data_4: Long
+                    _data_4 = _cursor.getLong(_cursorIndexOfDoubleNullableLongData)
+                    _tmpDoubleNullableLongData = NullableLongValueClass(_data_4)
+                }
+                val _tmpGenericData: GenericValueClass<String>
+                val _password: String
+                _password = _cursor.getString(_cursorIndexOfGenericData)
+                _tmpGenericData = GenericValueClass<String>(_password)
+                _result =
+                    MyEntity(_tmpPk,_tmpUuidData,_tmpNullableUuidData,_tmpNullableLongData,_tmpDoubleNullableLongData,_tmpGenericData)
+            } else {
+                error("Cursor was empty, but expected a single item.")
+            }
+            return _result
+        } finally {
+            _cursor.close()
+            _statement.release()
+        }
+    }
+
+    public companion object {
+        @JvmStatic
+        public fun getRequiredConverters(): List<Class<*>> = emptyList()
+    }
+}
\ No newline at end of file
diff --git a/room/room-compiler/src/test/test-data/kotlinCodeGen/valueClassConverter.kt b/room/room-compiler/src/test/test-data/kotlinCodeGen/valueClassConverter.kt
deleted file mode 100644
index 0d3b34d..0000000
--- a/room/room-compiler/src/test/test-data/kotlinCodeGen/valueClassConverter.kt
+++ /dev/null
@@ -1,96 +0,0 @@
-import android.database.Cursor
-import androidx.room.EntityInsertionAdapter
-import androidx.room.RoomDatabase
-import androidx.room.RoomSQLiteQuery
-import androidx.room.RoomSQLiteQuery.Companion.acquire
-import androidx.room.util.convertByteToUUID
-import androidx.room.util.convertUUIDToByte
-import androidx.room.util.getColumnIndexOrThrow
-import androidx.room.util.query
-import androidx.sqlite.db.SupportSQLiteStatement
-import java.lang.Class
-import java.util.UUID
-import javax.`annotation`.processing.Generated
-import kotlin.Int
-import kotlin.Long
-import kotlin.String
-import kotlin.Suppress
-import kotlin.Unit
-import kotlin.collections.List
-import kotlin.jvm.JvmStatic
-
-@Generated(value = ["androidx.room.RoomProcessor"])
-@Suppress(names = ["UNCHECKED_CAST", "DEPRECATION", "REDUNDANT_PROJECTION"])
-public class MyDao_Impl(
-    __db: RoomDatabase,
-) : MyDao {
-    private val __db: RoomDatabase
-
-    private val __insertionAdapterOfMyEntity: EntityInsertionAdapter<MyEntity>
-    init {
-        this.__db = __db
-        this.__insertionAdapterOfMyEntity = object : EntityInsertionAdapter<MyEntity>(__db) {
-            public override fun createQuery(): String =
-                "INSERT OR ABORT INTO `MyEntity` (`pk`,`uuidData`,`genericData`) VALUES (?,?,?)"
-
-            public override fun bind(statement: SupportSQLiteStatement, entity: MyEntity): Unit {
-                val _data: Long = entity.pk.data
-                statement.bindLong(1, _data)
-                val _data_1: UUID = entity.uuidData.data
-                statement.bindBlob(2, convertUUIDToByte(_data_1))
-                val _password: String = entity.genericData.password
-                statement.bindString(3, _password)
-            }
-        }
-    }
-
-    public override fun addEntity(item: MyEntity): Unit {
-        __db.assertNotSuspendingTransaction()
-        __db.beginTransaction()
-        try {
-            __insertionAdapterOfMyEntity.insert(item)
-            __db.setTransactionSuccessful()
-        } finally {
-            __db.endTransaction()
-        }
-    }
-
-    public override fun getEntity(): MyEntity {
-        val _sql: String = "SELECT * FROM MyEntity"
-        val _statement: RoomSQLiteQuery = acquire(_sql, 0)
-        __db.assertNotSuspendingTransaction()
-        val _cursor: Cursor = query(__db, _statement, false, null)
-        try {
-            val _cursorIndexOfPk: Int = getColumnIndexOrThrow(_cursor, "pk")
-            val _cursorIndexOfUuidData: Int = getColumnIndexOrThrow(_cursor, "uuidData")
-            val _cursorIndexOfGenericData: Int = getColumnIndexOrThrow(_cursor, "genericData")
-            val _result: MyEntity
-            if (_cursor.moveToFirst()) {
-                val _tmpPk: LongValueClass
-                val _data: Long
-                _data = _cursor.getLong(_cursorIndexOfPk)
-                _tmpPk = LongValueClass(_data)
-                val _tmpUuidData: UUIDValueClass
-                val _data_1: UUID
-                _data_1 = convertByteToUUID(_cursor.getBlob(_cursorIndexOfUuidData))
-                _tmpUuidData = UUIDValueClass(_data_1)
-                val _tmpGenericData: GenericValueClass<String>
-                val _password: String
-                _password = _cursor.getString(_cursorIndexOfGenericData)
-                _tmpGenericData = GenericValueClass<String>(_password)
-                _result = MyEntity(_tmpPk,_tmpUuidData,_tmpGenericData)
-            } else {
-                error("Cursor was empty, but expected a single item.")
-            }
-            return _result
-        } finally {
-            _cursor.close()
-            _statement.release()
-        }
-    }
-
-    public companion object {
-        @JvmStatic
-        public fun getRequiredConverters(): List<Class<*>> = emptyList()
-    }
-}
\ No newline at end of file
diff --git a/samples/MediaRoutingDemo/build.gradle b/samples/MediaRoutingDemo/build.gradle
index abce76a..456800f 100644
--- a/samples/MediaRoutingDemo/build.gradle
+++ b/samples/MediaRoutingDemo/build.gradle
@@ -8,6 +8,7 @@
     implementation(project(":mediarouter:mediarouter"))
     implementation(project(":recyclerview:recyclerview"))
     implementation(project(":concurrent:concurrent-futures"))
+    implementation(project(":swiperefreshlayout:swiperefreshlayout"))
 
     implementation(libs.material)
     implementation(libs.multidex)
diff --git a/samples/MediaRoutingDemo/src/main/AndroidManifest.xml b/samples/MediaRoutingDemo/src/main/AndroidManifest.xml
index b56a49f..25e7453 100644
--- a/samples/MediaRoutingDemo/src/main/AndroidManifest.xml
+++ b/samples/MediaRoutingDemo/src/main/AndroidManifest.xml
@@ -22,6 +22,10 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android">
     <uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
 
+    <uses-permission android:name="android.permission.BLUETOOTH"
+        android:maxSdkVersion="30" />
+    <uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
+
     <application
         android:hardwareAccelerated="true"
         android:icon="@drawable/app_sample_code"
@@ -64,6 +68,9 @@
             </intent-filter>
         </activity>
 
+        <activity android:name=".activities.systemrouting.SystemRoutingActivity"
+            android:exported="false" />
+
         <receiver android:name="androidx.mediarouter.media.MediaTransferReceiver"
             android:exported="true" />
 
diff --git a/samples/MediaRoutingDemo/src/main/java/com/example/androidx/mediarouting/activities/SettingsActivity.java b/samples/MediaRoutingDemo/src/main/java/com/example/androidx/mediarouting/activities/SettingsActivity.java
index aae3bd1..42b5973 100644
--- a/samples/MediaRoutingDemo/src/main/java/com/example/androidx/mediarouting/activities/SettingsActivity.java
+++ b/samples/MediaRoutingDemo/src/main/java/com/example/androidx/mediarouting/activities/SettingsActivity.java
@@ -32,6 +32,7 @@
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
 import androidx.appcompat.app.AppCompatActivity;
+import androidx.appcompat.widget.AppCompatButton;
 import androidx.mediarouter.media.MediaRouter;
 import androidx.mediarouter.media.MediaRouterParams;
 import androidx.recyclerview.widget.LinearLayoutManager;
@@ -39,6 +40,7 @@
 
 import com.example.androidx.mediarouting.R;
 import com.example.androidx.mediarouting.RoutesManager;
+import com.example.androidx.mediarouting.activities.systemrouting.SystemRoutingActivity;
 import com.example.androidx.mediarouting.services.SampleDynamicGroupMediaRouteProviderService;
 import com.example.androidx.mediarouting.ui.RoutesAdapter;
 import com.google.android.material.floatingactionbutton.FloatingActionButton;
@@ -124,6 +126,7 @@
         setUpTransferToLocalSwitch();
         setUpDialogTypeDropDownList();
         setUpNewRouteButton();
+        setupSystemRoutesButton();
     }
 
     private void setUpDynamicGroupsEnabledSwitch() {
@@ -188,6 +191,11 @@
                 });
     }
 
+    private void setupSystemRoutesButton() {
+        AppCompatButton showSystemRoutesButton = findViewById(R.id.open_system_routes);
+        showSystemRoutesButton.setOnClickListener(v -> SystemRoutingActivity.launch(this));
+    }
+
     private class ProviderServiceConnection implements ServiceConnection {
 
         @Override
diff --git a/samples/MediaRoutingDemo/src/main/java/com/example/androidx/mediarouting/activities/systemrouting/SystemRouteItem.java b/samples/MediaRoutingDemo/src/main/java/com/example/androidx/mediarouting/activities/systemrouting/SystemRouteItem.java
new file mode 100644
index 0000000..2bffdee
--- /dev/null
+++ b/samples/MediaRoutingDemo/src/main/java/com/example/androidx/mediarouting/activities/systemrouting/SystemRouteItem.java
@@ -0,0 +1,200 @@
+/*
+ * Copyright 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.example.androidx.mediarouting.activities.systemrouting;
+
+import android.text.TextUtils;
+
+import androidx.annotation.IntDef;
+import androidx.annotation.NonNull;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.util.Objects;
+
+import javax.annotation.Nullable;
+
+/**
+ * An abstract model that holds information about routes from different sources.
+ *
+ * Can represent media routers' routes, bluetooth routes, or audio routes.
+ */
+public final class SystemRouteItem {
+
+    public static final int ROUTE_SOURCE_MEDIA_ROUTER = 0;
+    public static final int ROUTE_SOURCE_MEDIA_ROUTER2 = 1;
+    public static final int ROUTE_SOURCE_ANDROIDX_ROUTER = 2;
+    public static final int ROUTE_SOURCE_BLUETOOTH_MANAGER = 3;
+    public static final int ROUTE_SOURCE_AUDIO_MANAGER = 4;
+
+    @IntDef({
+            ROUTE_SOURCE_MEDIA_ROUTER,
+            ROUTE_SOURCE_MEDIA_ROUTER2,
+            ROUTE_SOURCE_ANDROIDX_ROUTER,
+            ROUTE_SOURCE_BLUETOOTH_MANAGER,
+            ROUTE_SOURCE_AUDIO_MANAGER
+    })
+    @Retention(RetentionPolicy.SOURCE)
+    public @interface Type {
+    }
+
+    @NonNull
+    private final String mId;
+
+    @Type
+    private final int mType;
+
+    @NonNull
+    private final String mName;
+
+    @Nullable
+    private final String mAddress;
+
+    @Nullable
+    private final String mDescription;
+
+    private SystemRouteItem(@NonNull Builder builder) {
+        Objects.requireNonNull(builder.mId);
+        Objects.requireNonNull(builder.mName);
+
+        mId = builder.mId;
+        mName = builder.mName;
+        mType = builder.mType;
+
+        mAddress = builder.mAddress;
+        mDescription = builder.mDescription;
+    }
+
+    /**
+     * Returns a unique identifier of a route.
+     */
+    @NonNull
+    public String getId() {
+        return mId;
+    }
+
+    /**
+     * Returns a route source.
+     *
+     * see {@link SystemRouteItem.Type}
+     */
+    public int getType() {
+        return mType;
+    }
+
+    /**
+     * Returns a human-readable name of the route.
+     */
+    @NonNull
+    public String getName() {
+        return mName;
+    }
+
+    /**
+     * Returns address if the route is a Bluetooth route and {@code null} otherwise.
+     */
+    @Nullable
+    public String getAddress() {
+        return mAddress;
+    }
+
+    /**
+     * Returns a route description or {@code null} if empty.
+     */
+    @Nullable
+    public String getDescription() {
+        return mDescription;
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
+        SystemRouteItem that = (SystemRouteItem) o;
+        return mType == that.mType && mId.equals(that.mId) && mName.equals(that.mName)
+                && Objects.equals(mAddress, that.mAddress) && Objects.equals(
+                mDescription, that.mDescription);
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(mId, mType, mName, mAddress, mDescription);
+    }
+
+    /**
+     * Helps to construct {@link SystemRouteItem}.
+     */
+    public static final class Builder {
+
+        @NonNull
+        private final String mId;
+        @Type
+        private final int mType;
+
+        @NonNull
+        private String mName;
+
+        @Nullable
+        private String mAddress;
+
+        @Nullable
+        private String mDescription;
+
+        public Builder(@NonNull String id, @Type int type) {
+            mId = id;
+            mType = type;
+        }
+
+        /**
+         * Sets a route name.
+         */
+        @NonNull
+        public Builder setName(@NonNull String name) {
+            mName = name;
+            return this;
+        }
+
+        /**
+         * Sets an address for the route.
+         */
+        @NonNull
+        public Builder setAddress(@NonNull String address) {
+            if (!TextUtils.isEmpty(address)) {
+                mAddress = address;
+            }
+            return this;
+        }
+
+        /**
+         * Sets a description for the route.
+         */
+        @NonNull
+        public Builder setDescription(@NonNull String description) {
+            if (!TextUtils.isEmpty(description)) {
+                mDescription = description;
+            }
+            return this;
+        }
+
+        /**
+         * Builds {@link SystemRouteItem}.
+         */
+        @NonNull
+        public SystemRouteItem build() {
+            return new SystemRouteItem(this);
+        }
+    }
+}
diff --git a/samples/MediaRoutingDemo/src/main/java/com/example/androidx/mediarouting/activities/systemrouting/SystemRouteUtils.java b/samples/MediaRoutingDemo/src/main/java/com/example/androidx/mediarouting/activities/systemrouting/SystemRouteUtils.java
new file mode 100644
index 0000000..c6206f7
--- /dev/null
+++ b/samples/MediaRoutingDemo/src/main/java/com/example/androidx/mediarouting/activities/systemrouting/SystemRouteUtils.java
@@ -0,0 +1,62 @@
+/*
+ * Copyright 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.example.androidx.mediarouting.activities.systemrouting;
+
+import android.media.MediaRouter;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.RequiresApi;
+
+/**
+ * Utils for {@link SystemRouteItem}.
+ */
+public final class SystemRouteUtils {
+
+    private SystemRouteUtils() {
+        // Private on purpose.
+    }
+
+    /**
+     * Checks whether {@link MediaRouter.RouteInfo} is a system route or not.
+     */
+    @RequiresApi(16)
+    public static boolean isSystemMediaRouterRoute(@NonNull MediaRouter.RouteInfo routeInfo) {
+        return (routeInfo.getClass() == MediaRouter.RouteInfo.class);
+    }
+
+    /**
+     * Converts {@link SystemRouteItem.Type} to a human-readable string.
+     */
+    @NonNull
+    public static String getDescriptionForSource(@SystemRouteItem.Type int type) {
+        switch (type) {
+            case SystemRouteItem.ROUTE_SOURCE_MEDIA_ROUTER:
+                return "Media Router";
+            case SystemRouteItem.ROUTE_SOURCE_MEDIA_ROUTER2:
+                return "Media Router 2";
+            case SystemRouteItem.ROUTE_SOURCE_BLUETOOTH_MANAGER:
+                return "Bluetooth Manager";
+            case SystemRouteItem.ROUTE_SOURCE_ANDROIDX_ROUTER:
+                return "Androidx Router";
+            case SystemRouteItem.ROUTE_SOURCE_AUDIO_MANAGER:
+                return "Audio Manager";
+            default:
+                throw new IllegalArgumentException("Unknown system route type: " + type);
+        }
+    }
+
+}
diff --git a/samples/MediaRoutingDemo/src/main/java/com/example/androidx/mediarouting/activities/systemrouting/SystemRoutesAdapter.java b/samples/MediaRoutingDemo/src/main/java/com/example/androidx/mediarouting/activities/systemrouting/SystemRoutesAdapter.java
new file mode 100644
index 0000000..543dcd8
--- /dev/null
+++ b/samples/MediaRoutingDemo/src/main/java/com/example/androidx/mediarouting/activities/systemrouting/SystemRoutesAdapter.java
@@ -0,0 +1,197 @@
+/*
+ * Copyright 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.example.androidx.mediarouting.activities.systemrouting;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.appcompat.widget.AppCompatTextView;
+import androidx.recyclerview.widget.AsyncListDiffer;
+import androidx.recyclerview.widget.DiffUtil;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.example.androidx.mediarouting.R;
+
+import java.util.List;
+
+class SystemRoutesAdapter extends RecyclerView.Adapter<SystemRoutesAdapter.ViewHolder> {
+
+    private final AsyncListDiffer<SystemRouteItem> mListDiffer =
+            new AsyncListDiffer<>(this, new ItemCallback());
+
+    public void setItems(@NonNull List<SystemRouteItem> newItems) {
+        mListDiffer.submitList(newItems);
+    }
+
+    @NonNull
+    public List<SystemRouteItem> getItems() {
+        return mListDiffer.getCurrentList();
+    }
+
+    @NonNull
+    @Override
+    public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+        Context context = parent.getContext();
+        View view = LayoutInflater.from(context).inflate(R.layout.item_system_route, parent, false);
+        return new ViewHolder(view);
+    }
+
+    @Override
+    public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
+        SystemRouteItem route = getItems().get(position);
+
+        holder.mRouteSourceTextView.setText(
+                SystemRouteUtils.getDescriptionForSource(route.getType()));
+        holder.mRouteNameTextView.setText(route.getName());
+        holder.mRouteIdTextView.setText(route.getId());
+
+        showViewIfNotNull(holder.mRouteAddressTextView, route.getAddress());
+        holder.mRouteAddressTextView.setText(route.getAddress());
+
+        showViewIfNotNull(holder.mRouteDescriptionTextView, route.getDescription());
+        holder.mRouteDescriptionTextView.setText(route.getDescription());
+    }
+
+    @Override
+    public void onBindViewHolder(@NonNull ViewHolder holder, int position,
+            @NonNull List<Object> payloads) {
+        if (payloads.isEmpty()) {
+            onBindViewHolder(holder, position);
+            return;
+        }
+
+        for (Object rawPayload : payloads) {
+            if (!(rawPayload instanceof Payload)) {
+                continue;
+            }
+
+            Payload payload = (Payload) rawPayload;
+
+            if (payload.mName != null) {
+                holder.mRouteNameTextView.setText(payload.mName);
+            }
+
+            showViewIfNotNull(holder.mRouteAddressTextView, payload.mAddress);
+            if (payload.mAddress != null) {
+                holder.mRouteAddressTextView.setText(payload.mAddress);
+            }
+
+            showViewIfNotNull(holder.mRouteDescriptionTextView, payload.mDescription);
+            if (payload.mDescription != null) {
+                holder.mRouteDescriptionTextView.setText(payload.mDescription);
+            }
+        }
+    }
+
+    @Override
+    public int getItemCount() {
+        return getItems().size();
+    }
+
+    static class ViewHolder extends RecyclerView.ViewHolder {
+
+        final AppCompatTextView mRouteSourceTextView;
+        final AppCompatTextView mRouteNameTextView;
+        final AppCompatTextView mRouteIdTextView;
+        final AppCompatTextView mRouteAddressTextView;
+        final AppCompatTextView mRouteDescriptionTextView;
+
+        ViewHolder(@NonNull View itemView) {
+            super(itemView);
+
+            mRouteSourceTextView = itemView.findViewById(R.id.route_source);
+            mRouteNameTextView = itemView.findViewById(R.id.route_name);
+            mRouteIdTextView = itemView.findViewById(R.id.route_id);
+            mRouteAddressTextView = itemView.findViewById(R.id.route_address);
+            mRouteDescriptionTextView = itemView.findViewById(R.id.route_description);
+        }
+    }
+
+    private static class ItemCallback extends DiffUtil.ItemCallback<SystemRouteItem> {
+
+        @Override
+        public boolean areItemsTheSame(@NonNull SystemRouteItem oldItem,
+                @NonNull SystemRouteItem newItem) {
+            return oldItem.getId().equals(newItem.getId())
+                    && oldItem.getType() == newItem.getType();
+        }
+
+        @Override
+        public boolean areContentsTheSame(@NonNull SystemRouteItem oldItem,
+                @NonNull SystemRouteItem newItem) {
+            return oldItem.equals(newItem);
+        }
+
+        @Nullable
+        @Override
+        public Payload getChangePayload(@NonNull SystemRouteItem oldItem,
+                @NonNull SystemRouteItem newItem) {
+            return new Payload(takeIfChanged(oldItem.getName(), newItem.getName()),
+                    takeIfChanged(oldItem.getAddress(), newItem.getAddress()),
+                    takeIfChanged(oldItem.getDescription(), newItem.getDescription()));
+        }
+    }
+
+    private static class Payload {
+
+        @Nullable
+        final String mName;
+
+        @Nullable
+        final String mAddress;
+
+        @Nullable
+        final String mDescription;
+
+
+        Payload(@Nullable String name, @Nullable String address,
+                @Nullable String description) {
+            mName = name;
+            mAddress = address;
+            mDescription = description;
+        }
+    }
+
+    private static <T, V extends View> void showViewIfNotNull(@NonNull V view, @Nullable T obj) {
+        if (obj == null) {
+            view.setVisibility(View.GONE);
+        } else {
+            view.setVisibility(View.VISIBLE);
+        }
+    }
+
+    @Nullable
+    private static <T> T takeIfChanged(@Nullable T oldObj, @Nullable T newObj) {
+        if (oldObj == null && newObj == null) {
+            return null;
+        }
+
+        if (oldObj == null || newObj == null) {
+            return newObj;
+        }
+
+        if (oldObj.equals(newObj)) {
+            return null;
+        }
+
+        return newObj;
+    }
+}
diff --git a/samples/MediaRoutingDemo/src/main/java/com/example/androidx/mediarouting/activities/systemrouting/SystemRoutingActivity.java b/samples/MediaRoutingDemo/src/main/java/com/example/androidx/mediarouting/activities/systemrouting/SystemRoutingActivity.java
new file mode 100644
index 0000000..e3020a5
--- /dev/null
+++ b/samples/MediaRoutingDemo/src/main/java/com/example/androidx/mediarouting/activities/systemrouting/SystemRoutingActivity.java
@@ -0,0 +1,124 @@
+/*
+ * Copyright 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.example.androidx.mediarouting.activities.systemrouting;
+
+import android.Manifest;
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.os.Bundle;
+import android.widget.Toast;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.core.app.ActivityCompat;
+import androidx.core.content.ContextCompat;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
+
+import com.example.androidx.mediarouting.R;
+import com.example.androidx.mediarouting.activities.systemrouting.source.ComposedSystemRoutesSource;
+import com.example.androidx.mediarouting.activities.systemrouting.source.SystemRoutesSource;
+
+import java.util.List;
+
+/**
+ * Shows available system routes gathered from different sources.
+ */
+public final class SystemRoutingActivity extends AppCompatActivity {
+
+    private static final int REQUEST_CODE_BLUETOOTH_CONNECT = 4199;
+
+    private SwipeRefreshLayout mSwipeRefreshLayout;
+    private RecyclerView mRecyclerView;
+    private SystemRoutesAdapter mSystemRoutesAdapter = new SystemRoutesAdapter();
+
+    private SystemRoutesSource mSystemRoutesSource;
+
+    /**
+     * Creates and launches an intent to start current activity.
+     */
+    public static void launch(@NonNull Context context) {
+        Intent intent = new Intent(context, SystemRoutingActivity.class);
+        context.startActivity(intent);
+    }
+
+    @Override
+    protected void onCreate(@Nullable Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_system_routing);
+
+        mSystemRoutesSource = ComposedSystemRoutesSource.create(this);
+
+        mRecyclerView = findViewById(R.id.recycler_view);
+        mSwipeRefreshLayout = findViewById(R.id.pull_to_refresh_layout);
+
+        mRecyclerView.setAdapter(mSystemRoutesAdapter);
+        mRecyclerView.setLayoutManager(new LinearLayoutManager(this));
+
+        mSwipeRefreshLayout.setOnRefreshListener(() -> {
+            refreshSystemRoutesList();
+            mSwipeRefreshLayout.setRefreshing(false);
+        });
+
+        refreshSystemRoutesList();
+        requestBluetoothPermission();
+    }
+
+    @Override
+    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions,
+            @NonNull int[] grantResults) {
+        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
+
+        if (requestCode == REQUEST_CODE_BLUETOOTH_CONNECT
+                && grantResults.length > 0) {
+            if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
+                onBluetoothPermissionGranted();
+            } else {
+                onBluetoothPermissionDenied();
+            }
+        }
+    }
+
+    private void refreshSystemRoutesList() {
+        List<SystemRouteItem> systemRoutes = mSystemRoutesSource.fetchRoutes();
+        mSystemRoutesAdapter.setItems(systemRoutes);
+    }
+
+    private void requestBluetoothPermission() {
+        if (ContextCompat.checkSelfPermission(
+                this, Manifest.permission.BLUETOOTH_CONNECT) == PackageManager.PERMISSION_GRANTED) {
+            return;
+        }
+
+        ActivityCompat.requestPermissions(this,
+                new String[]{Manifest.permission.BLUETOOTH_CONNECT},
+                REQUEST_CODE_BLUETOOTH_CONNECT);
+    }
+
+    private void onBluetoothPermissionGranted() {
+        mSystemRoutesSource = ComposedSystemRoutesSource.create(this);
+        refreshSystemRoutesList();
+    }
+
+    private void onBluetoothPermissionDenied() {
+        Toast.makeText(this, getString(R.string.system_routing_activity_bluetooth_denied),
+                Toast.LENGTH_LONG).show();
+    }
+}
diff --git a/samples/MediaRoutingDemo/src/main/java/com/example/androidx/mediarouting/activities/systemrouting/source/AndroidXMediaRouterSystemRoutesSource.java b/samples/MediaRoutingDemo/src/main/java/com/example/androidx/mediarouting/activities/systemrouting/source/AndroidXMediaRouterSystemRoutesSource.java
new file mode 100644
index 0000000..9532b1a
--- /dev/null
+++ b/samples/MediaRoutingDemo/src/main/java/com/example/androidx/mediarouting/activities/systemrouting/source/AndroidXMediaRouterSystemRoutesSource.java
@@ -0,0 +1,68 @@
+/*
+ * Copyright 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.example.androidx.mediarouting.activities.systemrouting.source;
+
+import android.content.Context;
+
+import androidx.annotation.NonNull;
+import androidx.mediarouter.media.MediaRouter;
+
+import com.example.androidx.mediarouting.activities.systemrouting.SystemRouteItem;
+
+import java.util.ArrayList;
+import java.util.List;
+
+class AndroidXMediaRouterSystemRoutesSource implements SystemRoutesSource {
+
+    @NonNull
+    private final MediaRouter mMediaRouter;
+
+    @NonNull
+    static AndroidXMediaRouterSystemRoutesSource create(@NonNull Context context) {
+        MediaRouter mediaRouter = MediaRouter.getInstance(context);
+        return new AndroidXMediaRouterSystemRoutesSource(mediaRouter);
+    }
+
+    AndroidXMediaRouterSystemRoutesSource(@NonNull MediaRouter mediaRouter) {
+        mMediaRouter = mediaRouter;
+    }
+
+    @NonNull
+    @Override
+    public List<SystemRouteItem> fetchRoutes() {
+        List<SystemRouteItem> out = new ArrayList<>();
+
+        for (MediaRouter.RouteInfo routeInfo : mMediaRouter.getRoutes()) {
+            if (!routeInfo.isDefaultOrBluetooth()) {
+                continue;
+            }
+
+            SystemRouteItem.Builder builder = new SystemRouteItem.Builder(routeInfo.getId(),
+                    SystemRouteItem.ROUTE_SOURCE_ANDROIDX_ROUTER)
+                    .setName(routeInfo.getName());
+
+            String description = routeInfo.getDescription();
+            if (description != null) {
+                builder.setDescription(description);
+            }
+
+            out.add(builder.build());
+        }
+
+        return out;
+    }
+}
diff --git a/samples/MediaRoutingDemo/src/main/java/com/example/androidx/mediarouting/activities/systemrouting/source/AudioManagerSystemRoutesSource.java b/samples/MediaRoutingDemo/src/main/java/com/example/androidx/mediarouting/activities/systemrouting/source/AudioManagerSystemRoutesSource.java
new file mode 100644
index 0000000..f3c06d6
--- /dev/null
+++ b/samples/MediaRoutingDemo/src/main/java/com/example/androidx/mediarouting/activities/systemrouting/source/AudioManagerSystemRoutesSource.java
@@ -0,0 +1,82 @@
+/*
+ * Copyright 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.example.androidx.mediarouting.activities.systemrouting.source;
+
+import android.content.Context;
+import android.media.AudioDeviceInfo;
+import android.media.AudioManager;
+import android.os.Build;
+
+import androidx.annotation.DoNotInline;
+import androidx.annotation.NonNull;
+import androidx.annotation.RequiresApi;
+
+import com.example.androidx.mediarouting.activities.systemrouting.SystemRouteItem;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@RequiresApi(Build.VERSION_CODES.M)
+class AudioManagerSystemRoutesSource implements SystemRoutesSource {
+
+    @NonNull
+    private final AudioManager mAudioManager;
+
+    static AudioManagerSystemRoutesSource create(@NonNull Context context) {
+        AudioManager audioManager = context.getSystemService(AudioManager.class);
+        return new AudioManagerSystemRoutesSource(audioManager);
+    }
+
+    AudioManagerSystemRoutesSource(@NonNull AudioManager audioManager) {
+        mAudioManager = audioManager;
+    }
+
+    @NonNull
+    @Override
+    public List<SystemRouteItem> fetchRoutes() {
+        List<SystemRouteItem> out = new ArrayList<>();
+
+        for (AudioDeviceInfo audioDeviceInfo :
+                mAudioManager.getDevices(AudioManager.GET_DEVICES_OUTPUTS)) {
+            SystemRouteItem.Builder builder = new SystemRouteItem.Builder(
+                    String.valueOf(audioDeviceInfo.getId()),
+                    SystemRouteItem.ROUTE_SOURCE_AUDIO_MANAGER)
+                    .setName(audioDeviceInfo.getProductName().toString());
+
+            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
+                builder.setAddress(Api28Impl.getAddress(audioDeviceInfo));
+            }
+
+            out.add(builder.build());
+        }
+
+        return out;
+    }
+
+    @RequiresApi(Build.VERSION_CODES.P)
+    static class Api28Impl {
+        private Api28Impl() {
+            // This class is not instantiable.
+        }
+
+        @DoNotInline
+        static String getAddress(AudioDeviceInfo audioDeviceInfo) {
+            return audioDeviceInfo.getAddress();
+        }
+
+    }
+}
diff --git a/samples/MediaRoutingDemo/src/main/java/com/example/androidx/mediarouting/activities/systemrouting/source/BluetoothManagerSystemRoutesSource.java b/samples/MediaRoutingDemo/src/main/java/com/example/androidx/mediarouting/activities/systemrouting/source/BluetoothManagerSystemRoutesSource.java
new file mode 100644
index 0000000..965a6b4
--- /dev/null
+++ b/samples/MediaRoutingDemo/src/main/java/com/example/androidx/mediarouting/activities/systemrouting/source/BluetoothManagerSystemRoutesSource.java
@@ -0,0 +1,71 @@
+/*
+ * Copyright 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.example.androidx.mediarouting.activities.systemrouting.source;
+
+import android.Manifest;
+import android.bluetooth.BluetoothAdapter;
+import android.bluetooth.BluetoothDevice;
+import android.bluetooth.BluetoothManager;
+import android.content.Context;
+import android.os.Build;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.RequiresApi;
+import androidx.annotation.RequiresPermission;
+
+import com.example.androidx.mediarouting.activities.systemrouting.SystemRouteItem;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@RequiresApi(Build.VERSION_CODES.JELLY_BEAN_MR2)
+class BluetoothManagerSystemRoutesSource implements SystemRoutesSource {
+
+    @NonNull
+    private final BluetoothManager mBluetoothManager;
+    @NonNull
+    private final BluetoothAdapter mBluetoothAdapter;
+
+    @NonNull
+    static BluetoothManagerSystemRoutesSource create(@NonNull Context context) {
+        BluetoothManager bluetoothManager =
+                (BluetoothManager) context.getSystemService(Context.BLUETOOTH_SERVICE);
+        return new BluetoothManagerSystemRoutesSource(bluetoothManager);
+    }
+
+    BluetoothManagerSystemRoutesSource(@NonNull BluetoothManager bluetoothManager) {
+        mBluetoothManager = bluetoothManager;
+        mBluetoothAdapter = mBluetoothManager.getAdapter();
+    }
+
+    @NonNull
+    @RequiresPermission(Manifest.permission.BLUETOOTH_CONNECT)
+    @Override
+    public List<SystemRouteItem> fetchRoutes() {
+        List<SystemRouteItem> out = new ArrayList<>();
+
+        for (BluetoothDevice device : mBluetoothAdapter.getBondedDevices()) {
+            out.add(new SystemRouteItem.Builder(/* id= */ device.getAddress(),
+                    /* type= */ SystemRouteItem.ROUTE_SOURCE_BLUETOOTH_MANAGER)
+                    .setName(device.getName())
+                    .setAddress(device.getAddress())
+                    .build());
+        }
+
+        return out;
+    }
+}
diff --git a/samples/MediaRoutingDemo/src/main/java/com/example/androidx/mediarouting/activities/systemrouting/source/ComposedSystemRoutesSource.java b/samples/MediaRoutingDemo/src/main/java/com/example/androidx/mediarouting/activities/systemrouting/source/ComposedSystemRoutesSource.java
new file mode 100644
index 0000000..dcac2b5
--- /dev/null
+++ b/samples/MediaRoutingDemo/src/main/java/com/example/androidx/mediarouting/activities/systemrouting/source/ComposedSystemRoutesSource.java
@@ -0,0 +1,86 @@
+/*
+ * Copyright 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.example.androidx.mediarouting.activities.systemrouting.source;
+
+import android.Manifest;
+import android.content.Context;
+import android.content.pm.PackageManager;
+import android.os.Build;
+
+import androidx.annotation.NonNull;
+import androidx.core.content.ContextCompat;
+
+import com.example.androidx.mediarouting.activities.systemrouting.SystemRouteItem;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * Unified source for different System Routes providers.
+ */
+public class ComposedSystemRoutesSource implements SystemRoutesSource {
+
+    private final List<SystemRoutesSource> mSystemRoutesSources;
+
+    /**
+     * Creates an instance of {@link ComposedSystemRoutesSource}.
+     */
+    @NonNull
+    public static ComposedSystemRoutesSource create(@NonNull Context context) {
+        List<SystemRoutesSource> systemRoutesSources = new ArrayList<>();
+
+        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
+            systemRoutesSources.add(MediaRouterSystemRoutesSource.create(context));
+        }
+
+        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
+            systemRoutesSources.add(MediaRouter2SystemRoutesSource.create(context));
+        }
+
+        systemRoutesSources.add(AndroidXMediaRouterSystemRoutesSource.create(context));
+
+        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2
+                && ContextCompat.checkSelfPermission(context, Manifest.permission.BLUETOOTH_CONNECT)
+                        == PackageManager.PERMISSION_GRANTED) {
+            systemRoutesSources.add(BluetoothManagerSystemRoutesSource.create(context));
+        }
+
+        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
+            systemRoutesSources.add(AudioManagerSystemRoutesSource.create(context));
+        }
+
+        return new ComposedSystemRoutesSource(systemRoutesSources);
+    }
+
+    ComposedSystemRoutesSource(@NonNull List<SystemRoutesSource> routesSources) {
+        mSystemRoutesSources = Collections.unmodifiableList(routesSources);
+    }
+
+
+    @NonNull
+    @Override
+    public List<SystemRouteItem> fetchRoutes() {
+        List<SystemRouteItem> out = new ArrayList<>();
+
+        for (SystemRoutesSource source : mSystemRoutesSources) {
+            out.addAll(source.fetchRoutes());
+        }
+
+        return out;
+    }
+}
diff --git a/samples/MediaRoutingDemo/src/main/java/com/example/androidx/mediarouting/activities/systemrouting/source/MediaRouter2SystemRoutesSource.java b/samples/MediaRoutingDemo/src/main/java/com/example/androidx/mediarouting/activities/systemrouting/source/MediaRouter2SystemRoutesSource.java
new file mode 100644
index 0000000..8c8f056
--- /dev/null
+++ b/samples/MediaRoutingDemo/src/main/java/com/example/androidx/mediarouting/activities/systemrouting/source/MediaRouter2SystemRoutesSource.java
@@ -0,0 +1,67 @@
+/*
+ * Copyright 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.example.androidx.mediarouting.activities.systemrouting.source;
+
+import android.content.Context;
+import android.media.MediaRoute2Info;
+import android.media.MediaRouter2;
+import android.os.Build;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.RequiresApi;
+
+import com.example.androidx.mediarouting.activities.systemrouting.SystemRouteItem;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@RequiresApi(Build.VERSION_CODES.R)
+class MediaRouter2SystemRoutesSource implements SystemRoutesSource {
+
+    @NonNull
+    private MediaRouter2 mMediaRouter2;
+
+    @NonNull
+    static MediaRouter2SystemRoutesSource create(@NonNull Context context) {
+        MediaRouter2 mediaRouter2 = MediaRouter2.getInstance(context);
+        return new MediaRouter2SystemRoutesSource(mediaRouter2);
+    }
+
+    MediaRouter2SystemRoutesSource(@NonNull MediaRouter2 mediaRouter2) {
+        mMediaRouter2 = mediaRouter2;
+    }
+
+    @NonNull
+    @Override
+    public List<SystemRouteItem> fetchRoutes() {
+        List<SystemRouteItem> out = new ArrayList<>();
+
+        for (MediaRoute2Info routeInfo : mMediaRouter2.getRoutes()) {
+            if (!routeInfo.isSystemRoute()) {
+                continue;
+            }
+
+            out.add(new SystemRouteItem.Builder(routeInfo.getId(),
+                    SystemRouteItem.ROUTE_SOURCE_MEDIA_ROUTER2)
+                    .setName(String.valueOf(routeInfo.getName()))
+                    .setDescription(String.valueOf(routeInfo.getDescription()))
+                    .build());
+        }
+
+        return out;
+    }
+}
diff --git a/samples/MediaRoutingDemo/src/main/java/com/example/androidx/mediarouting/activities/systemrouting/source/MediaRouterSystemRoutesSource.java b/samples/MediaRoutingDemo/src/main/java/com/example/androidx/mediarouting/activities/systemrouting/source/MediaRouterSystemRoutesSource.java
new file mode 100644
index 0000000..b6d8c26
--- /dev/null
+++ b/samples/MediaRoutingDemo/src/main/java/com/example/androidx/mediarouting/activities/systemrouting/source/MediaRouterSystemRoutesSource.java
@@ -0,0 +1,97 @@
+/*
+ * Copyright 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.example.androidx.mediarouting.activities.systemrouting.source;
+
+import android.content.Context;
+import android.media.MediaRouter;
+import android.os.Build;
+
+import androidx.annotation.DoNotInline;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.annotation.RequiresApi;
+
+import com.example.androidx.mediarouting.activities.systemrouting.SystemRouteItem;
+import com.example.androidx.mediarouting.activities.systemrouting.SystemRouteUtils;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@RequiresApi(Build.VERSION_CODES.JELLY_BEAN)
+class MediaRouterSystemRoutesSource implements SystemRoutesSource {
+
+    @NonNull
+    private final MediaRouter mMediaRouter;
+
+    @NonNull
+    static MediaRouterSystemRoutesSource create(@NonNull Context context) {
+        MediaRouter mediaRouter =
+                (MediaRouter) context.getSystemService(Context.MEDIA_ROUTER_SERVICE);
+        return new MediaRouterSystemRoutesSource(mediaRouter);
+    }
+
+    MediaRouterSystemRoutesSource(@NonNull MediaRouter mediaRouter) {
+        mMediaRouter = mediaRouter;
+    }
+
+    @NonNull
+    @Override
+    public List<SystemRouteItem> fetchRoutes() {
+        int count = mMediaRouter.getRouteCount();
+
+        List<SystemRouteItem> out = new ArrayList<>();
+
+        for (int i = 0; i < count; i++) {
+            MediaRouter.RouteInfo info = mMediaRouter.getRouteAt(i);
+
+            if (!SystemRouteUtils.isSystemMediaRouterRoute(info)) {
+                continue;
+            }
+
+            SystemRouteItem.Builder builder =
+                    new SystemRouteItem.Builder(info.getName().toString() /* id */,
+                            SystemRouteItem.ROUTE_SOURCE_MEDIA_ROUTER)
+                            .setName(info.getName().toString());
+
+            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
+                CharSequence description = Api18Impl.getDescription(info);
+
+                if (description != null) {
+                    builder.setDescription(String.valueOf(description));
+                }
+            }
+
+            out.add(builder.build());
+        }
+
+        return out;
+    }
+
+    @RequiresApi(Build.VERSION_CODES.JELLY_BEAN_MR2)
+    static class Api18Impl {
+        private Api18Impl() {
+            // This class is not instantiable.
+        }
+
+        @DoNotInline
+        @Nullable
+        static CharSequence getDescription(MediaRouter.RouteInfo routeInfo) {
+            return routeInfo.getDescription();
+        }
+
+    }
+}
diff --git a/samples/MediaRoutingDemo/src/main/java/com/example/androidx/mediarouting/activities/systemrouting/source/SystemRoutesSource.java b/samples/MediaRoutingDemo/src/main/java/com/example/androidx/mediarouting/activities/systemrouting/source/SystemRoutesSource.java
new file mode 100644
index 0000000..f58f724
--- /dev/null
+++ b/samples/MediaRoutingDemo/src/main/java/com/example/androidx/mediarouting/activities/systemrouting/source/SystemRoutesSource.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.example.androidx.mediarouting.activities.systemrouting.source;
+
+import androidx.annotation.NonNull;
+
+import com.example.androidx.mediarouting.activities.systemrouting.SystemRouteItem;
+
+import java.util.List;
+
+/**
+ * Abstracts different route sources.
+ */
+public interface SystemRoutesSource {
+
+    /**
+     * Fetches system routes and returns a list of {@link SystemRouteItem}.
+     */
+    @NonNull
+    List<SystemRouteItem> fetchRoutes();
+
+}
diff --git a/samples/MediaRoutingDemo/src/main/java/com/example/androidx/mediarouting/providers/SampleDynamicGroupMediaRouteProvider.java b/samples/MediaRoutingDemo/src/main/java/com/example/androidx/mediarouting/providers/SampleDynamicGroupMediaRouteProvider.java
index d4b3100..daa2699 100644
--- a/samples/MediaRoutingDemo/src/main/java/com/example/androidx/mediarouting/providers/SampleDynamicGroupMediaRouteProvider.java
+++ b/samples/MediaRoutingDemo/src/main/java/com/example/androidx/mediarouting/providers/SampleDynamicGroupMediaRouteProvider.java
@@ -339,7 +339,7 @@
 
             mDynamicRouteDescriptors.put(routeId, builder.build());
 
-            if (routeDescriptor.getDeviceType() == MediaRouter.RouteInfo.DEVICE_TYPE_TV) {
+            if (routeDescriptor.getDeviceType() == RouteInfo.DEVICE_TYPE_TV) {
                 mTvSelectedCount++;
             }
             return true;
@@ -359,7 +359,7 @@
 
             MediaRouteDescriptor routeDescriptor =
                     mRouteDescriptors.get(dynamicDescriptor.getRouteDescriptor().getId());
-            if (routeDescriptor.getDeviceType() == MediaRouter.RouteInfo.DEVICE_TYPE_TV) {
+            if (routeDescriptor.getDeviceType() == RouteInfo.DEVICE_TYPE_TV) {
                 mTvSelectedCount--;
             }
             return true;
@@ -526,7 +526,7 @@
 
         private int countTvFromRoute(MediaRouteDescriptor routeDescriptor) {
             if (routeDescriptor.getGroupMemberIds().isEmpty()) {
-                return (routeDescriptor.getDeviceType() == MediaRouter.RouteInfo.DEVICE_TYPE_TV)
+                return (routeDescriptor.getDeviceType() == RouteInfo.DEVICE_TYPE_TV)
                         ? 1 : 0;
             }
             int count = 0;
diff --git a/samples/MediaRoutingDemo/src/main/res/drawable/rounded_rectangle_gray.xml b/samples/MediaRoutingDemo/src/main/res/drawable/rounded_rectangle_gray.xml
new file mode 100644
index 0000000..dd06b74
--- /dev/null
+++ b/samples/MediaRoutingDemo/src/main/res/drawable/rounded_rectangle_gray.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  Copyright 2023 The Android Open Source Project
+
+  Licensed under the Apache License, Version 2.0 (the "License");
+  you may not use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+  -->
+
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+    android:shape="rectangle">
+
+    <solid android:color="@android:color/darker_gray" />
+    <corners android:radius="16dp" />
+
+</shape>
\ No newline at end of file
diff --git a/samples/MediaRoutingDemo/src/main/res/layout/activity_settings.xml b/samples/MediaRoutingDemo/src/main/res/layout/activity_settings.xml
index 8432164..5193b7c 100644
--- a/samples/MediaRoutingDemo/src/main/res/layout/activity_settings.xml
+++ b/samples/MediaRoutingDemo/src/main/res/layout/activity_settings.xml
@@ -23,6 +23,12 @@
         android:layout_height="wrap_content"
         android:orientation="vertical">
 
+        <androidx.appcompat.widget.AppCompatButton
+            android:id="@+id/open_system_routes"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:text="@string/settings_activity_show_system_routes" />
+
         <RelativeLayout
             android:layout_width="match_parent"
             android:layout_height="50dp"
@@ -117,4 +123,4 @@
         android:padding="0dp"
         app:srcCompat="@drawable/ic_add" />
 
-</RelativeLayout>
\ No newline at end of file
+</RelativeLayout>
diff --git a/samples/MediaRoutingDemo/src/main/res/layout/activity_system_routing.xml b/samples/MediaRoutingDemo/src/main/res/layout/activity_system_routing.xml
new file mode 100644
index 0000000..ceefa96
--- /dev/null
+++ b/samples/MediaRoutingDemo/src/main/res/layout/activity_system_routing.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?><!--
+  Copyright 2023 The Android Open Source Project
+
+  Licensed under the Apache License, Version 2.0 (the "License");
+  you may not use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+  -->
+
+<androidx.swiperefreshlayout.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/pull_to_refresh_layout"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+
+    <androidx.recyclerview.widget.RecyclerView xmlns:android="http://schemas.android.com/apk/res/android"
+        android:id="@+id/recycler_view"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent" />
+
+</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
diff --git a/samples/MediaRoutingDemo/src/main/res/layout/item_system_route.xml b/samples/MediaRoutingDemo/src/main/res/layout/item_system_route.xml
new file mode 100644
index 0000000..836a846bed4
--- /dev/null
+++ b/samples/MediaRoutingDemo/src/main/res/layout/item_system_route.xml
@@ -0,0 +1,102 @@
+<?xml version="1.0" encoding="utf-8"?><!--
+  Copyright 2023 The Android Open Source Project
+
+  Licensed under the Apache License, Version 2.0 (the "License");
+  you may not use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+  -->
+
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content">
+
+    <androidx.cardview.widget.CardView
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginBottom="8dp"
+        android:layout_marginTop="8dp"
+        app:cardCornerRadius="0dp">
+
+        <RelativeLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:orientation="vertical"
+            android:padding="8dp">
+
+            <androidx.appcompat.widget.AppCompatTextView
+                android:id="@+id/route_source"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_alignParentTop="true"
+                android:layout_alignParentRight="true"
+                android:layout_alignParentEnd="true"
+                android:textSize="12sp"
+                android:paddingTop="2dp"
+                android:paddingBottom="2dp"
+                android:paddingLeft="6dp"
+                android:paddingRight="6dp"
+                android:background="@drawable/rounded_rectangle_gray"
+                android:textColor="@android:color/white"
+                tools:text="Media Router 1"/>
+
+            <androidx.appcompat.widget.AppCompatTextView
+                android:id="@+id/route_name"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_alignParentLeft="true"
+                android:layout_alignParentStart="true"
+                android:textSize="18sp"
+                android:textStyle="bold"
+                tools:text="Route #1" />
+
+            <androidx.appcompat.widget.AppCompatTextView
+                android:id="@+id/route_id"
+                android:layout_marginTop="4dp"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_below="@+id/route_name"
+                android:layout_alignParentLeft="true"
+                android:layout_alignParentStart="true"
+                android:singleLine="true"
+                android:ellipsize="marquee"
+                android:textSize="12sp"
+                android:textStyle="italic"
+                tools:text="id12345678" />
+
+            <androidx.appcompat.widget.AppCompatTextView
+                android:id="@+id/route_address"
+                android:layout_marginTop="16dp"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_below="@+id/route_id"
+                android:layout_alignParentLeft="true"
+                android:layout_alignParentStart="true"
+                android:textSize="14sp"
+                tools:text="Address: 12:13:14:15:16" />
+
+            <androidx.appcompat.widget.AppCompatTextView
+                android:id="@+id/route_description"
+                android:layout_marginTop="8dp"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_below="@+id/route_address"
+                android:layout_alignParentLeft="true"
+                android:layout_alignParentStart="true"
+                android:textSize="12sp"
+                tools:text="This is a description of an amazing system route." />
+
+        </RelativeLayout>
+
+    </androidx.cardview.widget.CardView>
+
+</FrameLayout>
diff --git a/samples/MediaRoutingDemo/src/main/res/values/strings.xml b/samples/MediaRoutingDemo/src/main/res/values/strings.xml
index 8cc58fa..87596b2 100644
--- a/samples/MediaRoutingDemo/src/main/res/values/strings.xml
+++ b/samples/MediaRoutingDemo/src/main/res/values/strings.xml
@@ -55,4 +55,8 @@
 
     <string name="delete_route_alert_dialog_title">Delete this route?</string>
     <string name="delete_route_alert_dialog_message">Are you sure you want to delete this route?</string>
+
+    <string name="settings_activity_show_system_routes">Show system routes</string>
+
+    <string name="system_routing_activity_bluetooth_denied">Bluetooth sources will not be shown without access to Bluetooth</string>
 </resources>
diff --git a/settings.gradle b/settings.gradle
index 063496e..f4bbd60 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -453,6 +453,7 @@
 includeProject(":autofill:autofill", [BuildType.MAIN])
 includeProject(":benchmark:benchmark-benchmark", "benchmark/benchmark", [BuildType.MAIN, BuildType.COMPOSE])
 includeProject(":benchmark:benchmark-common")
+includeProject(":benchmark:benchmark-internal")
 includeProject(":benchmark:benchmark-darwin", [BuildType.INFRAROGUE, BuildType.KMP])
 includeProject(":benchmark:benchmark-darwin-core", [BuildType.INFRAROGUE, BuildType.KMP])
 includeProject(":benchmark:benchmark-darwin-samples", [BuildType.INFRAROGUE, BuildType.KMP])
@@ -1012,13 +1013,11 @@
 includeProject(":wear:compose:compose-material3-benchmark", "wear/compose/compose-material3/benchmark", [BuildType.COMPOSE])
 includeProject(":wear:compose:compose-material-core", [BuildType.COMPOSE])
 includeProject(":wear:compose:compose-material-samples", "wear/compose/compose-material/samples", [BuildType.COMPOSE])
-includeProject(":wear:compose:compose-material3-integration-tests", "wear/compose/compose-material3/integration-tests", [BuildType.COMPOSE])
 includeProject(":wear:compose:compose-material3-samples", "wear/compose/compose-material3/samples", [BuildType.COMPOSE])
 includeProject(":wear:compose:compose-navigation", [BuildType.COMPOSE])
 includeProject(":wear:compose:compose-navigation-samples", "wear/compose/compose-navigation/samples", [BuildType.COMPOSE])
 includeProject(":wear:compose:compose-ui-tooling", [BuildType.COMPOSE])
 includeProject(":wear:compose:integration-tests:demos", [BuildType.COMPOSE])
-includeProject(":wear:compose:integration-tests:demos:common", [BuildType.COMPOSE])
 includeProject(":wear:compose:integration-tests:macrobenchmark", [BuildType.COMPOSE])
 includeProject(":wear:compose:integration-tests:macrobenchmark-target", [BuildType.COMPOSE])
 includeProject(":wear:compose:integration-tests:navigation", [BuildType.COMPOSE])
diff --git a/slice/slice-builders-ktx/lint-baseline.xml b/slice/slice-builders-ktx/lint-baseline.xml
deleted file mode 100644
index ba31f50..0000000
--- a/slice/slice-builders-ktx/lint-baseline.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 8.1.0-alpha07" type="baseline" client="gradle" dependencies="false" name="AGP (8.0.0-beta03)" variant="all" version="8.1.0-alpha07">
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="annotation class SliceMarker"
-        errorLine2="                 ~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.kt"/>
-    </issue>
-
-</issues>
diff --git a/slice/slice-builders-ktx/src/main/java/androidx/slice/builders/ListBuilder.kt b/slice/slice-builders-ktx/src/main/java/androidx/slice/builders/ListBuilder.kt
index 0075e93..101ed21 100644
--- a/slice/slice-builders-ktx/src/main/java/androidx/slice/builders/ListBuilder.kt
+++ b/slice/slice-builders-ktx/src/main/java/androidx/slice/builders/ListBuilder.kt
@@ -23,9 +23,6 @@
 import androidx.core.graphics.drawable.IconCompat
 import androidx.slice.builders.ListBuilder.ICON_IMAGE
 
-/**
- * @hide
- */
 @RestrictTo(LIBRARY)
 @DslMarker
 annotation class SliceMarker
diff --git a/slice/slice-builders/lint-baseline.xml b/slice/slice-builders/lint-baseline.xml
index bb7a657..125de78 100644
--- a/slice/slice-builders/lint-baseline.xml
+++ b/slice/slice-builders/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 8.1.0-alpha07" type="baseline" client="gradle" dependencies="false" name="AGP (8.0.0-beta03)" variant="all" version="8.1.0-alpha07">
+<issues format="6" by="lint 8.1.0-beta02" type="baseline" client="gradle" dependencies="false" name="AGP (8.1.0-beta02)" variant="all" version="8.1.0-beta02">
 
     <issue
         id="WrongConstant"
@@ -11,1401 +11,6 @@
     </issue>
 
     <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public SliceAction getPrimaryAction() {"
-        errorLine2="                       ~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/GridRowBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public List&lt;CellBuilder> getCells() {"
-        errorLine2="                             ~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/GridRowBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public CellBuilder getSeeMoreCell() {"
-        errorLine2="                       ~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/GridRowBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public PendingIntent getSeeMoreIntent() {"
-        errorLine2="                         ~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/GridRowBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public CharSequence getDescription() {"
-        errorLine2="                        ~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/GridRowBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public int getLayoutDirection() {"
-        errorLine2="               ~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/GridRowBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public static final int TYPE_TEXT = 0;"
-        errorLine2="                                ~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/GridRowBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public static final int TYPE_TITLE = 1;"
-        errorLine2="                                ~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/GridRowBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public static final int TYPE_IMAGE = 2;"
-        errorLine2="                                ~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/GridRowBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public static final int TYPE_OVERLAY = 3;"
-        errorLine2="                                ~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/GridRowBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public List&lt;Object> getObjects() {"
-        errorLine2="                            ~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/GridRowBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public List&lt;Integer> getTypes() {"
-        errorLine2="                             ~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/GridRowBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public List&lt;Boolean> getLoadings() {"
-        errorLine2="                             ~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/GridRowBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public CharSequence getCellDescription() {"
-        errorLine2="                            ~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/GridRowBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public PendingIntent getContentIntent() {"
-        errorLine2="                             ~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/GridRowBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public CharSequence getTitle() {"
-        errorLine2="                            ~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/GridRowBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public CharSequence getSubtitle() {"
-        errorLine2="                            ~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/GridRowBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public SliceAction getSliceAction() {"
-        errorLine2="                           ~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/GridRowBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="public class GridRowBuilderListV1Impl extends TemplateBuilderImpl {"
-        errorLine2="             ~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/impl/GridRowBuilderListV1Impl.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public void apply(@NonNull Slice.Builder b) {"
-        errorLine2="                    ~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/impl/GridRowBuilderListV1Impl.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="public interface ListBuilder {"
-        errorLine2="                 ~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/impl/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public @interface ImageMode {"
-        errorLine2="                      ~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public @interface LayoutDirection {}"
-        errorLine2="                      ~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    protected TemplateBuilderImpl selectImpl() {"
-        errorLine2="                                  ~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public androidx.slice.builders.impl.ListBuilder getImpl() {"
-        errorLine2="                                                    ~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public @interface RangeMode {"
-        errorLine2="                      ~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public boolean isTitleItemLoading() {"
-        errorLine2="                       ~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public int getTitleImageMode() {"
-        errorLine2="                   ~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public IconCompat getTitleIcon() {"
-        errorLine2="                          ~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public int getValue() {"
-        errorLine2="                   ~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public int getMax() {"
-        errorLine2="                   ~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public boolean isValueSet() {"
-        errorLine2="                       ~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public CharSequence getTitle() {"
-        errorLine2="                            ~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public CharSequence getSubtitle() {"
-        errorLine2="                            ~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public SliceAction getPrimaryAction() {"
-        errorLine2="                           ~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public CharSequence getContentDescription() {"
-        errorLine2="                            ~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public int getLayoutDirection() {"
-        errorLine2="                   ~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public int getMode() {"
-        errorLine2="                   ~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public static final int TYPE_ACTION = 2;"
-        errorLine2="                                ~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public int getMin() {"
-        errorLine2="                   ~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public int getMax() {"
-        errorLine2="                   ~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public float getValue() {"
-        errorLine2="                     ~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public boolean isValueSet() {"
-        errorLine2="                       ~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public PendingIntent getAction() {"
-        errorLine2="                             ~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public CharSequence getContentDescription() {"
-        errorLine2="                            ~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public PendingIntent getInputAction() {"
-        errorLine2="                             ~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public CharSequence getTitle() {"
-        errorLine2="                            ~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public CharSequence getSubtitle() {"
-        errorLine2="                            ~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public SliceAction getPrimaryAction() {"
-        errorLine2="                           ~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public boolean isTitleItemLoading() {"
-        errorLine2="                       ~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public int getTitleImageMode() {"
-        errorLine2="                   ~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public IconCompat getTitleIcon() {"
-        errorLine2="                          ~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public boolean isTitleItemLoading() {"
-        errorLine2="                       ~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public int getTitleImageMode() {"
-        errorLine2="                   ~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public IconCompat getTitleIcon() {"
-        errorLine2="                          ~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public static final int TYPE_ACTION = 2;"
-        errorLine2="                                ~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public List&lt;Object> getEndItems() {"
-        errorLine2="                            ~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public List&lt;Integer> getEndTypes() {"
-        errorLine2="                             ~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public List&lt;Boolean> getEndLoads() {"
-        errorLine2="                             ~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public int getMin() {"
-        errorLine2="                   ~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public int getMax() {"
-        errorLine2="                   ~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public int getValue() {"
-        errorLine2="                   ~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public boolean isValueSet() {"
-        errorLine2="                       ~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public CharSequence getTitle() {"
-        errorLine2="                            ~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public CharSequence getSubtitle() {"
-        errorLine2="                            ~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public PendingIntent getAction() {"
-        errorLine2="                             ~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public PendingIntent getInputAction() {"
-        errorLine2="                             ~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public IconCompat getThumb() {"
-        errorLine2="                          ~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public SliceAction getPrimaryAction() {"
-        errorLine2="                           ~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public CharSequence getContentDescription() {"
-        errorLine2="                            ~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public int getLayoutDirection() {"
-        errorLine2="                   ~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public static final int TYPE_TIMESTAMP = 0;"
-        errorLine2="                                ~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public static final int TYPE_ICON = 1;"
-        errorLine2="                                ~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public static final int TYPE_ACTION = 2;"
-        errorLine2="                                ~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public Uri getUri() {"
-        errorLine2="                   ~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public boolean isEndOfSection() {"
-        errorLine2="                       ~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public boolean hasEndActionOrToggle() {"
-        errorLine2="                       ~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public boolean hasEndImage() {"
-        errorLine2="                       ~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public boolean hasDefaultToggle() {"
-        errorLine2="                       ~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public boolean hasTimestamp() {"
-        errorLine2="                       ~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public long getTimeStamp() {"
-        errorLine2="                    ~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public boolean isTitleItemLoading() {"
-        errorLine2="                       ~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public int getTitleImageMode() {"
-        errorLine2="                   ~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public IconCompat getTitleIcon() {"
-        errorLine2="                          ~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public SliceAction getTitleAction() {"
-        errorLine2="                           ~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public SliceAction getPrimaryAction() {"
-        errorLine2="                           ~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public CharSequence getTitle() {"
-        errorLine2="                            ~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public boolean isTitleLoading() {"
-        errorLine2="                       ~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public CharSequence getSubtitle() {"
-        errorLine2="                            ~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public boolean isSubtitleLoading() {"
-        errorLine2="                       ~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public CharSequence getContentDescription() {"
-        errorLine2="                            ~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public int getLayoutDirection() {"
-        errorLine2="                   ~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public List&lt;Object> getEndItems() {"
-        errorLine2="                            ~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public List&lt;Integer> getEndTypes() {"
-        errorLine2="                             ~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public List&lt;Boolean> getEndLoads() {"
-        errorLine2="                             ~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public boolean isTitleActionLoading() {"
-        errorLine2="                       ~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public HeaderBuilder(@NonNull final Uri uri) {"
-        errorLine2="               ~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public Uri getUri() {"
-        errorLine2="                   ~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public CharSequence getTitle() {"
-        errorLine2="                            ~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public boolean isTitleLoading() {"
-        errorLine2="                       ~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public CharSequence getSubtitle() {"
-        errorLine2="                            ~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public boolean isSubtitleLoading() {"
-        errorLine2="                       ~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public CharSequence getSummary() {"
-        errorLine2="                            ~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public boolean isSummaryLoading() {"
-        errorLine2="                       ~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public SliceAction getPrimaryAction() {"
-        errorLine2="                           ~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public CharSequence getContentDescription() {"
-        errorLine2="                            ~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public int getLayoutDirection() {"
-        errorLine2="                   ~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/ListBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="public class ListBuilderBasicImpl extends TemplateBuilderImpl implements ListBuilder {"
-        errorLine2="             ~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/impl/ListBuilderBasicImpl.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="public class ListBuilderImpl extends TemplateBuilderImpl implements ListBuilder {"
-        errorLine2="             ~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/impl/ListBuilderImpl.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="public class MessagingBasicImpl extends TemplateBuilderImpl implements"
-        errorLine2="             ~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/impl/MessagingBasicImpl.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="public interface MessagingBuilder {"
-        errorLine2="                 ~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/impl/MessagingBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="public class MessagingListV1Impl extends TemplateBuilderImpl implements MessagingBuilder{"
-        errorLine2="             ~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/impl/MessagingListV1Impl.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="public class MessagingSliceBuilder extends TemplateSliceBuilder {"
-        errorLine2="             ~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/MessagingSliceBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    protected TemplateBuilderImpl selectImpl() {"
-        errorLine2="                                  ~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/MessagingSliceBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="public class MessagingV1Impl extends TemplateBuilderImpl implements MessagingBuilder {"
-        errorLine2="             ~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/impl/MessagingV1Impl.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public List&lt;Pair&lt;String, CharSequence>> getOptions() {"
-        errorLine2="                                            ~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/SelectionBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public SliceAction getPrimaryAction() {"
-        errorLine2="                       ~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/SelectionBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public PendingIntent getInputAction() {"
-        errorLine2="                         ~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/SelectionBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public String getSelectedOption() {"
-        errorLine2="                  ~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/SelectionBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public CharSequence getTitle() {"
-        errorLine2="                        ~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/SelectionBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public CharSequence getSubtitle() {"
-        errorLine2="                        ~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/SelectionBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public CharSequence getContentDescription() {"
-        errorLine2="                        ~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/SelectionBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public int getLayoutDirection() {"
-        errorLine2="               ~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/SelectionBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public void check() {"
-        errorLine2="                ~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/SelectionBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="public class SelectionBuilderBasicImpl extends SelectionBuilderImpl {"
-        errorLine2="             ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/impl/SelectionBuilderBasicImpl.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="public abstract class SelectionBuilderImpl extends TemplateBuilderImpl {"
-        errorLine2="                      ~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/impl/SelectionBuilderImpl.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="public class SelectionBuilderListV2Impl extends SelectionBuilderImpl {"
-        errorLine2="             ~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/impl/SelectionBuilderListV2Impl.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public SliceAction(@NonNull PendingIntent action, @NonNull Icon actionIcon,"
-        errorLine2="           ~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/SliceAction.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public SliceAction(@NonNull PendingIntent action, @NonNull Icon actionIcon,"
-        errorLine2="           ~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/SliceAction.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public SliceAction(@NonNull PendingIntent action, @NonNull Icon actionIcon,"
-        errorLine2="           ~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/SliceAction.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public SliceAction(@NonNull PendingIntent action, @NonNull IconCompat actionIcon,"
-        errorLine2="           ~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/SliceAction.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public SliceAction(@NonNull PendingIntent action, @NonNull IconCompat actionIcon,"
-        errorLine2="           ~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/SliceAction.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public SliceAction(@NonNull PendingIntent action, @NonNull IconCompat actionIcon,"
-        errorLine2="           ~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/SliceAction.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public SliceAction(@NonNull PendingIntent action, @NonNull CharSequence actionTitle,"
-        errorLine2="           ~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/SliceAction.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public SliceAction(@NonNull PendingIntent action, @NonNull CharSequence actionTitle,"
-        errorLine2="           ~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/SliceAction.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public static SliceAction createDatePicker(@NonNull PendingIntent action,"
-        errorLine2="                              ~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/SliceAction.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public static SliceAction createTimePicker(@NonNull PendingIntent action,"
-        errorLine2="                              ~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/SliceAction.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public Slice buildSlice(@NonNull Slice.Builder builder) {"
-        errorLine2="                 ~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/SliceAction.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public SliceActionImpl getImpl() {"
-        errorLine2="                           ~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/SliceAction.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public void setPrimaryAction(@NonNull Slice.Builder builder) {"
-        errorLine2="                ~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/SliceAction.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="public abstract class TemplateBuilderImpl {"
-        errorLine2="                      ~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/impl/TemplateBuilderImpl.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public Slice.Builder getBuilder() {"
-        errorLine2="                         ~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/impl/TemplateBuilderImpl.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public Slice.Builder createChildBuilder() {"
-        errorLine2="                         ~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/impl/TemplateBuilderImpl.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public abstract void apply(@NonNull Slice.Builder builder);"
-        errorLine2="                         ~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/impl/TemplateBuilderImpl.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public Clock getClock() {"
-        errorLine2="                 ~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/impl/TemplateBuilderImpl.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public SliceSpec getSpec() {"
-        errorLine2="                     ~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/impl/TemplateBuilderImpl.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    protected ArrayList&lt;String> parseImageMode(int imageMode, boolean isLoading) {"
-        errorLine2="                                ~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/impl/TemplateBuilderImpl.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    protected TemplateSliceBuilder(TemplateBuilderImpl impl) {"
-        errorLine2="              ~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/TemplateSliceBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public TemplateSliceBuilder(Context context, Uri uri) {"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/TemplateSliceBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    protected Slice.Builder getBuilder() {"
-        errorLine2="                            ~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/TemplateSliceBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    abstract void setImpl(TemplateBuilderImpl impl);"
-        errorLine2="                  ~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/TemplateSliceBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    protected TemplateBuilderImpl selectImpl() {"
-        errorLine2="                                  ~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/TemplateSliceBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    protected boolean checkCompatible(SliceSpec candidate) {"
-        errorLine2="                      ~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/TemplateSliceBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    protected Clock getClock() {"
-        errorLine2="                    ~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/TemplateSliceBuilder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    static &lt;T> Pair&lt;SliceSpec, Class&lt;? extends TemplateBuilderImpl>> pair(SliceSpec spec,"
-        errorLine2="                                                                     ~~~~">
-        <location
-            file="src/main/java/androidx/slice/builders/TemplateSliceBuilder.java"/>
-    </issue>
-
-    <issue
         id="ClassVerificationFailure"
         message="This call references a method added in API level 26; however, the containing class androidx.slice.builders.impl.ListBuilderBasicImpl is reachable from earlier API levels and will fail run-time class verification."
         errorLine1="        setTtl(ttl == null ? INFINITY : ttl.toMillis());"
diff --git a/slice/slice-builders/src/main/java/androidx/slice/builders/GridRowBuilder.java b/slice/slice-builders/src/main/java/androidx/slice/builders/GridRowBuilder.java
index 4e8de26..4523685 100644
--- a/slice/slice-builders/src/main/java/androidx/slice/builders/GridRowBuilder.java
+++ b/slice/slice-builders/src/main/java/androidx/slice/builders/GridRowBuilder.java
@@ -184,7 +184,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(LIBRARY)
     public SliceAction getPrimaryAction() {
@@ -192,7 +191,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(LIBRARY)
     public List<CellBuilder> getCells() {
@@ -200,7 +198,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(LIBRARY)
     public CellBuilder getSeeMoreCell() {
@@ -208,7 +205,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(LIBRARY)
     public PendingIntent getSeeMoreIntent() {
@@ -216,7 +212,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(LIBRARY)
     public CharSequence getDescription() {
@@ -224,7 +219,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(LIBRARY)
     public int getLayoutDirection() {
@@ -265,22 +259,18 @@
      */
     public static class CellBuilder {
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         public static final int TYPE_TEXT = 0;
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         public static final int TYPE_TITLE = 1;
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         public static final int TYPE_IMAGE = 2;
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         public static final int TYPE_OVERLAY = 3;
@@ -465,7 +455,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         public List<Object> getObjects() {
@@ -473,7 +462,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         public List<Integer> getTypes() {
@@ -481,7 +469,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         public List<Boolean> getLoadings() {
@@ -489,7 +476,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         public CharSequence getCellDescription() {
@@ -497,7 +483,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         public PendingIntent getContentIntent() {
@@ -505,7 +490,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         @Nullable
@@ -519,7 +503,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         @Nullable
@@ -533,7 +516,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         @Nullable
diff --git a/slice/slice-builders/src/main/java/androidx/slice/builders/ListBuilder.java b/slice/slice-builders/src/main/java/androidx/slice/builders/ListBuilder.java
index b532dfe..77d5f5b 100644
--- a/slice/slice-builders/src/main/java/androidx/slice/builders/ListBuilder.java
+++ b/slice/slice-builders/src/main/java/androidx/slice/builders/ListBuilder.java
@@ -180,7 +180,6 @@
     public static final int UNKNOWN_IMAGE = SliceHints.UNKNOWN_IMAGE;
 
     /**
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     @IntDef({
@@ -197,7 +196,6 @@
     public static final long INFINITY = SliceHints.INFINITY;
 
     /**
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     @IntDef({
@@ -494,7 +492,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(LIBRARY)
     @Override
@@ -511,7 +508,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(LIBRARY)
     @NonNull
@@ -520,7 +516,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     @IntDef({
@@ -727,7 +722,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         public boolean isTitleItemLoading() {
@@ -735,7 +729,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         public int getTitleImageMode() {
@@ -743,7 +736,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         @Nullable
@@ -752,7 +744,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         public int getValue() {
@@ -760,7 +751,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         public int getMax() {
@@ -768,7 +758,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         public boolean isValueSet() {
@@ -776,7 +765,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         @Nullable
@@ -785,7 +773,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         @Nullable
@@ -794,7 +781,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         @Nullable
@@ -803,7 +789,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         @Nullable
@@ -812,7 +797,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         public int getLayoutDirection() {
@@ -820,7 +804,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         public int getMode() {
@@ -838,7 +821,6 @@
     @SuppressLint("MissingBuildMethod")
     public static final class RatingBuilder {
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         public static final int TYPE_ACTION = 2;
@@ -867,7 +849,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         public int getMin() {
@@ -884,7 +865,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         public int getMax() {
@@ -901,7 +881,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         public float getValue() {
@@ -922,7 +901,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         public boolean isValueSet() {
@@ -930,7 +908,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         @Nullable
@@ -939,7 +916,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         @Nullable
@@ -1029,7 +1005,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         @Nullable
@@ -1058,7 +1033,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         @Nullable
@@ -1067,7 +1041,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         @Nullable
@@ -1076,7 +1049,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         @Nullable
@@ -1085,7 +1057,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         public boolean isTitleItemLoading() {
@@ -1093,7 +1064,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         public int getTitleImageMode() {
@@ -1101,7 +1071,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         @Nullable
@@ -1338,7 +1307,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         public boolean isTitleItemLoading() {
@@ -1346,7 +1314,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         public int getTitleImageMode() {
@@ -1354,7 +1321,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         @Nullable
@@ -1363,13 +1329,11 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         public static final int TYPE_ACTION = 2;
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         @NonNull
@@ -1378,7 +1342,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         @NonNull
@@ -1387,7 +1350,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         @NonNull
@@ -1396,7 +1358,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         public int getMin() {
@@ -1404,7 +1365,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         public int getMax() {
@@ -1412,7 +1372,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         public int getValue() {
@@ -1420,7 +1379,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         public boolean isValueSet() {
@@ -1428,7 +1386,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         @Nullable
@@ -1437,7 +1394,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         @Nullable
@@ -1446,7 +1402,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         @Nullable
@@ -1455,7 +1410,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         @Nullable
@@ -1464,7 +1418,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         @Nullable
@@ -1473,7 +1426,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         @Nullable
@@ -1482,7 +1434,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         @Nullable
@@ -1491,7 +1442,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         public int getLayoutDirection() {
@@ -1558,17 +1508,14 @@
         private boolean mTitleActionLoading;
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         public static final int TYPE_TIMESTAMP = 0;
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         public static final int TYPE_ICON = 1;
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         public static final int TYPE_ACTION = 2;
@@ -1873,7 +1820,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         @Nullable
@@ -1882,7 +1828,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         public boolean isEndOfSection() {
@@ -1890,7 +1835,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         public boolean hasEndActionOrToggle() {
@@ -1898,7 +1842,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         public boolean hasEndImage() {
@@ -1906,7 +1849,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         public boolean hasDefaultToggle() {
@@ -1914,7 +1856,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         public boolean hasTimestamp() {
@@ -1922,7 +1863,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         public long getTimeStamp() {
@@ -1930,7 +1870,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         public boolean isTitleItemLoading() {
@@ -1938,7 +1877,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         public int getTitleImageMode() {
@@ -1946,7 +1884,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         @Nullable
@@ -1955,7 +1892,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         @Nullable
@@ -1964,7 +1900,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         @Nullable
@@ -1973,7 +1908,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         @Nullable
@@ -1982,7 +1916,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         public boolean isTitleLoading() {
@@ -1990,7 +1923,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         @Nullable
@@ -1999,7 +1931,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         public boolean isSubtitleLoading() {
@@ -2007,7 +1938,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         @Nullable
@@ -2016,7 +1946,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         public int getLayoutDirection() {
@@ -2024,7 +1953,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         @NonNull
@@ -2033,7 +1961,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         @NonNull
@@ -2042,7 +1969,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         @NonNull
@@ -2051,7 +1977,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         public boolean isTitleActionLoading() {
@@ -2103,7 +2028,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY_GROUP_PREFIX)
         public HeaderBuilder(@NonNull final Uri uri) {
@@ -2227,7 +2151,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         @Nullable
@@ -2236,7 +2159,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         @Nullable
@@ -2245,7 +2167,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         public boolean isTitleLoading() {
@@ -2253,7 +2174,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         @Nullable
@@ -2262,7 +2182,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         public boolean isSubtitleLoading() {
@@ -2270,7 +2189,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         @Nullable
@@ -2279,7 +2197,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         public boolean isSummaryLoading() {
@@ -2287,7 +2204,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         @Nullable
@@ -2296,7 +2212,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         @Nullable
@@ -2305,7 +2220,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         public int getLayoutDirection() {
diff --git a/slice/slice-builders/src/main/java/androidx/slice/builders/MessagingSliceBuilder.java b/slice/slice-builders/src/main/java/androidx/slice/builders/MessagingSliceBuilder.java
index e91c43f..4041d50 100644
--- a/slice/slice-builders/src/main/java/androidx/slice/builders/MessagingSliceBuilder.java
+++ b/slice/slice-builders/src/main/java/androidx/slice/builders/MessagingSliceBuilder.java
@@ -38,7 +38,6 @@
 
 /**
  * Builder to construct slice content in a messaging format.
- * @hide
  */
 @RestrictTo(LIBRARY_GROUP_PREFIX)
 @RequiresApi(19)
@@ -83,7 +82,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(LIBRARY)
     @Override
diff --git a/slice/slice-builders/src/main/java/androidx/slice/builders/SelectionBuilder.java b/slice/slice-builders/src/main/java/androidx/slice/builders/SelectionBuilder.java
index be06a6b..4e5550a 100644
--- a/slice/slice-builders/src/main/java/androidx/slice/builders/SelectionBuilder.java
+++ b/slice/slice-builders/src/main/java/androidx/slice/builders/SelectionBuilder.java
@@ -180,7 +180,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(LIBRARY)
     public List<Pair<String, CharSequence>> getOptions() {
@@ -188,7 +187,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(LIBRARY)
     public SliceAction getPrimaryAction() {
@@ -196,7 +194,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(LIBRARY)
     public PendingIntent getInputAction() {
@@ -204,7 +201,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(LIBRARY)
     public String getSelectedOption() {
@@ -212,7 +208,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(LIBRARY)
     public CharSequence getTitle() {
@@ -220,7 +215,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(LIBRARY)
     public CharSequence getSubtitle() {
@@ -228,7 +222,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(LIBRARY)
     public CharSequence getContentDescription() {
@@ -236,7 +229,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(LIBRARY)
     public int getLayoutDirection() {
@@ -244,7 +236,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(LIBRARY)
     public void check() {
diff --git a/slice/slice-builders/src/main/java/androidx/slice/builders/SliceAction.java b/slice/slice-builders/src/main/java/androidx/slice/builders/SliceAction.java
index 0109be7..64263dd 100644
--- a/slice/slice-builders/src/main/java/androidx/slice/builders/SliceAction.java
+++ b/slice/slice-builders/src/main/java/androidx/slice/builders/SliceAction.java
@@ -43,7 +43,6 @@
     private final SliceActionImpl mSliceAction;
 
     /**
-     * @hide
      */
     @RestrictTo(LIBRARY)
     @RequiresApi(23)
@@ -53,7 +52,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(LIBRARY)
     @RequiresApi(23)
@@ -63,7 +61,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(LIBRARY)
     @RequiresApi(23)
@@ -79,7 +76,6 @@
      * @param actionIcon the icon to display for this action.
      * @param actionTitle the title for this action, also used for content description if one hasn't
      *                    been set via {@link #setContentDescription(CharSequence)}.
-     * @hide
      */
     @RestrictTo(LIBRARY)
     public SliceAction(@NonNull PendingIntent action, @NonNull IconCompat actionIcon,
@@ -103,7 +99,6 @@
      * @see ListBuilder#ICON_IMAGE
      * @see ListBuilder#SMALL_IMAGE
      * @see ListBuilder#LARGE_IMAGE
-     * @hide
      */
     @RestrictTo(LIBRARY_GROUP)
     public SliceAction(@NonNull PendingIntent action, @NonNull IconCompat actionIcon,
@@ -120,7 +115,6 @@
      * @param actionTitle the title for this toggle, also used for content description if one hasn't
      *                    been set via {@link #setContentDescription(CharSequence)}.
      * @param isChecked the state of the toggle.
-     * @hide
      */
     @RestrictTo(LIBRARY_GROUP)
     public SliceAction(@NonNull PendingIntent action, @NonNull IconCompat actionIcon,
@@ -135,7 +129,6 @@
      * @param actionTitle the title for this toggle, also used for content description if one hasn't
      *                    been set via {@link #setContentDescription(CharSequence)}.
      * @param isChecked the state of the toggle.
-     * @hide
      */
     @RestrictTo(LIBRARY_GROUP)
     public SliceAction(@NonNull PendingIntent action, @NonNull CharSequence actionTitle,
@@ -150,7 +143,6 @@
      * @param actionTitle    the timestamp for this date or time picker.
      * @param dateTimeMillis the default state of the date or time picker.
      * @param isDatePicker   if it is a date picker, as opposed to a time picker.
-     * @hide
      */
     @RestrictTo(LIBRARY_GROUP)
     public SliceAction(@NonNull PendingIntent action, @NonNull CharSequence actionTitle,
@@ -203,8 +195,8 @@
      * @param action         the pending intent to invoke for this picker.
      * @param actionTitle    the timestamp title for this picker.
      * @param dateTimeMillis the default state of the date picker.
-     * @hide
      */
+    @RestrictTo(LIBRARY)
     @NonNull
     public static SliceAction createDatePicker(@NonNull PendingIntent action,
             @NonNull CharSequence actionTitle, long dateTimeMillis) {
@@ -218,8 +210,8 @@
      * @param action         the pending intent to invoke for this picker.
      * @param actionTitle    the timestamp title for this picker.
      * @param dateTimeMillis the default state of the time picker.
-     * @hide
      */
+    @RestrictTo(LIBRARY)
     @NonNull
     public static SliceAction createTimePicker(@NonNull PendingIntent action,
             @NonNull CharSequence actionTitle, long dateTimeMillis) {
@@ -465,7 +457,6 @@
      * @param builder this should be a new builder that has any additional hints the action might
      *                need.
      * @return the slice representation of this action.
-     * @hide
      */
     @RestrictTo(LIBRARY)
     @NonNull
@@ -474,7 +465,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(LIBRARY)
     @NonNull
@@ -484,7 +474,6 @@
 
     /**
      * @param builder the parent slice builder that contains the primary action.
-     * @hide
      */
     @RestrictTo(LIBRARY)
     public void setPrimaryAction(@NonNull Slice.Builder builder) {
diff --git a/slice/slice-builders/src/main/java/androidx/slice/builders/TemplateSliceBuilder.java b/slice/slice-builders/src/main/java/androidx/slice/builders/TemplateSliceBuilder.java
index 12d7b07..07accb6 100644
--- a/slice/slice-builders/src/main/java/androidx/slice/builders/TemplateSliceBuilder.java
+++ b/slice/slice-builders/src/main/java/androidx/slice/builders/TemplateSliceBuilder.java
@@ -51,7 +51,6 @@
     private List<SliceSpec> mSpecs;
 
     /**
-     * @hide
      */
     @RestrictTo(LIBRARY)
     protected TemplateSliceBuilder(TemplateBuilderImpl impl) {
@@ -62,7 +61,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(LIBRARY)
     public TemplateSliceBuilder(Context context, Uri uri) {
@@ -85,7 +83,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(LIBRARY)
     protected Slice.Builder getBuilder() {
@@ -93,13 +90,11 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(LIBRARY)
     abstract void setImpl(TemplateBuilderImpl impl);
 
     /**
-     * @hide
      */
     @RestrictTo(LIBRARY)
     protected TemplateBuilderImpl selectImpl() {
@@ -107,7 +102,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(LIBRARY)
     protected boolean checkCompatible(SliceSpec candidate) {
@@ -129,7 +123,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(LIBRARY)
     protected Clock getClock() {
@@ -141,7 +134,6 @@
 
     /**
      * This is for typing, to clean up the code.
-     * @hide
      */
     @RestrictTo(LIBRARY)
     @SuppressWarnings("unchecked")
diff --git a/slice/slice-builders/src/main/java/androidx/slice/builders/impl/GridRowBuilderListV1Impl.java b/slice/slice-builders/src/main/java/androidx/slice/builders/impl/GridRowBuilderListV1Impl.java
index 184cd4e..ec399bc 100644
--- a/slice/slice-builders/src/main/java/androidx/slice/builders/impl/GridRowBuilderListV1Impl.java
+++ b/slice/slice-builders/src/main/java/androidx/slice/builders/impl/GridRowBuilderListV1Impl.java
@@ -42,7 +42,6 @@
 import java.util.List;
 
 /**
- * @hide
  */
 @RestrictTo(LIBRARY)
 @RequiresApi(19)
@@ -229,7 +228,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         @Override
diff --git a/slice/slice-builders/src/main/java/androidx/slice/builders/impl/ListBuilder.java b/slice/slice-builders/src/main/java/androidx/slice/builders/impl/ListBuilder.java
index de5bf68..8718ac9 100644
--- a/slice/slice-builders/src/main/java/androidx/slice/builders/impl/ListBuilder.java
+++ b/slice/slice-builders/src/main/java/androidx/slice/builders/impl/ListBuilder.java
@@ -39,7 +39,6 @@
 import java.util.Set;
 
 /**
- * @hide
  */
 @RestrictTo(LIBRARY)
 @RequiresApi(19)
diff --git a/slice/slice-builders/src/main/java/androidx/slice/builders/impl/ListBuilderBasicImpl.java b/slice/slice-builders/src/main/java/androidx/slice/builders/impl/ListBuilderBasicImpl.java
index c137500..faf5588 100644
--- a/slice/slice-builders/src/main/java/androidx/slice/builders/impl/ListBuilderBasicImpl.java
+++ b/slice/slice-builders/src/main/java/androidx/slice/builders/impl/ListBuilderBasicImpl.java
@@ -57,7 +57,6 @@
 import java.util.Set;
 
 /**
- * @hide
  */
 @RestrictTo(LIBRARY)
 @RequiresApi(19)
diff --git a/slice/slice-builders/src/main/java/androidx/slice/builders/impl/ListBuilderImpl.java b/slice/slice-builders/src/main/java/androidx/slice/builders/impl/ListBuilderImpl.java
index 1c34c39..111bd0b 100644
--- a/slice/slice-builders/src/main/java/androidx/slice/builders/impl/ListBuilderImpl.java
+++ b/slice/slice-builders/src/main/java/androidx/slice/builders/impl/ListBuilderImpl.java
@@ -82,7 +82,6 @@
 import java.util.Set;
 
 /**
- * @hide
  */
 @RestrictTo(LIBRARY)
 @RequiresApi(19)
diff --git a/slice/slice-builders/src/main/java/androidx/slice/builders/impl/MessagingBasicImpl.java b/slice/slice-builders/src/main/java/androidx/slice/builders/impl/MessagingBasicImpl.java
index cb5d540..239e6fb 100644
--- a/slice/slice-builders/src/main/java/androidx/slice/builders/impl/MessagingBasicImpl.java
+++ b/slice/slice-builders/src/main/java/androidx/slice/builders/impl/MessagingBasicImpl.java
@@ -34,7 +34,6 @@
 import androidx.slice.SliceSpec;
 
 /**
- * @hide
  */
 @RestrictTo(LIBRARY)
 @RequiresApi(19)
diff --git a/slice/slice-builders/src/main/java/androidx/slice/builders/impl/MessagingBuilder.java b/slice/slice-builders/src/main/java/androidx/slice/builders/impl/MessagingBuilder.java
index 4285eae..03f48ce 100644
--- a/slice/slice-builders/src/main/java/androidx/slice/builders/impl/MessagingBuilder.java
+++ b/slice/slice-builders/src/main/java/androidx/slice/builders/impl/MessagingBuilder.java
@@ -24,7 +24,6 @@
 import androidx.annotation.RestrictTo;
 
 /**
- * @hide
  */
 @RestrictTo(LIBRARY)
 @RequiresApi(19)
diff --git a/slice/slice-builders/src/main/java/androidx/slice/builders/impl/MessagingListV1Impl.java b/slice/slice-builders/src/main/java/androidx/slice/builders/impl/MessagingListV1Impl.java
index 93f5989..8dacf8f 100644
--- a/slice/slice-builders/src/main/java/androidx/slice/builders/impl/MessagingListV1Impl.java
+++ b/slice/slice-builders/src/main/java/androidx/slice/builders/impl/MessagingListV1Impl.java
@@ -30,7 +30,6 @@
 import androidx.slice.SliceSpec;
 
 /**
- * @hide
  */
 @RestrictTo(LIBRARY)
 @RequiresApi(19)
diff --git a/slice/slice-builders/src/main/java/androidx/slice/builders/impl/MessagingV1Impl.java b/slice/slice-builders/src/main/java/androidx/slice/builders/impl/MessagingV1Impl.java
index 25cfecb..d913d79 100644
--- a/slice/slice-builders/src/main/java/androidx/slice/builders/impl/MessagingV1Impl.java
+++ b/slice/slice-builders/src/main/java/androidx/slice/builders/impl/MessagingV1Impl.java
@@ -28,7 +28,6 @@
 import androidx.slice.SliceSpec;
 
 /**
- * @hide
  */
 @RestrictTo(RestrictTo.Scope.LIBRARY)
 @RequiresApi(19)
diff --git a/slice/slice-builders/src/main/java/androidx/slice/builders/impl/SelectionBuilderBasicImpl.java b/slice/slice-builders/src/main/java/androidx/slice/builders/impl/SelectionBuilderBasicImpl.java
index 1def00e..1c341f1 100644
--- a/slice/slice-builders/src/main/java/androidx/slice/builders/impl/SelectionBuilderBasicImpl.java
+++ b/slice/slice-builders/src/main/java/androidx/slice/builders/impl/SelectionBuilderBasicImpl.java
@@ -30,7 +30,6 @@
 import androidx.slice.builders.SelectionBuilder;
 
 /**
- * @hide
  */
 @RestrictTo(LIBRARY)
 @RequiresApi(19)
diff --git a/slice/slice-builders/src/main/java/androidx/slice/builders/impl/SelectionBuilderImpl.java b/slice/slice-builders/src/main/java/androidx/slice/builders/impl/SelectionBuilderImpl.java
index 5143668..f25d0a6 100644
--- a/slice/slice-builders/src/main/java/androidx/slice/builders/impl/SelectionBuilderImpl.java
+++ b/slice/slice-builders/src/main/java/androidx/slice/builders/impl/SelectionBuilderImpl.java
@@ -25,7 +25,6 @@
 import androidx.slice.builders.SelectionBuilder;
 
 /**
- * @hide
  */
 @RestrictTo(LIBRARY)
 @RequiresApi(19)
diff --git a/slice/slice-builders/src/main/java/androidx/slice/builders/impl/SelectionBuilderListV2Impl.java b/slice/slice-builders/src/main/java/androidx/slice/builders/impl/SelectionBuilderListV2Impl.java
index af4d92e..0c25ad0 100644
--- a/slice/slice-builders/src/main/java/androidx/slice/builders/impl/SelectionBuilderListV2Impl.java
+++ b/slice/slice-builders/src/main/java/androidx/slice/builders/impl/SelectionBuilderListV2Impl.java
@@ -38,7 +38,6 @@
 import java.util.List;
 
 /**
- * @hide
  */
 @RestrictTo(LIBRARY)
 @RequiresApi(19)
diff --git a/slice/slice-builders/src/main/java/androidx/slice/builders/impl/TemplateBuilderImpl.java b/slice/slice-builders/src/main/java/androidx/slice/builders/impl/TemplateBuilderImpl.java
index 9a377d2..8cb26f66 100644
--- a/slice/slice-builders/src/main/java/androidx/slice/builders/impl/TemplateBuilderImpl.java
+++ b/slice/slice-builders/src/main/java/androidx/slice/builders/impl/TemplateBuilderImpl.java
@@ -40,7 +40,6 @@
 import java.util.ArrayList;
 
 /**
- * @hide
  */
 @RestrictTo(LIBRARY)
 @RequiresApi(19)
@@ -74,7 +73,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(LIBRARY)
     public Slice.Builder getBuilder() {
@@ -82,7 +80,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(LIBRARY)
     public Slice.Builder createChildBuilder() {
@@ -90,13 +87,11 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(LIBRARY)
     public abstract void apply(@NonNull Slice.Builder builder);
 
     /**
-     * @hide
      */
     @RestrictTo(LIBRARY)
     public Clock getClock() {
@@ -104,7 +99,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(LIBRARY)
     public SliceSpec getSpec() {
@@ -112,7 +106,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(LIBRARY)
     @NonNull
diff --git a/slice/slice-core/lint-baseline.xml b/slice/slice-core/lint-baseline.xml
index 528ca08..f6b771e 100644
--- a/slice/slice-core/lint-baseline.xml
+++ b/slice/slice-core/lint-baseline.xml
@@ -1,680 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 8.1.0-alpha07" type="baseline" client="gradle" dependencies="false" name="AGP (8.0.0-beta03)" variant="all" version="8.1.0-alpha07">
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="class ArrayUtils {"
-        errorLine2="      ~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/ArrayUtils.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="public interface Clock {"
-        errorLine2="                 ~~~~~">
-        <location
-            file="src/main/java/androidx/slice/Clock.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="public class CompatPermissionManager {"
-        errorLine2="             ~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/compat/CompatPermissionManager.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="public class CompatPinnedList {"
-        errorLine2="             ~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/compat/CompatPinnedList.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="public class CornerDrawable extends InsetDrawable {"
-        errorLine2="             ~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/CornerDrawable.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public static final String SUBTYPE_RANGE_MODE = &quot;range_mode&quot;;"
-        errorLine2="                               ~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/Slice.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public @interface SliceHint { }"
-        errorLine2="                      ~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/Slice.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    Slice(ArrayList&lt;SliceItem> items, @SliceHint String[] hints, Uri uri,"
-        errorLine2="    ~~~~~">
-        <location
-            file="src/main/java/androidx/slice/Slice.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public Slice() {"
-        errorLine2="           ~~~~~">
-        <location
-            file="src/main/java/androidx/slice/Slice.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public Slice(@NonNull Bundle in) {"
-        errorLine2="           ~~~~~">
-        <location
-            file="src/main/java/androidx/slice/Slice.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public @NonNull Bundle toBundle() {"
-        errorLine2="                           ~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/Slice.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public @Nullable SliceSpec getSpec() {"
-        errorLine2="                               ~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/Slice.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public @NonNull SliceItem[] getItemArray() {"
-        errorLine2="                                ~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/Slice.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public @NonNull @SliceHint String[] getHintArray() {"
-        errorLine2="                                        ~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/Slice.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public boolean hasHint(@NonNull @SliceHint String hint) {"
-        errorLine2="                   ~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/Slice.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public void onPreParceling(boolean isStream) {"
-        errorLine2="                ~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/Slice.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public void onPostParceling() {"
-        errorLine2="                ~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/Slice.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public static class Builder {"
-        errorLine2="                        ~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/Slice.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public @NonNull Builder setSpec(@Nullable SliceSpec spec) {"
-        errorLine2="                                ~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/Slice.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public @NonNull Builder addRemoteInput(@NonNull RemoteInput remoteInput,"
-        errorLine2="                                ~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/Slice.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public @NonNull Builder addRemoteInput(@NonNull RemoteInput remoteInput,"
-        errorLine2="                                ~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/Slice.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public @NonNull Builder addItem(@NonNull SliceItem item) {"
-        errorLine2="                                ~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/Slice.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public String toString(@NonNull String indent) {"
-        errorLine2="                  ~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/Slice.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public static void appendHints(@NonNull StringBuilder sb, @Nullable String[] hints) {"
-        errorLine2="                       ~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/Slice.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public static Slice bindSlice(@NonNull Context context, @NonNull Uri uri,"
-        errorLine2="                        ~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/Slice.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    static boolean isValidIcon(IconCompat icon) {"
-        errorLine2="                   ~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/Slice.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="public class SliceActionImpl implements SliceAction {"
-        errorLine2="             ~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/core/SliceActionImpl.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public SliceActionImpl(@NonNull PendingIntent action, @NonNull CharSequence actionTitle,"
-        errorLine2="           ~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/core/SliceActionImpl.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public SliceActionImpl(@NonNull SliceItem slice) {"
-        errorLine2="           ~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/core/SliceActionImpl.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public SliceItem getActionItem() {"
-        errorLine2="                     ~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/core/SliceActionImpl.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public static int parseImageMode(@NonNull SliceItem iconItem) {"
-        errorLine2="                      ~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/core/SliceActionImpl.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public static Set&lt;androidx.slice.SliceSpec> wrap("
-        errorLine2="                                                ~~~~">
-        <location
-            file="src/main/java/androidx/slice/SliceConvert.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="public class SliceHints {"
-        errorLine2="             ~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/core/SliceHints.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public @interface SliceType {"
-        errorLine2="                      ~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/SliceItem.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    @Slice.SliceHint String[] mHints = Slice.NO_HINTS;"
-        errorLine2="                              ~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/SliceItem.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public SliceItem(Object obj, @NonNull @SliceType String format, @Nullable String subType,"
-        errorLine2="           ~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/SliceItem.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public SliceItem(Object obj, @NonNull @SliceType String format, @Nullable String subType,"
-        errorLine2="           ~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/SliceItem.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public SliceItem() {"
-        errorLine2="           ~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/SliceItem.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public SliceItem(@NonNull PendingIntent intent, @Nullable Slice slice,"
-        errorLine2="           ~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/SliceItem.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public SliceItem(@NonNull ActionHandler action, @Nullable Slice slice,"
-        errorLine2="           ~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/SliceItem.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public @NonNull @Slice.SliceHint String[] getHintArray() {"
-        errorLine2="                                              ~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/SliceItem.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public void addHint(@Slice.SliceHint @NonNull String hint) {"
-        errorLine2="                ~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/SliceItem.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public CharSequence getSanitizedText() {"
-        errorLine2="                        ~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/SliceItem.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public boolean fireActionInternal(@Nullable Context context, @Nullable Intent i)"
-        errorLine2="                   ~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/SliceItem.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public RemoteInput getRemoteInput() {"
-        errorLine2="                       ~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/SliceItem.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public SliceItem(@NonNull Bundle in) {"
-        errorLine2="           ~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/SliceItem.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public Bundle toBundle() {"
-        errorLine2="                  ~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/SliceItem.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public boolean hasHints(@Nullable @Slice.SliceHint String[] hints) {"
-        errorLine2="                   ~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/SliceItem.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public boolean hasAnyHints(@Nullable @Slice.SliceHint String... hints) {"
-        errorLine2="                   ~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/SliceItem.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public static String typeToString(@NonNull String format) {"
-        errorLine2="                         ~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/SliceItem.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public String toString(@NonNull String indent) {"
-        errorLine2="                  ~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/SliceItem.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public interface ActionHandler {"
-        errorLine2="                     ~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/SliceItem.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="public class SliceItemHolder implements VersionedParcelable {"
-        errorLine2="             ~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/SliceItemHolder.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    SliceManager() {"
-        errorLine2="    ~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/SliceManager.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public abstract @NonNull Set&lt;SliceSpec> getPinnedSpecs(@NonNull Uri uri);"
-        errorLine2="                                            ~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/SliceManager.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="class SliceManagerCompat extends SliceManager {"
-        errorLine2="      ~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/SliceManagerCompat.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="class SliceManagerWrapper extends SliceManager {"
-        errorLine2="      ~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/SliceManagerWrapper.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="public class SlicePermissionActivity extends AppCompatActivity implements OnClickListener,"
-        errorLine2="             ~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/compat/SlicePermissionActivity.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public Object getWrapper() {"
-        errorLine2="                  ~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/SliceProvider.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    protected CompatPermissionManager onCreatePermissionManager("
-        errorLine2="                                      ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/SliceProvider.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public Slice createPermissionSlice(@NonNull Uri sliceUri,"
-        errorLine2="                 ~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/SliceProvider.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public void handleSlicePinned(@NonNull Uri sliceUri) {"
-        errorLine2="                ~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/SliceProvider.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public void handleSliceUnpinned(@NonNull Uri sliceUri) {"
-        errorLine2="                ~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/SliceProvider.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public void validateIncomingAuthority(@Nullable String authority) throws SecurityException {"
-        errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/SliceProvider.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public static void setSpecs(@Nullable Set&lt;SliceSpec> specs) {"
-        errorLine2="                       ~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/SliceProvider.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public static Set&lt;SliceSpec> getCurrentSpecs() {"
-        errorLine2="                                 ~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/SliceProvider.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public static void setClock(@Nullable Clock clock) {"
-        errorLine2="                       ~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/SliceProvider.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public static Clock getClock() {"
-        errorLine2="                        ~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/SliceProvider.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="public class SliceProviderCompat {"
-        errorLine2="             ~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/compat/SliceProviderCompat.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="public class SliceProviderWrapperContainer {"
-        errorLine2="             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/compat/SliceProviderWrapperContainer.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="public class SliceQuery {"
-        errorLine2="             ~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/core/SliceQuery.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="public final class SliceSpec implements VersionedParcelable {"
-        errorLine2="                   ~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/SliceSpec.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public SliceSpec() {"
-        errorLine2="           ~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/SliceSpec.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="public class SliceSpecs {"
-        errorLine2="             ~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/SliceSpecs.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="public class SystemClock implements Clock {"
-        errorLine2="             ~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/SystemClock.java"/>
-    </issue>
+<issues format="6" by="lint 8.1.0-beta02" type="baseline" client="gradle" dependencies="false" name="AGP (8.1.0-beta02)" variant="all" version="8.1.0-beta02">
 
     <issue
         id="BanUncheckedReflection"
diff --git a/slice/slice-core/src/main/java/androidx/slice/ArrayUtils.java b/slice/slice-core/src/main/java/androidx/slice/ArrayUtils.java
index a020ad3..e5dd970 100644
--- a/slice/slice-core/src/main/java/androidx/slice/ArrayUtils.java
+++ b/slice/slice-core/src/main/java/androidx/slice/ArrayUtils.java
@@ -24,7 +24,6 @@
 import java.lang.reflect.Array;
 
 /**
- * @hide
  */
 @RestrictTo(Scope.LIBRARY_GROUP)
 @RequiresApi(19)
diff --git a/slice/slice-core/src/main/java/androidx/slice/Clock.java b/slice/slice-core/src/main/java/androidx/slice/Clock.java
index a1b758e..f68560c 100644
--- a/slice/slice-core/src/main/java/androidx/slice/Clock.java
+++ b/slice/slice-core/src/main/java/androidx/slice/Clock.java
@@ -22,7 +22,6 @@
 import androidx.annotation.RestrictTo;
 
 /**
- * @hide
  */
 @RestrictTo(LIBRARY_GROUP_PREFIX)
 @RequiresApi(19)
diff --git a/slice/slice-core/src/main/java/androidx/slice/CornerDrawable.java b/slice/slice-core/src/main/java/androidx/slice/CornerDrawable.java
index 5afbe40..9ccb915 100644
--- a/slice/slice-core/src/main/java/androidx/slice/CornerDrawable.java
+++ b/slice/slice-core/src/main/java/androidx/slice/CornerDrawable.java
@@ -30,7 +30,6 @@
  * A wrapper for Drawables that uses a path to add mask for corners around the drawable,
  * to match the radius of the underlying shape.
  *
- * @hide
  */
 @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)
 public class CornerDrawable extends InsetDrawable {
diff --git a/slice/slice-core/src/main/java/androidx/slice/Slice.java b/slice/slice-core/src/main/java/androidx/slice/Slice.java
index d7cf29b..8044c1e 100644
--- a/slice/slice-core/src/main/java/androidx/slice/Slice.java
+++ b/slice/slice-core/src/main/java/androidx/slice/Slice.java
@@ -51,7 +51,6 @@
 import static androidx.slice.core.SliceHints.HINT_SELECTION_OPTION;
 import static androidx.slice.core.SliceHints.HINT_SHOW_LABEL;
 
-import android.annotation.SuppressLint;
 import android.app.PendingIntent;
 import android.app.RemoteInput;
 import android.app.slice.SliceManager;
@@ -105,7 +104,6 @@
      * Subtype to tag an item as representing the progress bar mode for a
      * {@link android.app.slice.Slice#SUBTYPE_RANGE}
      *
-     * @hide
      */
     @RestrictTo(Scope.LIBRARY_GROUP)
     public static final String SUBTYPE_RANGE_MODE = "range_mode";
@@ -120,7 +118,6 @@
     static final SliceItem[] NO_ITEMS = new SliceItem[0];
 
     /**
-     * @hide
      */
     @RestrictTo(Scope.LIBRARY)
     @StringDef({
@@ -164,7 +161,6 @@
     String mUri = null;
 
     /**
-     * @hide
      */
     @RestrictTo(Scope.LIBRARY)
     Slice(ArrayList<SliceItem> items, @SliceHint String[] hints, Uri uri,
@@ -177,14 +173,12 @@
 
     /**
      * Used for VersionedParcelable
-     * @hide
      */
     @RestrictTo(Scope.LIBRARY)
     public Slice() {
     }
 
     /**
-     * @hide
      */
     @RestrictTo(Scope.LIBRARY)
     @SuppressWarnings("deprecation")
@@ -204,7 +198,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(Scope.LIBRARY)
     public @NonNull Bundle toBundle() {
@@ -225,7 +218,6 @@
 
     /**
      * @return The spec for this slice
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP_PREFIX)
     public @Nullable SliceSpec getSpec() {
@@ -247,7 +239,6 @@
     }
 
     /**
-     * @hide
      * @return
      */
     @RestrictTo(LIBRARY)
@@ -263,7 +254,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(LIBRARY)
     public @NonNull @SliceHint String[] getHintArray() {
@@ -271,7 +261,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(Scope.LIBRARY_GROUP_PREFIX)
     public boolean hasHint(@NonNull @SliceHint String hint) {
@@ -279,7 +268,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP_PREFIX)
     @Override
@@ -287,7 +275,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP_PREFIX)
     @Override
@@ -304,7 +291,6 @@
 
     /**
      * A Builder used to construct {@link Slice}s
-     * @hide
      */
     @RestrictTo(Scope.LIBRARY_GROUP_PREFIX)
     public static class Builder {
@@ -339,7 +325,6 @@
 
         /**
          * Add the spec for this slice.
-         * @hide
          */
         @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP_PREFIX)
         public @NonNull Builder setSpec(@Nullable SliceSpec spec) {
@@ -462,7 +447,6 @@
          * Add remote input to the slice being constructed
          * @param subType Optional template-specific type information
          * @see SliceItem#getSubType()
-         * @hide
          */
         @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP_PREFIX)
         public @NonNull Builder addRemoteInput(@NonNull RemoteInput remoteInput,
@@ -475,7 +459,6 @@
          * Add remote input to the slice being constructed
          * @param subType Optional template-specific type information
          * @see SliceItem#getSubType()
-         * @hide
          */
         @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP_PREFIX)
         public @NonNull Builder addRemoteInput(@NonNull RemoteInput remoteInput,
@@ -553,7 +536,6 @@
 
         /**
          * Add a SliceItem to the slice being constructed.
-         * @hide
          */
         @RestrictTo(Scope.LIBRARY_GROUP)
         public @NonNull Builder addItem(@NonNull SliceItem item) {
@@ -580,7 +562,6 @@
 
     /**
      * @return A string representation of this slice.
-     * @hide
      */
     @NonNull
     @RestrictTo(Scope.LIBRARY)
@@ -606,7 +587,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(Scope.LIBRARY)
     public static void appendHints(@NonNull StringBuilder sb, @Nullable String[] hints) {
@@ -628,7 +608,6 @@
      * @param context Context to be used.
      * @param uri The URI to a slice provider
      * @return The Slice provided by the app or null if none is given.
-     * @hide
      * @see Slice
      */
     @RestrictTo(Scope.LIBRARY_GROUP_PREFIX)
@@ -651,7 +630,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(LIBRARY)
     static boolean isValidIcon(IconCompat icon) {
diff --git a/slice/slice-core/src/main/java/androidx/slice/SliceConvert.java b/slice/slice-core/src/main/java/androidx/slice/SliceConvert.java
index 71e9c23..3711e65 100644
--- a/slice/slice-core/src/main/java/androidx/slice/SliceConvert.java
+++ b/slice/slice-core/src/main/java/androidx/slice/SliceConvert.java
@@ -169,7 +169,6 @@
     }
 
     /**
-     * @hide
      */
     @NonNull
     @RestrictTo(RestrictTo.Scope.LIBRARY)
diff --git a/slice/slice-core/src/main/java/androidx/slice/SliceItem.java b/slice/slice-core/src/main/java/androidx/slice/SliceItem.java
index f9e12a3..c35fdef 100644
--- a/slice/slice-core/src/main/java/androidx/slice/SliceItem.java
+++ b/slice/slice-core/src/main/java/androidx/slice/SliceItem.java
@@ -100,7 +100,6 @@
     private static final String SLICE_CONTENT_SENSITIVE = "sensitive";
 
     /**
-     * @hide
      */
     @RestrictTo(Scope.LIBRARY)
     @StringDef({FORMAT_SLICE, FORMAT_TEXT, FORMAT_IMAGE, FORMAT_ACTION, FORMAT_INT,
@@ -110,7 +109,6 @@
     }
 
     /**
-     * @hide
      */
     @NonNull
     @RestrictTo(Scope.LIBRARY)
@@ -137,7 +135,6 @@
     SliceItemHolder mHolder;
 
     /**
-     * @hide
      */
     @SuppressWarnings("NullableProblems")
     @SuppressLint("UnknownNullness") // obj cannot be correctly annotated
@@ -151,7 +148,6 @@
     }
 
     /**
-     * @hide
      */
     @SuppressLint("UnknownNullness") // obj cannot be correctly annotated
     @RestrictTo(Scope.LIBRARY_GROUP)
@@ -162,14 +158,12 @@
 
     /**
      * Used by VersionedParcelable.
-     * @hide
      */
     @RestrictTo(Scope.LIBRARY_GROUP)
     public SliceItem() {
     }
 
     /**
-     * @hide
      */
     @RestrictTo(Scope.LIBRARY_GROUP)
     public SliceItem(@NonNull PendingIntent intent, @Nullable Slice slice,
@@ -179,7 +173,6 @@
     }
 
     /**
-     * @hide
      */
     @SuppressLint("LambdaLast")
     @RestrictTo(Scope.LIBRARY_GROUP)
@@ -199,7 +192,6 @@
     }
 
     /**
-     * @hide
      */
     @SuppressWarnings("unused")
     @RestrictTo(Scope.LIBRARY)
@@ -208,7 +200,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(Scope.LIBRARY_GROUP)
     public void addHint(@Slice.SliceHint @NonNull String hint) {
@@ -258,7 +249,6 @@
     }
 
     /**
-     * @hide
      * @return The text held by this {@link android.app.slice.SliceItem#FORMAT_TEXT} SliceItem with
      * ony spans that are unsupported by the androidx Slice renderer removed.
      */
@@ -314,7 +304,6 @@
     }
 
     /**
-     * @hide
      */
     @SuppressWarnings("unchecked")
     @RestrictTo(Scope.LIBRARY_GROUP_PREFIX)
@@ -334,7 +323,6 @@
     /**
      * @return The remote input held by this {@link android.app.slice.SliceItem#FORMAT_REMOTE_INPUT}
      * SliceItem
-     * @hide
      */
     @Nullable
     @RequiresApi(20)
@@ -383,7 +371,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(Scope.LIBRARY)
     public SliceItem(@NonNull Bundle in) {
@@ -394,7 +381,6 @@
     }
 
     /**
-     * @hide
      */
     @NonNull
     @RestrictTo(Scope.LIBRARY)
@@ -408,7 +394,6 @@
     }
 
     /**
-     * @hide
      */
     @SuppressWarnings("unused")
     @RestrictTo(Scope.LIBRARY)
@@ -423,7 +408,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(Scope.LIBRARY_GROUP)
     public boolean hasAnyHints(@Nullable @Slice.SliceHint String... hints) {
@@ -494,7 +478,6 @@
     }
 
     /**
-     * @hide
      */
     @NonNull
     @RestrictTo(Scope.LIBRARY)
@@ -529,7 +512,6 @@
 
     /**
      * @return A string representation of this slice item.
-     * @hide
      */
     @NonNull
     @RestrictTo(Scope.LIBRARY)
@@ -754,7 +736,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(Scope.LIBRARY_GROUP_PREFIX)
     public interface ActionHandler {
diff --git a/slice/slice-core/src/main/java/androidx/slice/SliceItemHolder.java b/slice/slice-core/src/main/java/androidx/slice/SliceItemHolder.java
index 1cdd23398..ab2ebba 100644
--- a/slice/slice-core/src/main/java/androidx/slice/SliceItemHolder.java
+++ b/slice/slice-core/src/main/java/androidx/slice/SliceItemHolder.java
@@ -45,7 +45,6 @@
 import java.util.ArrayList;
 
 /**
- * @hide
  */
 @RestrictTo(RestrictTo.Scope.LIBRARY)
 @VersionedParcelize(allowSerialization = true, ignoreParcelables = true,
diff --git a/slice/slice-core/src/main/java/androidx/slice/SliceManager.java b/slice/slice-core/src/main/java/androidx/slice/SliceManager.java
index e0baa5e..390f09a 100644
--- a/slice/slice-core/src/main/java/androidx/slice/SliceManager.java
+++ b/slice/slice-core/src/main/java/androidx/slice/SliceManager.java
@@ -49,7 +49,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     SliceManager() {
@@ -62,7 +61,6 @@
      * into account all clients and returns only specs supported by all.
      * @see SliceSpec
      *
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)
     public abstract @NonNull Set<SliceSpec> getPinnedSpecs(@NonNull Uri uri);
diff --git a/slice/slice-core/src/main/java/androidx/slice/SliceManagerCompat.java b/slice/slice-core/src/main/java/androidx/slice/SliceManagerCompat.java
index 7399d29..549d939 100644
--- a/slice/slice-core/src/main/java/androidx/slice/SliceManagerCompat.java
+++ b/slice/slice-core/src/main/java/androidx/slice/SliceManagerCompat.java
@@ -29,7 +29,6 @@
 
 
 /**
- * @hide
  */
 @RestrictTo(RestrictTo.Scope.LIBRARY)
 @RequiresApi(19)
diff --git a/slice/slice-core/src/main/java/androidx/slice/SliceManagerWrapper.java b/slice/slice-core/src/main/java/androidx/slice/SliceManagerWrapper.java
index 349dc92..d1bd08e 100644
--- a/slice/slice-core/src/main/java/androidx/slice/SliceManagerWrapper.java
+++ b/slice/slice-core/src/main/java/androidx/slice/SliceManagerWrapper.java
@@ -33,7 +33,6 @@
 import java.util.Set;
 
 /**
- * @hide
  */
 @RestrictTo(RestrictTo.Scope.LIBRARY)
 @RequiresApi(api = 28)
diff --git a/slice/slice-core/src/main/java/androidx/slice/SliceProvider.java b/slice/slice-core/src/main/java/androidx/slice/SliceProvider.java
index 8a72034..9cd8ddc 100644
--- a/slice/slice-core/src/main/java/androidx/slice/SliceProvider.java
+++ b/slice/slice-core/src/main/java/androidx/slice/SliceProvider.java
@@ -191,7 +191,6 @@
     public abstract boolean onCreateSliceProvider();
 
     /**
-     * @hide
      */
     @Nullable
     @RestrictTo(RestrictTo.Scope.LIBRARY)
@@ -224,7 +223,6 @@
     }
 
     /**
-     * @hide
      * @param autoGrantPermissions
      */
     @NonNull
@@ -326,7 +324,6 @@
 
     /**
      * Generate a slice that contains a permission request.
-     * @hide
      */
     @NonNull
     @RestrictTo(RestrictTo.Scope.LIBRARY)
@@ -448,7 +445,6 @@
     public void onSliceUnpinned(@NonNull Uri sliceUri) {}
 
     /**
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     @RequiresApi(19)
@@ -460,7 +456,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     @RequiresApi(19)
@@ -520,7 +515,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     public void validateIncomingAuthority(@Nullable String authority) throws SecurityException {
@@ -603,7 +597,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     @RequiresApi(19)
@@ -612,7 +605,6 @@
     }
 
     /**
-     * @hide
      */
     @Nullable
     @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP_PREFIX)
@@ -622,7 +614,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     @RequiresApi(19)
@@ -631,7 +622,6 @@
     }
 
     /**
-     * @hide
      */
     @Nullable
     @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)
diff --git a/slice/slice-core/src/main/java/androidx/slice/SliceSpec.java b/slice/slice-core/src/main/java/androidx/slice/SliceSpec.java
index c0aaebe..13bacd9 100644
--- a/slice/slice-core/src/main/java/androidx/slice/SliceSpec.java
+++ b/slice/slice-core/src/main/java/androidx/slice/SliceSpec.java
@@ -39,7 +39,6 @@
  * {@link SliceSpec} that one of the supported {@link SliceSpec}s provided
  * {@link #canRender}.
  *
- * @hide
  * @see Slice
  * @see SliceProvider#onBindSlice(Uri)
  */
@@ -55,7 +54,6 @@
 
     /**
      * Used for VersionedParcelable
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     public SliceSpec() {
diff --git a/slice/slice-core/src/main/java/androidx/slice/SliceSpecs.java b/slice/slice-core/src/main/java/androidx/slice/SliceSpecs.java
index 0374db9..436d24b 100644
--- a/slice/slice-core/src/main/java/androidx/slice/SliceSpecs.java
+++ b/slice/slice-core/src/main/java/androidx/slice/SliceSpecs.java
@@ -21,7 +21,6 @@
 
 /**
  * Constants for each of the slice specs
- * @hide
  */
 @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP_PREFIX)
 @RequiresApi(19)
diff --git a/slice/slice-core/src/main/java/androidx/slice/SystemClock.java b/slice/slice-core/src/main/java/androidx/slice/SystemClock.java
index 4b740f3..888d3e4 100644
--- a/slice/slice-core/src/main/java/androidx/slice/SystemClock.java
+++ b/slice/slice-core/src/main/java/androidx/slice/SystemClock.java
@@ -22,7 +22,6 @@
 import androidx.annotation.RestrictTo;
 
 /**
- * @hide
  */
 @RestrictTo(LIBRARY_GROUP_PREFIX)
 @RequiresApi(19)
diff --git a/slice/slice-core/src/main/java/androidx/slice/compat/CompatPermissionManager.java b/slice/slice-core/src/main/java/androidx/slice/compat/CompatPermissionManager.java
index 52259f6..dc700dd 100644
--- a/slice/slice-core/src/main/java/androidx/slice/compat/CompatPermissionManager.java
+++ b/slice/slice-core/src/main/java/androidx/slice/compat/CompatPermissionManager.java
@@ -37,7 +37,6 @@
 import java.util.Set;
 
 /**
- * @hide
  */
 @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)
 @RequiresApi(19)
diff --git a/slice/slice-core/src/main/java/androidx/slice/compat/CompatPinnedList.java b/slice/slice-core/src/main/java/androidx/slice/compat/CompatPinnedList.java
index 876ec00..f9de140 100644
--- a/slice/slice-core/src/main/java/androidx/slice/compat/CompatPinnedList.java
+++ b/slice/slice-core/src/main/java/androidx/slice/compat/CompatPinnedList.java
@@ -38,7 +38,6 @@
 /**
  * Tracks the current packages requesting pinning of any given slice. It will clear the
  * list after a reboot since the packages are no longer requesting pinning.
- * @hide
  */
 @RestrictTo(RestrictTo.Scope.LIBRARY)
 @RequiresApi(19)
diff --git a/slice/slice-core/src/main/java/androidx/slice/compat/SlicePermissionActivity.java b/slice/slice-core/src/main/java/androidx/slice/compat/SlicePermissionActivity.java
index af0d22d..9d704cc 100644
--- a/slice/slice-core/src/main/java/androidx/slice/compat/SlicePermissionActivity.java
+++ b/slice/slice-core/src/main/java/androidx/slice/compat/SlicePermissionActivity.java
@@ -40,7 +40,6 @@
 
 /**
  * Dialog that grants slice permissions for an app.
- * @hide
  */
 @RestrictTo(RestrictTo.Scope.LIBRARY)
 @RequiresApi(19)
diff --git a/slice/slice-core/src/main/java/androidx/slice/compat/SliceProviderCompat.java b/slice/slice-core/src/main/java/androidx/slice/compat/SliceProviderCompat.java
index f2ba233..a03e977 100644
--- a/slice/slice-core/src/main/java/androidx/slice/compat/SliceProviderCompat.java
+++ b/slice/slice-core/src/main/java/androidx/slice/compat/SliceProviderCompat.java
@@ -64,7 +64,6 @@
 import java.util.Set;
 
 /**
- * @hide
  */
 @RestrictTo(Scope.LIBRARY_GROUP)
 @RequiresApi(19)
diff --git a/slice/slice-core/src/main/java/androidx/slice/compat/SliceProviderWrapperContainer.java b/slice/slice-core/src/main/java/androidx/slice/compat/SliceProviderWrapperContainer.java
index c4e6120..b24671f 100644
--- a/slice/slice-core/src/main/java/androidx/slice/compat/SliceProviderWrapperContainer.java
+++ b/slice/slice-core/src/main/java/androidx/slice/compat/SliceProviderWrapperContainer.java
@@ -41,7 +41,6 @@
 import java.util.Set;
 
 /**
- * @hide
  */
 @RestrictTo(RestrictTo.Scope.LIBRARY)
 public class SliceProviderWrapperContainer {
diff --git a/slice/slice-core/src/main/java/androidx/slice/core/SliceActionImpl.java b/slice/slice-core/src/main/java/androidx/slice/core/SliceActionImpl.java
index e46617b..503cdbf 100644
--- a/slice/slice-core/src/main/java/androidx/slice/core/SliceActionImpl.java
+++ b/slice/slice-core/src/main/java/androidx/slice/core/SliceActionImpl.java
@@ -31,6 +31,7 @@
 import static android.app.slice.SliceItem.FORMAT_LONG;
 import static android.app.slice.SliceItem.FORMAT_TEXT;
 
+import static androidx.annotation.RestrictTo.Scope.LIBRARY;
 import static androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP;
 import static androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX;
 import static androidx.slice.core.SliceHints.ACTION_WITH_LABEL;
@@ -60,7 +61,6 @@
 
 /**
  * Class representing an action, supports tappable icons, custom toggle icons, and default toggles.
- * @hide
  */
 @RestrictTo(LIBRARY_GROUP_PREFIX)
 @RequiresApi(19)
@@ -119,8 +119,8 @@
      * @param actionTitle    the timestamp title for this picker.
      * @param dateTimeMillis the default state of the date or time picker.
      * @param isDatePicker   if it is a date picker, as opposed to a time picker.
-     * @hide
      */
+    @RestrictTo(LIBRARY)
     public SliceActionImpl(@NonNull PendingIntent action, @NonNull CharSequence actionTitle,
             long dateTimeMillis, boolean isDatePicker) {
         mAction = action;
@@ -194,7 +194,6 @@
      *
      * @param slice the slice item to construct the action out of.
      *
-     * @hide
      */
     @RestrictTo(LIBRARY_GROUP)
     @SuppressLint("InlinedApi")
@@ -314,7 +313,6 @@
     }
 
     /**
-     * @hide
      */
     @Nullable
     @RestrictTo(LIBRARY_GROUP_PREFIX)
@@ -498,7 +496,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(LIBRARY_GROUP_PREFIX)
     public static int parseImageMode(@NonNull SliceItem iconItem) {
diff --git a/slice/slice-core/src/main/java/androidx/slice/core/SliceHints.java b/slice/slice-core/src/main/java/androidx/slice/core/SliceHints.java
index 85d312a..e08441b 100644
--- a/slice/slice-core/src/main/java/androidx/slice/core/SliceHints.java
+++ b/slice/slice-core/src/main/java/androidx/slice/core/SliceHints.java
@@ -28,7 +28,6 @@
 
 /**
  * Temporary class to contain hint constants for slices to be used.
- * @hide
  */
 @RestrictTo(LIBRARY_GROUP_PREFIX)
 @RequiresApi(19)
diff --git a/slice/slice-core/src/main/java/androidx/slice/core/SliceQuery.java b/slice/slice-core/src/main/java/androidx/slice/core/SliceQuery.java
index 684de91..3111e1b 100644
--- a/slice/slice-core/src/main/java/androidx/slice/core/SliceQuery.java
+++ b/slice/slice-core/src/main/java/androidx/slice/core/SliceQuery.java
@@ -37,7 +37,6 @@
 
 /**
  * Utilities for finding content within a Slice.
- * @hide
  */
 @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP_PREFIX)
 @RequiresApi(19)
diff --git a/slice/slice-remotecallback/lint-baseline.xml b/slice/slice-remotecallback/lint-baseline.xml
deleted file mode 100644
index 5f18321..0000000
--- a/slice/slice-remotecallback/lint-baseline.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 8.1.0-alpha07" type="baseline" client="gradle" dependencies="false" name="AGP (8.0.0-beta03)" variant="all" version="8.1.0-alpha07">
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public RemoteCallback toRemoteCallback(@NonNull Class&lt;T> cls, @NonNull Context context,"
-        errorLine2="                          ~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/remotecallback/RemoteSliceProvider.java"/>
-    </issue>
-
-</issues>
diff --git a/slice/slice-remotecallback/src/main/java/androidx/slice/remotecallback/RemoteSliceProvider.java b/slice/slice-remotecallback/src/main/java/androidx/slice/remotecallback/RemoteSliceProvider.java
index c8ca571..be81d93 100644
--- a/slice/slice-remotecallback/src/main/java/androidx/slice/remotecallback/RemoteSliceProvider.java
+++ b/slice/slice-remotecallback/src/main/java/androidx/slice/remotecallback/RemoteSliceProvider.java
@@ -77,7 +77,6 @@
     /**
      * Note: Only visible because metalava doesn't realize this is hidden. Will properly
      * disappear when we have support for androidx-level @RestrictTo.
-     * @hide
      */
     @NonNull
     @Override
diff --git a/slice/slice-test/lint-baseline.xml b/slice/slice-test/lint-baseline.xml
index 59a7e74..9003689 100644
--- a/slice/slice-test/lint-baseline.xml
+++ b/slice/slice-test/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 8.0.0-alpha05" type="baseline" client="gradle" dependencies="false" name="AGP (8.0.0-alpha05)" variant="all" version="8.0.0-alpha05">
+<issues format="6" by="lint 8.1.0-beta02" type="baseline" client="gradle" dependencies="false" name="AGP (8.1.0-beta02)" variant="all" version="8.1.0-beta02">
 
     <issue
         id="UnspecifiedImmutableFlag"
diff --git a/slice/slice-view/api/current.txt b/slice/slice-view/api/current.txt
index 9ba9a2f..91918d9 100644
--- a/slice/slice-view/api/current.txt
+++ b/slice/slice-view/api/current.txt
@@ -152,8 +152,8 @@
     method public androidx.slice.widget.GridRowView getGridRowView();
     method public int getItemCount();
     method public androidx.slice.widget.RowView getRowView();
-    method public void onBindViewHolder(androidx.slice.widget.SliceAdapter.SliceViewHolder, int);
-    method public androidx.slice.widget.SliceAdapter.SliceViewHolder onCreateViewHolder(android.view.ViewGroup, int);
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY) public void onBindViewHolder(androidx.slice.widget.SliceAdapter.SliceViewHolder, int);
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY) public androidx.slice.widget.SliceAdapter.SliceViewHolder onCreateViewHolder(android.view.ViewGroup, int);
   }
 
   @RequiresApi(19) public abstract class SliceChildView extends android.widget.FrameLayout {
diff --git a/slice/slice-view/api/restricted_current.txt b/slice/slice-view/api/restricted_current.txt
index f46664b..9f3c43a 100644
--- a/slice/slice-view/api/restricted_current.txt
+++ b/slice/slice-view/api/restricted_current.txt
@@ -210,8 +210,8 @@
     method public androidx.slice.widget.GridRowView getGridRowView();
     method public int getItemCount();
     method public androidx.slice.widget.RowView getRowView();
-    method public void onBindViewHolder(androidx.slice.widget.SliceAdapter.SliceViewHolder, int);
-    method public androidx.slice.widget.SliceAdapter.SliceViewHolder onCreateViewHolder(android.view.ViewGroup, int);
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY) public void onBindViewHolder(androidx.slice.widget.SliceAdapter.SliceViewHolder, int);
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY) public androidx.slice.widget.SliceAdapter.SliceViewHolder onCreateViewHolder(android.view.ViewGroup, int);
   }
 
   @RequiresApi(19) public abstract class SliceChildView extends android.widget.FrameLayout {
diff --git a/slice/slice-view/lint-baseline.xml b/slice/slice-view/lint-baseline.xml
index d002e99..d89abc3 100644
--- a/slice/slice-view/lint-baseline.xml
+++ b/slice/slice-view/lint-baseline.xml
@@ -1,1661 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 8.1.0-alpha07" type="baseline" client="gradle" dependencies="false" name="AGP (8.0.0-beta03)" variant="all" version="8.1.0-alpha07">
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="public class ActionRow extends FrameLayout {"
-        errorLine2="             ~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/ActionRow.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="class DisplayedListItems {"
-        errorLine2="      ~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/DisplayedListItems.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public @interface SliceRowType {}"
-        errorLine2="                      ~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/EventInfo.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public static final int ROW_TYPE_DATE_PICK = 7;"
-        errorLine2="                            ~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/EventInfo.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public static final int ROW_TYPE_TIME_PICK = 8;"
-        errorLine2="                            ~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/EventInfo.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public @interface SliceActionType{}"
-        errorLine2="                      ~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/EventInfo.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public static final int ACTION_TYPE_DATE_PICK = 6;"
-        errorLine2="                            ~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/EventInfo.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public static final int ACTION_TYPE_TIME_PICK = 7;"
-        errorLine2="                            ~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/EventInfo.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public @interface SliceButtonPosition {"
-        errorLine2="                      ~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/EventInfo.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public GridContent(@NonNull SliceItem gridItem, int position) {"
-        errorLine2="           ~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/GridContent.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public CharSequence getTitle() {"
-        errorLine2="                        ~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/GridContent.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public ArrayList&lt;CellContent> getGridContent() {"
-        errorLine2="                                  ~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/GridContent.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public SliceItem getContentIntent() {"
-        errorLine2="                     ~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/GridContent.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public SliceItem getSeeMoreItem() {"
-        errorLine2="                     ~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/GridContent.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public boolean isAllImages() {"
-        errorLine2="                   ~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/GridContent.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public int getLargestImageMode() {"
-        errorLine2="               ~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/GridContent.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public int getMaxCellLineCount() {"
-        errorLine2="               ~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/GridContent.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public boolean hasImage() {"
-        errorLine2="                   ~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/GridContent.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public boolean getIsLastIndex() { return mIsLastIndex; }"
-        errorLine2="                   ~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/GridContent.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public void setIsLastIndex(boolean isLast) {"
-        errorLine2="                ~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/GridContent.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public int getHeight(@NonNull SliceStyle style, @NonNull SliceViewPolicy policy) {"
-        errorLine2="               ~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/GridContent.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public static class CellContent {"
-        errorLine2="                        ~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/GridContent.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    protected final View mForeground;"
-        errorLine2="                         ~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/GridRowView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    protected int mRowIndex;"
-        errorLine2="                  ~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/GridRowView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    protected int mRowCount;"
-        errorLine2="                  ~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/GridRowView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    protected int mMaxCells = -1;"
-        errorLine2="                  ~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/GridRowView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    protected @Nullable GridContent mGridContent;"
-        errorLine2="                                    ~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/GridRowView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    protected final int mLargeImageHeight;"
-        errorLine2="                        ~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/GridRowView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    protected final int mSmallImageSize;"
-        errorLine2="                        ~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/GridRowView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    protected final int mSmallImageMinWidth;"
-        errorLine2="                        ~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/GridRowView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    protected final int mIconSize;"
-        errorLine2="                        ~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/GridRowView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    protected final LinearLayout mViewContainer;"
-        errorLine2="                                 ~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/GridRowView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public void setInsets(int l, int t, int r, int b) {"
-        errorLine2="                ~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/GridRowView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public void setTint(@ColorInt int tintColor) {"
-        errorLine2="                ~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/GridRowView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public void onClick(@NonNull View view) {"
-        errorLine2="                ~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/GridRowView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public boolean onTouch(@NonNull View view, @NonNull MotionEvent event) {"
-        errorLine2="                   ~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/GridRowView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public int getHiddenItemCount() {"
-        errorLine2="               ~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/GridRowView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="public class ListContent extends SliceContent {"
-        errorLine2="             ~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/ListContent.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="public class LocationBasedViewTracker implements Runnable, View.OnLayoutChangeListener {"
-        errorLine2="             ~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/LocationBasedViewTracker.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public static void trackInputFocused(ViewGroup parent) {"
-        errorLine2="                       ~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/LocationBasedViewTracker.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public static void trackA11yFocus(ViewGroup parent) {"
-        errorLine2="                       ~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/LocationBasedViewTracker.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="public class MessageView extends SliceChildView {"
-        errorLine2="             ~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/MessageView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="public class RemoteInputView extends LinearLayout implements View.OnClickListener, TextWatcher {"
-        errorLine2="             ~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/RemoteInputView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public void setRevealParameters(int cx, int cy, int r) {"
-        errorLine2="                ~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/RemoteInputView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public static final boolean isConfirmKey(int keyCode) {"
-        errorLine2="                                ~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/RemoteInputView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="public class RowContent extends SliceContent {"
-        errorLine2="             ~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/RowContent.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public int getHeight(SliceStyle style, SliceViewPolicy policy) {"
-        errorLine2="               ~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/RowContent.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="public class RowStyle {"
-        errorLine2="             ~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/RowStyle.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    protected Set&lt;SliceItem> mLoadingActions = new HashSet&lt;>();"
-        errorLine2="                             ~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/RowView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public void setStyle(SliceStyle styles, RowStyle rowStyle) {"
-        errorLine2="                ~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/RowView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public void setInsets(int l, int t, int r, int b) {"
-        errorLine2="                ~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/RowView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public void setTint(@ColorInt int tintColor) {"
-        errorLine2="                ~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/RowView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public void setSliceActions(List&lt;SliceAction> actions) {"
-        errorLine2="                ~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/RowView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public void setShowLastUpdated(boolean showLastUpdated) {"
-        errorLine2="                ~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/RowView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public void setAllowTwoLines(boolean allowTwoLines) {"
-        errorLine2="                ~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/RowView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public void setLastUpdated(long lastUpdated) {"
-        errorLine2="                ~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/RowView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public void setLoadingActions(Set&lt;SliceItem> actions) {"
-        errorLine2="                ~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/RowView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public void resetView() {"
-        errorLine2="                ~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/RowView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="public class ShortcutView extends SliceChildView {"
-        errorLine2="             ~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/ShortcutView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="public class SliceActionView extends FrameLayout implements View.OnClickListener,"
-        errorLine2="             ~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/SliceActionView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public void setParents(SliceView parent, TemplateView templateView) {"
-        errorLine2="                ~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/SliceAdapter.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public void setInsets(int l, int t, int r, int b) {"
-        errorLine2="                ~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/SliceAdapter.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public void setSliceObserver(SliceView.OnSliceActionListener observer) {"
-        errorLine2="                ~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/SliceAdapter.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public void setSliceActions(List&lt;SliceAction> actions) {"
-        errorLine2="                ~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/SliceAdapter.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public void setSliceItems(List&lt;SliceContent> slices, int color, int mode) {"
-        errorLine2="                ~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/SliceAdapter.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public void setStyle(SliceStyle style) {"
-        errorLine2="                ~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/SliceAdapter.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public void setPolicy(SliceViewPolicy p) {"
-        errorLine2="                ~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/SliceAdapter.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public void setShowLastUpdated(boolean showLastUpdated) {"
-        errorLine2="                ~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/SliceAdapter.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public void setLastUpdated(long lastUpdated) {"
-        errorLine2="                ~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/SliceAdapter.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public void setLoadingActions(Set&lt;SliceItem> actions) {"
-        errorLine2="                ~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/SliceAdapter.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public Set&lt;SliceItem> getLoadingActions() {"
-        errorLine2="                          ~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/SliceAdapter.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public void onSliceActionLoading(SliceItem actionItem, int position) {"
-        errorLine2="                ~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/SliceAdapter.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public void setAllowTwoLines(boolean allowTwoLines) {"
-        errorLine2="                ~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/SliceAdapter.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public void notifyHeaderChanged() {"
-        errorLine2="                ~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/SliceAdapter.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public SliceViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {"
-        errorLine2="                           ~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/SliceAdapter.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public void onBindViewHolder(@NonNull SliceViewHolder holder, int position) {"
-        errorLine2="                ~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/SliceAdapter.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    protected static class SliceWrapper {"
-        errorLine2="                           ~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/SliceAdapter.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public class SliceViewHolder extends RecyclerView.ViewHolder implements View.OnTouchListener,"
-        errorLine2="                 ~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/SliceAdapter.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    protected SliceView.OnSliceActionListener mObserver;"
-        errorLine2="                                              ~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/SliceChildView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    protected int mMode;"
-        errorLine2="                  ~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/SliceChildView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    protected int mTintColor = -1;"
-        errorLine2="                  ~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/SliceChildView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    protected boolean mShowLastUpdated;"
-        errorLine2="                      ~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/SliceChildView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    protected long mLastUpdated = -1;"
-        errorLine2="                   ~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/SliceChildView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    protected int mInsetStart;"
-        errorLine2="                  ~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/SliceChildView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    protected int mInsetTop;"
-        errorLine2="                  ~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/SliceChildView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    protected int mInsetEnd;"
-        errorLine2="                  ~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/SliceChildView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    protected int mInsetBottom;"
-        errorLine2="                  ~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/SliceChildView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    protected SliceActionView.SliceActionLoadingListener mLoadingListener;"
-        errorLine2="                                                         ~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/SliceChildView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    protected SliceStyle mSliceStyle;"
-        errorLine2="                         ~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/SliceChildView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    protected RowStyle mRowStyle;"
-        errorLine2="                       ~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/SliceChildView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    protected SliceViewPolicy mViewPolicy;"
-        errorLine2="                              ~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/SliceChildView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public void setSliceContent(ListContent content) {"
-        errorLine2="                ~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/SliceChildView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public void setInsets(int l, int t, int r, int b) {"
-        errorLine2="                ~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/SliceChildView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public void setSliceActions(List&lt;SliceAction> actions) {"
-        errorLine2="                ~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/SliceChildView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public int getMode() {"
-        errorLine2="               ~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/SliceChildView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public void setTint(@ColorInt int tintColor) {"
-        errorLine2="                ~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/SliceChildView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public void setShowLastUpdated(boolean showLastUpdated) {"
-        errorLine2="                ~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/SliceChildView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public void setLastUpdated(long lastUpdated) {"
-        errorLine2="                ~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/SliceChildView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public void setSliceActionListener(SliceView.OnSliceActionListener observer) {"
-        errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/SliceChildView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public void setSliceActionLoadingListener(SliceActionView.SliceActionLoadingListener listener) {"
-        errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/SliceChildView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public void setActionLoading(SliceItem item) {"
-        errorLine2="                ~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/SliceChildView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public void setLoadingActions(Set&lt;SliceItem> loadingActions) {"
-        errorLine2="                ~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/SliceChildView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public void setAllowTwoLines(boolean allowTwoLines) {"
-        errorLine2="                ~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/SliceChildView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public Set&lt;SliceItem> getLoadingActions() {"
-        errorLine2="                          ~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/SliceChildView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public void setStyle(SliceStyle styles, @NonNull RowStyle rowStyle) {"
-        errorLine2="                ~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/SliceChildView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public void setPolicy(@Nullable SliceViewPolicy policy) {"
-        errorLine2="                ~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/SliceChildView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public int getHiddenItemCount() {"
-        errorLine2="               ~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/SliceChildView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    protected SliceItem mSliceItem;"
-        errorLine2="                        ~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/SliceContent.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    protected SliceItem mColorItem;"
-        errorLine2="                        ~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/SliceContent.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    protected SliceItem mLayoutDirItem;"
-        errorLine2="                        ~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/SliceContent.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    protected SliceItem mContentDescr;"
-        errorLine2="                        ~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/SliceContent.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    protected int mRowIndex;"
-        errorLine2="                  ~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/SliceContent.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public SliceContent(@Nullable SliceItem item, int rowIndex) {"
-        errorLine2="           ~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/SliceContent.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public SliceItem getSliceItem() {"
-        errorLine2="                     ~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/SliceContent.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public int getAccentColor() {"
-        errorLine2="               ~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/SliceContent.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public int getLayoutDir() {"
-        errorLine2="               ~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/SliceContent.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public CharSequence getContentDescription() {"
-        errorLine2="                        ~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/SliceContent.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public int getRowIndex() { return mRowIndex; }"
-        errorLine2="               ~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/SliceContent.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public int getHeight(SliceStyle style, SliceViewPolicy policy) {"
-        errorLine2="               ~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/SliceContent.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public boolean isValid() {"
-        errorLine2="                   ~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/SliceContent.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public SliceAction getShortcut(@Nullable Context context) {"
-        errorLine2="                       ~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/SliceContent.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public static final SliceSpec OLD_BASIC = new SliceSpec(&quot;androidx.app.slice.BASIC&quot;, 1);"
-        errorLine2="                                  ~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/SliceLiveData.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public static final SliceSpec OLD_LIST = new SliceSpec(&quot;androidx.app.slice.LIST&quot;, 1);"
-        errorLine2="                                  ~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/SliceLiveData.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public static final Set&lt;SliceSpec> SUPPORTED_SPECS = new ArraySet&lt;>("
-        errorLine2="                                       ~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/SliceLiveData.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public static CachedSliceLiveData fromStream(@NonNull Context context,"
-        errorLine2="                                      ~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/SliceLiveData.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        protected synchronized void loadInitialSlice() {"
-        errorLine2="                                    ~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/SliceLiveData.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        protected void updateSlice() {"
-        errorLine2="                       ~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/SliceLiveData.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public @interface SliceLoadingState{}"
-        errorLine2="                      ~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/SliceMetadata.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public static List&lt;SliceAction> getSliceActions(@NonNull Slice slice) {"
-        errorLine2="                                    ~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/SliceMetadata.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public boolean isExpired() {"
-        errorLine2="                   ~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/SliceMetadata.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public boolean neverExpires() {"
-        errorLine2="                   ~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/SliceMetadata.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public long getTimeToExpiry() {"
-        errorLine2="                ~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/SliceMetadata.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public ListContent getListContent() {"
-        errorLine2="                       ~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/SliceMetadata.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="class SliceMetrics {"
-        errorLine2="      ~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/SliceMetrics.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="class SliceMetricsWrapper extends SliceMetrics {"
-        errorLine2="      ~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/SliceMetricsWrapper.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public SliceStructure(SliceItem s) {"
-        errorLine2="           ~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/SliceStructure.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public Uri getUri() {"
-        errorLine2="               ~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/SliceStructure.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="public class SliceStyle {"
-        errorLine2="             ~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/SliceStyle.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public static IconCompat convert(Context context, IconCompat icon, SerializeOptions options) {"
-        errorLine2="                             ~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/SliceUtils.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public static int parseImageMode(@NonNull SliceItem iconItem) {"
-        errorLine2="                      ~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/SliceUtils.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public void checkThrow(String format) {"
-        errorLine2="                    ~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/SliceUtils.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public @FormatMode int getActionMode() {"
-        errorLine2="                               ~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/SliceUtils.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public @FormatMode int getImageMode() {"
-        errorLine2="                               ~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/SliceUtils.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public int getMaxWidth() {"
-        errorLine2="                   ~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/SliceUtils.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public int getMaxHeight() {"
-        errorLine2="                   ~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/SliceUtils.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public Bitmap.CompressFormat getFormat() {"
-        errorLine2="                                     ~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/SliceUtils.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public int getQuality() {"
-        errorLine2="                   ~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/SliceUtils.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public SliceParseException(String s, Throwable e) {"
-        errorLine2="               ~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/SliceUtils.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public SliceParseException(String s) {"
-        errorLine2="               ~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/SliceUtils.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public @interface SliceMode {}"
-        errorLine2="                      ~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/SliceView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public boolean isSliceViewClickable() {"
-        errorLine2="                   ~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/SliceView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public void setClickInfo(int[] info) {"
-        errorLine2="                ~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/SliceView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public void setMode(@SliceMode int mode, boolean animate) {"
-        errorLine2="                ~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/SliceView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public void setShowActionRow(boolean show) {"
-        errorLine2="                ~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/SliceView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public boolean isShowingActionRow() {"
-        errorLine2="                   ~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/SliceView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public static String modeToString(@SliceMode int mode) {"
-        errorLine2="                         ~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/SliceView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public static final Comparator&lt;SliceAction> SLICE_ACTION_PRIORITY_COMPARATOR ="
-        errorLine2="                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/SliceView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    SliceViewManager() {"
-        errorLine2="    ~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/SliceViewManager.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="public abstract class SliceViewManagerBase extends SliceViewManager {"
-        errorLine2="                      ~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/SliceViewManagerBase.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="class SliceViewManagerCompat extends SliceViewManagerBase {"
-        errorLine2="      ~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/SliceViewManagerCompat.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="class SliceViewManagerWrapper extends SliceViewManagerBase {"
-        errorLine2="      ~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/SliceViewManagerWrapper.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="public class SliceViewPolicy {"
-        errorLine2="             ~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/SliceViewPolicy.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="public class SliceViewUtil {"
-        errorLine2="             ~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/SliceViewUtil.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="class SliceXml {"
-        errorLine2="      ~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/SliceXml.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public void setInsets(int l, int t, int r, int b) {"
-        errorLine2="                ~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/TemplateView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public void onForegroundActivated(MotionEvent event) {"
-        errorLine2="                ~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/TemplateView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public void setPolicy(SliceViewPolicy policy) {"
-        errorLine2="                ~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/TemplateView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public void setActionLoading(SliceItem item) {"
-        errorLine2="                ~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/TemplateView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public void setLoadingActions(Set&lt;SliceItem> loadingActions) {"
-        errorLine2="                ~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/TemplateView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public Set&lt;SliceItem> getLoadingActions() {"
-        errorLine2="                          ~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/TemplateView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public void setTint(int tint) {"
-        errorLine2="                ~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/TemplateView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public void setSliceActionListener(SliceView.OnSliceActionListener observer) {"
-        errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/TemplateView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public void setSliceActions(List&lt;SliceAction> actions) {"
-        errorLine2="                ~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/TemplateView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public void setSliceContent(ListContent sliceContent) {"
-        errorLine2="                ~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/TemplateView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public void setStyle(SliceStyle style, @NonNull RowStyle rowStyle) {"
-        errorLine2="                ~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/TemplateView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public void setShowLastUpdated(boolean showLastUpdated) {"
-        errorLine2="                ~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/TemplateView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public void setLastUpdated(long lastUpdated) {"
-        errorLine2="                ~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/TemplateView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public void setAllowTwoLines(boolean allowTwoLines) {"
-        errorLine2="                ~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/TemplateView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public void resetView() {"
-        errorLine2="                ~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/TemplateView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public void onScrollingChanged(boolean newScrolling) {"
-        errorLine2="                ~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/TemplateView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public void onMaxHeightChanged(int newNewHeight) {"
-        errorLine2="                ~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/TemplateView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public void onMaxSmallChanged(int newMaxSmallHeight) {"
-        errorLine2="                ~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/TemplateView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public void onModeChanged(int newMode) {"
-        errorLine2="                ~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/TemplateView.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public int getHiddenItemCount() {"
-        errorLine2="               ~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/slice/widget/TemplateView.java"/>
-    </issue>
+<issues format="6" by="lint 8.1.0-beta02" type="baseline" client="gradle" dependencies="false" name="AGP (8.1.0-beta02)" variant="all" version="8.1.0-beta02">
 
     <issue
         id="BanSynchronizedMethods"
diff --git a/slice/slice-view/src/main/java/androidx/slice/SliceMetadata.java b/slice/slice-view/src/main/java/androidx/slice/SliceMetadata.java
index 545fe54..edbc303 100644
--- a/slice/slice-view/src/main/java/androidx/slice/SliceMetadata.java
+++ b/slice/slice-view/src/main/java/androidx/slice/SliceMetadata.java
@@ -76,7 +76,6 @@
 public class SliceMetadata {
 
     /**
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     @IntDef({
@@ -468,7 +467,6 @@
 
     /**
      * @return the group of slice actions associated with the provided slice, if they exist.
-     * @hide
      */
     @Nullable
     @RestrictTo(RestrictTo.Scope.LIBRARY)
@@ -490,7 +488,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     public boolean isExpired() {
@@ -499,7 +496,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     public boolean neverExpires() {
@@ -507,7 +503,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     public long getTimeToExpiry() {
@@ -517,7 +512,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     public ListContent getListContent() {
diff --git a/slice/slice-view/src/main/java/androidx/slice/SliceStructure.java b/slice/slice-view/src/main/java/androidx/slice/SliceStructure.java
index d73d691..f4f1f27 100644
--- a/slice/slice-view/src/main/java/androidx/slice/SliceStructure.java
+++ b/slice/slice-view/src/main/java/androidx/slice/SliceStructure.java
@@ -56,7 +56,6 @@
 
     /**
      * Create a SliceStructure.
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     public SliceStructure(SliceItem s) {
@@ -72,7 +71,6 @@
 
     /**
      * @return the Uri associated with this content item if one exists.
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     @Nullable
diff --git a/slice/slice-view/src/main/java/androidx/slice/SliceUtils.java b/slice/slice-view/src/main/java/androidx/slice/SliceUtils.java
index cf42a848..46f1d35 100644
--- a/slice/slice-view/src/main/java/androidx/slice/SliceUtils.java
+++ b/slice/slice-view/src/main/java/androidx/slice/SliceUtils.java
@@ -236,7 +236,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     public static IconCompat convert(Context context, IconCompat icon, SerializeOptions options) {
@@ -314,7 +313,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     public static int parseImageMode(@NonNull SliceItem iconItem) {
@@ -375,7 +373,6 @@
         private int mQuality = 100;
 
         /**
-         * @hide
          */
         @RestrictTo(RestrictTo.Scope.LIBRARY)
         public void checkThrow(String format) {
@@ -394,7 +391,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(RestrictTo.Scope.LIBRARY)
         public @FormatMode int getActionMode() {
@@ -402,7 +398,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(RestrictTo.Scope.LIBRARY)
         public @FormatMode int getImageMode() {
@@ -410,7 +405,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(RestrictTo.Scope.LIBRARY)
         public int getMaxWidth() {
@@ -418,7 +412,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(RestrictTo.Scope.LIBRARY)
         public int getMaxHeight() {
@@ -426,7 +419,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(RestrictTo.Scope.LIBRARY)
         public Bitmap.CompressFormat getFormat() {
@@ -434,7 +426,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(RestrictTo.Scope.LIBRARY)
         public int getQuality() {
@@ -527,7 +518,6 @@
      */
     public static class SliceParseException extends Exception {
         /**
-         * @hide
          */
         @RestrictTo(RestrictTo.Scope.LIBRARY)
         public SliceParseException(String s, Throwable e) {
@@ -535,7 +525,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(RestrictTo.Scope.LIBRARY)
         public SliceParseException(String s) {
diff --git a/slice/slice-view/src/main/java/androidx/slice/SliceViewManager.java b/slice/slice-view/src/main/java/androidx/slice/SliceViewManager.java
index 0d2b294..95c0d6d 100644
--- a/slice/slice-view/src/main/java/androidx/slice/SliceViewManager.java
+++ b/slice/slice-view/src/main/java/androidx/slice/SliceViewManager.java
@@ -50,7 +50,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     SliceViewManager() {
diff --git a/slice/slice-view/src/main/java/androidx/slice/SliceViewManagerBase.java b/slice/slice-view/src/main/java/androidx/slice/SliceViewManagerBase.java
index 4ab5626..217d0f17d 100644
--- a/slice/slice-view/src/main/java/androidx/slice/SliceViewManagerBase.java
+++ b/slice/slice-view/src/main/java/androidx/slice/SliceViewManagerBase.java
@@ -34,7 +34,6 @@
 import java.util.concurrent.Executor;
 
 /**
- * @hide
  */
 @RestrictTo(RestrictTo.Scope.LIBRARY)
 @RequiresApi(19)
diff --git a/slice/slice-view/src/main/java/androidx/slice/SliceViewManagerCompat.java b/slice/slice-view/src/main/java/androidx/slice/SliceViewManagerCompat.java
index b129081..1c1d436 100644
--- a/slice/slice-view/src/main/java/androidx/slice/SliceViewManagerCompat.java
+++ b/slice/slice-view/src/main/java/androidx/slice/SliceViewManagerCompat.java
@@ -33,7 +33,6 @@
 
 
 /**
- * @hide
  */
 @RestrictTo(RestrictTo.Scope.LIBRARY)
 @RequiresApi(19)
diff --git a/slice/slice-view/src/main/java/androidx/slice/SliceViewManagerWrapper.java b/slice/slice-view/src/main/java/androidx/slice/SliceViewManagerWrapper.java
index 5c9989d..c4364d9 100644
--- a/slice/slice-view/src/main/java/androidx/slice/SliceViewManagerWrapper.java
+++ b/slice/slice-view/src/main/java/androidx/slice/SliceViewManagerWrapper.java
@@ -40,7 +40,6 @@
 import java.util.Set;
 
 /**
- * @hide
  */
 @RestrictTo(RestrictTo.Scope.LIBRARY)
 @RequiresApi(api = 28)
diff --git a/slice/slice-view/src/main/java/androidx/slice/SliceXml.java b/slice/slice-view/src/main/java/androidx/slice/SliceXml.java
index aa8b562..1251afb 100644
--- a/slice/slice-view/src/main/java/androidx/slice/SliceXml.java
+++ b/slice/slice-view/src/main/java/androidx/slice/SliceXml.java
@@ -56,7 +56,6 @@
 import java.util.List;
 
 /**
- * @hide
  */
 @RestrictTo(RestrictTo.Scope.LIBRARY)
 @RequiresApi(19)
diff --git a/slice/slice-view/src/main/java/androidx/slice/widget/ActionRow.java b/slice/slice-view/src/main/java/androidx/slice/widget/ActionRow.java
index efd9763..15f0ac0 100644
--- a/slice/slice-view/src/main/java/androidx/slice/widget/ActionRow.java
+++ b/slice/slice-view/src/main/java/androidx/slice/widget/ActionRow.java
@@ -51,7 +51,6 @@
 import java.util.List;
 
 /**
- * @hide
  */
 @RestrictTo(RestrictTo.Scope.LIBRARY)
 @RequiresApi(19)
diff --git a/slice/slice-view/src/main/java/androidx/slice/widget/DisplayedListItems.java b/slice/slice-view/src/main/java/androidx/slice/widget/DisplayedListItems.java
index b815243..4b5ee95 100644
--- a/slice/slice-view/src/main/java/androidx/slice/widget/DisplayedListItems.java
+++ b/slice/slice-view/src/main/java/androidx/slice/widget/DisplayedListItems.java
@@ -23,7 +23,6 @@
 /**
  * The slice items we can render on the available space.
  *
- * @hide
  */
 @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP_PREFIX)
 class DisplayedListItems {
diff --git a/slice/slice-view/src/main/java/androidx/slice/widget/EventInfo.java b/slice/slice-view/src/main/java/androidx/slice/widget/EventInfo.java
index 2220d02..db5231f 100644
--- a/slice/slice-view/src/main/java/androidx/slice/widget/EventInfo.java
+++ b/slice/slice-view/src/main/java/androidx/slice/widget/EventInfo.java
@@ -30,7 +30,6 @@
 public class EventInfo {
 
     /**
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     @IntDef({
@@ -82,19 +81,16 @@
     public static final int ROW_TYPE_SELECTION = 6;
     /**
      * Indicates the row represents a date selection (date picker).
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)
     public static final int ROW_TYPE_DATE_PICK = 7;
     /**
      * Indicates the row represents a time selection (time picker).
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)
     public static final int ROW_TYPE_TIME_PICK = 8;
 
     /**
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     @IntDef({
@@ -134,19 +130,16 @@
     public static final int ACTION_TYPE_SELECTION = 5;
     /**
      * Indicates the event was a selection from a date picker.
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)
     public static final int ACTION_TYPE_DATE_PICK = 6;
     /**
      * Indicates the event was a selection from a time picker.
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)
     public static final int ACTION_TYPE_TIME_PICK = 7;
 
     /**
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     @IntDef({
diff --git a/slice/slice-view/src/main/java/androidx/slice/widget/GridContent.java b/slice/slice-view/src/main/java/androidx/slice/widget/GridContent.java
index b6c1724..ee38115 100644
--- a/slice/slice-view/src/main/java/androidx/slice/widget/GridContent.java
+++ b/slice/slice-view/src/main/java/androidx/slice/widget/GridContent.java
@@ -72,7 +72,6 @@
     private SliceItem mTitleItem;
 
     /**
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP_PREFIX)
     public GridContent(@NonNull SliceItem gridItem, int position) {
@@ -133,7 +132,6 @@
 
     /**
      * @return the title of this grid row, if it exists.
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP_PREFIX)
     @Nullable
@@ -148,7 +146,6 @@
 
     /**
      * @return the list of cell content for this grid.
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP_PREFIX)
     @NonNull
@@ -158,7 +155,6 @@
 
     /**
      * @return the content intent item for this grid.
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP_PREFIX)
     @Nullable
@@ -168,7 +164,6 @@
 
     /**
      * @return the see more item to use when not all items in the grid can be displayed.
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP_PREFIX)
     @Nullable
@@ -186,7 +181,6 @@
 
     /**
      * @return whether the contents of this grid is just images.
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP_PREFIX)
     public boolean isAllImages() {
@@ -195,7 +189,6 @@
 
     /**
      * @return the largest image size in this row, if there are images.
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP_PREFIX)
     public int getLargestImageMode() {
@@ -242,7 +235,6 @@
 
     /**
      * @return the max number of lines of text in the cells of this grid row.
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP_PREFIX)
     public int getMaxCellLineCount() {
@@ -251,7 +243,6 @@
 
     /**
      * @return whether this row contains an image.
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP_PREFIX)
     public boolean hasImage() {
@@ -260,14 +251,12 @@
 
     /**
      * @return whether this content is being displayed last in a list.
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP_PREFIX)
     public boolean getIsLastIndex() { return mIsLastIndex; }
 
     /**
      * Sets whether this content is being displayed last in a list.
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP_PREFIX)
     public void setIsLastIndex(boolean isLast) {
@@ -275,7 +264,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     @Override
@@ -286,7 +274,6 @@
     /**
      * Extracts information required to present content in a cell.
      *
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP_PREFIX)
     public static class CellContent {
diff --git a/slice/slice-view/src/main/java/androidx/slice/widget/GridRowView.java b/slice/slice-view/src/main/java/androidx/slice/widget/GridRowView.java
index 10215a4..9bbd5de 100644
--- a/slice/slice-view/src/main/java/androidx/slice/widget/GridRowView.java
+++ b/slice/slice-view/src/main/java/androidx/slice/widget/GridRowView.java
@@ -110,44 +110,44 @@
     private int mHiddenItemCount;
 
     /**
-     * @hide
      */
+    @RestrictTo(RestrictTo.Scope.LIBRARY)
     protected final View mForeground;
     /**
-     * @hide
      */
+    @RestrictTo(RestrictTo.Scope.LIBRARY)
     protected int mRowIndex;
     /**
-     * @hide
      */
+    @RestrictTo(RestrictTo.Scope.LIBRARY)
     protected int mRowCount;
     /**
-     * @hide
      */
+    @RestrictTo(RestrictTo.Scope.LIBRARY)
     protected int mMaxCells = -1;
     /**
-     * @hide
      */
+    @RestrictTo(RestrictTo.Scope.LIBRARY)
     protected @Nullable GridContent mGridContent;
     /**
-     * @hide
      */
+    @RestrictTo(RestrictTo.Scope.LIBRARY)
     protected final int mLargeImageHeight;
     /**
-     * @hide
      */
+    @RestrictTo(RestrictTo.Scope.LIBRARY)
     protected final int mSmallImageSize;
     /**
-     * @hide
      */
+    @RestrictTo(RestrictTo.Scope.LIBRARY)
     protected final int mSmallImageMinWidth;
     /**
-     * @hide
      */
+    @RestrictTo(RestrictTo.Scope.LIBRARY)
     protected final int mIconSize;
     /**
-     * @hide
      */
+    @RestrictTo(RestrictTo.Scope.LIBRARY)
     protected final LinearLayout mViewContainer;
 
     public GridRowView(@NonNull Context context) {
@@ -173,7 +173,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     @Override
@@ -215,7 +214,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     @Override
@@ -776,7 +774,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     @Override
@@ -802,7 +799,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     @Override
@@ -840,7 +836,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     @Override
diff --git a/slice/slice-view/src/main/java/androidx/slice/widget/ListContent.java b/slice/slice-view/src/main/java/androidx/slice/widget/ListContent.java
index 10d5836..8151152 100644
--- a/slice/slice-view/src/main/java/androidx/slice/widget/ListContent.java
+++ b/slice/slice-view/src/main/java/androidx/slice/widget/ListContent.java
@@ -51,7 +51,6 @@
 
 /**
  * Extracts information required to present content in a list format from a slice.
- * @hide
  */
 @RestrictTo(RestrictTo.Scope.LIBRARY)
 @RequiresApi(19)
diff --git a/slice/slice-view/src/main/java/androidx/slice/widget/LocationBasedViewTracker.java b/slice/slice-view/src/main/java/androidx/slice/widget/LocationBasedViewTracker.java
index b1b3c18..0404633 100644
--- a/slice/slice-view/src/main/java/androidx/slice/widget/LocationBasedViewTracker.java
+++ b/slice/slice-view/src/main/java/androidx/slice/widget/LocationBasedViewTracker.java
@@ -32,7 +32,6 @@
 
 /**
  * Utility class to track view based on relative location to the parent.
- * @hide
  */
 @RestrictTo(RestrictTo.Scope.LIBRARY)
 public class LocationBasedViewTracker implements Runnable, View.OnLayoutChangeListener {
@@ -110,7 +109,6 @@
 
     /**
      * Tries to preserve the input focus after the next content change
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     public static void trackInputFocused(ViewGroup parent) {
@@ -122,7 +120,6 @@
 
     /**
      * Tries to preserve the accessibility focus after the next content change
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     public static void trackA11yFocus(ViewGroup parent) {
diff --git a/slice/slice-view/src/main/java/androidx/slice/widget/MessageView.java b/slice/slice-view/src/main/java/androidx/slice/widget/MessageView.java
index 4f56a9b..8e44e18 100644
--- a/slice/slice-view/src/main/java/androidx/slice/widget/MessageView.java
+++ b/slice/slice-view/src/main/java/androidx/slice/widget/MessageView.java
@@ -37,7 +37,6 @@
 import java.util.List;
 
 /**
- * @hide
  */
 @RestrictTo(RestrictTo.Scope.LIBRARY)
 @RequiresApi(19)
diff --git a/slice/slice-view/src/main/java/androidx/slice/widget/RemoteInputView.java b/slice/slice-view/src/main/java/androidx/slice/widget/RemoteInputView.java
index af12f00..09392c9 100644
--- a/slice/slice-view/src/main/java/androidx/slice/widget/RemoteInputView.java
+++ b/slice/slice-view/src/main/java/androidx/slice/widget/RemoteInputView.java
@@ -58,7 +58,6 @@
 /**
  * Host for the remote input.
  *
- * @hide
  */
 // TODO this should be unified with SystemUI RemoteInputView (b/67527720)
 @SuppressWarnings("AppCompatCustomView")
@@ -266,7 +265,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     public void setRevealParameters(int cx, int cy, int r) {
@@ -432,7 +430,6 @@
     }
 
     /** Whether key will, by default, trigger a click on the focused view.
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     public static final boolean isConfirmKey(int keyCode) {
diff --git a/slice/slice-view/src/main/java/androidx/slice/widget/RowContent.java b/slice/slice-view/src/main/java/androidx/slice/widget/RowContent.java
index dd54cb42..eed88be 100644
--- a/slice/slice-view/src/main/java/androidx/slice/widget/RowContent.java
+++ b/slice/slice-view/src/main/java/androidx/slice/widget/RowContent.java
@@ -57,7 +57,6 @@
 
 /**
  * Extracts information required to present content in a row format from a slice.
- * @hide
  */
 @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP_PREFIX)
 @RequiresApi(19)
@@ -353,7 +352,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     @Override
diff --git a/slice/slice-view/src/main/java/androidx/slice/widget/RowStyle.java b/slice/slice-view/src/main/java/androidx/slice/widget/RowStyle.java
index cf3c170..02416ac 100644
--- a/slice/slice-view/src/main/java/androidx/slice/widget/RowStyle.java
+++ b/slice/slice-view/src/main/java/androidx/slice/widget/RowStyle.java
@@ -28,7 +28,6 @@
 
 /**
  * Holds style information shared between child views of a row
- * @hide
  */
 @RestrictTo(RestrictTo.Scope.LIBRARY)
 @RequiresApi(19)
diff --git a/slice/slice-view/src/main/java/androidx/slice/widget/RowView.java b/slice/slice-view/src/main/java/androidx/slice/widget/RowView.java
index f094431..34d23e5 100644
--- a/slice/slice-view/src/main/java/androidx/slice/widget/RowView.java
+++ b/slice/slice-view/src/main/java/androidx/slice/widget/RowView.java
@@ -159,7 +159,6 @@
     private boolean mIsStarRating;
     private final ProgressBar mActionSpinner;
     /**
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     protected Set<SliceItem> mLoadingActions = new HashSet<>();
@@ -236,7 +235,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     @Override
@@ -314,7 +312,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     @Override
@@ -386,7 +383,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     @Override
@@ -402,7 +398,6 @@
      * @param actions if the actions are null then there are no header actions for this row.
      * If the actions are an empty list, then something has explicitly set that no header
      * actions should appear.
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     @Override
@@ -414,7 +409,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     @Override
@@ -426,7 +420,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     @Override
@@ -706,7 +699,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     @Override
@@ -1148,7 +1140,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     @Override
@@ -1367,7 +1358,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     @Override
diff --git a/slice/slice-view/src/main/java/androidx/slice/widget/ShortcutView.java b/slice/slice-view/src/main/java/androidx/slice/widget/ShortcutView.java
index ac95f15..89ae3d0 100644
--- a/slice/slice-view/src/main/java/androidx/slice/widget/ShortcutView.java
+++ b/slice/slice-view/src/main/java/androidx/slice/widget/ShortcutView.java
@@ -39,7 +39,6 @@
 import java.util.Set;
 
 /**
- * @hide
  */
 @RestrictTo(RestrictTo.Scope.LIBRARY)
 @RequiresApi(19)
diff --git a/slice/slice-view/src/main/java/androidx/slice/widget/SliceActionView.java b/slice/slice-view/src/main/java/androidx/slice/widget/SliceActionView.java
index 719e639..e5b20d0 100644
--- a/slice/slice-view/src/main/java/androidx/slice/widget/SliceActionView.java
+++ b/slice/slice-view/src/main/java/androidx/slice/widget/SliceActionView.java
@@ -52,7 +52,6 @@
 
 /**
  * Supports displaying {@link androidx.slice.core.SliceActionImpl}s.
- * @hide
  */
 @SuppressWarnings("AppCompatCustomView")
 @RestrictTo(LIBRARY)
diff --git a/slice/slice-view/src/main/java/androidx/slice/widget/SliceAdapter.java b/slice/slice-view/src/main/java/androidx/slice/widget/SliceAdapter.java
index 08781d8..f8ae73a 100644
--- a/slice/slice-view/src/main/java/androidx/slice/widget/SliceAdapter.java
+++ b/slice/slice-view/src/main/java/androidx/slice/widget/SliceAdapter.java
@@ -32,6 +32,7 @@
 
 import androidx.annotation.NonNull;
 import androidx.annotation.RequiresApi;
+import androidx.annotation.RestrictTo;
 import androidx.collection.ArrayMap;
 import androidx.recyclerview.widget.RecyclerView;
 import androidx.slice.SliceItem;
@@ -102,8 +103,8 @@
 
     /**
      * Sets the SliceView parent and the template parent.
-     * @hide
      */
+    @RestrictTo(RestrictTo.Scope.LIBRARY)
     public void setParents(SliceView parent, TemplateView templateView) {
         mParent = parent;
         mTemplateView = templateView;
@@ -113,8 +114,8 @@
      * Sets the insets (padding) for slice view. SliceAdapter will handle determining
      * if a child needs a particular padding, i.e. if it's the first row then the top inset
      * will be applied to it whereas subsequent rows would get a top inset of 0.
-     * @hide
      */
+    @RestrictTo(RestrictTo.Scope.LIBRARY)
     public void setInsets(int l, int t, int r, int b) {
         mInsetStart = l;
         mInsetTop = t;
@@ -124,16 +125,16 @@
 
     /**
      * Sets the observer to pass down to child views.
-     * @hide
      */
+    @RestrictTo(RestrictTo.Scope.LIBRARY)
     public void setSliceObserver(SliceView.OnSliceActionListener observer) {
         mSliceObserver = observer;
     }
 
     /**
      * Sets the actions to display for this slice, this adjusts what's displayed in the header item.
-     * @hide
      */
+    @RestrictTo(RestrictTo.Scope.LIBRARY)
     public void setSliceActions(List<SliceAction> actions) {
         mSliceActions = actions;
         notifyHeaderChanged();
@@ -141,8 +142,8 @@
 
     /**
      * Set the {@link SliceItem}'s to be displayed in the adapter and the accent color.
-     * @hide
      */
+    @RestrictTo(RestrictTo.Scope.LIBRARY)
     public void setSliceItems(List<SliceContent> slices, int color, int mode) {
         if (slices == null) {
             mLoadingActions.clear();
@@ -160,8 +161,8 @@
 
     /**
      * Sets the style information to use for views in this adapter.
-     * @hide
      */
+    @RestrictTo(RestrictTo.Scope.LIBRARY)
     public void setStyle(SliceStyle style) {
         mSliceStyle = style;
         notifyDataSetChanged();
@@ -169,16 +170,16 @@
 
     /**
      * Sets the policy information to use for views in this adapter.
-     * @hide
      */
+    @RestrictTo(RestrictTo.Scope.LIBRARY)
     public void setPolicy(SliceViewPolicy p) {
         mPolicy = p;
     }
 
     /**
      * Sets whether the last updated time should be shown on the slice.
-     * @hide
      */
+    @RestrictTo(RestrictTo.Scope.LIBRARY)
     public void setShowLastUpdated(boolean showLastUpdated) {
         if (mShowLastUpdated != showLastUpdated) {
             mShowLastUpdated = showLastUpdated;
@@ -188,8 +189,8 @@
 
     /**
      * Sets when the slice was last updated.
-     * @hide
      */
+    @RestrictTo(RestrictTo.Scope.LIBRARY)
     public void setLastUpdated(long lastUpdated) {
         if (mLastUpdated != lastUpdated) {
             mLastUpdated = lastUpdated;
@@ -199,8 +200,8 @@
 
     /**
      * Indicates that no actions should be loading and updates the views.
-     * @hide
      */
+    @RestrictTo(RestrictTo.Scope.LIBRARY)
     public void setLoadingActions(Set<SliceItem> actions) {
         if (actions == null) {
             mLoadingActions.clear();
@@ -212,15 +213,15 @@
 
     /**
      * Returns the currently loading actions.
-     * @hide
      */
+    @RestrictTo(RestrictTo.Scope.LIBRARY)
     public Set<SliceItem> getLoadingActions() {
         return mLoadingActions;
     }
 
     /**
-     * @hide
      */
+    @RestrictTo(RestrictTo.Scope.LIBRARY)
     @Override
     public void onSliceActionLoading(SliceItem actionItem, int position) {
         mLoadingActions.add(actionItem);
@@ -233,8 +234,8 @@
 
     /**
      * Sets whether this slice can have 2 lines of subtitle text in the first row.
-     * @hide
      */
+    @RestrictTo(RestrictTo.Scope.LIBRARY)
     public void setAllowTwoLines(boolean allowTwoLines) {
         mAllowTwoLines = allowTwoLines;
         notifyHeaderChanged();
@@ -242,8 +243,8 @@
 
     /**
      * Notifies that content in the header of this adapter has changed.
-     * @hide
      */
+    @RestrictTo(RestrictTo.Scope.LIBRARY)
     public void notifyHeaderChanged() {
         if (getItemCount() > 0) {
             notifyItemChanged(HEADER_INDEX);
@@ -251,8 +252,8 @@
     }
 
     /**
-     * @hide
      */
+    @RestrictTo(RestrictTo.Scope.LIBRARY)
     @Override
     @NonNull
     public SliceViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
@@ -277,8 +278,8 @@
     }
 
     /**
-     * @hide
      */
+    @RestrictTo(RestrictTo.Scope.LIBRARY)
     @Override
     public void onBindViewHolder(@NonNull SliceViewHolder holder, int position) {
         SliceWrapper slice = mSlices.get(position);
@@ -320,8 +321,8 @@
     }
 
     /**
-     * @hide
      */
+    @RestrictTo(RestrictTo.Scope.LIBRARY)
     protected static class SliceWrapper {
         final SliceContent mItem;
         final int mType;
@@ -354,8 +355,8 @@
 
     /**
      * A {@link RecyclerView.ViewHolder} for presenting slices in {@link SliceAdapter}.
-     * @hide
      */
+    @RestrictTo(RestrictTo.Scope.LIBRARY)
     public class SliceViewHolder extends RecyclerView.ViewHolder implements View.OnTouchListener,
             View.OnClickListener {
         public final SliceChildView mSliceChildView;
diff --git a/slice/slice-view/src/main/java/androidx/slice/widget/SliceChildView.java b/slice/slice-view/src/main/java/androidx/slice/widget/SliceChildView.java
index 8c61fb4..b0795bf 100644
--- a/slice/slice-view/src/main/java/androidx/slice/widget/SliceChildView.java
+++ b/slice/slice-view/src/main/java/androidx/slice/widget/SliceChildView.java
@@ -40,56 +40,56 @@
 public abstract class SliceChildView extends FrameLayout {
 
     /**
-     * @hide
      */
+    @RestrictTo(RestrictTo.Scope.LIBRARY)
     protected SliceView.OnSliceActionListener mObserver;
     /**
-     * @hide
      */
+    @RestrictTo(RestrictTo.Scope.LIBRARY)
     protected int mMode;
     /**
-     * @hide
      */
+    @RestrictTo(RestrictTo.Scope.LIBRARY)
     protected int mTintColor = -1;
     /**
-     * @hide
      */
+    @RestrictTo(RestrictTo.Scope.LIBRARY)
     protected boolean mShowLastUpdated;
     /**
-     * @hide
      */
+    @RestrictTo(RestrictTo.Scope.LIBRARY)
     protected long mLastUpdated = -1;
     /**
-     * @hide
      */
+    @RestrictTo(RestrictTo.Scope.LIBRARY)
     protected int mInsetStart;
     /**
-     * @hide
      */
+    @RestrictTo(RestrictTo.Scope.LIBRARY)
     protected int mInsetTop;
     /**
-     * @hide
      */
+    @RestrictTo(RestrictTo.Scope.LIBRARY)
     protected int mInsetEnd;
     /**
-     * @hide
      */
+    @RestrictTo(RestrictTo.Scope.LIBRARY)
     protected int mInsetBottom;
     /**
-     * @hide
      */
+    @RestrictTo(RestrictTo.Scope.LIBRARY)
     protected SliceActionView.SliceActionLoadingListener mLoadingListener;
     /**
-     * @hide
      */
+    @RestrictTo(RestrictTo.Scope.LIBRARY)
     protected SliceStyle mSliceStyle;
     /**
-     * @hide
      */
+    @RestrictTo(RestrictTo.Scope.LIBRARY)
     protected RowStyle mRowStyle;
     /**
-     * @hide
      */
+    @RestrictTo(RestrictTo.Scope.LIBRARY)
     protected SliceViewPolicy mViewPolicy;
 
     public SliceChildView(@NonNull Context context) {
@@ -107,7 +107,6 @@
 
     /**
      * Sets the content to display in this slice.
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     public void setSliceContent(ListContent content) {
@@ -116,7 +115,6 @@
 
     /**
      * Sets the insets (padding) for the slice.
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     public void setInsets(int l, int t, int r, int b) {
@@ -136,7 +134,6 @@
 
     /**
      * Sets the slice actions for this view.
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     public void setSliceActions(List<SliceAction> actions) {
@@ -145,8 +142,8 @@
 
     /**
      * @return the mode of the slice being presented.
-     * @hide
      */
+    @RestrictTo(RestrictTo.Scope.LIBRARY)
     @SliceView.SliceMode
     public int getMode() {
         return mViewPolicy != null ? mViewPolicy.getMode() : MODE_LARGE;
@@ -154,7 +151,6 @@
 
     /**
      * Sets a custom color to use for tinting elements like icons for this view.
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     public void setTint(@ColorInt int tintColor) {
@@ -163,7 +159,6 @@
 
     /**
      * Sets whether the last updated time should be displayed.
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     public void setShowLastUpdated(boolean showLastUpdated) {
@@ -172,7 +167,6 @@
 
     /**
      * Sets when the content of this view was last updated.
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     public void setLastUpdated(long lastUpdated) {
@@ -181,23 +175,22 @@
 
     /**
      * Sets the observer to notify when an interaction events occur on the view.
-     * @hide
      */
+    @RestrictTo(RestrictTo.Scope.LIBRARY)
     public void setSliceActionListener(SliceView.OnSliceActionListener observer) {
         mObserver = observer;
     }
 
     /**
      * Sets the listener to notify whenever an action is being loaded.
-     * @hide
      */
+    @RestrictTo(RestrictTo.Scope.LIBRARY)
     public void setSliceActionLoadingListener(SliceActionView.SliceActionLoadingListener listener) {
         mLoadingListener = listener;
     }
 
     /**
      * Indicates that a particular action is being loaded.
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     public void setActionLoading(SliceItem item) {
@@ -205,7 +198,6 @@
 
     /**
      * Sets the actions that are being loaded.
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     public void setLoadingActions(Set<SliceItem> loadingActions) {
@@ -213,7 +205,6 @@
 
     /**
      * Sets whether this slice can have 2 lines of subtitle text in the first row.
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     public void setAllowTwoLines(boolean allowTwoLines) {
@@ -221,7 +212,6 @@
 
     /**
      * The set of currently loading actions.
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     public Set<SliceItem> getLoadingActions() {
@@ -230,7 +220,6 @@
 
     /**
      * Sets the style information for this view.
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     public void setStyle(SliceStyle styles, @NonNull RowStyle rowStyle) {
@@ -240,7 +229,6 @@
 
     /**
      * Sets the policy information for this view.
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     public void setPolicy(@Nullable SliceViewPolicy policy) {
@@ -248,7 +236,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     public int getHiddenItemCount() {
diff --git a/slice/slice-view/src/main/java/androidx/slice/widget/SliceContent.java b/slice/slice-view/src/main/java/androidx/slice/widget/SliceContent.java
index 6dc5983..a56e1e9 100644
--- a/slice/slice-view/src/main/java/androidx/slice/widget/SliceContent.java
+++ b/slice/slice-view/src/main/java/androidx/slice/widget/SliceContent.java
@@ -58,24 +58,24 @@
 public class SliceContent {
 
     /**
-     * @hide
      */
+    @RestrictTo(RestrictTo.Scope.LIBRARY)
     protected SliceItem mSliceItem;
     /**
-     * @hide
      */
+    @RestrictTo(RestrictTo.Scope.LIBRARY)
     protected SliceItem mColorItem;
     /**
-     * @hide
      */
+    @RestrictTo(RestrictTo.Scope.LIBRARY)
     protected SliceItem mLayoutDirItem;
     /**
-     * @hide
      */
+    @RestrictTo(RestrictTo.Scope.LIBRARY)
     protected SliceItem mContentDescr;
     /**
-     * @hide
      */
+    @RestrictTo(RestrictTo.Scope.LIBRARY)
     protected int mRowIndex;
 
     public SliceContent(@Nullable Slice slice) {
@@ -86,7 +86,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     public SliceContent(@Nullable SliceItem item, int rowIndex) {
@@ -108,8 +107,8 @@
 
     /**
      * @return the slice item used to construct this content.
-     * @hide
      */
+    @RestrictTo(RestrictTo.Scope.LIBRARY)
     @Nullable
     public SliceItem getSliceItem() {
         return mSliceItem;
@@ -117,24 +116,24 @@
 
     /**
      * @return the accent color to use for this content or -1 if no color is set.
-     * @hide
      */
+    @RestrictTo(RestrictTo.Scope.LIBRARY)
     public int getAccentColor() {
         return mColorItem != null ? mColorItem.getInt() : -1;
     }
 
     /**
      * @return the layout direction to use for this content or -1 if no direction set.
-     * @hide
      */
+    @RestrictTo(RestrictTo.Scope.LIBRARY)
     public int getLayoutDir() {
         return mLayoutDirItem != null ? resolveLayoutDirection(mLayoutDirItem.getInt()) : -1;
     }
 
     /**
      * @return the content description to use for this row if set.
-     * @hide
      */
+    @RestrictTo(RestrictTo.Scope.LIBRARY)
     @Nullable
     public CharSequence getContentDescription() {
         return mContentDescr != null ? mContentDescr.getText() : null;
@@ -142,31 +141,31 @@
 
     /**
      * @return the row index of this content, or -1 if no row index is set.
-     * @hide
      */
+    @RestrictTo(RestrictTo.Scope.LIBRARY)
     public int getRowIndex() { return mRowIndex; }
 
     /**
      * @return the desired height of this content based on the provided mode and context or the
      * default height if context is null.
-     * @hide
      */
+    @RestrictTo(RestrictTo.Scope.LIBRARY)
     public int getHeight(SliceStyle style, SliceViewPolicy policy) {
         return 0;
     }
 
     /**
      * @return whether this content is valid to display or not.
-     * @hide
      */
+    @RestrictTo(RestrictTo.Scope.LIBRARY)
     public boolean isValid() {
         return mSliceItem != null;
     }
 
     /**
      * @return the action that represents the shortcut.
-     * @hide
      */
+    @RestrictTo(RestrictTo.Scope.LIBRARY)
     @Nullable
     public SliceAction getShortcut(@Nullable Context context) {
         if (mSliceItem == null) {
diff --git a/slice/slice-view/src/main/java/androidx/slice/widget/SliceLiveData.java b/slice/slice-view/src/main/java/androidx/slice/widget/SliceLiveData.java
index 9357327..8fc3a85 100644
--- a/slice/slice-view/src/main/java/androidx/slice/widget/SliceLiveData.java
+++ b/slice/slice-view/src/main/java/androidx/slice/widget/SliceLiveData.java
@@ -61,19 +61,16 @@
     private static final String TAG = "SliceLiveData";
 
     /**
-     * @hide
      */
     @RestrictTo(LIBRARY)
     public static final SliceSpec OLD_BASIC = new SliceSpec("androidx.app.slice.BASIC", 1);
 
     /**
-     * @hide
      */
     @RestrictTo(LIBRARY)
     public static final SliceSpec OLD_LIST = new SliceSpec("androidx.app.slice.LIST", 1);
 
     /**
-     * @hide
      */
     @RestrictTo(LIBRARY)
     public static final Set<SliceSpec> SUPPORTED_SPECS = new ArraySet<>(
@@ -139,7 +136,6 @@
 
     /**
      * Version for testing
-     * @hide
      */
     @RestrictTo(LIBRARY_GROUP_PREFIX)
     @NonNull
@@ -208,7 +204,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         @SuppressWarnings("deprecation") /* AsyncTask */
@@ -292,7 +287,6 @@
         }
 
         /**
-         * @hide
          */
         @RestrictTo(LIBRARY)
         protected void updateSlice() {
diff --git a/slice/slice-view/src/main/java/androidx/slice/widget/SliceMetrics.java b/slice/slice-view/src/main/java/androidx/slice/widget/SliceMetrics.java
index 6592759..faa5e10 100644
--- a/slice/slice-view/src/main/java/androidx/slice/widget/SliceMetrics.java
+++ b/slice/slice-view/src/main/java/androidx/slice/widget/SliceMetrics.java
@@ -26,7 +26,6 @@
 import androidx.annotation.RestrictTo;
 
 /**
- * @hide
  */
 @RestrictTo(RestrictTo.Scope.LIBRARY)
 @RequiresApi(19)
diff --git a/slice/slice-view/src/main/java/androidx/slice/widget/SliceMetricsWrapper.java b/slice/slice-view/src/main/java/androidx/slice/widget/SliceMetricsWrapper.java
index ad74f35..adb43d8 100644
--- a/slice/slice-view/src/main/java/androidx/slice/widget/SliceMetricsWrapper.java
+++ b/slice/slice-view/src/main/java/androidx/slice/widget/SliceMetricsWrapper.java
@@ -24,7 +24,6 @@
 import androidx.annotation.RestrictTo;
 
 /**
- * @hide
  */
 @RestrictTo(RestrictTo.Scope.LIBRARY)
 @RequiresApi(api = 28)
diff --git a/slice/slice-view/src/main/java/androidx/slice/widget/SliceStyle.java b/slice/slice-view/src/main/java/androidx/slice/widget/SliceStyle.java
index 60917e0..2440e67 100644
--- a/slice/slice-view/src/main/java/androidx/slice/widget/SliceStyle.java
+++ b/slice/slice-view/src/main/java/androidx/slice/widget/SliceStyle.java
@@ -41,7 +41,6 @@
 /**
  * Holds style information shared between child views of a slice
  *
- * @hide
  */
 @RestrictTo(RestrictTo.Scope.LIBRARY)
 @RequiresApi(19)
diff --git a/slice/slice-view/src/main/java/androidx/slice/widget/SliceView.java b/slice/slice-view/src/main/java/androidx/slice/widget/SliceView.java
index 2d53b83..8c6fd44 100644
--- a/slice/slice-view/src/main/java/androidx/slice/widget/SliceView.java
+++ b/slice/slice-view/src/main/java/androidx/slice/widget/SliceView.java
@@ -115,7 +115,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     @IntDef({
@@ -253,7 +252,6 @@
 
     /**
      * Indicates whether this view reacts to click events or not.
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     public boolean isSliceViewClickable() {
@@ -263,7 +261,6 @@
 
     /**
      * Sets the event info for logging a click.
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     public void setClickInfo(int[] info) {
@@ -629,7 +626,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     public void setMode(@SliceMode int mode, boolean animate) {
@@ -714,7 +710,6 @@
     }
 
     /**
-     * @hide
      *
      * Whether this view should show a row of actions with it.
      */
@@ -726,7 +721,6 @@
 
     /**
      * @return whether this view is showing a row of actions.
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     public boolean isShowingActionRow() {
@@ -853,7 +847,6 @@
 
     /**
      * @return String representation of the provided mode.
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     public static String modeToString(@SliceMode int mode) {
@@ -970,7 +963,6 @@
     };
 
     /**
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     public static final Comparator<SliceAction> SLICE_ACTION_PRIORITY_COMPARATOR =
diff --git a/slice/slice-view/src/main/java/androidx/slice/widget/SliceViewPolicy.java b/slice/slice-view/src/main/java/androidx/slice/widget/SliceViewPolicy.java
index 7c32336..57dcf89 100644
--- a/slice/slice-view/src/main/java/androidx/slice/widget/SliceViewPolicy.java
+++ b/slice/slice-view/src/main/java/androidx/slice/widget/SliceViewPolicy.java
@@ -24,7 +24,6 @@
 /**
  * Class containing configurable settings for SliceView that may impact interaction and contents
  * of the slice that are displayed.
- * @hide
  */
 @RestrictTo(RestrictTo.Scope.LIBRARY)
 @RequiresApi(19)
diff --git a/slice/slice-view/src/main/java/androidx/slice/widget/SliceViewUtil.java b/slice/slice-view/src/main/java/androidx/slice/widget/SliceViewUtil.java
index 88b64df..f4f0499 100644
--- a/slice/slice-view/src/main/java/androidx/slice/widget/SliceViewUtil.java
+++ b/slice/slice-view/src/main/java/androidx/slice/widget/SliceViewUtil.java
@@ -51,7 +51,6 @@
 /**
  * A bunch of utilities for slice UI.
  *
- * @hide
  */
 @RestrictTo(RestrictTo.Scope.LIBRARY)
 @RequiresApi(19)
diff --git a/slice/slice-view/src/main/java/androidx/slice/widget/TemplateView.java b/slice/slice-view/src/main/java/androidx/slice/widget/TemplateView.java
index 33f8625..b26282b 100644
--- a/slice/slice-view/src/main/java/androidx/slice/widget/TemplateView.java
+++ b/slice/slice-view/src/main/java/androidx/slice/widget/TemplateView.java
@@ -98,7 +98,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     @Override
@@ -110,7 +109,6 @@
     /**
      * Called when the foreground view handling touch feedback should be activated.
      * @param event the event to handle.
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     public void onForegroundActivated(MotionEvent event) {
@@ -136,7 +134,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     @Override
@@ -147,7 +144,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     @Override
@@ -156,7 +152,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     @Override
@@ -165,7 +160,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     @Override
@@ -174,7 +168,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     @Override
@@ -184,8 +177,8 @@
     }
 
     /**
-     * @hide
      */
+    @RestrictTo(RestrictTo.Scope.LIBRARY)
     @Override
     public void setSliceActionListener(SliceView.OnSliceActionListener observer) {
         mObserver = observer;
@@ -195,7 +188,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     @Override
@@ -204,7 +196,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     @Override
@@ -215,7 +206,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     @Override
@@ -232,7 +222,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     @Override
@@ -242,7 +231,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     @Override
@@ -252,7 +240,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     @Override
@@ -283,7 +270,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     @Override
@@ -295,7 +281,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     @Override
@@ -310,7 +295,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     @Override
@@ -321,7 +305,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     @Override
@@ -332,7 +315,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     @Override
@@ -343,7 +325,6 @@
     }
 
     /**
-     * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     @Override
diff --git a/test/uiautomator/uiautomator/src/main/java/androidx/test/uiautomator/UiDevice.java b/test/uiautomator/uiautomator/src/main/java/androidx/test/uiautomator/UiDevice.java
index f2f540a..bea6c94 100644
--- a/test/uiautomator/uiautomator/src/main/java/androidx/test/uiautomator/UiDevice.java
+++ b/test/uiautomator/uiautomator/src/main/java/androidx/test/uiautomator/UiDevice.java
@@ -148,7 +148,7 @@
             Log.d(TAG, String.format("Node not found with selector: %s.", selector));
             return null;
         }
-        return new UiObject2(this, selector, node);
+        return UiObject2.create(this, selector, node);
     }
 
     /** Returns all objects that match the {@code selector} criteria. */
@@ -158,9 +158,11 @@
         Log.d(TAG, String.format("Retrieving nodes with selector: %s.", selector));
         List<UiObject2> ret = new ArrayList<>();
         for (AccessibilityNodeInfo node : ByMatcher.findMatches(this, selector, getWindowRoots())) {
-            ret.add(new UiObject2(this, selector, node));
+            UiObject2 object = UiObject2.create(this, selector, node);
+            if (object != null) {
+                ret.add(object);
+            }
         }
-
         return ret;
     }
 
diff --git a/test/uiautomator/uiautomator/src/main/java/androidx/test/uiautomator/UiObject2.java b/test/uiautomator/uiautomator/src/main/java/androidx/test/uiautomator/UiObject2.java
index fce297d..a5ffde7 100644
--- a/test/uiautomator/uiautomator/src/main/java/androidx/test/uiautomator/UiObject2.java
+++ b/test/uiautomator/uiautomator/src/main/java/androidx/test/uiautomator/UiObject2.java
@@ -87,8 +87,7 @@
             DEFAULT_GESTURE_MARGIN_PERCENT,
             DEFAULT_GESTURE_MARGIN_PERCENT);
 
-    /** Package-private constructor. Used by {@link UiDevice#findObject(BySelector)}. */
-    UiObject2(UiDevice device, BySelector selector, AccessibilityNodeInfo cachedNode) {
+    private UiObject2(UiDevice device, BySelector selector, AccessibilityNodeInfo cachedNode) {
         mDevice = device;
         mSelector = selector;
         mCachedNode = cachedNode;
@@ -107,6 +106,17 @@
         mDisplayDensity = (float) densityDpi / DisplayMetrics.DENSITY_DEFAULT;
     }
 
+    @Nullable
+    static UiObject2 create(@NonNull UiDevice device, @NonNull BySelector selector,
+            @NonNull AccessibilityNodeInfo cachedNode) {
+        try {
+            return new UiObject2(device, selector, cachedNode);
+        } catch (RuntimeException e) {
+            Log.w(TAG, String.format("Failed to create UiObject2 for node %s.", cachedNode), e);
+            return null;
+        }
+    }
+
     @Override
     public boolean equals(Object object) {
         if (this == object) {
@@ -197,7 +207,7 @@
     @SuppressLint("UnknownNullness") // Avoid unnecessary null checks from nullable testing APIs.
     public UiObject2 getParent() {
         AccessibilityNodeInfo parent = getAccessibilityNodeInfo().getParent();
-        return parent != null ? new UiObject2(getDevice(), mSelector, parent) : null;
+        return parent != null ? UiObject2.create(getDevice(), mSelector, parent) : null;
     }
 
     /** Returns the number of child elements directly under this object. */
@@ -238,7 +248,7 @@
             Log.d(TAG, String.format("Node not found with selector: %s.", selector));
             return null;
         }
-        return new UiObject2(getDevice(), selector, node);
+        return UiObject2.create(getDevice(), selector, node);
     }
 
     /**
@@ -251,7 +261,10 @@
         List<UiObject2> ret = new ArrayList<>();
         for (AccessibilityNodeInfo node :
                 ByMatcher.findMatches(getDevice(), selector, getAccessibilityNodeInfo())) {
-            ret.add(new UiObject2(getDevice(), selector, node));
+            UiObject2 object = UiObject2.create(getDevice(), selector, node);
+            if (object != null) {
+                ret.add(object);
+            }
         }
         return ret;
     }
diff --git a/text/text/src/androidTest/java/androidx/compose/ui/text/android/TextLayoutLineVisibleEndTest.kt b/text/text/src/androidTest/java/androidx/compose/ui/text/android/TextLayoutLineVisibleEndTest.kt
new file mode 100644
index 0000000..f80b15a
--- /dev/null
+++ b/text/text/src/androidTest/java/androidx/compose/ui/text/android/TextLayoutLineVisibleEndTest.kt
@@ -0,0 +1,193 @@
+/*
+ * Copyright 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package androidx.compose.ui.text.android
+
+import android.graphics.Typeface
+import android.os.Build
+import android.text.TextPaint
+import android.text.TextUtils
+import androidx.core.content.res.ResourcesCompat
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import androidx.test.filters.MediumTest
+import androidx.test.platform.app.InstrumentationRegistry
+import androidx.testutils.fonts.R
+import com.google.common.truth.Truth.assertThat
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+
+@OptIn(InternalPlatformTextApi::class)
+@RunWith(AndroidJUnit4::class)
+@MediumTest
+class TextLayoutLineVisibleEndTest {
+    lateinit var sampleTypeface: Typeface
+    @Before
+    fun setup() {
+        val instrumentation = InstrumentationRegistry.getInstrumentation()
+        // This sample font provides the following features:
+        // 1. The width of most of visible characters equals to font size.
+        // 2. The LTR/RTL characters are rendered as ▶/◀.
+        // 3. The fontMetrics passed to TextPaint has descend - ascend equal to 1.2 * fontSize.
+        // 4. The fontMetrics passed to TextPaint has ascend equal to fontSize.
+        sampleTypeface = ResourcesCompat.getFont(instrumentation.context, R.font.sample_font)!!
+    }
+
+    @Test
+    fun excludesLineBreak_whenMaxLinesPresent_withoutEllipsis() {
+        val text = "abc\ndef"
+        val textSize = 20.0f
+
+        val layout = simpleLayout(
+            text = text,
+            textSize = textSize,
+            layoutWidth = textSize * 10,
+            maxLines = 1
+        )
+
+        assertThat(layout.getLineVisibleEnd(0)).isEqualTo(3)
+    }
+
+    @Test
+    fun excludesLineBreak_whenMaxLinesPresent_withEllipsisEnd() {
+        val text = "abc\ndef"
+        val textSize = 20.0f
+
+        val layout = simpleLayout(
+            text = text,
+            textSize = textSize,
+            layoutWidth = textSize * 10,
+            maxLines = 1,
+            ellipsize = TextUtils.TruncateAt.END
+        )
+
+        assertThat(layout.getLineVisibleEnd(0)).isEqualTo(3)
+    }
+
+    @Test
+    fun excludesWhitespace_singleLineContent_withEllipsis() {
+        val text = "abc def ghi"
+        val textSize = 20.0f
+        val layoutWidth = textSize * 10
+
+        val layout = simpleLayout(
+            text = text,
+            textSize = textSize,
+            layoutWidth = layoutWidth,
+            ellipsize = TextUtils.TruncateAt.END
+        )
+
+        assertThat(layout.getLineVisibleEnd(0)).isEqualTo(7)
+    }
+
+    @Test
+    fun excludesWhitespace_multiLineContent_withoutEllipsis() {
+        val text = "abc def    \nghi"
+        val textSize = 20.0f
+        val layoutWidth = textSize * 10
+
+        val layout = simpleLayout(
+            text = text,
+            textSize = textSize,
+            layoutWidth = layoutWidth
+        )
+
+        // the way overflown text layout is calculated with ellipsis is vastly different before and
+        // after API 23. Line visible end logic cannot be unified below API 23.
+        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
+            assertThat(layout.getLineVisibleEnd(0)).isEqualTo(7)
+        } else {
+            assertThat(layout.getLineVisibleEnd(0)).isEqualTo(3)
+        }
+    }
+
+    @Test
+    fun excludesWhitespace_multiLineContent_withEllipsis() {
+        val text = "abc def    \nghi"
+        val textSize = 20.0f
+        val layoutWidth = textSize * 10
+
+        val layout = simpleLayout(
+            text = text,
+            textSize = textSize,
+            layoutWidth = layoutWidth,
+            ellipsize = TextUtils.TruncateAt.END
+        )
+
+        // the way overflown text layout is calculated with ellipsis is vastly different before and
+        // after API 23. Line visible end logic cannot be unified below API 23.
+        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
+            assertThat(layout.getLineVisibleEnd(0)).isEqualTo(7)
+        } else {
+            assertThat(layout.getLineVisibleEnd(0)).isEqualTo(3)
+        }
+    }
+
+    @Test
+    fun noVisibleContent_multiLine_withoutEllipsis() {
+        val text = "\n\nabc"
+        val textSize = 20.0f
+        val layoutWidth = textSize * 10
+
+        val layout = simpleLayout(
+            text = text,
+            textSize = textSize,
+            layoutWidth = layoutWidth,
+            maxLines = 2
+        )
+
+        assertThat(layout.getLineVisibleEnd(0)).isEqualTo(0)
+        assertThat(layout.getLineVisibleEnd(1)).isEqualTo(1)
+    }
+
+    @Test
+    fun noVisibleContent_multiLine_withEllipsis() {
+        val text = "\n\nabc"
+        val textSize = 20.0f
+        val layoutWidth = textSize * 10
+
+        val layout = simpleLayout(
+            text = text,
+            textSize = textSize,
+            layoutWidth = layoutWidth,
+            maxLines = 2,
+            ellipsize = TextUtils.TruncateAt.END
+        )
+
+        assertThat(layout.getLineVisibleEnd(0)).isEqualTo(0)
+        assertThat(layout.getLineVisibleEnd(1)).isEqualTo(2) // ellipsis character
+    }
+
+    private fun simpleLayout(
+        text: CharSequence,
+        textSize: Float = Float.NaN,
+        layoutWidth: Float = textSize * text.length,
+        ellipsize: TextUtils.TruncateAt? = null,
+        maxLines: Int = Int.MAX_VALUE
+    ): TextLayout {
+        val textPaint = TextPaint()
+        textPaint.typeface = sampleTypeface
+        textPaint.textSize = if (!textSize.isNaN()) textSize else 14f
+
+        return TextLayout(
+            charSequence = text,
+            width = layoutWidth,
+            textPaint = textPaint,
+            maxLines = maxLines,
+            ellipsize = ellipsize
+        )
+    }
+}
diff --git a/text/text/src/main/java/androidx/compose/ui/text/android/LayoutHelper.kt b/text/text/src/main/java/androidx/compose/ui/text/android/LayoutHelper.kt
index 62e7978..4deeab9 100644
--- a/text/text/src/main/java/androidx/compose/ui/text/android/LayoutHelper.kt
+++ b/text/text/src/main/java/androidx/compose/ui/text/android/LayoutHelper.kt
@@ -247,7 +247,7 @@
 
         // Use line visible end for creating bidi object since invisible whitespaces should not be
         // considered for location retrieval.
-        val lineVisibleEnd = lineEndToVisibleEnd(lineEnd)
+        val lineVisibleEnd = lineEndToVisibleEnd(lineEnd, lineStart)
         val paragraphStart = getParagraphStart(paraNo)
         val bidiStart = lineStart - paragraphStart
         val bidiEnd = lineVisibleEnd - paragraphStart
@@ -314,7 +314,7 @@
             // out of bounds for the runs in this Bidi. We are adjusting the requested offset
             // to the visible end of line.
             val lineEndAdjustedOffset = if (offset > lineVisibleEnd) {
-                lineEndToVisibleEnd(offset)
+                lineEndToVisibleEnd(offset, lineStart)
             } else {
                 offset
             }
@@ -349,6 +349,14 @@
         }
     }
 
+    /**
+     * Return the text offset after the last visible character on the specified line. For example
+     * whitespaces are not counted as visible characters.
+     */
+    fun getLineVisibleEnd(lineIndex: Int): Int {
+        return lineEndToVisibleEnd(layout.getLineEnd(lineIndex), layout.getLineStart(lineIndex))
+    }
+
     private fun getDownstreamHorizontal(offset: Int, primary: Boolean): Float {
         val lineNo = layout.getLineForOffset(offset)
         val lineEnd = layout.getLineEnd(lineNo)
@@ -370,10 +378,13 @@
 
     private data class BidiRun(val start: Int, val end: Int, val isRtl: Boolean)
 
-    // Convert line end offset to the offset that is the last visible character.
-    private fun lineEndToVisibleEnd(lineEnd: Int): Int {
+    /**
+     * Convert line end offset to the offset that is the last visible character. Last visible
+     * character on this line cannot be before line start.
+     */
+    private fun lineEndToVisibleEnd(lineEnd: Int, lineStart: Int): Int {
         var visibleEnd = lineEnd
-        while (visibleEnd > 0) {
+        while (visibleEnd > lineStart) {
             if (isLineEndSpace(layout.text[visibleEnd - 1 /* visibleEnd is exclusive */])) {
                 visibleEnd--
             } else {
@@ -385,6 +396,7 @@
 
     // The spaces that will not be rendered if they are placed at the line end. In most case, it is
     // whitespace or line feed character, hence checking linearly should be enough.
+    @Suppress("ConvertTwoComparisonsToRangeCheck")
     fun isLineEndSpace(c: Char) = c == ' ' || c == '\n' || c == '\u1680' ||
-        (c in '\u2000'..'\u200A' && c != '\u2007') || c == '\u205F' || c == '\u3000'
+        (c >= '\u2000' && c <= '\u200A' && c != '\u2007') || c == '\u205F' || c == '\u3000'
 }
\ No newline at end of file
diff --git a/text/text/src/main/java/androidx/compose/ui/text/android/TextLayout.kt b/text/text/src/main/java/androidx/compose/ui/text/android/TextLayout.kt
index 3944f11..1f88bd0 100644
--- a/text/text/src/main/java/androidx/compose/ui/text/android/TextLayout.kt
+++ b/text/text/src/main/java/androidx/compose/ui/text/android/TextLayout.kt
@@ -462,7 +462,7 @@
      */
     fun getLineVisibleEnd(lineIndex: Int): Int =
         if (layout.getEllipsisStart(lineIndex) == 0) { // no ellipsis
-            layout.getLineVisibleEnd(lineIndex)
+            layoutHelper.getLineVisibleEnd(lineIndex)
         } else {
             layout.getLineStart(lineIndex) + layout.getEllipsisStart(lineIndex)
         }
diff --git a/transition/transition/api/public_plus_experimental_current.txt b/transition/transition/api/public_plus_experimental_current.txt
deleted file mode 100644
index fdaded9..0000000
--- a/transition/transition/api/public_plus_experimental_current.txt
+++ /dev/null
@@ -1,283 +0,0 @@
-// Signature format: 4.0
-package androidx.transition {
-
-  public class ArcMotion extends androidx.transition.PathMotion {
-    ctor public ArcMotion();
-    ctor public ArcMotion(android.content.Context, android.util.AttributeSet);
-    method public float getMaximumAngle();
-    method public float getMinimumHorizontalAngle();
-    method public float getMinimumVerticalAngle();
-    method public android.graphics.Path getPath(float, float, float, float);
-    method public void setMaximumAngle(float);
-    method public void setMinimumHorizontalAngle(float);
-    method public void setMinimumVerticalAngle(float);
-  }
-
-  public class AutoTransition extends androidx.transition.TransitionSet {
-    ctor public AutoTransition();
-    ctor public AutoTransition(android.content.Context, android.util.AttributeSet);
-  }
-
-  public class ChangeBounds extends androidx.transition.Transition {
-    ctor public ChangeBounds();
-    ctor public ChangeBounds(android.content.Context, android.util.AttributeSet);
-    method public void captureEndValues(androidx.transition.TransitionValues);
-    method public void captureStartValues(androidx.transition.TransitionValues);
-    method public boolean getResizeClip();
-    method public void setResizeClip(boolean);
-  }
-
-  public class ChangeClipBounds extends androidx.transition.Transition {
-    ctor public ChangeClipBounds();
-    ctor public ChangeClipBounds(android.content.Context, android.util.AttributeSet);
-    method public void captureEndValues(androidx.transition.TransitionValues);
-    method public void captureStartValues(androidx.transition.TransitionValues);
-  }
-
-  public class ChangeImageTransform extends androidx.transition.Transition {
-    ctor public ChangeImageTransform();
-    ctor public ChangeImageTransform(android.content.Context, android.util.AttributeSet);
-    method public void captureEndValues(androidx.transition.TransitionValues);
-    method public void captureStartValues(androidx.transition.TransitionValues);
-  }
-
-  public class ChangeScroll extends androidx.transition.Transition {
-    ctor public ChangeScroll();
-    ctor public ChangeScroll(android.content.Context, android.util.AttributeSet);
-    method public void captureEndValues(androidx.transition.TransitionValues);
-    method public void captureStartValues(androidx.transition.TransitionValues);
-  }
-
-  public class ChangeTransform extends androidx.transition.Transition {
-    ctor public ChangeTransform();
-    ctor public ChangeTransform(android.content.Context, android.util.AttributeSet);
-    method public void captureEndValues(androidx.transition.TransitionValues);
-    method public void captureStartValues(androidx.transition.TransitionValues);
-    method public boolean getReparent();
-    method public boolean getReparentWithOverlay();
-    method public void setReparent(boolean);
-    method public void setReparentWithOverlay(boolean);
-  }
-
-  public class CircularPropagation extends androidx.transition.VisibilityPropagation {
-    ctor public CircularPropagation();
-    method public long getStartDelay(android.view.ViewGroup, androidx.transition.Transition, androidx.transition.TransitionValues?, androidx.transition.TransitionValues?);
-    method public void setPropagationSpeed(float);
-  }
-
-  public class Explode extends androidx.transition.Visibility {
-    ctor public Explode();
-    ctor public Explode(android.content.Context, android.util.AttributeSet);
-  }
-
-  public class Fade extends androidx.transition.Visibility {
-    ctor public Fade();
-    ctor public Fade(android.content.Context, android.util.AttributeSet);
-    ctor public Fade(int);
-    field public static final int IN = 1; // 0x1
-    field public static final int OUT = 2; // 0x2
-  }
-
-  public abstract class PathMotion {
-    ctor public PathMotion();
-    ctor public PathMotion(android.content.Context, android.util.AttributeSet);
-    method public abstract android.graphics.Path getPath(float, float, float, float);
-  }
-
-  public class PatternPathMotion extends androidx.transition.PathMotion {
-    ctor public PatternPathMotion();
-    ctor public PatternPathMotion(android.content.Context, android.util.AttributeSet);
-    ctor public PatternPathMotion(android.graphics.Path);
-    method public android.graphics.Path getPath(float, float, float, float);
-    method public android.graphics.Path getPatternPath();
-    method public void setPatternPath(android.graphics.Path);
-  }
-
-  public class Scene {
-    ctor public Scene(android.view.ViewGroup);
-    ctor public Scene(android.view.ViewGroup, android.view.View);
-    method public void enter();
-    method public void exit();
-    method public static androidx.transition.Scene? getCurrentScene(android.view.ViewGroup);
-    method public static androidx.transition.Scene getSceneForLayout(android.view.ViewGroup, @LayoutRes int, android.content.Context);
-    method public android.view.ViewGroup getSceneRoot();
-    method public void setEnterAction(Runnable?);
-    method public void setExitAction(Runnable?);
-  }
-
-  public class SidePropagation extends androidx.transition.VisibilityPropagation {
-    ctor public SidePropagation();
-    method public long getStartDelay(android.view.ViewGroup, androidx.transition.Transition, androidx.transition.TransitionValues?, androidx.transition.TransitionValues?);
-    method public void setPropagationSpeed(float);
-    method public void setSide(int);
-  }
-
-  public class Slide extends androidx.transition.Visibility {
-    ctor public Slide();
-    ctor public Slide(android.content.Context, android.util.AttributeSet);
-    ctor public Slide(int);
-    method public int getSlideEdge();
-    method public void setSlideEdge(int);
-  }
-
-  public abstract class Transition implements java.lang.Cloneable {
-    ctor public Transition();
-    ctor public Transition(android.content.Context, android.util.AttributeSet);
-    method public androidx.transition.Transition addListener(androidx.transition.Transition.TransitionListener);
-    method public androidx.transition.Transition addTarget(android.view.View);
-    method public androidx.transition.Transition addTarget(@IdRes int);
-    method public androidx.transition.Transition addTarget(Class<?>);
-    method public androidx.transition.Transition addTarget(String);
-    method public abstract void captureEndValues(androidx.transition.TransitionValues);
-    method public abstract void captureStartValues(androidx.transition.TransitionValues);
-    method public androidx.transition.Transition clone();
-    method public android.animation.Animator? createAnimator(android.view.ViewGroup, androidx.transition.TransitionValues?, androidx.transition.TransitionValues?);
-    method public androidx.transition.Transition excludeChildren(android.view.View, boolean);
-    method public androidx.transition.Transition excludeChildren(@IdRes int, boolean);
-    method public androidx.transition.Transition excludeChildren(Class<?>, boolean);
-    method public androidx.transition.Transition excludeTarget(android.view.View, boolean);
-    method public androidx.transition.Transition excludeTarget(@IdRes int, boolean);
-    method public androidx.transition.Transition excludeTarget(Class<?>, boolean);
-    method public androidx.transition.Transition excludeTarget(String, boolean);
-    method public long getDuration();
-    method public android.graphics.Rect? getEpicenter();
-    method public androidx.transition.Transition.EpicenterCallback? getEpicenterCallback();
-    method public android.animation.TimeInterpolator? getInterpolator();
-    method public String getName();
-    method public androidx.transition.PathMotion getPathMotion();
-    method public androidx.transition.TransitionPropagation? getPropagation();
-    method public long getStartDelay();
-    method public java.util.List<java.lang.Integer!> getTargetIds();
-    method public java.util.List<java.lang.String!>? getTargetNames();
-    method public java.util.List<java.lang.Class<?>!>? getTargetTypes();
-    method public java.util.List<android.view.View!> getTargets();
-    method public String![]? getTransitionProperties();
-    method public androidx.transition.TransitionValues? getTransitionValues(android.view.View, boolean);
-    method public boolean isTransitionRequired(androidx.transition.TransitionValues?, androidx.transition.TransitionValues?);
-    method public androidx.transition.Transition removeListener(androidx.transition.Transition.TransitionListener);
-    method public androidx.transition.Transition removeTarget(android.view.View);
-    method public androidx.transition.Transition removeTarget(@IdRes int);
-    method public androidx.transition.Transition removeTarget(Class<?>);
-    method public androidx.transition.Transition removeTarget(String);
-    method public androidx.transition.Transition setDuration(long);
-    method public void setEpicenterCallback(androidx.transition.Transition.EpicenterCallback?);
-    method public androidx.transition.Transition setInterpolator(android.animation.TimeInterpolator?);
-    method public void setMatchOrder(int...);
-    method public void setPathMotion(androidx.transition.PathMotion?);
-    method public void setPropagation(androidx.transition.TransitionPropagation?);
-    method public androidx.transition.Transition setStartDelay(long);
-    field public static final int MATCH_ID = 3; // 0x3
-    field public static final int MATCH_INSTANCE = 1; // 0x1
-    field public static final int MATCH_ITEM_ID = 4; // 0x4
-    field public static final int MATCH_NAME = 2; // 0x2
-  }
-
-  public abstract static class Transition.EpicenterCallback {
-    ctor public Transition.EpicenterCallback();
-    method public abstract android.graphics.Rect? onGetEpicenter(androidx.transition.Transition);
-  }
-
-  public static interface Transition.TransitionListener {
-    method public void onTransitionCancel(androidx.transition.Transition);
-    method public void onTransitionEnd(androidx.transition.Transition);
-    method public void onTransitionPause(androidx.transition.Transition);
-    method public void onTransitionResume(androidx.transition.Transition);
-    method public void onTransitionStart(androidx.transition.Transition);
-  }
-
-  public class TransitionInflater {
-    method public static androidx.transition.TransitionInflater from(android.content.Context);
-    method public androidx.transition.Transition? inflateTransition(int);
-    method public androidx.transition.TransitionManager? inflateTransitionManager(int, android.view.ViewGroup);
-  }
-
-  public class TransitionListenerAdapter implements androidx.transition.Transition.TransitionListener {
-    ctor public TransitionListenerAdapter();
-    method public void onTransitionCancel(androidx.transition.Transition);
-    method public void onTransitionEnd(androidx.transition.Transition);
-    method public void onTransitionPause(androidx.transition.Transition);
-    method public void onTransitionResume(androidx.transition.Transition);
-    method public void onTransitionStart(androidx.transition.Transition);
-  }
-
-  public class TransitionManager {
-    ctor public TransitionManager();
-    method public static void beginDelayedTransition(android.view.ViewGroup);
-    method public static void beginDelayedTransition(android.view.ViewGroup, androidx.transition.Transition?);
-    method public static void endTransitions(android.view.ViewGroup?);
-    method public static void go(androidx.transition.Scene);
-    method public static void go(androidx.transition.Scene, androidx.transition.Transition?);
-    method public void setTransition(androidx.transition.Scene, androidx.transition.Scene, androidx.transition.Transition?);
-    method public void setTransition(androidx.transition.Scene, androidx.transition.Transition?);
-    method public void transitionTo(androidx.transition.Scene);
-  }
-
-  public abstract class TransitionPropagation {
-    ctor public TransitionPropagation();
-    method public abstract void captureValues(androidx.transition.TransitionValues);
-    method public abstract String![]? getPropagationProperties();
-    method public abstract long getStartDelay(android.view.ViewGroup, androidx.transition.Transition, androidx.transition.TransitionValues?, androidx.transition.TransitionValues?);
-  }
-
-  public class TransitionSet extends androidx.transition.Transition {
-    ctor public TransitionSet();
-    ctor public TransitionSet(android.content.Context, android.util.AttributeSet);
-    method public androidx.transition.TransitionSet addListener(androidx.transition.Transition.TransitionListener);
-    method public androidx.transition.TransitionSet addTarget(android.view.View);
-    method public androidx.transition.TransitionSet addTarget(@IdRes int);
-    method public androidx.transition.TransitionSet addTarget(Class<?>);
-    method public androidx.transition.TransitionSet addTarget(String);
-    method public androidx.transition.TransitionSet addTransition(androidx.transition.Transition);
-    method public void captureEndValues(androidx.transition.TransitionValues);
-    method public void captureStartValues(androidx.transition.TransitionValues);
-    method public int getOrdering();
-    method public androidx.transition.Transition? getTransitionAt(int);
-    method public int getTransitionCount();
-    method public androidx.transition.TransitionSet removeListener(androidx.transition.Transition.TransitionListener);
-    method public androidx.transition.TransitionSet removeTarget(android.view.View);
-    method public androidx.transition.TransitionSet removeTarget(@IdRes int);
-    method public androidx.transition.TransitionSet removeTarget(Class<?>);
-    method public androidx.transition.TransitionSet removeTarget(String);
-    method public androidx.transition.TransitionSet removeTransition(androidx.transition.Transition);
-    method public androidx.transition.TransitionSet setDuration(long);
-    method public androidx.transition.TransitionSet setInterpolator(android.animation.TimeInterpolator?);
-    method public androidx.transition.TransitionSet setOrdering(int);
-    method public androidx.transition.TransitionSet setStartDelay(long);
-    field public static final int ORDERING_SEQUENTIAL = 1; // 0x1
-    field public static final int ORDERING_TOGETHER = 0; // 0x0
-  }
-
-  public class TransitionValues {
-    ctor @Deprecated public TransitionValues();
-    ctor public TransitionValues(android.view.View);
-    field public final java.util.Map<java.lang.String!,java.lang.Object!>! values;
-    field public android.view.View! view;
-  }
-
-  public abstract class Visibility extends androidx.transition.Transition {
-    ctor public Visibility();
-    ctor public Visibility(android.content.Context, android.util.AttributeSet);
-    method public void captureEndValues(androidx.transition.TransitionValues);
-    method public void captureStartValues(androidx.transition.TransitionValues);
-    method public int getMode();
-    method public boolean isVisible(androidx.transition.TransitionValues?);
-    method public android.animation.Animator? onAppear(android.view.ViewGroup, android.view.View, androidx.transition.TransitionValues?, androidx.transition.TransitionValues?);
-    method public android.animation.Animator? onAppear(android.view.ViewGroup, androidx.transition.TransitionValues?, int, androidx.transition.TransitionValues?, int);
-    method public android.animation.Animator? onDisappear(android.view.ViewGroup, android.view.View, androidx.transition.TransitionValues?, androidx.transition.TransitionValues?);
-    method public android.animation.Animator? onDisappear(android.view.ViewGroup, androidx.transition.TransitionValues?, int, androidx.transition.TransitionValues?, int);
-    method public void setMode(int);
-    field public static final int MODE_IN = 1; // 0x1
-    field public static final int MODE_OUT = 2; // 0x2
-  }
-
-  public abstract class VisibilityPropagation extends androidx.transition.TransitionPropagation {
-    ctor public VisibilityPropagation();
-    method public void captureValues(androidx.transition.TransitionValues);
-    method public String![]? getPropagationProperties();
-    method public int getViewVisibility(androidx.transition.TransitionValues?);
-    method public int getViewX(androidx.transition.TransitionValues?);
-    method public int getViewY(androidx.transition.TransitionValues?);
-  }
-
-}
-
diff --git a/tv/integration-tests/playground/src/main/java/androidx/tv/integration/playground/FeaturedCarousel.kt b/tv/integration-tests/playground/src/main/java/androidx/tv/integration/playground/FeaturedCarousel.kt
index 855ac02..369392a 100644
--- a/tv/integration-tests/playground/src/main/java/androidx/tv/integration/playground/FeaturedCarousel.kt
+++ b/tv/integration-tests/playground/src/main/java/androidx/tv/integration/playground/FeaturedCarousel.kt
@@ -16,6 +16,8 @@
 
 package androidx.tv.integration.playground
 
+import android.content.Context
+import android.view.accessibility.AccessibilityManager
 import androidx.compose.animation.ExperimentalAnimationApi
 import androidx.compose.animation.core.tween
 import androidx.compose.animation.fadeIn
@@ -25,6 +27,7 @@
 import androidx.compose.animation.togetherWith
 import androidx.compose.foundation.background
 import androidx.compose.foundation.border
+import androidx.compose.foundation.clickable
 import androidx.compose.foundation.focusable
 import androidx.compose.foundation.layout.Arrangement
 import androidx.compose.foundation.layout.Box
@@ -45,9 +48,15 @@
 import androidx.compose.runtime.remember
 import androidx.compose.runtime.setValue
 import androidx.compose.ui.Alignment
+import androidx.compose.ui.ExperimentalComposeUiApi
 import androidx.compose.ui.Modifier
+import androidx.compose.ui.focus.FocusDirection
 import androidx.compose.ui.focus.onFocusChanged
 import androidx.compose.ui.graphics.Color
+import androidx.compose.ui.platform.LocalContext
+import androidx.compose.ui.platform.LocalFocusManager
+import androidx.compose.ui.semantics.CollectionItemInfo
+import androidx.compose.ui.semantics.collectionItemInfo
 import androidx.compose.ui.semantics.contentDescription
 import androidx.compose.ui.semantics.semantics
 import androidx.compose.ui.unit.dp
@@ -134,7 +143,7 @@
             modifier = Modifier
                 .background(backgrounds[itemIndex])
                 .fillMaxSize()
-                .semantics { contentDescription = "Featured Content" }
+                .carouselItemSemantics(itemIndex, contentDescription = "Featured Content")
         ) {
             Column(
                 modifier = Modifier
@@ -155,6 +164,41 @@
     }
 }
 
+@OptIn(ExperimentalComposeUiApi::class)
+@Suppress("ComposableModifierFactory")
+@Composable
+internal fun Modifier.carouselItemSemantics(
+    itemIndex: Int,
+    contentDescription: String?
+): Modifier {
+    val focusManager = LocalFocusManager.current
+    val context = LocalContext.current
+    val accessibilityManager = remember {
+        context.getSystemService(Context.ACCESSIBILITY_SERVICE) as AccessibilityManager
+    }
+
+    return this
+        .semantics(mergeDescendants = true) {
+            contentDescription?.let {
+                this.contentDescription = it
+            }
+            collectionItemInfo =
+                CollectionItemInfo(
+                    rowIndex = 0,
+                    rowSpan = 1,
+                    columnIndex = itemIndex,
+                    columnSpan = 1
+                )
+        }
+        .then(
+            if (accessibilityManager.isEnabled) {
+                Modifier.clickable {
+                    focusManager.moveFocus(FocusDirection.Enter)
+                }
+            } else Modifier
+        )
+}
+
 @Composable
 private fun OverlayButton(modifier: Modifier = Modifier, text: String = "Play") {
     var isFocused by remember { mutableStateOf(false) }
diff --git a/tv/tv-foundation/build.gradle b/tv/tv-foundation/build.gradle
index eace93c..365414c 100644
--- a/tv/tv-foundation/build.gradle
+++ b/tv/tv-foundation/build.gradle
@@ -30,12 +30,12 @@
 dependencies {
     api(libs.kotlinStdlib)
 
-    def composeVersion = '1.4.2'
+    def composeVersion = '1.4.3'
 
     implementation(libs.kotlinStdlibCommon)
-    implementation("androidx.profileinstaller:profileinstaller:1.3.0")
+    implementation("androidx.profileinstaller:profileinstaller:1.3.1")
 
-    api("androidx.annotation:annotation:1.5.0")
+    api("androidx.annotation:annotation:1.6.0")
     api("androidx.compose.animation:animation:$composeVersion")
     api("androidx.compose.runtime:runtime:$composeVersion")
 
diff --git a/tv/tv-material/build.gradle b/tv/tv-material/build.gradle
index 760e574..c215dc0 100644
--- a/tv/tv-material/build.gradle
+++ b/tv/tv-material/build.gradle
@@ -27,14 +27,14 @@
 dependencies {
     api(libs.kotlinStdlib)
 
-    def composeVersion = '1.4.2'
+    def composeVersion = '1.4.3'
 
-    api(project(":compose:animation:animation"))
+    api("androidx.compose.animation:animation:$composeVersion")
     api("androidx.compose.material:material-icons-core:$composeVersion")
     api(project(":tv:tv-foundation"))
 
     implementation(libs.kotlinStdlibCommon)
-    implementation("androidx.profileinstaller:profileinstaller:1.3.0")
+    implementation("androidx.profileinstaller:profileinstaller:1.3.1")
 
     androidTestImplementation(libs.truth)
 
diff --git a/tv/tv-material/src/androidTest/java/androidx/tv/material3/SwitchTest.kt b/tv/tv-material/src/androidTest/java/androidx/tv/material3/SwitchTest.kt
index fbe4bb2..8d2efaa 100644
--- a/tv/tv-material/src/androidTest/java/androidx/tv/material3/SwitchTest.kt
+++ b/tv/tv-material/src/androidTest/java/androidx/tv/material3/SwitchTest.kt
@@ -221,17 +221,17 @@
         }
 
         rule.onNodeWithTag("spacer", useUnmergedTree = true)
-            .assertLeftPositionInRootIsEqualTo(8.dp)
+            .assertLeftPositionInRootIsEqualTo(4.dp)
 
         rule.runOnIdle { checked = true }
 
         rule.onNodeWithTag("spacer", useUnmergedTree = true)
-            .assertLeftPositionInRootIsEqualTo(28.dp)
+            .assertLeftPositionInRootIsEqualTo(20.dp)
 
         rule.runOnIdle { checked = false }
 
         rule.onNodeWithTag("spacer", useUnmergedTree = true)
-            .assertLeftPositionInRootIsEqualTo(8.dp)
+            .assertLeftPositionInRootIsEqualTo(4.dp)
     }
 
     @Test
@@ -258,7 +258,7 @@
             }
 
         rule.onNodeWithTag("spacer", useUnmergedTree = true)
-            .assertLeftPositionInRootIsEqualTo(8.dp)
+            .assertLeftPositionInRootIsEqualTo(4.dp)
     }
 
     // regression test for b/191375128
diff --git a/tv/tv-material/src/main/java/androidx/tv/material3/Carousel.kt b/tv/tv-material/src/main/java/androidx/tv/material3/Carousel.kt
index 5fbfc80c..dc403a6 100644
--- a/tv/tv-material/src/main/java/androidx/tv/material3/Carousel.kt
+++ b/tv/tv-material/src/main/java/androidx/tv/material3/Carousel.kt
@@ -16,6 +16,8 @@
 
 package androidx.tv.material3
 
+import android.content.Context
+import android.view.accessibility.AccessibilityManager
 import androidx.compose.animation.AnimatedContent
 import androidx.compose.animation.AnimatedContentScope
 import androidx.compose.animation.AnimatedVisibilityScope
@@ -62,10 +64,14 @@
 import androidx.compose.ui.input.key.key
 import androidx.compose.ui.input.key.onKeyEvent
 import androidx.compose.ui.input.key.type
+import androidx.compose.ui.platform.LocalContext
 import androidx.compose.ui.platform.LocalFocusManager
 import androidx.compose.ui.platform.LocalLayoutDirection
 import androidx.compose.ui.semantics.CollectionInfo
+import androidx.compose.ui.semantics.ScrollAxisRange
 import androidx.compose.ui.semantics.collectionInfo
+import androidx.compose.ui.semantics.horizontalScrollAxisRange
+import androidx.compose.ui.semantics.scrollBy
 import androidx.compose.ui.semantics.semantics
 import androidx.compose.ui.unit.Dp
 import androidx.compose.ui.unit.LayoutDirection
@@ -123,18 +129,20 @@
     val isLtr = LocalLayoutDirection.current == LayoutDirection.Ltr
     val carouselOuterBoxFocusRequester = remember { FocusRequester() }
     var isAutoScrollActive by remember { mutableStateOf(false) }
+    val context = LocalContext.current
+    val accessibilityManager = remember {
+        context.getSystemService(Context.ACCESSIBILITY_SERVICE) as AccessibilityManager
+    }
 
     AutoScrollSideEffect(
         autoScrollDurationMillis = autoScrollDurationMillis,
         itemCount = itemCount,
         carouselState = carouselState,
-        doAutoScroll = shouldPerformAutoScroll(focusState),
+        doAutoScroll = shouldPerformAutoScroll(focusState, accessibilityManager),
         onAutoScrollChange = { isAutoScrollActive = it })
 
     Box(modifier = modifier
-        .semantics {
-            collectionInfo = CollectionInfo(rowCount = 1, columnCount = itemCount)
-        }
+        .carouselSemantics(itemCount = itemCount, state = carouselState)
         .bringIntoViewIfChildrenAreFocused()
         .focusRequester(carouselOuterBoxFocusRequester)
         .onFocusChanged {
@@ -165,6 +173,9 @@
             label = "CarouselAnimation"
         ) { activeItemIndex ->
             LaunchedEffect(Unit) {
+                if (accessibilityManager.isEnabled) {
+                    carouselOuterBoxFocusRequester.requestFocus()
+                }
                 this@AnimatedContent.onAnimationCompletion {
                     // Outer box is focused
                     if (!isAutoScrollActive && focusState?.isFocused == true) {
@@ -186,10 +197,15 @@
 }
 
 @Composable
-private fun shouldPerformAutoScroll(focusState: FocusState?): Boolean {
+private fun shouldPerformAutoScroll(
+    focusState: FocusState?,
+    accessibilityManager: AccessibilityManager
+): Boolean {
     val carouselIsFocused = focusState?.isFocused ?: false
     val carouselHasFocus = focusState?.hasFocus ?: false
-    return !(carouselIsFocused || carouselHasFocus)
+
+    // Disable auto scroll when accessibility mode is enabled or the carousel is focused
+    return !accessibilityManager.isEnabled && !(carouselIsFocused || carouselHasFocus)
 }
 
 @Suppress("IllegalExperimentalApiUsage")
@@ -487,3 +503,52 @@
         }
     }
 }
+
+@OptIn(ExperimentalTvMaterial3Api::class)
+@Suppress("ComposableModifierFactory")
+@Composable
+internal fun Modifier.carouselSemantics(
+    itemCount: Int,
+    state: CarouselState
+): Modifier {
+    return this.then(
+        remember(
+            state,
+            itemCount
+        ) {
+            val accessibilityScrollState = ScrollAxisRange(
+                value = {
+                    // Active slide index represents the current position
+                    state.activeItemIndex.toFloat()
+                },
+                maxValue = {
+                    // Last slide index represents the max. value
+                    (itemCount - 1).toFloat()
+                },
+                reverseScrolling = false
+            )
+
+            val scrollByAction: ((x: Float, y: Float) -> Boolean) =
+                { x, _ ->
+                    when {
+                        // Positive value of x represents forward scrolling
+                        x > 0f -> state.moveToNextItem(itemCount)
+
+                        // Negative value of x represents backward scrolling
+                        x < 0f -> state.moveToPreviousItem(itemCount)
+                    }
+
+                    // Return false for non-horizontal scrolling (x==0)
+                    x != 0f
+                }
+
+            Modifier.semantics {
+                horizontalScrollAxisRange = accessibilityScrollState
+
+                scrollBy(action = scrollByAction)
+
+                collectionInfo = CollectionInfo(rowCount = 1, columnCount = itemCount)
+            }
+        }
+    )
+}
diff --git a/tv/tv-material/src/main/java/androidx/tv/material3/Switch.kt b/tv/tv-material/src/main/java/androidx/tv/material3/Switch.kt
index d71168a..61d51b2 100644
--- a/tv/tv-material/src/main/java/androidx/tv/material3/Switch.kt
+++ b/tv/tv-material/src/main/java/androidx/tv/material3/Switch.kt
@@ -24,7 +24,6 @@
 import androidx.compose.foundation.interaction.Interaction
 import androidx.compose.foundation.interaction.InteractionSource
 import androidx.compose.foundation.interaction.MutableInteractionSource
-import androidx.compose.foundation.interaction.collectIsPressedAsState
 import androidx.compose.foundation.layout.Box
 import androidx.compose.foundation.layout.BoxScope
 import androidx.compose.foundation.layout.height
@@ -178,27 +177,13 @@
     maxBound: Dp,
 ) {
     val trackColor by colors.trackColor(enabled, checked)
-    val isPressed by interactionSource.collectIsPressedAsState()
 
     val thumbValueDp = with(LocalDensity.current) { thumbValue.value.toDp() }
-    val thumbSizeDp = if (isPressed) {
-        SwitchTokens.PressedHandleWidth
-    } else {
-        uncheckedThumbDiameter + (ThumbDiameter - uncheckedThumbDiameter) *
-            ((thumbValueDp - minBound) / (maxBound - minBound))
-    }
 
-    val thumbOffset = if (isPressed) {
-        with(LocalDensity.current) {
-            if (checked) {
-                ThumbPathLength - SwitchTokens.TrackOutlineWidth
-            } else {
-                SwitchTokens.TrackOutlineWidth
-            }.toPx()
-        }
-    } else {
-        thumbValue.value
-    }
+    val thumbSizeDp = uncheckedThumbDiameter + (ThumbDiameter - uncheckedThumbDiameter) *
+        ((thumbValueDp - minBound) / (maxBound - minBound))
+
+    val thumbOffset = thumbValue.value
 
     val trackShape = SwitchTokens.TrackShape.toShape()
     val modifier = Modifier
@@ -328,7 +313,7 @@
     /**
      * Icon size to use for `thumbContent`
      */
-    val IconSize = 16.dp
+    val IconSize = 12.dp
 }
 
 /**
diff --git a/tv/tv-material/src/main/java/androidx/tv/material3/tokens/SwitchTokens.kt b/tv/tv-material/src/main/java/androidx/tv/material3/tokens/SwitchTokens.kt
index 498364f..bb29efd 100644
--- a/tv/tv-material/src/main/java/androidx/tv/material3/tokens/SwitchTokens.kt
+++ b/tv/tv-material/src/main/java/androidx/tv/material3/tokens/SwitchTokens.kt
@@ -34,48 +34,48 @@
     val DisabledUnselectedTrackColor = ColorSchemeKeyTokens.SurfaceVariant
     val DisabledUnselectedTrackOutlineColor = ColorSchemeKeyTokens.OnSurface
     val HandleShape = ShapeKeyTokens.CornerFull
-    val PressedHandleHeight = 28.0.dp
-    val PressedHandleWidth = 28.0.dp
+    val PressedHandleHeight = 18.0.dp
+    val PressedHandleWidth = 18.0.dp
     val SelectedFocusHandleColor = ColorSchemeKeyTokens.PrimaryContainer
     val SelectedFocusIconColor = ColorSchemeKeyTokens.OnPrimaryContainer
     val SelectedFocusTrackColor = ColorSchemeKeyTokens.Primary
     val SelectedHandleColor = ColorSchemeKeyTokens.OnPrimary
-    val SelectedHandleHeight = 24.0.dp
-    val SelectedHandleWidth = 24.0.dp
+    val SelectedHandleHeight = 18.0.dp
+    val SelectedHandleWidth = 18.0.dp
     val SelectedHoverHandleColor = ColorSchemeKeyTokens.PrimaryContainer
     val SelectedHoverIconColor = ColorSchemeKeyTokens.OnPrimaryContainer
     val SelectedHoverTrackColor = ColorSchemeKeyTokens.Primary
     val SelectedIconColor = ColorSchemeKeyTokens.OnPrimaryContainer
-    val SelectedIconSize = 16.0.dp
+    val SelectedIconSize = 12.0.dp
     val SelectedPressedHandleColor = ColorSchemeKeyTokens.PrimaryContainer
     val SelectedPressedIconColor = ColorSchemeKeyTokens.OnPrimaryContainer
     val SelectedPressedTrackColor = ColorSchemeKeyTokens.Primary
     val SelectedTrackColor = ColorSchemeKeyTokens.Primary
     val StateLayerShape = ShapeKeyTokens.CornerFull
     val StateLayerSize = 40.0.dp
-    val TrackHeight = 32.0.dp
-    val TrackOutlineWidth = 2.0.dp
+    val TrackHeight = 24.0.dp
+    val TrackOutlineWidth = 1.5.dp
     val TrackShape = ShapeKeyTokens.CornerFull
-    val TrackWidth = 52.0.dp
+    val TrackWidth = 40.0.dp
     val UnselectedFocusHandleColor = ColorSchemeKeyTokens.OnSurfaceVariant
     val UnselectedFocusIconColor = ColorSchemeKeyTokens.SurfaceVariant
     val UnselectedFocusTrackColor = ColorSchemeKeyTokens.SurfaceVariant
     val UnselectedFocusTrackOutlineColor = ColorSchemeKeyTokens.Border
     val UnselectedHandleColor = ColorSchemeKeyTokens.Border
-    val UnselectedHandleHeight = 16.0.dp
-    val UnselectedHandleWidth = 16.0.dp
+    val UnselectedHandleHeight = 12.0.dp
+    val UnselectedHandleWidth = 12.0.dp
     val UnselectedHoverHandleColor = ColorSchemeKeyTokens.OnSurfaceVariant
     val UnselectedHoverIconColor = ColorSchemeKeyTokens.SurfaceVariant
     val UnselectedHoverTrackColor = ColorSchemeKeyTokens.SurfaceVariant
     val UnselectedHoverTrackOutlineColor = ColorSchemeKeyTokens.Border
     val UnselectedIconColor = ColorSchemeKeyTokens.SurfaceVariant
-    val UnselectedIconSize = 16.0.dp
+    val UnselectedIconSize = 12.0.dp
     val UnselectedPressedHandleColor = ColorSchemeKeyTokens.OnSurfaceVariant
     val UnselectedPressedIconColor = ColorSchemeKeyTokens.SurfaceVariant
     val UnselectedPressedTrackColor = ColorSchemeKeyTokens.SurfaceVariant
     val UnselectedPressedTrackOutlineColor = ColorSchemeKeyTokens.Border
     val UnselectedTrackColor = ColorSchemeKeyTokens.SurfaceVariant
     val UnselectedTrackOutlineColor = ColorSchemeKeyTokens.Border
-    val IconHandleHeight = 24.0.dp
-    val IconHandleWidth = 24.0.dp
+    val IconHandleHeight = 18.0.dp
+    val IconHandleWidth = 18.0.dp
 }
\ No newline at end of file
diff --git a/viewpager2/viewpager2/api/1.1.0-beta02.txt b/viewpager2/viewpager2/api/1.1.0-beta02.txt
index 997ce2a..2aabc06 100644
--- a/viewpager2/viewpager2/api/1.1.0-beta02.txt
+++ b/viewpager2/viewpager2/api/1.1.0-beta02.txt
@@ -2,8 +2,8 @@
 package androidx.viewpager2.adapter {
 
   public abstract class FragmentStateAdapter extends androidx.recyclerview.widget.RecyclerView.Adapter<androidx.viewpager2.adapter.FragmentViewHolder> implements androidx.viewpager2.adapter.StatefulAdapter {
-    ctor public FragmentStateAdapter(androidx.fragment.app.FragmentActivity);
     ctor public FragmentStateAdapter(androidx.fragment.app.Fragment);
+    ctor public FragmentStateAdapter(androidx.fragment.app.FragmentActivity);
     ctor public FragmentStateAdapter(androidx.fragment.app.FragmentManager, androidx.lifecycle.Lifecycle);
     method public boolean containsItem(long);
     method public abstract androidx.fragment.app.Fragment createFragment(int);
@@ -19,11 +19,15 @@
     method public void unregisterFragmentTransactionCallback(androidx.viewpager2.adapter.FragmentStateAdapter.FragmentTransactionCallback);
   }
 
+  @RequiresOptIn(level=androidx.annotation.RequiresOptIn.Level.WARNING) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) public static @interface FragmentStateAdapter.ExperimentalFragmentStateAdapterApi {
+  }
+
   public abstract static class FragmentStateAdapter.FragmentTransactionCallback {
     ctor public FragmentStateAdapter.FragmentTransactionCallback();
     method public androidx.viewpager2.adapter.FragmentStateAdapter.FragmentTransactionCallback.OnPostEventListener onFragmentMaxLifecyclePreUpdated(androidx.fragment.app.Fragment, androidx.lifecycle.Lifecycle.State);
     method public androidx.viewpager2.adapter.FragmentStateAdapter.FragmentTransactionCallback.OnPostEventListener onFragmentPreAdded(androidx.fragment.app.Fragment);
     method public androidx.viewpager2.adapter.FragmentStateAdapter.FragmentTransactionCallback.OnPostEventListener onFragmentPreRemoved(androidx.fragment.app.Fragment);
+    method @androidx.viewpager2.adapter.FragmentStateAdapter.ExperimentalFragmentStateAdapterApi public androidx.viewpager2.adapter.FragmentStateAdapter.FragmentTransactionCallback.OnPostEventListener onFragmentPreSavedInstanceState(androidx.fragment.app.Fragment);
   }
 
   public static interface FragmentStateAdapter.FragmentTransactionCallback.OnPostEventListener {
diff --git a/viewpager2/viewpager2/api/public_plus_experimental_1.1.0-beta02.txt b/viewpager2/viewpager2/api/public_plus_experimental_1.1.0-beta02.txt
deleted file mode 100644
index 997ce2a..0000000
--- a/viewpager2/viewpager2/api/public_plus_experimental_1.1.0-beta02.txt
+++ /dev/null
@@ -1,114 +0,0 @@
-// Signature format: 4.0
-package androidx.viewpager2.adapter {
-
-  public abstract class FragmentStateAdapter extends androidx.recyclerview.widget.RecyclerView.Adapter<androidx.viewpager2.adapter.FragmentViewHolder> implements androidx.viewpager2.adapter.StatefulAdapter {
-    ctor public FragmentStateAdapter(androidx.fragment.app.FragmentActivity);
-    ctor public FragmentStateAdapter(androidx.fragment.app.Fragment);
-    ctor public FragmentStateAdapter(androidx.fragment.app.FragmentManager, androidx.lifecycle.Lifecycle);
-    method public boolean containsItem(long);
-    method public abstract androidx.fragment.app.Fragment createFragment(int);
-    method public final void onBindViewHolder(androidx.viewpager2.adapter.FragmentViewHolder, int);
-    method public final androidx.viewpager2.adapter.FragmentViewHolder onCreateViewHolder(android.view.ViewGroup, int);
-    method public final boolean onFailedToRecycleView(androidx.viewpager2.adapter.FragmentViewHolder);
-    method public final void onViewAttachedToWindow(androidx.viewpager2.adapter.FragmentViewHolder);
-    method public final void onViewRecycled(androidx.viewpager2.adapter.FragmentViewHolder);
-    method public void registerFragmentTransactionCallback(androidx.viewpager2.adapter.FragmentStateAdapter.FragmentTransactionCallback);
-    method public final void restoreState(android.os.Parcelable);
-    method public final android.os.Parcelable saveState();
-    method public final void setHasStableIds(boolean);
-    method public void unregisterFragmentTransactionCallback(androidx.viewpager2.adapter.FragmentStateAdapter.FragmentTransactionCallback);
-  }
-
-  public abstract static class FragmentStateAdapter.FragmentTransactionCallback {
-    ctor public FragmentStateAdapter.FragmentTransactionCallback();
-    method public androidx.viewpager2.adapter.FragmentStateAdapter.FragmentTransactionCallback.OnPostEventListener onFragmentMaxLifecyclePreUpdated(androidx.fragment.app.Fragment, androidx.lifecycle.Lifecycle.State);
-    method public androidx.viewpager2.adapter.FragmentStateAdapter.FragmentTransactionCallback.OnPostEventListener onFragmentPreAdded(androidx.fragment.app.Fragment);
-    method public androidx.viewpager2.adapter.FragmentStateAdapter.FragmentTransactionCallback.OnPostEventListener onFragmentPreRemoved(androidx.fragment.app.Fragment);
-  }
-
-  public static interface FragmentStateAdapter.FragmentTransactionCallback.OnPostEventListener {
-    method public void onPost();
-  }
-
-  public final class FragmentViewHolder extends androidx.recyclerview.widget.RecyclerView.ViewHolder {
-  }
-
-  public interface StatefulAdapter {
-    method public void restoreState(android.os.Parcelable);
-    method public android.os.Parcelable saveState();
-  }
-
-}
-
-package androidx.viewpager2.widget {
-
-  public final class CompositePageTransformer implements androidx.viewpager2.widget.ViewPager2.PageTransformer {
-    ctor public CompositePageTransformer();
-    method public void addTransformer(androidx.viewpager2.widget.ViewPager2.PageTransformer);
-    method public void removeTransformer(androidx.viewpager2.widget.ViewPager2.PageTransformer);
-    method public void transformPage(android.view.View, float);
-  }
-
-  public final class MarginPageTransformer implements androidx.viewpager2.widget.ViewPager2.PageTransformer {
-    ctor public MarginPageTransformer(@Px int);
-    method public void transformPage(android.view.View, float);
-  }
-
-  public final class ViewPager2 extends android.view.ViewGroup {
-    ctor public ViewPager2(android.content.Context);
-    ctor public ViewPager2(android.content.Context, android.util.AttributeSet?);
-    ctor public ViewPager2(android.content.Context, android.util.AttributeSet?, int);
-    ctor @RequiresApi(21) public ViewPager2(android.content.Context, android.util.AttributeSet?, int, int);
-    method public void addItemDecoration(androidx.recyclerview.widget.RecyclerView.ItemDecoration);
-    method public void addItemDecoration(androidx.recyclerview.widget.RecyclerView.ItemDecoration, int);
-    method public boolean beginFakeDrag();
-    method public boolean endFakeDrag();
-    method public boolean fakeDragBy(@Px float);
-    method public androidx.recyclerview.widget.RecyclerView.Adapter? getAdapter();
-    method public int getCurrentItem();
-    method public androidx.recyclerview.widget.RecyclerView.ItemDecoration getItemDecorationAt(int);
-    method public int getItemDecorationCount();
-    method public int getOffscreenPageLimit();
-    method public int getOrientation();
-    method public int getScrollState();
-    method public void invalidateItemDecorations();
-    method public boolean isFakeDragging();
-    method public boolean isUserInputEnabled();
-    method public void registerOnPageChangeCallback(androidx.viewpager2.widget.ViewPager2.OnPageChangeCallback);
-    method public void removeItemDecoration(androidx.recyclerview.widget.RecyclerView.ItemDecoration);
-    method public void removeItemDecorationAt(int);
-    method public void requestTransform();
-    method public void setAdapter(androidx.recyclerview.widget.RecyclerView.Adapter?);
-    method public void setCurrentItem(int);
-    method public void setCurrentItem(int, boolean);
-    method public void setOffscreenPageLimit(int);
-    method public void setOrientation(int);
-    method public void setPageTransformer(androidx.viewpager2.widget.ViewPager2.PageTransformer?);
-    method public void setUserInputEnabled(boolean);
-    method public void unregisterOnPageChangeCallback(androidx.viewpager2.widget.ViewPager2.OnPageChangeCallback);
-    field public static final int OFFSCREEN_PAGE_LIMIT_DEFAULT = -1; // 0xffffffff
-    field public static final int ORIENTATION_HORIZONTAL = 0; // 0x0
-    field public static final int ORIENTATION_VERTICAL = 1; // 0x1
-    field public static final int SCROLL_STATE_DRAGGING = 1; // 0x1
-    field public static final int SCROLL_STATE_IDLE = 0; // 0x0
-    field public static final int SCROLL_STATE_SETTLING = 2; // 0x2
-  }
-
-  public abstract static class ViewPager2.OnPageChangeCallback {
-    ctor public ViewPager2.OnPageChangeCallback();
-    method public void onPageScrollStateChanged(int);
-    method public void onPageScrolled(int, float, @Px int);
-    method public void onPageSelected(int);
-  }
-
-  public static interface ViewPager2.PageTransformer {
-    method public void transformPage(android.view.View, float);
-  }
-
-  public final class WindowInsetsApplier implements androidx.core.view.OnApplyWindowInsetsListener {
-    method public static boolean install(androidx.viewpager2.widget.ViewPager2);
-    method public androidx.core.view.WindowInsetsCompat onApplyWindowInsets(android.view.View, androidx.core.view.WindowInsetsCompat);
-  }
-
-}
-
diff --git a/viewpager2/viewpager2/api/restricted_1.1.0-beta02.txt b/viewpager2/viewpager2/api/restricted_1.1.0-beta02.txt
index 4aab4bd..7a5c625 100644
--- a/viewpager2/viewpager2/api/restricted_1.1.0-beta02.txt
+++ b/viewpager2/viewpager2/api/restricted_1.1.0-beta02.txt
@@ -2,8 +2,8 @@
 package androidx.viewpager2.adapter {
 
   public abstract class FragmentStateAdapter extends androidx.recyclerview.widget.RecyclerView.Adapter<androidx.viewpager2.adapter.FragmentViewHolder> implements androidx.viewpager2.adapter.StatefulAdapter {
-    ctor public FragmentStateAdapter(androidx.fragment.app.FragmentActivity);
     ctor public FragmentStateAdapter(androidx.fragment.app.Fragment);
+    ctor public FragmentStateAdapter(androidx.fragment.app.FragmentActivity);
     ctor public FragmentStateAdapter(androidx.fragment.app.FragmentManager, androidx.lifecycle.Lifecycle);
     method public boolean containsItem(long);
     method public abstract androidx.fragment.app.Fragment createFragment(int);
@@ -19,11 +19,15 @@
     method public void unregisterFragmentTransactionCallback(androidx.viewpager2.adapter.FragmentStateAdapter.FragmentTransactionCallback);
   }
 
+  @RequiresOptIn(level=androidx.annotation.RequiresOptIn.Level.WARNING) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) public static @interface FragmentStateAdapter.ExperimentalFragmentStateAdapterApi {
+  }
+
   public abstract static class FragmentStateAdapter.FragmentTransactionCallback {
     ctor public FragmentStateAdapter.FragmentTransactionCallback();
     method public androidx.viewpager2.adapter.FragmentStateAdapter.FragmentTransactionCallback.OnPostEventListener onFragmentMaxLifecyclePreUpdated(androidx.fragment.app.Fragment, androidx.lifecycle.Lifecycle.State);
     method public androidx.viewpager2.adapter.FragmentStateAdapter.FragmentTransactionCallback.OnPostEventListener onFragmentPreAdded(androidx.fragment.app.Fragment);
     method public androidx.viewpager2.adapter.FragmentStateAdapter.FragmentTransactionCallback.OnPostEventListener onFragmentPreRemoved(androidx.fragment.app.Fragment);
+    method @androidx.viewpager2.adapter.FragmentStateAdapter.ExperimentalFragmentStateAdapterApi public androidx.viewpager2.adapter.FragmentStateAdapter.FragmentTransactionCallback.OnPostEventListener onFragmentPreSavedInstanceState(androidx.fragment.app.Fragment);
   }
 
   public static interface FragmentStateAdapter.FragmentTransactionCallback.OnPostEventListener {
diff --git a/viewpager2/viewpager2/build.gradle b/viewpager2/viewpager2/build.gradle
index fcba271..4a9b7c7 100644
--- a/viewpager2/viewpager2/build.gradle
+++ b/viewpager2/viewpager2/build.gradle
@@ -27,7 +27,7 @@
     api("androidx.annotation:annotation-experimental:1.3.0")
     implementation("androidx.core:core:1.3.2")
     api("androidx.fragment:fragment:1.1.0")
-    api(project(":recyclerview:recyclerview")) // TODO(191302495): pin to RV 1.3.1 once in prebuilts
+    api("androidx.recyclerview:recyclerview:1.3.1-rc01")
     implementation("androidx.collection:collection:1.1.0")
 
     androidTestImplementation(libs.multidex)
diff --git a/wear/compose/compose-foundation/api/public_plus_experimental_current.txt b/wear/compose/compose-foundation/api/1.2.0-beta01.txt
similarity index 100%
rename from wear/compose/compose-foundation/api/public_plus_experimental_current.txt
rename to wear/compose/compose-foundation/api/1.2.0-beta01.txt
diff --git a/wear/compose/compose-foundation/api/current.txt b/wear/compose/compose-foundation/api/current.txt
index 91d6749..03d2707 100644
--- a/wear/compose/compose-foundation/api/current.txt
+++ b/wear/compose/compose-foundation/api/current.txt
@@ -26,6 +26,11 @@
     method public static void basicCurvedText(androidx.wear.compose.foundation.CurvedScope, String text, androidx.wear.compose.foundation.CurvedTextStyle style, optional androidx.wear.compose.foundation.CurvedModifier modifier, optional androidx.wear.compose.foundation.CurvedDirection.Angular? angularDirection, optional int overflow);
   }
 
+  public final class CompositionLocalsKt {
+    method @androidx.wear.compose.foundation.ExperimentalWearFoundationApi public static androidx.compose.runtime.ProvidableCompositionLocal<androidx.wear.compose.foundation.ReduceMotion> getLocalReduceMotion();
+    property @androidx.wear.compose.foundation.ExperimentalWearFoundationApi public static final androidx.compose.runtime.ProvidableCompositionLocal<androidx.wear.compose.foundation.ReduceMotion> LocalReduceMotion;
+  }
+
   public interface CurvedAlignment {
   }
 
@@ -195,6 +200,61 @@
     property public final boolean expanded;
   }
 
+  @kotlin.RequiresOptIn(message="This Wear Foundation API is experimental and is likely to change or to be removed in" + " the future.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface ExperimentalWearFoundationApi {
+  }
+
+  public final class HierarchicalFocusCoordinatorKt {
+    method @androidx.compose.runtime.Composable @androidx.wear.compose.foundation.ExperimentalWearFoundationApi public static void HierarchicalFocusCoordinator(kotlin.jvm.functions.Function0<java.lang.Boolean> requiresFocus, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+    method @androidx.compose.runtime.Composable @androidx.wear.compose.foundation.ExperimentalWearFoundationApi public static void OnFocusChange(kotlin.jvm.functions.Function2<? super kotlinx.coroutines.CoroutineScope,? super java.lang.Boolean,kotlin.Unit> onFocusChanged);
+    method @androidx.compose.runtime.Composable @androidx.wear.compose.foundation.ExperimentalWearFoundationApi public static void RequestFocusWhenActive(androidx.compose.ui.focus.FocusRequester focusRequester);
+    method @androidx.compose.runtime.Composable @androidx.wear.compose.foundation.ExperimentalWearFoundationApi public static androidx.compose.ui.focus.FocusRequester rememberActiveFocusRequester();
+  }
+
+  @androidx.wear.compose.foundation.ExperimentalWearFoundationApi public fun interface ReduceMotion {
+    method @androidx.compose.runtime.Composable public boolean enabled();
+  }
+
+  @androidx.wear.compose.foundation.ExperimentalWearFoundationApi public interface RevealScope {
+    method public float getRevealOffset();
+    property public abstract float revealOffset;
+  }
+
+  @androidx.wear.compose.foundation.ExperimentalWearFoundationApi public final class RevealState {
+    method public suspend Object? animateTo(int targetValue, kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    method public int getCurrentValue();
+    method public float getOffset();
+    method public java.util.Map<androidx.wear.compose.foundation.RevealValue,java.lang.Float> getSwipeAnchors();
+    method public int getTargetValue();
+    method public boolean isAnimationRunning();
+    method public suspend Object? snapTo(int targetValue, kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    property public final int currentValue;
+    property public final boolean isAnimationRunning;
+    property public final float offset;
+    property public final java.util.Map<androidx.wear.compose.foundation.RevealValue,java.lang.Float> swipeAnchors;
+    property public final int targetValue;
+  }
+
+  @androidx.wear.compose.foundation.ExperimentalWearFoundationApi @kotlin.jvm.JvmInline public final value class RevealValue {
+    method public int getValue();
+    property public final int value;
+    field public static final androidx.wear.compose.foundation.RevealValue.Companion Companion;
+  }
+
+  public static final class RevealValue.Companion {
+    method public int getCovered();
+    method public int getRevealed();
+    method public int getRevealing();
+    property public final int Covered;
+    property public final int Revealed;
+    property public final int Revealing;
+  }
+
+  public final class SwipeToRevealKt {
+    method @androidx.compose.runtime.Composable @androidx.wear.compose.foundation.ExperimentalWearFoundationApi public static void SwipeToReveal(kotlin.jvm.functions.Function1<? super androidx.wear.compose.foundation.RevealScope,kotlin.Unit> action, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function0<kotlin.Unit> onFullSwipe, optional androidx.wear.compose.foundation.RevealState state, optional kotlin.jvm.functions.Function1<? super androidx.wear.compose.foundation.RevealScope,kotlin.Unit>? additionalAction, optional kotlin.jvm.functions.Function1<? super androidx.wear.compose.foundation.RevealScope,kotlin.Unit>? undoAction, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+    method @androidx.wear.compose.foundation.ExperimentalWearFoundationApi public static java.util.Map<androidx.wear.compose.foundation.RevealValue,java.lang.Float> createAnchors(optional float coveredAnchor, optional float revealingAnchor, optional float revealedAnchor);
+    method @androidx.compose.runtime.Composable @androidx.wear.compose.foundation.ExperimentalWearFoundationApi public static androidx.wear.compose.foundation.RevealState rememberRevealState(optional int initialValue, optional androidx.compose.animation.core.AnimationSpec<java.lang.Float> animationSpec, optional kotlin.jvm.functions.Function1<? super androidx.wear.compose.foundation.RevealValue,java.lang.Boolean> confirmValueChange, optional kotlin.jvm.functions.Function2<? super androidx.compose.ui.unit.Density,? super java.lang.Float,java.lang.Float> positionalThreshold, optional java.util.Map<androidx.wear.compose.foundation.RevealValue,java.lang.Float> anchors);
+  }
+
 }
 
 package androidx.wear.compose.foundation.lazy {
diff --git a/wear/compose/compose-foundation/api/res-1.2.0-beta01.txt b/wear/compose/compose-foundation/api/res-1.2.0-beta01.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/wear/compose/compose-foundation/api/res-1.2.0-beta01.txt
diff --git a/wear/compose/compose-foundation/api/public_plus_experimental_current.txt b/wear/compose/compose-foundation/api/restricted_1.2.0-beta01.txt
similarity index 100%
copy from wear/compose/compose-foundation/api/public_plus_experimental_current.txt
copy to wear/compose/compose-foundation/api/restricted_1.2.0-beta01.txt
diff --git a/wear/compose/compose-foundation/api/restricted_current.txt b/wear/compose/compose-foundation/api/restricted_current.txt
index 91d6749..03d2707 100644
--- a/wear/compose/compose-foundation/api/restricted_current.txt
+++ b/wear/compose/compose-foundation/api/restricted_current.txt
@@ -26,6 +26,11 @@
     method public static void basicCurvedText(androidx.wear.compose.foundation.CurvedScope, String text, androidx.wear.compose.foundation.CurvedTextStyle style, optional androidx.wear.compose.foundation.CurvedModifier modifier, optional androidx.wear.compose.foundation.CurvedDirection.Angular? angularDirection, optional int overflow);
   }
 
+  public final class CompositionLocalsKt {
+    method @androidx.wear.compose.foundation.ExperimentalWearFoundationApi public static androidx.compose.runtime.ProvidableCompositionLocal<androidx.wear.compose.foundation.ReduceMotion> getLocalReduceMotion();
+    property @androidx.wear.compose.foundation.ExperimentalWearFoundationApi public static final androidx.compose.runtime.ProvidableCompositionLocal<androidx.wear.compose.foundation.ReduceMotion> LocalReduceMotion;
+  }
+
   public interface CurvedAlignment {
   }
 
@@ -195,6 +200,61 @@
     property public final boolean expanded;
   }
 
+  @kotlin.RequiresOptIn(message="This Wear Foundation API is experimental and is likely to change or to be removed in" + " the future.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface ExperimentalWearFoundationApi {
+  }
+
+  public final class HierarchicalFocusCoordinatorKt {
+    method @androidx.compose.runtime.Composable @androidx.wear.compose.foundation.ExperimentalWearFoundationApi public static void HierarchicalFocusCoordinator(kotlin.jvm.functions.Function0<java.lang.Boolean> requiresFocus, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+    method @androidx.compose.runtime.Composable @androidx.wear.compose.foundation.ExperimentalWearFoundationApi public static void OnFocusChange(kotlin.jvm.functions.Function2<? super kotlinx.coroutines.CoroutineScope,? super java.lang.Boolean,kotlin.Unit> onFocusChanged);
+    method @androidx.compose.runtime.Composable @androidx.wear.compose.foundation.ExperimentalWearFoundationApi public static void RequestFocusWhenActive(androidx.compose.ui.focus.FocusRequester focusRequester);
+    method @androidx.compose.runtime.Composable @androidx.wear.compose.foundation.ExperimentalWearFoundationApi public static androidx.compose.ui.focus.FocusRequester rememberActiveFocusRequester();
+  }
+
+  @androidx.wear.compose.foundation.ExperimentalWearFoundationApi public fun interface ReduceMotion {
+    method @androidx.compose.runtime.Composable public boolean enabled();
+  }
+
+  @androidx.wear.compose.foundation.ExperimentalWearFoundationApi public interface RevealScope {
+    method public float getRevealOffset();
+    property public abstract float revealOffset;
+  }
+
+  @androidx.wear.compose.foundation.ExperimentalWearFoundationApi public final class RevealState {
+    method public suspend Object? animateTo(int targetValue, kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    method public int getCurrentValue();
+    method public float getOffset();
+    method public java.util.Map<androidx.wear.compose.foundation.RevealValue,java.lang.Float> getSwipeAnchors();
+    method public int getTargetValue();
+    method public boolean isAnimationRunning();
+    method public suspend Object? snapTo(int targetValue, kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    property public final int currentValue;
+    property public final boolean isAnimationRunning;
+    property public final float offset;
+    property public final java.util.Map<androidx.wear.compose.foundation.RevealValue,java.lang.Float> swipeAnchors;
+    property public final int targetValue;
+  }
+
+  @androidx.wear.compose.foundation.ExperimentalWearFoundationApi @kotlin.jvm.JvmInline public final value class RevealValue {
+    method public int getValue();
+    property public final int value;
+    field public static final androidx.wear.compose.foundation.RevealValue.Companion Companion;
+  }
+
+  public static final class RevealValue.Companion {
+    method public int getCovered();
+    method public int getRevealed();
+    method public int getRevealing();
+    property public final int Covered;
+    property public final int Revealed;
+    property public final int Revealing;
+  }
+
+  public final class SwipeToRevealKt {
+    method @androidx.compose.runtime.Composable @androidx.wear.compose.foundation.ExperimentalWearFoundationApi public static void SwipeToReveal(kotlin.jvm.functions.Function1<? super androidx.wear.compose.foundation.RevealScope,kotlin.Unit> action, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function0<kotlin.Unit> onFullSwipe, optional androidx.wear.compose.foundation.RevealState state, optional kotlin.jvm.functions.Function1<? super androidx.wear.compose.foundation.RevealScope,kotlin.Unit>? additionalAction, optional kotlin.jvm.functions.Function1<? super androidx.wear.compose.foundation.RevealScope,kotlin.Unit>? undoAction, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+    method @androidx.wear.compose.foundation.ExperimentalWearFoundationApi public static java.util.Map<androidx.wear.compose.foundation.RevealValue,java.lang.Float> createAnchors(optional float coveredAnchor, optional float revealingAnchor, optional float revealedAnchor);
+    method @androidx.compose.runtime.Composable @androidx.wear.compose.foundation.ExperimentalWearFoundationApi public static androidx.wear.compose.foundation.RevealState rememberRevealState(optional int initialValue, optional androidx.compose.animation.core.AnimationSpec<java.lang.Float> animationSpec, optional kotlin.jvm.functions.Function1<? super androidx.wear.compose.foundation.RevealValue,java.lang.Boolean> confirmValueChange, optional kotlin.jvm.functions.Function2<? super androidx.compose.ui.unit.Density,? super java.lang.Float,java.lang.Float> positionalThreshold, optional java.util.Map<androidx.wear.compose.foundation.RevealValue,java.lang.Float> anchors);
+  }
+
 }
 
 package androidx.wear.compose.foundation.lazy {
diff --git a/compose/ui/ui-test-manifest/api/public_plus_experimental_current.txt b/wear/compose/compose-material-core/api/1.2.0-beta01.txt
similarity index 100%
copy from compose/ui/ui-test-manifest/api/public_plus_experimental_current.txt
copy to wear/compose/compose-material-core/api/1.2.0-beta01.txt
diff --git a/wear/compose/compose-material-core/api/res-1.2.0-beta01.txt b/wear/compose/compose-material-core/api/res-1.2.0-beta01.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/wear/compose/compose-material-core/api/res-1.2.0-beta01.txt
diff --git a/compose/ui/ui-test-manifest/api/public_plus_experimental_current.txt b/wear/compose/compose-material-core/api/restricted_1.2.0-beta01.txt
similarity index 100%
copy from compose/ui/ui-test-manifest/api/public_plus_experimental_current.txt
copy to wear/compose/compose-material-core/api/restricted_1.2.0-beta01.txt
diff --git a/wear/compose/compose-material/api/1.2.0-beta01.txt b/wear/compose/compose-material/api/1.2.0-beta01.txt
new file mode 100644
index 0000000..13baed6
--- /dev/null
+++ b/wear/compose/compose-material/api/1.2.0-beta01.txt
@@ -0,0 +1,924 @@
+// Signature format: 4.0
+package androidx.wear.compose.material {
+
+  @Deprecated @androidx.compose.runtime.Immutable public final class AutoCenteringParams {
+    ctor @Deprecated public AutoCenteringParams(optional int itemIndex, optional int itemOffset);
+  }
+
+  @androidx.compose.runtime.Stable public interface ButtonBorder {
+    method @androidx.compose.runtime.Composable public androidx.compose.runtime.State<androidx.compose.foundation.BorderStroke> borderStroke(boolean enabled);
+  }
+
+  @androidx.compose.runtime.Stable public interface ButtonColors {
+    method @androidx.compose.runtime.Composable public androidx.compose.runtime.State<androidx.compose.ui.graphics.Color> backgroundColor(boolean enabled);
+    method @androidx.compose.runtime.Composable public androidx.compose.runtime.State<androidx.compose.ui.graphics.Color> contentColor(boolean enabled);
+  }
+
+  public final class ButtonDefaults {
+    method @androidx.compose.runtime.Composable public androidx.wear.compose.material.ButtonBorder buttonBorder(optional androidx.compose.foundation.BorderStroke? borderStroke, optional androidx.compose.foundation.BorderStroke? disabledBorderStroke);
+    method @androidx.compose.runtime.Composable public androidx.wear.compose.material.ButtonColors buttonColors(optional long backgroundColor, optional long contentColor, optional long disabledBackgroundColor, optional long disabledContentColor);
+    method public float getCompactButtonBackgroundPadding();
+    method public float getDefaultButtonSize();
+    method public float getDefaultIconSize();
+    method public float getExtraSmallButtonSize();
+    method public float getLargeButtonSize();
+    method public float getLargeIconSize();
+    method public float getSmallButtonSize();
+    method public float getSmallIconSize();
+    method @androidx.compose.runtime.Composable public androidx.wear.compose.material.ButtonColors iconButtonColors(optional long contentColor);
+    method @androidx.compose.runtime.Composable public androidx.wear.compose.material.ButtonBorder outlinedButtonBorder(optional long borderColor, optional long disabledBorderColor, optional float borderWidth);
+    method @androidx.compose.runtime.Composable public androidx.wear.compose.material.ButtonColors outlinedButtonColors(optional long contentColor);
+    method @androidx.compose.runtime.Composable public androidx.wear.compose.material.ButtonColors primaryButtonColors(optional long backgroundColor, optional long contentColor);
+    method @androidx.compose.runtime.Composable public androidx.wear.compose.material.ButtonColors secondaryButtonColors(optional long backgroundColor, optional long contentColor);
+    property public final float CompactButtonBackgroundPadding;
+    property public final float DefaultButtonSize;
+    property public final float DefaultIconSize;
+    property public final float ExtraSmallButtonSize;
+    property public final float LargeButtonSize;
+    property public final float LargeIconSize;
+    property public final float SmallButtonSize;
+    property public final float SmallIconSize;
+    field public static final androidx.wear.compose.material.ButtonDefaults INSTANCE;
+  }
+
+  public final class ButtonKt {
+    method @androidx.compose.runtime.Composable public static void Button(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.wear.compose.material.ButtonColors colors, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional androidx.compose.ui.graphics.Shape shape, optional androidx.wear.compose.material.ButtonBorder border, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.BoxScope,kotlin.Unit> content);
+    method @Deprecated @androidx.compose.runtime.Composable public static void Button(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.wear.compose.material.ButtonColors colors, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.BoxScope,kotlin.Unit> content);
+    method @androidx.compose.runtime.Composable public static void CompactButton(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.wear.compose.material.ButtonColors colors, optional float backgroundPadding, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional androidx.compose.ui.graphics.Shape shape, optional androidx.wear.compose.material.ButtonBorder border, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.BoxScope,kotlin.Unit> content);
+    method @Deprecated @androidx.compose.runtime.Composable public static void CompactButton(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.wear.compose.material.ButtonColors colors, optional float backgroundPadding, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.BoxScope,kotlin.Unit> content);
+    method @androidx.compose.runtime.Composable public static void OutlinedButton(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.wear.compose.material.ButtonColors colors, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional androidx.compose.ui.graphics.Shape shape, optional androidx.wear.compose.material.ButtonBorder border, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.BoxScope,kotlin.Unit> content);
+    method @androidx.compose.runtime.Composable public static void OutlinedCompactButton(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.wear.compose.material.ButtonColors colors, optional float backgroundPadding, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional androidx.compose.ui.graphics.Shape shape, optional androidx.wear.compose.material.ButtonBorder border, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.BoxScope,kotlin.Unit> content);
+  }
+
+  public final class CardDefaults {
+    method @androidx.compose.runtime.Composable public androidx.compose.ui.graphics.painter.Painter cardBackgroundPainter(optional long startBackgroundColor, optional long endBackgroundColor, optional androidx.compose.ui.unit.LayoutDirection gradientDirection);
+    method public float getAppImageSize();
+    method public androidx.compose.foundation.layout.PaddingValues getContentPadding();
+    method @androidx.compose.runtime.Composable public androidx.compose.ui.graphics.painter.Painter imageWithScrimBackgroundPainter(androidx.compose.ui.graphics.painter.Painter backgroundImagePainter, optional androidx.compose.ui.graphics.Brush backgroundImageScrimBrush);
+    property public final float AppImageSize;
+    property public final androidx.compose.foundation.layout.PaddingValues ContentPadding;
+    field public static final androidx.wear.compose.material.CardDefaults INSTANCE;
+  }
+
+  public final class CardKt {
+    method @androidx.compose.runtime.Composable public static void AppCard(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit> appName, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit> time, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit> title, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit>? appImage, optional androidx.compose.ui.graphics.painter.Painter backgroundPainter, optional long contentColor, optional long appColor, optional long timeColor, optional long titleColor, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit> content);
+    method @androidx.compose.runtime.Composable public static void Card(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.graphics.painter.Painter backgroundPainter, optional long contentColor, optional boolean enabled, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional androidx.compose.ui.semantics.Role? role, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit> content);
+    method @androidx.compose.runtime.Composable public static void TitleCard(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit> title, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit>? time, optional androidx.compose.ui.graphics.painter.Painter backgroundPainter, optional long contentColor, optional long titleColor, optional long timeColor, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit> content);
+  }
+
+  @androidx.compose.runtime.Stable public interface CheckboxColors {
+    method @androidx.compose.runtime.Composable public androidx.compose.runtime.State<androidx.compose.ui.graphics.Color> boxColor(boolean enabled, boolean checked);
+    method @androidx.compose.runtime.Composable public androidx.compose.runtime.State<androidx.compose.ui.graphics.Color> checkmarkColor(boolean enabled, boolean checked);
+  }
+
+  public final class CheckboxDefaults {
+    method @androidx.compose.runtime.Composable public androidx.wear.compose.material.CheckboxColors colors(optional long checkedBoxColor, optional long checkedCheckmarkColor, optional long uncheckedBoxColor, optional long uncheckedCheckmarkColor);
+    field public static final androidx.wear.compose.material.CheckboxDefaults INSTANCE;
+  }
+
+  @androidx.compose.runtime.Stable public interface ChipBorder {
+    method @androidx.compose.runtime.Composable public androidx.compose.runtime.State<androidx.compose.foundation.BorderStroke> borderStroke(boolean enabled);
+  }
+
+  @androidx.compose.runtime.Stable public interface ChipColors {
+    method @androidx.compose.runtime.Composable public androidx.compose.runtime.State<androidx.compose.ui.graphics.painter.Painter> background(boolean enabled);
+    method @androidx.compose.runtime.Composable public androidx.compose.runtime.State<androidx.compose.ui.graphics.Color> contentColor(boolean enabled);
+    method @androidx.compose.runtime.Composable public androidx.compose.runtime.State<androidx.compose.ui.graphics.Color> iconColor(boolean enabled);
+    method @androidx.compose.runtime.Composable public androidx.compose.runtime.State<androidx.compose.ui.graphics.Color> secondaryContentColor(boolean enabled);
+  }
+
+  public final class ChipDefaults {
+    method @androidx.compose.runtime.Composable public androidx.wear.compose.material.ChipColors childChipColors(optional long contentColor, optional long secondaryContentColor, optional long iconColor);
+    method @androidx.compose.runtime.Composable public androidx.wear.compose.material.ChipBorder chipBorder(optional androidx.compose.foundation.BorderStroke? borderStroke, optional androidx.compose.foundation.BorderStroke? disabledBorderStroke);
+    method @androidx.wear.compose.material.ExperimentalWearMaterialApi public androidx.wear.compose.material.ChipColors chipColors(androidx.compose.ui.graphics.painter.Painter backgroundPainter, long contentColor, long secondaryContentColor, long iconColor, androidx.compose.ui.graphics.painter.Painter disabledBackgroundPainter, long disabledContentColor, long disabledSecondaryContentColor, long disabledIconColor);
+    method @androidx.compose.runtime.Composable public androidx.wear.compose.material.ChipColors chipColors(optional long backgroundColor, optional long contentColor, optional long secondaryContentColor, optional long iconColor, optional long disabledBackgroundColor, optional long disabledContentColor, optional long disabledSecondaryContentColor, optional long disabledIconColor);
+    method public androidx.compose.foundation.layout.PaddingValues getCompactChipContentPadding();
+    method public androidx.compose.foundation.layout.PaddingValues getCompactChipTapTargetPadding();
+    method public androidx.compose.foundation.layout.PaddingValues getContentPadding();
+    method public float getIconSize();
+    method public float getLargeIconSize();
+    method public float getSmallIconSize();
+    method @androidx.compose.runtime.Composable public androidx.wear.compose.material.ChipColors gradientBackgroundChipColors(optional long startBackgroundColor, optional long endBackgroundColor, optional long contentColor, optional long secondaryContentColor, optional long iconColor, optional androidx.compose.ui.unit.LayoutDirection gradientDirection);
+    method @androidx.compose.runtime.Composable public androidx.wear.compose.material.ChipColors imageBackgroundChipColors(androidx.compose.ui.graphics.painter.Painter backgroundImagePainter, optional androidx.compose.ui.graphics.Brush backgroundImageScrimBrush, optional long contentColor, optional long secondaryContentColor, optional long iconColor);
+    method @androidx.compose.runtime.Composable public androidx.wear.compose.material.ChipBorder outlinedChipBorder(optional long borderColor, optional long disabledBorderColor, optional float borderWidth);
+    method @androidx.compose.runtime.Composable public androidx.wear.compose.material.ChipColors outlinedChipColors(optional long contentColor, optional long secondaryContentColor, optional long iconColor);
+    method @androidx.compose.runtime.Composable public androidx.wear.compose.material.ChipColors primaryChipColors(optional long backgroundColor, optional long contentColor, optional long secondaryContentColor, optional long iconColor);
+    method @androidx.compose.runtime.Composable public androidx.wear.compose.material.ChipColors secondaryChipColors(optional long backgroundColor, optional long contentColor, optional long secondaryContentColor, optional long iconColor);
+    property public final androidx.compose.foundation.layout.PaddingValues CompactChipContentPadding;
+    property public final androidx.compose.foundation.layout.PaddingValues CompactChipTapTargetPadding;
+    property public final androidx.compose.foundation.layout.PaddingValues ContentPadding;
+    property public final float IconSize;
+    property public final float LargeIconSize;
+    property public final float SmallIconSize;
+    field public static final androidx.wear.compose.material.ChipDefaults INSTANCE;
+  }
+
+  public final class ChipKt {
+    method @Deprecated @androidx.compose.runtime.Composable public static void Chip(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.wear.compose.material.ChipColors colors, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional androidx.compose.ui.semantics.Role? role, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit> content);
+    method @androidx.compose.runtime.Composable public static void Chip(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.wear.compose.material.ChipColors colors, androidx.wear.compose.material.ChipBorder border, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional androidx.compose.ui.semantics.Role? role, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit> content);
+    method @Deprecated @androidx.compose.runtime.Composable public static void Chip(kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit> label, kotlin.jvm.functions.Function0<kotlin.Unit> onClick, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit>? secondaryLabel, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.BoxScope,kotlin.Unit>? icon, optional androidx.wear.compose.material.ChipColors colors, optional boolean enabled, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional androidx.compose.foundation.layout.PaddingValues contentPadding);
+    method @androidx.compose.runtime.Composable public static void Chip(kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit> label, kotlin.jvm.functions.Function0<kotlin.Unit> onClick, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit>? secondaryLabel, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.BoxScope,kotlin.Unit>? icon, optional androidx.wear.compose.material.ChipColors colors, optional boolean enabled, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional androidx.compose.ui.graphics.Shape shape, optional androidx.wear.compose.material.ChipBorder border);
+    method @Deprecated @androidx.compose.runtime.Composable public static void CompactChip(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit>? label, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.BoxScope,kotlin.Unit>? icon, optional androidx.wear.compose.material.ChipColors colors, optional boolean enabled, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional androidx.compose.foundation.layout.PaddingValues contentPadding);
+    method @androidx.compose.runtime.Composable public static void CompactChip(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit>? label, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.BoxScope,kotlin.Unit>? icon, optional androidx.wear.compose.material.ChipColors colors, optional boolean enabled, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional androidx.compose.ui.graphics.Shape shape, optional androidx.wear.compose.material.ChipBorder border);
+    method @androidx.compose.runtime.Composable public static void OutlinedChip(kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit> label, kotlin.jvm.functions.Function0<kotlin.Unit> onClick, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit>? secondaryLabel, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.BoxScope,kotlin.Unit>? icon, optional androidx.wear.compose.material.ChipColors colors, optional boolean enabled, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional androidx.compose.ui.graphics.Shape shape, optional androidx.wear.compose.material.ChipBorder border);
+    method @androidx.compose.runtime.Composable public static void OutlinedCompactChip(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit>? label, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.BoxScope,kotlin.Unit>? icon, optional androidx.wear.compose.material.ChipColors colors, optional boolean enabled, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional androidx.compose.ui.graphics.Shape shape, optional androidx.wear.compose.material.ChipBorder border);
+  }
+
+  @androidx.compose.runtime.Stable public final class Colors {
+    ctor public Colors(optional long primary, optional long primaryVariant, optional long secondary, optional long secondaryVariant, optional long background, optional long surface, optional long error, optional long onPrimary, optional long onSecondary, optional long onBackground, optional long onSurface, optional long onSurfaceVariant, optional long onError);
+    method public androidx.wear.compose.material.Colors copy(optional long primary, optional long primaryVariant, optional long secondary, optional long secondaryVariant, optional long background, optional long surface, optional long error, optional long onPrimary, optional long onSecondary, optional long onBackground, optional long onSurface, optional long onSurfaceVariant, optional long onError);
+    method public long getBackground();
+    method public long getError();
+    method public long getOnBackground();
+    method public long getOnError();
+    method public long getOnPrimary();
+    method public long getOnSecondary();
+    method public long getOnSurface();
+    method public long getOnSurfaceVariant();
+    method public long getPrimary();
+    method public long getPrimaryVariant();
+    method public long getSecondary();
+    method public long getSecondaryVariant();
+    method public long getSurface();
+    property public final long background;
+    property public final long error;
+    property public final long onBackground;
+    property public final long onError;
+    property public final long onPrimary;
+    property public final long onSecondary;
+    property public final long onSurface;
+    property public final long onSurfaceVariant;
+    property public final long primary;
+    property public final long primaryVariant;
+    property public final long secondary;
+    property public final long secondaryVariant;
+    property public final long surface;
+  }
+
+  public final class ColorsKt {
+    method public static long contentColorFor(androidx.wear.compose.material.Colors, long backgroundColor);
+    method @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public static long contentColorFor(long backgroundColor);
+  }
+
+  public final class ContentAlpha {
+    method @androidx.compose.runtime.Composable public float getDisabled();
+    method @androidx.compose.runtime.Composable public float getHigh();
+    method @androidx.compose.runtime.Composable public float getMedium();
+    property @androidx.compose.runtime.Composable public final float disabled;
+    property @androidx.compose.runtime.Composable public final float high;
+    property @androidx.compose.runtime.Composable public final float medium;
+    field public static final androidx.wear.compose.material.ContentAlpha INSTANCE;
+  }
+
+  public final class ContentAlphaKt {
+    method public static androidx.compose.runtime.ProvidableCompositionLocal<java.lang.Float> getLocalContentAlpha();
+    property public static final androidx.compose.runtime.ProvidableCompositionLocal<java.lang.Float> LocalContentAlpha;
+  }
+
+  public final class ContentColorKt {
+    method public static androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.ui.graphics.Color> getLocalContentColor();
+    property public static final androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.ui.graphics.Color> LocalContentColor;
+  }
+
+  public final class CurvedTextKt {
+    method public static void curvedText(androidx.wear.compose.foundation.CurvedScope, String text, optional androidx.wear.compose.foundation.CurvedModifier modifier, optional long background, optional long color, optional long fontSize, optional androidx.compose.ui.text.font.FontFamily? fontFamily, optional androidx.compose.ui.text.font.FontWeight? fontWeight, optional androidx.compose.ui.text.font.FontStyle? fontStyle, optional androidx.compose.ui.text.font.FontSynthesis? fontSynthesis, optional androidx.wear.compose.foundation.CurvedTextStyle? style, optional androidx.wear.compose.foundation.CurvedDirection.Angular? angularDirection, optional int overflow);
+    method @Deprecated public static void curvedText(androidx.wear.compose.foundation.CurvedScope, String text, optional androidx.wear.compose.foundation.CurvedModifier modifier, optional long background, optional long color, optional long fontSize, optional androidx.wear.compose.foundation.CurvedTextStyle? style, optional androidx.wear.compose.foundation.CurvedDirection.Angular? angularDirection, optional int overflow);
+  }
+
+  @kotlin.RequiresOptIn(message="This Wear Material API is experimental and is likely to change or to be removed in" + " the future.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface ExperimentalWearMaterialApi {
+  }
+
+  @androidx.compose.runtime.Immutable @androidx.wear.compose.material.ExperimentalWearMaterialApi public final class FixedThreshold implements androidx.wear.compose.material.ThresholdConfig {
+    ctor public FixedThreshold(float offset);
+    method public float computeThreshold(androidx.compose.ui.unit.Density, float fromValue, float toValue);
+    method public androidx.wear.compose.material.FixedThreshold copy-0680j_4(float offset);
+  }
+
+  @androidx.compose.runtime.Immutable @androidx.wear.compose.material.ExperimentalWearMaterialApi public final class FractionalThreshold implements androidx.wear.compose.material.ThresholdConfig {
+    ctor public FractionalThreshold(float fraction);
+    method public float computeThreshold(androidx.compose.ui.unit.Density, float fromValue, float toValue);
+    method public androidx.wear.compose.material.FractionalThreshold copy(float fraction);
+  }
+
+  public final class HorizontalPageIndicatorKt {
+    method @androidx.compose.runtime.Composable public static void HorizontalPageIndicator(androidx.wear.compose.material.PageIndicatorState pageIndicatorState, optional androidx.compose.ui.Modifier modifier, optional int indicatorStyle, optional long selectedColor, optional long unselectedColor, optional float indicatorSize, optional float spacing, optional androidx.compose.ui.graphics.Shape indicatorShape);
+  }
+
+  public final class IconKt {
+    method @androidx.compose.runtime.Composable public static void Icon(androidx.compose.ui.graphics.ImageBitmap bitmap, String? contentDescription, optional androidx.compose.ui.Modifier modifier, optional long tint);
+    method @androidx.compose.runtime.Composable public static void Icon(androidx.compose.ui.graphics.painter.Painter painter, String? contentDescription, optional androidx.compose.ui.Modifier modifier, optional long tint);
+    method @androidx.compose.runtime.Composable public static void Icon(androidx.compose.ui.graphics.vector.ImageVector imageVector, String? contentDescription, optional androidx.compose.ui.Modifier modifier, optional long tint);
+  }
+
+  @androidx.compose.runtime.Stable public interface InlineSliderColors {
+    method @androidx.compose.runtime.Composable public androidx.compose.runtime.State<androidx.compose.ui.graphics.Color> backgroundColor(boolean enabled);
+    method @androidx.compose.runtime.Composable public androidx.compose.runtime.State<androidx.compose.ui.graphics.Color> barColor(boolean enabled, boolean selected);
+    method @androidx.compose.runtime.Composable public androidx.compose.runtime.State<androidx.compose.ui.graphics.Color> spacerColor(boolean enabled);
+  }
+
+  public final class InlineSliderDefaults {
+    method @androidx.compose.runtime.Composable public androidx.wear.compose.material.InlineSliderColors colors(optional long backgroundColor, optional long spacerColor, optional long selectedBarColor, optional long unselectedBarColor, optional long disabledBackgroundColor, optional long disabledSpacerColor, optional long disabledSelectedBarColor, optional long disabledUnselectedBarColor);
+    method public androidx.compose.ui.graphics.vector.ImageVector getDecrease();
+    method public androidx.compose.ui.graphics.vector.ImageVector getIncrease();
+    property public final androidx.compose.ui.graphics.vector.ImageVector Decrease;
+    property public final androidx.compose.ui.graphics.vector.ImageVector Increase;
+    field public static final androidx.wear.compose.material.InlineSliderDefaults INSTANCE;
+  }
+
+  public final class ListHeaderKt {
+    method @androidx.compose.runtime.Composable public static void ListHeader(optional androidx.compose.ui.Modifier modifier, optional long backgroundColor, optional long contentColor, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit> content);
+  }
+
+  public final class MaterialTheme {
+    method @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public androidx.wear.compose.material.Colors getColors();
+    method @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public androidx.wear.compose.material.Shapes getShapes();
+    method @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public androidx.wear.compose.material.Typography getTypography();
+    property @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public final androidx.wear.compose.material.Colors colors;
+    property @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public final androidx.wear.compose.material.Shapes shapes;
+    property @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public final androidx.wear.compose.material.Typography typography;
+    field public static final androidx.wear.compose.material.MaterialTheme INSTANCE;
+  }
+
+  public final class MaterialThemeKt {
+    method @androidx.compose.runtime.Composable public static void MaterialTheme(optional androidx.wear.compose.material.Colors colors, optional androidx.wear.compose.material.Typography typography, optional androidx.wear.compose.material.Shapes shapes, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+  }
+
+  public final class PageIndicatorDefaults {
+    method @androidx.compose.runtime.Composable public int style();
+    field public static final androidx.wear.compose.material.PageIndicatorDefaults INSTANCE;
+  }
+
+  public interface PageIndicatorState {
+    method public int getPageCount();
+    method public float getPageOffset();
+    method public int getSelectedPage();
+    property public abstract int pageCount;
+    property public abstract float pageOffset;
+    property public abstract int selectedPage;
+  }
+
+  @kotlin.jvm.JvmInline public final value class PageIndicatorStyle {
+    field public static final androidx.wear.compose.material.PageIndicatorStyle.Companion Companion;
+  }
+
+  public static final class PageIndicatorStyle.Companion {
+    method public int getCurved();
+    method public int getLinear();
+    property public final int Curved;
+    property public final int Linear;
+  }
+
+  public final class PickerDefaults {
+    method public androidx.wear.compose.foundation.lazy.ScalingParams defaultScalingParams(optional float edgeScale, optional float edgeAlpha, optional float minElementHeight, optional float maxElementHeight, optional float minTransitionArea, optional float maxTransitionArea, optional androidx.compose.animation.core.Easing scaleInterpolator, optional kotlin.jvm.functions.Function1<? super androidx.compose.ui.unit.Constraints,java.lang.Integer> viewportVerticalOffsetResolver);
+    method @androidx.compose.runtime.Composable public androidx.compose.foundation.gestures.FlingBehavior flingBehavior(androidx.wear.compose.material.PickerState state, optional androidx.compose.animation.core.DecayAnimationSpec<java.lang.Float> decay);
+    method public float getDefaultGradientRatio();
+    method @Deprecated public androidx.wear.compose.material.ScalingParams scalingParams(optional float edgeScale, optional float edgeAlpha, optional float minElementHeight, optional float maxElementHeight, optional float minTransitionArea, optional float maxTransitionArea, optional androidx.compose.animation.core.Easing scaleInterpolator, optional kotlin.jvm.functions.Function1<? super androidx.compose.ui.unit.Constraints,java.lang.Integer> viewportVerticalOffsetResolver);
+    property public final float DefaultGradientRatio;
+    field public static final androidx.wear.compose.material.PickerDefaults INSTANCE;
+  }
+
+  public final class PickerGroupItem {
+    ctor public PickerGroupItem(androidx.wear.compose.material.PickerState pickerState, optional androidx.compose.ui.Modifier modifier, optional String? contentDescription, optional androidx.compose.ui.focus.FocusRequester? focusRequester, optional kotlin.jvm.functions.Function0<kotlin.Unit> onSelected, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.BoxScope,kotlin.Unit>? readOnlyLabel, kotlin.jvm.functions.Function3<? super androidx.wear.compose.material.PickerScope,? super java.lang.Integer,? super java.lang.Boolean,kotlin.Unit> option);
+    method public String? getContentDescription();
+    method public androidx.compose.ui.focus.FocusRequester? getFocusRequester();
+    method public androidx.compose.ui.Modifier getModifier();
+    method public kotlin.jvm.functions.Function0<kotlin.Unit> getOnSelected();
+    method public kotlin.jvm.functions.Function3<androidx.wear.compose.material.PickerScope,java.lang.Integer,java.lang.Boolean,kotlin.Unit> getOption();
+    method public androidx.wear.compose.material.PickerState getPickerState();
+    method public kotlin.jvm.functions.Function1<androidx.compose.foundation.layout.BoxScope,kotlin.Unit>? getReadOnlyLabel();
+    property public final String? contentDescription;
+    property public final androidx.compose.ui.focus.FocusRequester? focusRequester;
+    property public final androidx.compose.ui.Modifier modifier;
+    property public final kotlin.jvm.functions.Function0<kotlin.Unit> onSelected;
+    property public final kotlin.jvm.functions.Function3<androidx.wear.compose.material.PickerScope,java.lang.Integer,java.lang.Boolean,kotlin.Unit> option;
+    property public final androidx.wear.compose.material.PickerState pickerState;
+    property public final kotlin.jvm.functions.Function1<androidx.compose.foundation.layout.BoxScope,kotlin.Unit>? readOnlyLabel;
+  }
+
+  public final class PickerGroupKt {
+    method @androidx.compose.runtime.Composable public static void PickerGroup(androidx.wear.compose.material.PickerGroupItem![] pickers, optional androidx.compose.ui.Modifier modifier, optional androidx.wear.compose.material.PickerGroupState pickerGroupState, optional kotlin.jvm.functions.Function1<? super java.lang.Integer,kotlin.Unit> onSelected, optional boolean autoCenter, optional boolean propagateMinConstraints, optional androidx.wear.compose.material.TouchExplorationStateProvider touchExplorationStateProvider, optional kotlin.jvm.functions.Function1<? super java.lang.Integer,kotlin.Unit>? separator);
+    method @androidx.compose.runtime.Composable public static androidx.wear.compose.material.PickerGroupState rememberPickerGroupState(optional int initiallySelectedIndex);
+  }
+
+  public final class PickerGroupState {
+    ctor public PickerGroupState(optional int initiallySelectedIndex);
+    method public int getSelectedIndex();
+    method public void setSelectedIndex(int);
+    property public final int selectedIndex;
+    field public static final androidx.wear.compose.material.PickerGroupState.Companion Companion;
+  }
+
+  public static final class PickerGroupState.Companion {
+    method public androidx.compose.runtime.saveable.Saver<androidx.wear.compose.material.PickerGroupState,java.lang.Object> getSaver();
+    property public final androidx.compose.runtime.saveable.Saver<androidx.wear.compose.material.PickerGroupState,java.lang.Object> Saver;
+  }
+
+  public final class PickerKt {
+    method @Deprecated @androidx.compose.runtime.Composable public static void Picker(androidx.wear.compose.material.PickerState state, optional androidx.compose.ui.Modifier modifier, optional boolean readOnly, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.BoxScope,kotlin.Unit>? readOnlyLabel, optional androidx.wear.compose.material.ScalingParams scalingParams, optional float separation, optional float gradientRatio, optional long gradientColor, optional androidx.compose.foundation.gestures.FlingBehavior flingBehavior, kotlin.jvm.functions.Function2<? super androidx.wear.compose.material.PickerScope,? super java.lang.Integer,kotlin.Unit> option);
+    method @androidx.compose.runtime.Composable public static void Picker(androidx.wear.compose.material.PickerState state, String? contentDescription, optional androidx.compose.ui.Modifier modifier, optional boolean readOnly, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.BoxScope,kotlin.Unit>? readOnlyLabel, optional kotlin.jvm.functions.Function0<kotlin.Unit> onSelected, optional androidx.wear.compose.foundation.lazy.ScalingParams scalingParams, optional float separation, optional float gradientRatio, optional long gradientColor, optional androidx.compose.foundation.gestures.FlingBehavior flingBehavior, optional boolean userScrollEnabled, kotlin.jvm.functions.Function2<? super androidx.wear.compose.material.PickerScope,? super java.lang.Integer,kotlin.Unit> option);
+    method @Deprecated @androidx.compose.runtime.Composable public static void Picker(androidx.wear.compose.material.PickerState state, String? contentDescription, optional androidx.compose.ui.Modifier modifier, optional boolean readOnly, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.BoxScope,kotlin.Unit>? readOnlyLabel, optional kotlin.jvm.functions.Function0<kotlin.Unit> onSelected, optional androidx.wear.compose.material.ScalingParams scalingParams, optional float separation, optional float gradientRatio, optional long gradientColor, optional androidx.compose.foundation.gestures.FlingBehavior flingBehavior, optional boolean userScrollEnabled, kotlin.jvm.functions.Function2<? super androidx.wear.compose.material.PickerScope,? super java.lang.Integer,kotlin.Unit> option);
+    method @Deprecated @androidx.compose.runtime.Composable public static void Picker(androidx.wear.compose.material.PickerState state, String? contentDescription, optional androidx.compose.ui.Modifier modifier, optional boolean readOnly, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.BoxScope,kotlin.Unit>? readOnlyLabel, optional kotlin.jvm.functions.Function0<kotlin.Unit> onSelected, optional androidx.wear.compose.material.ScalingParams scalingParams, optional float separation, optional float gradientRatio, optional long gradientColor, optional androidx.compose.foundation.gestures.FlingBehavior flingBehavior, kotlin.jvm.functions.Function2<? super androidx.wear.compose.material.PickerScope,? super java.lang.Integer,kotlin.Unit> option);
+    method @androidx.compose.runtime.Composable public static androidx.wear.compose.material.PickerState rememberPickerState(int initialNumberOfOptions, optional int initiallySelectedOption, optional boolean repeatItems);
+  }
+
+  public interface PickerScope {
+    method public int getSelectedOption();
+    property public abstract int selectedOption;
+  }
+
+  @androidx.compose.runtime.Stable public final class PickerState implements androidx.compose.foundation.gestures.ScrollableState {
+    ctor public PickerState(int initialNumberOfOptions, optional int initiallySelectedOption, optional boolean repeatItems);
+    method public suspend Object? animateScrollToOption(int index, kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    method public float dispatchRawDelta(float delta);
+    method public int getNumberOfOptions();
+    method public boolean getRepeatItems();
+    method public int getSelectedOption();
+    method public boolean isScrollInProgress();
+    method public suspend Object? scroll(androidx.compose.foundation.MutatePriority scrollPriority, kotlin.jvm.functions.Function2<? super androidx.compose.foundation.gestures.ScrollScope,? super kotlin.coroutines.Continuation<? super kotlin.Unit>,?> block, kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    method public suspend Object? scrollToOption(int index, kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    method public void setNumberOfOptions(int);
+    property public boolean canScrollBackward;
+    property public boolean canScrollForward;
+    property public boolean isScrollInProgress;
+    property public final int numberOfOptions;
+    property public final boolean repeatItems;
+    property public final int selectedOption;
+    field public static final androidx.wear.compose.material.PickerState.Companion Companion;
+  }
+
+  public static final class PickerState.Companion {
+    method public androidx.compose.runtime.saveable.Saver<androidx.wear.compose.material.PickerState,java.lang.Object> getSaver();
+    property public final androidx.compose.runtime.saveable.Saver<androidx.wear.compose.material.PickerState,java.lang.Object> Saver;
+  }
+
+  @androidx.wear.compose.material.ExperimentalWearMaterialApi public final class PlaceholderDefaults {
+    method @androidx.compose.runtime.Composable public androidx.compose.ui.graphics.painter.Painter painterWithPlaceholderOverlayBackgroundBrush(androidx.wear.compose.material.PlaceholderState placeholderState, androidx.compose.ui.graphics.painter.Painter painter, optional long color);
+    method @androidx.compose.runtime.Composable public androidx.compose.ui.graphics.painter.Painter placeholderBackgroundBrush(androidx.wear.compose.material.PlaceholderState placeholderState, optional long color);
+    method @androidx.compose.runtime.Composable public androidx.wear.compose.material.ChipColors placeholderChipColors(androidx.wear.compose.material.ChipColors originalChipColors, androidx.wear.compose.material.PlaceholderState placeholderState, optional long color);
+    method @androidx.compose.runtime.Composable public androidx.wear.compose.material.ChipColors placeholderChipColors(androidx.wear.compose.material.PlaceholderState placeholderState, optional long color);
+    field public static final androidx.wear.compose.material.PlaceholderDefaults INSTANCE;
+  }
+
+  public final class PlaceholderKt {
+    method @androidx.compose.runtime.Composable @androidx.wear.compose.material.ExperimentalWearMaterialApi public static androidx.compose.ui.Modifier placeholder(androidx.compose.ui.Modifier, androidx.wear.compose.material.PlaceholderState placeholderState, optional androidx.compose.ui.graphics.Shape shape, optional long color);
+    method @androidx.compose.runtime.Composable @androidx.wear.compose.material.ExperimentalWearMaterialApi public static androidx.compose.ui.Modifier placeholderShimmer(androidx.compose.ui.Modifier, androidx.wear.compose.material.PlaceholderState placeholderState, optional androidx.compose.ui.graphics.Shape shape, optional long color);
+    method @androidx.compose.runtime.Composable @androidx.wear.compose.material.ExperimentalWearMaterialApi public static androidx.wear.compose.material.PlaceholderState rememberPlaceholderState(kotlin.jvm.functions.Function0<java.lang.Boolean> isContentReady);
+  }
+
+  @androidx.compose.runtime.Stable @androidx.wear.compose.material.ExperimentalWearMaterialApi public final class PlaceholderState {
+    method public float getPlaceholderProgression();
+    method public boolean isShowContent();
+    method public boolean isWipeOff();
+    method public suspend Object? startPlaceholderAnimation(kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    property public final boolean isShowContent;
+    property public final boolean isWipeOff;
+    property public final float placeholderProgression;
+  }
+
+  @kotlin.jvm.JvmInline public final value class PositionIndicatorAlignment {
+    field public static final androidx.wear.compose.material.PositionIndicatorAlignment.Companion Companion;
+  }
+
+  public static final class PositionIndicatorAlignment.Companion {
+    method public int getEnd();
+    method public int getLeft();
+    method public int getOppositeRsb();
+    method public int getRight();
+    property public final int End;
+    property public final int Left;
+    property public final int OppositeRsb;
+    property public final int Right;
+  }
+
+  public final class PositionIndicatorKt {
+    method @androidx.compose.runtime.Composable public static void PositionIndicator(androidx.compose.foundation.lazy.LazyListState lazyListState, optional androidx.compose.ui.Modifier modifier, optional boolean reverseDirection);
+    method @androidx.compose.runtime.Composable public static void PositionIndicator(androidx.compose.foundation.ScrollState scrollState, optional androidx.compose.ui.Modifier modifier, optional boolean reverseDirection);
+    method @androidx.compose.runtime.Composable public static void PositionIndicator(androidx.wear.compose.foundation.lazy.ScalingLazyListState scalingLazyListState, optional androidx.compose.ui.Modifier modifier, optional boolean reverseDirection);
+    method @androidx.compose.runtime.Composable public static void PositionIndicator(androidx.wear.compose.material.PositionIndicatorState state, float indicatorHeight, float indicatorWidth, float paddingHorizontal, optional androidx.compose.ui.Modifier modifier, optional long background, optional long color, optional boolean reverseDirection, optional int position);
+    method @Deprecated @androidx.compose.runtime.Composable public static void PositionIndicator(androidx.wear.compose.material.ScalingLazyListState scalingLazyListState, optional androidx.compose.ui.Modifier modifier, optional boolean reverseDirection);
+    method @androidx.compose.runtime.Composable public static void PositionIndicator(kotlin.jvm.functions.Function0<java.lang.Float> value, optional androidx.compose.ui.Modifier modifier, optional kotlin.ranges.ClosedFloatingPointRange<java.lang.Float> range, optional long color, optional boolean reverseDirection, optional int position);
+  }
+
+  @androidx.compose.runtime.Stable public interface PositionIndicatorState {
+    method public float getPositionFraction();
+    method public float sizeFraction(float scrollableContainerSizePx);
+    method public int visibility(float scrollableContainerSizePx);
+    property public abstract float positionFraction;
+  }
+
+  @kotlin.jvm.JvmInline public final value class PositionIndicatorVisibility {
+    field public static final androidx.wear.compose.material.PositionIndicatorVisibility.Companion Companion;
+  }
+
+  public static final class PositionIndicatorVisibility.Companion {
+    method public int getAutoHide();
+    method public int getHide();
+    method public int getShow();
+    property public final int AutoHide;
+    property public final int Hide;
+    property public final int Show;
+  }
+
+  public final class ProgressIndicatorDefaults {
+    method public androidx.compose.animation.core.SpringSpec<java.lang.Float> getProgressAnimationSpec();
+    method public float getStrokeWidth();
+    property public final androidx.compose.animation.core.SpringSpec<java.lang.Float> ProgressAnimationSpec;
+    property public final float StrokeWidth;
+    field public static final androidx.wear.compose.material.ProgressIndicatorDefaults INSTANCE;
+  }
+
+  public final class ProgressIndicatorKt {
+    method @androidx.compose.runtime.Composable public static void CircularProgressIndicator(optional androidx.compose.ui.Modifier modifier, optional float startAngle, optional long indicatorColor, optional long trackColor, optional float strokeWidth);
+    method @androidx.compose.runtime.Composable public static void CircularProgressIndicator(float progress, optional androidx.compose.ui.Modifier modifier, optional float startAngle, optional float endAngle, optional long indicatorColor, optional long trackColor, optional float strokeWidth);
+  }
+
+  @androidx.compose.runtime.Stable public interface RadioButtonColors {
+    method @androidx.compose.runtime.Composable public androidx.compose.runtime.State<androidx.compose.ui.graphics.Color> dotColor(boolean enabled, boolean selected);
+    method @androidx.compose.runtime.Composable public androidx.compose.runtime.State<androidx.compose.ui.graphics.Color> ringColor(boolean enabled, boolean selected);
+  }
+
+  public final class RadioButtonDefaults {
+    method @androidx.compose.runtime.Composable public androidx.wear.compose.material.RadioButtonColors colors(optional long selectedRingColor, optional long selectedDotColor, optional long unselectedRingColor, optional long unselectedDotColor);
+    field public static final androidx.wear.compose.material.RadioButtonDefaults INSTANCE;
+  }
+
+  @androidx.compose.runtime.Immutable @androidx.wear.compose.material.ExperimentalWearMaterialApi public final class ResistanceConfig {
+    ctor public ResistanceConfig(float basis, optional float factorAtMin, optional float factorAtMax);
+    method public float computeResistance(float overflow);
+    method public float getBasis();
+    method public float getFactorAtMax();
+    method public float getFactorAtMin();
+    property public final float basis;
+    property public final float factorAtMax;
+    property public final float factorAtMin;
+  }
+
+  public final class ScaffoldKt {
+    method @androidx.compose.runtime.Composable public static void Scaffold(optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function0<kotlin.Unit>? vignette, optional kotlin.jvm.functions.Function0<kotlin.Unit>? positionIndicator, optional kotlin.jvm.functions.Function0<kotlin.Unit>? pageIndicator, optional kotlin.jvm.functions.Function0<kotlin.Unit>? timeText, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+  }
+
+  @Deprecated public final class ScalingLazyColumnDefaults {
+    method @Deprecated public androidx.wear.compose.material.ScalingParams scalingParams(optional float edgeScale, optional float edgeAlpha, optional float minElementHeight, optional float maxElementHeight, optional float minTransitionArea, optional float maxTransitionArea, optional androidx.compose.animation.core.Easing scaleInterpolator, optional kotlin.jvm.functions.Function1<? super androidx.compose.ui.unit.Constraints,java.lang.Integer> viewportVerticalOffsetResolver);
+    method @Deprecated @androidx.compose.runtime.Composable public androidx.compose.foundation.gestures.FlingBehavior snapFlingBehavior(androidx.wear.compose.material.ScalingLazyListState state, optional float snapOffset, optional androidx.compose.animation.core.DecayAnimationSpec<java.lang.Float> decay);
+    field @Deprecated public static final androidx.wear.compose.material.ScalingLazyColumnDefaults INSTANCE;
+  }
+
+  public final class ScalingLazyColumnKt {
+    method @Deprecated @androidx.compose.runtime.Composable public static void ScalingLazyColumn(optional androidx.compose.ui.Modifier modifier, optional androidx.wear.compose.material.ScalingLazyListState state, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional boolean reverseLayout, optional androidx.compose.foundation.layout.Arrangement.Vertical verticalArrangement, optional androidx.compose.ui.Alignment.Horizontal horizontalAlignment, optional androidx.compose.foundation.gestures.FlingBehavior flingBehavior, optional boolean userScrollEnabled, optional androidx.wear.compose.material.ScalingParams scalingParams, optional int anchorType, optional androidx.wear.compose.material.AutoCenteringParams? autoCentering, kotlin.jvm.functions.Function1<? super androidx.wear.compose.material.ScalingLazyListScope,kotlin.Unit> content);
+    method @Deprecated public static inline <T> void items(androidx.wear.compose.material.ScalingLazyListScope, java.util.List<? extends T> items, optional kotlin.jvm.functions.Function1<? super T,?>? key, kotlin.jvm.functions.Function2<? super androidx.wear.compose.material.ScalingLazyListItemScope,? super T,kotlin.Unit> itemContent);
+    method @Deprecated public static inline <T> void items(androidx.wear.compose.material.ScalingLazyListScope, T![] items, optional kotlin.jvm.functions.Function1<? super T,?>? key, kotlin.jvm.functions.Function2<? super androidx.wear.compose.material.ScalingLazyListItemScope,? super T,kotlin.Unit> itemContent);
+    method @Deprecated public static inline <T> void itemsIndexed(androidx.wear.compose.material.ScalingLazyListScope, java.util.List<? extends T> items, optional kotlin.jvm.functions.Function2<? super java.lang.Integer,? super T,?>? key, kotlin.jvm.functions.Function3<? super androidx.wear.compose.material.ScalingLazyListItemScope,? super java.lang.Integer,? super T,kotlin.Unit> itemContent);
+    method @Deprecated public static inline <T> void itemsIndexed(androidx.wear.compose.material.ScalingLazyListScope, T![] items, optional kotlin.jvm.functions.Function2<? super java.lang.Integer,? super T,?>? key, kotlin.jvm.functions.Function3<? super androidx.wear.compose.material.ScalingLazyListItemScope,? super java.lang.Integer,? super T,kotlin.Unit> itemContent);
+  }
+
+  @Deprecated @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class ScalingLazyListAnchorType {
+    field @Deprecated public static final androidx.wear.compose.material.ScalingLazyListAnchorType.Companion Companion;
+  }
+
+  @Deprecated public static final class ScalingLazyListAnchorType.Companion {
+    method @Deprecated public int getItemCenter();
+    method @Deprecated public int getItemStart();
+    property @Deprecated public final int ItemCenter;
+    property @Deprecated public final int ItemStart;
+  }
+
+  @Deprecated public sealed interface ScalingLazyListItemInfo {
+    method @Deprecated public float getAlpha();
+    method @Deprecated public int getIndex();
+    method @Deprecated public Object getKey();
+    method @Deprecated public int getOffset();
+    method @Deprecated public float getScale();
+    method @Deprecated public int getSize();
+    method @Deprecated public int getUnadjustedOffset();
+    method @Deprecated public int getUnadjustedSize();
+    property @Deprecated public abstract float alpha;
+    property @Deprecated public abstract int index;
+    property @Deprecated public abstract Object key;
+    property @Deprecated public abstract int offset;
+    property @Deprecated public abstract float scale;
+    property @Deprecated public abstract int size;
+    property @Deprecated public abstract int unadjustedOffset;
+    property @Deprecated public abstract int unadjustedSize;
+  }
+
+  @Deprecated @androidx.compose.runtime.Stable @androidx.wear.compose.material.ScalingLazyScopeMarker public sealed interface ScalingLazyListItemScope {
+    method @Deprecated public androidx.compose.ui.Modifier fillParentMaxHeight(androidx.compose.ui.Modifier, optional float fraction);
+    method @Deprecated public androidx.compose.ui.Modifier fillParentMaxSize(androidx.compose.ui.Modifier, optional float fraction);
+    method @Deprecated public androidx.compose.ui.Modifier fillParentMaxWidth(androidx.compose.ui.Modifier, optional float fraction);
+  }
+
+  @Deprecated public sealed interface ScalingLazyListLayoutInfo {
+    method @Deprecated public int getAfterAutoCenteringPadding();
+    method @Deprecated public int getAfterContentPadding();
+    method @Deprecated public int getBeforeAutoCenteringPadding();
+    method @Deprecated public int getBeforeContentPadding();
+    method @Deprecated public androidx.compose.foundation.gestures.Orientation getOrientation();
+    method @Deprecated public boolean getReverseLayout();
+    method @Deprecated public int getTotalItemsCount();
+    method @Deprecated public int getViewportEndOffset();
+    method @Deprecated public long getViewportSize();
+    method @Deprecated public int getViewportStartOffset();
+    method @Deprecated public java.util.List<androidx.wear.compose.material.ScalingLazyListItemInfo> getVisibleItemsInfo();
+    property @Deprecated public abstract int afterAutoCenteringPadding;
+    property @Deprecated public abstract int afterContentPadding;
+    property @Deprecated public abstract int beforeAutoCenteringPadding;
+    property @Deprecated public abstract int beforeContentPadding;
+    property @Deprecated public abstract androidx.compose.foundation.gestures.Orientation orientation;
+    property @Deprecated public abstract boolean reverseLayout;
+    property @Deprecated public abstract int totalItemsCount;
+    property @Deprecated public abstract int viewportEndOffset;
+    property @Deprecated public abstract long viewportSize;
+    property @Deprecated public abstract int viewportStartOffset;
+    property @Deprecated public abstract java.util.List<androidx.wear.compose.material.ScalingLazyListItemInfo> visibleItemsInfo;
+  }
+
+  @Deprecated @androidx.wear.compose.material.ScalingLazyScopeMarker public sealed interface ScalingLazyListScope {
+    method @Deprecated public void item(optional Object? key, kotlin.jvm.functions.Function1<? super androidx.wear.compose.material.ScalingLazyListItemScope,kotlin.Unit> content);
+    method @Deprecated public void items(int count, optional kotlin.jvm.functions.Function1<? super java.lang.Integer,?>? key, kotlin.jvm.functions.Function2<? super androidx.wear.compose.material.ScalingLazyListItemScope,? super java.lang.Integer,kotlin.Unit> itemContent);
+  }
+
+  @Deprecated @androidx.compose.runtime.Stable public final class ScalingLazyListState implements androidx.compose.foundation.gestures.ScrollableState {
+    ctor @Deprecated public ScalingLazyListState(optional int initialCenterItemIndex, optional int initialCenterItemScrollOffset);
+    method @Deprecated public suspend Object? animateScrollToItem(int index, optional int scrollOffset, optional kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    method @Deprecated public float dispatchRawDelta(float delta);
+    method @Deprecated public int getCenterItemIndex();
+    method @Deprecated public int getCenterItemScrollOffset();
+    method @Deprecated public androidx.wear.compose.material.ScalingLazyListLayoutInfo getLayoutInfo();
+    method @Deprecated public boolean isScrollInProgress();
+    method @Deprecated public suspend Object? scroll(androidx.compose.foundation.MutatePriority scrollPriority, kotlin.jvm.functions.Function2<? super androidx.compose.foundation.gestures.ScrollScope,? super kotlin.coroutines.Continuation<? super kotlin.Unit>,?> block, kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    method @Deprecated public suspend Object? scrollToItem(int index, optional int scrollOffset, optional kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    property @Deprecated public boolean canScrollBackward;
+    property @Deprecated public boolean canScrollForward;
+    property @Deprecated public final int centerItemIndex;
+    property @Deprecated public final int centerItemScrollOffset;
+    property @Deprecated public boolean isScrollInProgress;
+    property @Deprecated public final androidx.wear.compose.material.ScalingLazyListLayoutInfo layoutInfo;
+    field @Deprecated public static final androidx.wear.compose.material.ScalingLazyListState.Companion Companion;
+  }
+
+  @Deprecated public static final class ScalingLazyListState.Companion {
+    method @Deprecated public androidx.compose.runtime.saveable.Saver<androidx.wear.compose.material.ScalingLazyListState,java.lang.Object> getSaver();
+    property @Deprecated public final androidx.compose.runtime.saveable.Saver<androidx.wear.compose.material.ScalingLazyListState,java.lang.Object> Saver;
+  }
+
+  public final class ScalingLazyListStateKt {
+    method @Deprecated @androidx.compose.runtime.Composable public static androidx.wear.compose.material.ScalingLazyListState rememberScalingLazyListState(optional int initialCenterItemIndex, optional int initialCenterItemScrollOffset);
+  }
+
+  @Deprecated @kotlin.DslMarker public @interface ScalingLazyScopeMarker {
+  }
+
+  @Deprecated @androidx.compose.runtime.Stable public interface ScalingParams {
+    method @Deprecated public float getEdgeAlpha();
+    method @Deprecated public float getEdgeScale();
+    method @Deprecated public float getMaxElementHeight();
+    method @Deprecated public float getMaxTransitionArea();
+    method @Deprecated public float getMinElementHeight();
+    method @Deprecated public float getMinTransitionArea();
+    method @Deprecated public androidx.compose.animation.core.Easing getScaleInterpolator();
+    method @Deprecated public int resolveViewportVerticalOffset(long viewportConstraints);
+    property @Deprecated public abstract float edgeAlpha;
+    property @Deprecated public abstract float edgeScale;
+    property @Deprecated public abstract float maxElementHeight;
+    property @Deprecated public abstract float maxTransitionArea;
+    property @Deprecated public abstract float minElementHeight;
+    property @Deprecated public abstract float minTransitionArea;
+    property @Deprecated public abstract androidx.compose.animation.core.Easing scaleInterpolator;
+  }
+
+  public final class ScrollAwayKt {
+    method public static androidx.compose.ui.Modifier scrollAway(androidx.compose.ui.Modifier, androidx.compose.foundation.lazy.LazyListState scrollState, optional int itemIndex, optional float offset);
+    method public static androidx.compose.ui.Modifier scrollAway(androidx.compose.ui.Modifier, androidx.compose.foundation.ScrollState scrollState, optional float offset);
+    method public static androidx.compose.ui.Modifier scrollAway(androidx.compose.ui.Modifier, androidx.wear.compose.foundation.lazy.ScalingLazyListState scrollState, optional int itemIndex, optional float offset);
+    method @Deprecated public static androidx.compose.ui.Modifier scrollAway(androidx.compose.ui.Modifier, androidx.wear.compose.material.ScalingLazyListState scrollState, optional int itemIndex, optional float offset);
+  }
+
+  @androidx.compose.runtime.Immutable public final class Shapes {
+    ctor public Shapes(optional androidx.compose.foundation.shape.CornerBasedShape small, optional androidx.compose.foundation.shape.CornerBasedShape medium, optional androidx.compose.foundation.shape.CornerBasedShape large);
+    method public androidx.wear.compose.material.Shapes copy(optional androidx.compose.foundation.shape.CornerBasedShape small, optional androidx.compose.foundation.shape.CornerBasedShape medium, optional androidx.compose.foundation.shape.CornerBasedShape large);
+    method public androidx.compose.foundation.shape.CornerBasedShape getLarge();
+    method public androidx.compose.foundation.shape.CornerBasedShape getMedium();
+    method public androidx.compose.foundation.shape.CornerBasedShape getSmall();
+    property public final androidx.compose.foundation.shape.CornerBasedShape large;
+    property public final androidx.compose.foundation.shape.CornerBasedShape medium;
+    property public final androidx.compose.foundation.shape.CornerBasedShape small;
+  }
+
+  public final class SliderKt {
+    method @androidx.compose.runtime.Composable public static void InlineSlider(float value, kotlin.jvm.functions.Function1<? super java.lang.Float,kotlin.Unit> onValueChange, int steps, kotlin.jvm.functions.Function0<kotlin.Unit> decreaseIcon, kotlin.jvm.functions.Function0<kotlin.Unit> increaseIcon, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional kotlin.ranges.ClosedFloatingPointRange<java.lang.Float> valueRange, optional boolean segmented, optional androidx.wear.compose.material.InlineSliderColors colors);
+    method @androidx.compose.runtime.Composable public static void InlineSlider(int value, kotlin.jvm.functions.Function1<? super java.lang.Integer,kotlin.Unit> onValueChange, kotlin.ranges.IntProgression valueProgression, kotlin.jvm.functions.Function0<kotlin.Unit> decreaseIcon, kotlin.jvm.functions.Function0<kotlin.Unit> increaseIcon, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional boolean segmented, optional androidx.wear.compose.material.InlineSliderColors colors);
+  }
+
+  @androidx.compose.runtime.Stable public interface SplitToggleChipColors {
+    method @androidx.compose.runtime.Composable public androidx.compose.runtime.State<androidx.compose.ui.graphics.Color> backgroundColor(boolean enabled);
+    method @androidx.compose.runtime.Composable public androidx.compose.runtime.State<androidx.compose.ui.graphics.Color> contentColor(boolean enabled);
+    method @androidx.compose.runtime.Composable public androidx.compose.runtime.State<androidx.compose.ui.graphics.Color> secondaryContentColor(boolean enabled);
+    method @androidx.compose.runtime.Composable public androidx.compose.runtime.State<androidx.compose.ui.graphics.Color> splitBackgroundOverlay(boolean enabled, boolean checked);
+    method @androidx.compose.runtime.Composable public androidx.compose.runtime.State<androidx.compose.ui.graphics.Color> toggleControlColor(boolean enabled, boolean checked);
+  }
+
+  public final class StepperDefaults {
+    method public androidx.compose.ui.graphics.vector.ImageVector getDecrease();
+    method public androidx.compose.ui.graphics.vector.ImageVector getIncrease();
+    property public final androidx.compose.ui.graphics.vector.ImageVector Decrease;
+    property public final androidx.compose.ui.graphics.vector.ImageVector Increase;
+    field public static final androidx.wear.compose.material.StepperDefaults INSTANCE;
+  }
+
+  public final class StepperKt {
+    method @androidx.compose.runtime.Composable public static void Stepper(float value, kotlin.jvm.functions.Function1<? super java.lang.Float,kotlin.Unit> onValueChange, int steps, kotlin.jvm.functions.Function0<kotlin.Unit> decreaseIcon, kotlin.jvm.functions.Function0<kotlin.Unit> increaseIcon, optional androidx.compose.ui.Modifier modifier, optional kotlin.ranges.ClosedFloatingPointRange<java.lang.Float> valueRange, optional long backgroundColor, optional long contentColor, optional long iconColor, optional boolean enableRangeSemantics, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.BoxScope,kotlin.Unit> content);
+    method @Deprecated @androidx.compose.runtime.Composable public static void Stepper(float value, kotlin.jvm.functions.Function1<? super java.lang.Float,kotlin.Unit> onValueChange, int steps, kotlin.jvm.functions.Function0<kotlin.Unit> decreaseIcon, kotlin.jvm.functions.Function0<kotlin.Unit> increaseIcon, optional androidx.compose.ui.Modifier modifier, optional kotlin.ranges.ClosedFloatingPointRange<java.lang.Float> valueRange, optional long backgroundColor, optional long contentColor, optional long iconColor, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.BoxScope,kotlin.Unit> content);
+    method @androidx.compose.runtime.Composable public static void Stepper(int value, kotlin.jvm.functions.Function1<? super java.lang.Integer,kotlin.Unit> onValueChange, kotlin.ranges.IntProgression valueProgression, kotlin.jvm.functions.Function0<kotlin.Unit> decreaseIcon, kotlin.jvm.functions.Function0<kotlin.Unit> increaseIcon, optional androidx.compose.ui.Modifier modifier, optional long backgroundColor, optional long contentColor, optional long iconColor, optional boolean enableRangeSemantics, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.BoxScope,kotlin.Unit> content);
+    method @Deprecated @androidx.compose.runtime.Composable public static void Stepper(int value, kotlin.jvm.functions.Function1<? super java.lang.Integer,kotlin.Unit> onValueChange, kotlin.ranges.IntProgression valueProgression, kotlin.jvm.functions.Function0<kotlin.Unit> decreaseIcon, kotlin.jvm.functions.Function0<kotlin.Unit> increaseIcon, optional androidx.compose.ui.Modifier modifier, optional long backgroundColor, optional long contentColor, optional long iconColor, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.BoxScope,kotlin.Unit> content);
+  }
+
+  @androidx.compose.runtime.Immutable @androidx.wear.compose.material.ExperimentalWearMaterialApi public final class SwipeProgress<T> {
+    ctor public SwipeProgress(T from, T to, float fraction);
+    method public float getFraction();
+    method public T getFrom();
+    method public T getTo();
+    property public final float fraction;
+    property public final T from;
+    property public final T to;
+  }
+
+  public final class SwipeToDismissBoxDefaults {
+    method public androidx.compose.animation.core.SpringSpec<java.lang.Float> getAnimationSpec();
+    method public float getEdgeWidth();
+    property public final androidx.compose.animation.core.SpringSpec<java.lang.Float> AnimationSpec;
+    property public final float EdgeWidth;
+    field public static final androidx.wear.compose.material.SwipeToDismissBoxDefaults INSTANCE;
+  }
+
+  public final class SwipeToDismissBoxKt {
+    method @androidx.compose.runtime.Composable public static void SwipeToDismissBox(androidx.wear.compose.material.SwipeToDismissBoxState state, optional androidx.compose.ui.Modifier modifier, optional long backgroundScrimColor, optional long contentScrimColor, optional Object backgroundKey, optional Object contentKey, optional boolean hasBackground, kotlin.jvm.functions.Function2<? super androidx.compose.foundation.layout.BoxScope,? super java.lang.Boolean,kotlin.Unit> content);
+    method @androidx.compose.runtime.Composable public static void SwipeToDismissBox(kotlin.jvm.functions.Function0<kotlin.Unit> onDismissed, optional androidx.compose.ui.Modifier modifier, optional androidx.wear.compose.material.SwipeToDismissBoxState state, optional long backgroundScrimColor, optional long contentScrimColor, optional Object backgroundKey, optional Object contentKey, optional boolean hasBackground, kotlin.jvm.functions.Function2<? super androidx.compose.foundation.layout.BoxScope,? super java.lang.Boolean,kotlin.Unit> content);
+    method public static androidx.compose.ui.Modifier edgeSwipeToDismiss(androidx.compose.ui.Modifier, androidx.wear.compose.material.SwipeToDismissBoxState swipeToDismissBoxState, optional float edgeWidth);
+    method @androidx.compose.runtime.Composable public static androidx.wear.compose.material.SwipeToDismissBoxState rememberSwipeToDismissBoxState(optional androidx.compose.animation.core.AnimationSpec<java.lang.Float> animationSpec, optional kotlin.jvm.functions.Function1<? super androidx.wear.compose.material.SwipeToDismissValue,java.lang.Boolean> confirmStateChange);
+  }
+
+  @androidx.compose.runtime.Stable public final class SwipeToDismissBoxState {
+    ctor public SwipeToDismissBoxState(optional androidx.compose.animation.core.AnimationSpec<java.lang.Float> animationSpec, optional kotlin.jvm.functions.Function1<? super androidx.wear.compose.material.SwipeToDismissValue,java.lang.Boolean> confirmStateChange);
+    method public androidx.wear.compose.material.SwipeToDismissValue getCurrentValue();
+    method public androidx.wear.compose.material.SwipeToDismissValue getTargetValue();
+    method public boolean isAnimationRunning();
+    method public suspend Object? snapTo(androidx.wear.compose.material.SwipeToDismissValue targetValue, kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    property public final androidx.wear.compose.material.SwipeToDismissValue currentValue;
+    property public final boolean isAnimationRunning;
+    property public final androidx.wear.compose.material.SwipeToDismissValue targetValue;
+  }
+
+  public enum SwipeToDismissKeys {
+    method public static androidx.wear.compose.material.SwipeToDismissKeys valueOf(String value) throws java.lang.IllegalArgumentException, java.lang.NullPointerException;
+    method public static androidx.wear.compose.material.SwipeToDismissKeys[] values();
+    enum_constant public static final androidx.wear.compose.material.SwipeToDismissKeys Background;
+    enum_constant public static final androidx.wear.compose.material.SwipeToDismissKeys Content;
+  }
+
+  public enum SwipeToDismissValue {
+    method public static androidx.wear.compose.material.SwipeToDismissValue valueOf(String value) throws java.lang.IllegalArgumentException, java.lang.NullPointerException;
+    method public static androidx.wear.compose.material.SwipeToDismissValue[] values();
+    enum_constant public static final androidx.wear.compose.material.SwipeToDismissValue Default;
+    enum_constant public static final androidx.wear.compose.material.SwipeToDismissValue Dismissed;
+  }
+
+  @androidx.wear.compose.material.ExperimentalWearMaterialApi public final class SwipeableDefaults {
+    method public androidx.compose.animation.core.SpringSpec<java.lang.Float> getAnimationSpec();
+    method public float getVelocityThreshold();
+    method public androidx.wear.compose.material.ResistanceConfig? resistanceConfig(java.util.Set<java.lang.Float> anchors, optional float factorAtMin, optional float factorAtMax);
+    property public final androidx.compose.animation.core.SpringSpec<java.lang.Float> AnimationSpec;
+    property public final float VelocityThreshold;
+    field public static final androidx.wear.compose.material.SwipeableDefaults INSTANCE;
+    field public static final float StandardResistanceFactor = 10.0f;
+    field public static final float StiffResistanceFactor = 20.0f;
+  }
+
+  public final class SwipeableKt {
+    method @androidx.compose.runtime.Composable @androidx.wear.compose.material.ExperimentalWearMaterialApi public static <T> androidx.wear.compose.material.SwipeableState<T> rememberSwipeableState(T initialValue, optional androidx.compose.animation.core.AnimationSpec<java.lang.Float> animationSpec, optional kotlin.jvm.functions.Function1<? super T,java.lang.Boolean> confirmStateChange);
+    method @androidx.wear.compose.material.ExperimentalWearMaterialApi public static <T> androidx.compose.ui.Modifier swipeable(androidx.compose.ui.Modifier, androidx.wear.compose.material.SwipeableState<T> state, java.util.Map<java.lang.Float,? extends T> anchors, androidx.compose.foundation.gestures.Orientation orientation, optional boolean enabled, optional boolean reverseDirection, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, optional kotlin.jvm.functions.Function2<? super T,? super T,? extends androidx.wear.compose.material.ThresholdConfig> thresholds, optional androidx.wear.compose.material.ResistanceConfig? resistance, optional float velocityThreshold);
+  }
+
+  @androidx.compose.runtime.Stable @androidx.wear.compose.material.ExperimentalWearMaterialApi public class SwipeableState<T> {
+    ctor public SwipeableState(T initialValue, optional androidx.compose.animation.core.AnimationSpec<java.lang.Float> animationSpec, optional kotlin.jvm.functions.Function1<? super T,java.lang.Boolean> confirmStateChange);
+    method @androidx.wear.compose.material.ExperimentalWearMaterialApi public final suspend Object? animateTo(T targetValue, optional androidx.compose.animation.core.AnimationSpec<java.lang.Float> anim, optional kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    method public final T getCurrentValue();
+    method public final float getDirection();
+    method public final androidx.compose.runtime.State<java.lang.Float> getOffset();
+    method public final androidx.compose.runtime.State<java.lang.Float> getOverflow();
+    method public final androidx.wear.compose.material.SwipeProgress<T> getProgress();
+    method public final T getTargetValue();
+    method public final boolean isAnimationRunning();
+    method @androidx.wear.compose.material.ExperimentalWearMaterialApi public final suspend Object? performFling(float velocity, kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    method @androidx.wear.compose.material.ExperimentalWearMaterialApi public final suspend Object? snapTo(T targetValue, kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    property public final T currentValue;
+    property @androidx.wear.compose.material.ExperimentalWearMaterialApi public final float direction;
+    property public final boolean isAnimationRunning;
+    property @androidx.wear.compose.material.ExperimentalWearMaterialApi public final androidx.compose.runtime.State<java.lang.Float> offset;
+    property @androidx.wear.compose.material.ExperimentalWearMaterialApi public final androidx.compose.runtime.State<java.lang.Float> overflow;
+    property @androidx.wear.compose.material.ExperimentalWearMaterialApi public final androidx.wear.compose.material.SwipeProgress<T> progress;
+    property @androidx.wear.compose.material.ExperimentalWearMaterialApi public final T targetValue;
+    field public static final androidx.wear.compose.material.SwipeableState.Companion Companion;
+  }
+
+  public static final class SwipeableState.Companion {
+    method public <T> androidx.compose.runtime.saveable.Saver<androidx.wear.compose.material.SwipeableState<T>,T> Saver(androidx.compose.animation.core.AnimationSpec<java.lang.Float> animationSpec, kotlin.jvm.functions.Function1<? super T,java.lang.Boolean> confirmStateChange);
+  }
+
+  @androidx.compose.runtime.Stable public interface SwitchColors {
+    method @androidx.compose.runtime.Composable public androidx.compose.runtime.State<androidx.compose.ui.graphics.Color> thumbColor(boolean enabled, boolean checked);
+    method @androidx.compose.runtime.Composable public androidx.compose.runtime.State<androidx.compose.ui.graphics.Color> trackColor(boolean enabled, boolean checked);
+  }
+
+  public final class SwitchDefaults {
+    method @androidx.compose.runtime.Composable public androidx.wear.compose.material.SwitchColors colors(optional long checkedThumbColor, optional long checkedTrackColor, optional long uncheckedThumbColor, optional long uncheckedTrackColor);
+    field public static final androidx.wear.compose.material.SwitchDefaults INSTANCE;
+  }
+
+  public final class TextKt {
+    method @androidx.compose.runtime.Composable public static void ProvideTextStyle(androidx.compose.ui.text.TextStyle value, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+    method @androidx.compose.runtime.Composable public static void Text(androidx.compose.ui.text.AnnotatedString text, optional androidx.compose.ui.Modifier modifier, optional long color, optional long fontSize, optional androidx.compose.ui.text.font.FontStyle? fontStyle, optional androidx.compose.ui.text.font.FontWeight? fontWeight, optional androidx.compose.ui.text.font.FontFamily? fontFamily, optional long letterSpacing, optional androidx.compose.ui.text.style.TextDecoration? textDecoration, optional androidx.compose.ui.text.style.TextAlign? textAlign, optional long lineHeight, optional int overflow, optional boolean softWrap, optional int maxLines, optional int minLines, optional java.util.Map<java.lang.String,androidx.compose.foundation.text.InlineTextContent> inlineContent, optional kotlin.jvm.functions.Function1<? super androidx.compose.ui.text.TextLayoutResult,kotlin.Unit> onTextLayout, optional androidx.compose.ui.text.TextStyle style);
+    method @Deprecated @androidx.compose.runtime.Composable public static void Text(androidx.compose.ui.text.AnnotatedString text, optional androidx.compose.ui.Modifier modifier, optional long color, optional long fontSize, optional androidx.compose.ui.text.font.FontStyle? fontStyle, optional androidx.compose.ui.text.font.FontWeight? fontWeight, optional androidx.compose.ui.text.font.FontFamily? fontFamily, optional long letterSpacing, optional androidx.compose.ui.text.style.TextDecoration? textDecoration, optional androidx.compose.ui.text.style.TextAlign? textAlign, optional long lineHeight, optional int overflow, optional boolean softWrap, optional int maxLines, optional java.util.Map<java.lang.String,androidx.compose.foundation.text.InlineTextContent> inlineContent, optional kotlin.jvm.functions.Function1<? super androidx.compose.ui.text.TextLayoutResult,kotlin.Unit> onTextLayout, optional androidx.compose.ui.text.TextStyle style);
+    method @androidx.compose.runtime.Composable public static void Text(String text, optional androidx.compose.ui.Modifier modifier, optional long color, optional long fontSize, optional androidx.compose.ui.text.font.FontStyle? fontStyle, optional androidx.compose.ui.text.font.FontWeight? fontWeight, optional androidx.compose.ui.text.font.FontFamily? fontFamily, optional long letterSpacing, optional androidx.compose.ui.text.style.TextDecoration? textDecoration, optional androidx.compose.ui.text.style.TextAlign? textAlign, optional long lineHeight, optional int overflow, optional boolean softWrap, optional int maxLines, optional int minLines, optional kotlin.jvm.functions.Function1<? super androidx.compose.ui.text.TextLayoutResult,kotlin.Unit> onTextLayout, optional androidx.compose.ui.text.TextStyle style);
+    method @Deprecated @androidx.compose.runtime.Composable public static void Text(String text, optional androidx.compose.ui.Modifier modifier, optional long color, optional long fontSize, optional androidx.compose.ui.text.font.FontStyle? fontStyle, optional androidx.compose.ui.text.font.FontWeight? fontWeight, optional androidx.compose.ui.text.font.FontFamily? fontFamily, optional long letterSpacing, optional androidx.compose.ui.text.style.TextDecoration? textDecoration, optional androidx.compose.ui.text.style.TextAlign? textAlign, optional long lineHeight, optional int overflow, optional boolean softWrap, optional int maxLines, optional kotlin.jvm.functions.Function1<? super androidx.compose.ui.text.TextLayoutResult,kotlin.Unit> onTextLayout, optional androidx.compose.ui.text.TextStyle style);
+    method public static androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.ui.text.TextStyle> getLocalTextStyle();
+    property public static final androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.ui.text.TextStyle> LocalTextStyle;
+  }
+
+  @androidx.compose.runtime.Stable @androidx.wear.compose.material.ExperimentalWearMaterialApi public interface ThresholdConfig {
+    method public float computeThreshold(androidx.compose.ui.unit.Density, float fromValue, float toValue);
+  }
+
+  public interface TimeSource {
+    method @androidx.compose.runtime.Composable public String getCurrentTime();
+    property @androidx.compose.runtime.Composable public abstract String currentTime;
+  }
+
+  public final class TimeTextDefaults {
+    method public void CurvedTextSeparator(androidx.wear.compose.foundation.CurvedScope, optional androidx.wear.compose.foundation.CurvedTextStyle? curvedTextStyle, optional androidx.wear.compose.foundation.ArcPaddingValues contentArcPadding);
+    method @androidx.compose.runtime.Composable public void TextSeparator(optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.text.TextStyle textStyle, optional androidx.compose.foundation.layout.PaddingValues contentPadding);
+    method public androidx.compose.foundation.layout.PaddingValues getContentPadding();
+    method @androidx.compose.runtime.Composable public String timeFormat();
+    method public androidx.wear.compose.material.TimeSource timeSource(String timeFormat);
+    method @androidx.compose.runtime.Composable public androidx.compose.ui.text.TextStyle timeTextStyle(optional long background, optional long color, optional long fontSize);
+    property public final androidx.compose.foundation.layout.PaddingValues ContentPadding;
+    field public static final androidx.wear.compose.material.TimeTextDefaults INSTANCE;
+    field public static final String TimeFormat12Hours = "h:mm";
+    field public static final String TimeFormat24Hours = "HH:mm";
+  }
+
+  public final class TimeTextKt {
+    method @androidx.compose.runtime.Composable public static void TimeText(optional androidx.compose.ui.Modifier modifier, optional androidx.wear.compose.material.TimeSource timeSource, optional androidx.compose.ui.text.TextStyle timeTextStyle, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional kotlin.jvm.functions.Function0<kotlin.Unit>? startLinearContent, optional kotlin.jvm.functions.Function1<? super androidx.wear.compose.foundation.CurvedScope,kotlin.Unit>? startCurvedContent, optional kotlin.jvm.functions.Function0<kotlin.Unit>? endLinearContent, optional kotlin.jvm.functions.Function1<? super androidx.wear.compose.foundation.CurvedScope,kotlin.Unit>? endCurvedContent, optional kotlin.jvm.functions.Function0<kotlin.Unit> textLinearSeparator, optional kotlin.jvm.functions.Function1<? super androidx.wear.compose.foundation.CurvedScope,kotlin.Unit> textCurvedSeparator);
+  }
+
+  @androidx.compose.runtime.Stable public interface ToggleButtonColors {
+    method @androidx.compose.runtime.Composable public androidx.compose.runtime.State<androidx.compose.ui.graphics.Color> backgroundColor(boolean enabled, boolean checked);
+    method @androidx.compose.runtime.Composable public androidx.compose.runtime.State<androidx.compose.ui.graphics.Color> contentColor(boolean enabled, boolean checked);
+  }
+
+  public final class ToggleButtonDefaults {
+    method public float getDefaultIconSize();
+    method public int getDefaultRole();
+    method public float getDefaultToggleButtonSize();
+    method public float getSmallIconSize();
+    method public float getSmallToggleButtonSize();
+    method @androidx.compose.runtime.Composable public androidx.wear.compose.material.ToggleButtonColors toggleButtonColors(optional long checkedBackgroundColor, optional long checkedContentColor, optional long disabledCheckedBackgroundColor, optional long disabledCheckedContentColor, optional long uncheckedBackgroundColor, optional long uncheckedContentColor, optional long disabledUncheckedBackgroundColor, optional long disabledUncheckedContentColor);
+    property public final float DefaultIconSize;
+    property public final int DefaultRole;
+    property public final float DefaultToggleButtonSize;
+    property public final float SmallIconSize;
+    property public final float SmallToggleButtonSize;
+    field public static final androidx.wear.compose.material.ToggleButtonDefaults INSTANCE;
+  }
+
+  public final class ToggleButtonKt {
+    method @androidx.compose.runtime.Composable public static void ToggleButton(boolean checked, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit> onCheckedChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.wear.compose.material.ToggleButtonColors colors, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional androidx.compose.ui.graphics.Shape shape, optional int role, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.BoxScope,kotlin.Unit> content);
+    method @Deprecated @androidx.compose.runtime.Composable public static void ToggleButton(boolean checked, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit> onCheckedChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.wear.compose.material.ToggleButtonColors colors, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional androidx.compose.ui.graphics.Shape shape, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.BoxScope,kotlin.Unit> content);
+    method @Deprecated @androidx.compose.runtime.Composable public static void ToggleButton(boolean checked, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit> onCheckedChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.wear.compose.material.ToggleButtonColors colors, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.BoxScope,kotlin.Unit> content);
+  }
+
+  @androidx.compose.runtime.Stable public interface ToggleChipColors {
+    method @androidx.compose.runtime.Composable public androidx.compose.runtime.State<androidx.compose.ui.graphics.painter.Painter> background(boolean enabled, boolean checked);
+    method @androidx.compose.runtime.Composable public androidx.compose.runtime.State<androidx.compose.ui.graphics.Color> contentColor(boolean enabled, boolean checked);
+    method @androidx.compose.runtime.Composable public androidx.compose.runtime.State<androidx.compose.ui.graphics.Color> secondaryContentColor(boolean enabled, boolean checked);
+    method @androidx.compose.runtime.Composable public androidx.compose.runtime.State<androidx.compose.ui.graphics.Color> toggleControlColor(boolean enabled, boolean checked);
+  }
+
+  public final class ToggleChipDefaults {
+    method public androidx.compose.ui.graphics.vector.ImageVector checkboxIcon(boolean checked);
+    method public androidx.compose.ui.graphics.vector.ImageVector getCheckboxOn();
+    method public androidx.compose.foundation.layout.PaddingValues getContentPadding();
+    method public float getIconSize();
+    method public androidx.compose.ui.graphics.vector.ImageVector getRadioOff();
+    method public androidx.compose.ui.graphics.vector.ImageVector getRadioOn();
+    method @androidx.compose.runtime.Composable public long getSwitchUncheckedIconColor();
+    method public androidx.compose.ui.graphics.vector.ImageVector radioIcon(boolean checked);
+    method @androidx.compose.runtime.Composable public androidx.wear.compose.material.SplitToggleChipColors splitToggleChipColors(optional long backgroundColor, optional long contentColor, optional long secondaryContentColor, optional long checkedToggleControlColor, optional long uncheckedToggleControlColor, optional long splitBackgroundOverlayColor);
+    method public androidx.compose.ui.graphics.vector.ImageVector switchIcon(boolean checked);
+    method @androidx.compose.runtime.Composable public androidx.wear.compose.material.ToggleChipColors toggleChipColors(optional long checkedStartBackgroundColor, optional long checkedEndBackgroundColor, optional long checkedContentColor, optional long checkedSecondaryContentColor, optional long checkedToggleControlColor, optional long uncheckedStartBackgroundColor, optional long uncheckedEndBackgroundColor, optional long uncheckedContentColor, optional long uncheckedSecondaryContentColor, optional long uncheckedToggleControlColor, optional androidx.compose.ui.unit.LayoutDirection gradientDirection);
+    property public final androidx.compose.ui.graphics.vector.ImageVector CheckboxOn;
+    property public final androidx.compose.foundation.layout.PaddingValues ContentPadding;
+    property public final float IconSize;
+    property public final androidx.compose.ui.graphics.vector.ImageVector RadioOff;
+    property public final androidx.compose.ui.graphics.vector.ImageVector RadioOn;
+    property @androidx.compose.runtime.Composable public final long SwitchUncheckedIconColor;
+    field public static final androidx.wear.compose.material.ToggleChipDefaults INSTANCE;
+  }
+
+  public final class ToggleChipKt {
+    method @androidx.compose.runtime.Composable public static void SplitToggleChip(boolean checked, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit> onCheckedChange, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit> label, kotlin.jvm.functions.Function0<kotlin.Unit> onClick, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.BoxScope,kotlin.Unit> toggleControl, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit>? secondaryLabel, optional androidx.wear.compose.material.SplitToggleChipColors colors, optional boolean enabled, optional androidx.compose.foundation.interaction.MutableInteractionSource checkedInteractionSource, optional androidx.compose.foundation.interaction.MutableInteractionSource clickInteractionSource, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional androidx.compose.ui.graphics.Shape shape);
+    method @androidx.compose.runtime.Composable public static void ToggleChip(boolean checked, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit> onCheckedChange, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit> label, kotlin.jvm.functions.Function0<kotlin.Unit> toggleControl, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.BoxScope,kotlin.Unit>? appIcon, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit>? secondaryLabel, optional androidx.wear.compose.material.ToggleChipColors colors, optional boolean enabled, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional androidx.compose.ui.graphics.Shape shape);
+  }
+
+  public final class ToggleControlKt {
+    method @androidx.compose.runtime.Composable public static void Checkbox(boolean checked, optional androidx.compose.ui.Modifier modifier, optional androidx.wear.compose.material.CheckboxColors colors, optional boolean enabled, optional kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit>? onCheckedChange, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource);
+    method @androidx.compose.runtime.Composable public static void RadioButton(boolean selected, optional androidx.compose.ui.Modifier modifier, optional androidx.wear.compose.material.RadioButtonColors colors, optional boolean enabled, optional kotlin.jvm.functions.Function0<kotlin.Unit>? onClick, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource);
+    method @androidx.compose.runtime.Composable public static void Switch(boolean checked, optional androidx.compose.ui.Modifier modifier, optional androidx.wear.compose.material.SwitchColors colors, optional boolean enabled, optional kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit>? onCheckedChange, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource);
+  }
+
+  public fun interface TouchExplorationStateProvider {
+    method @androidx.compose.runtime.Composable public androidx.compose.runtime.State<java.lang.Boolean> touchExplorationState();
+  }
+
+  @androidx.compose.runtime.Immutable public final class Typography {
+    ctor public Typography(optional androidx.compose.ui.text.font.FontFamily defaultFontFamily, optional androidx.compose.ui.text.TextStyle display1, optional androidx.compose.ui.text.TextStyle display2, optional androidx.compose.ui.text.TextStyle display3, optional androidx.compose.ui.text.TextStyle title1, optional androidx.compose.ui.text.TextStyle title2, optional androidx.compose.ui.text.TextStyle title3, optional androidx.compose.ui.text.TextStyle body1, optional androidx.compose.ui.text.TextStyle body2, optional androidx.compose.ui.text.TextStyle button, optional androidx.compose.ui.text.TextStyle caption1, optional androidx.compose.ui.text.TextStyle caption2, optional androidx.compose.ui.text.TextStyle caption3);
+    method public androidx.wear.compose.material.Typography copy(optional androidx.compose.ui.text.TextStyle display1, optional androidx.compose.ui.text.TextStyle display2, optional androidx.compose.ui.text.TextStyle display3, optional androidx.compose.ui.text.TextStyle title1, optional androidx.compose.ui.text.TextStyle title2, optional androidx.compose.ui.text.TextStyle title3, optional androidx.compose.ui.text.TextStyle body1, optional androidx.compose.ui.text.TextStyle body2, optional androidx.compose.ui.text.TextStyle button, optional androidx.compose.ui.text.TextStyle caption1, optional androidx.compose.ui.text.TextStyle caption2, optional androidx.compose.ui.text.TextStyle caption3);
+    method public androidx.compose.ui.text.TextStyle getBody1();
+    method public androidx.compose.ui.text.TextStyle getBody2();
+    method public androidx.compose.ui.text.TextStyle getButton();
+    method public androidx.compose.ui.text.TextStyle getCaption1();
+    method public androidx.compose.ui.text.TextStyle getCaption2();
+    method public androidx.compose.ui.text.TextStyle getCaption3();
+    method public androidx.compose.ui.text.TextStyle getDisplay1();
+    method public androidx.compose.ui.text.TextStyle getDisplay2();
+    method public androidx.compose.ui.text.TextStyle getDisplay3();
+    method public androidx.compose.ui.text.TextStyle getTitle1();
+    method public androidx.compose.ui.text.TextStyle getTitle2();
+    method public androidx.compose.ui.text.TextStyle getTitle3();
+    property public final androidx.compose.ui.text.TextStyle body1;
+    property public final androidx.compose.ui.text.TextStyle body2;
+    property public final androidx.compose.ui.text.TextStyle button;
+    property public final androidx.compose.ui.text.TextStyle caption1;
+    property public final androidx.compose.ui.text.TextStyle caption2;
+    property public final androidx.compose.ui.text.TextStyle caption3;
+    property public final androidx.compose.ui.text.TextStyle display1;
+    property public final androidx.compose.ui.text.TextStyle display2;
+    property public final androidx.compose.ui.text.TextStyle display3;
+    property public final androidx.compose.ui.text.TextStyle title1;
+    property public final androidx.compose.ui.text.TextStyle title2;
+    property public final androidx.compose.ui.text.TextStyle title3;
+  }
+
+  public final class VignetteKt {
+    method @androidx.compose.runtime.Composable public static void Vignette(int vignettePosition, optional androidx.compose.ui.Modifier modifier);
+  }
+
+  @kotlin.jvm.JvmInline public final value class VignettePosition {
+    ctor public VignettePosition(int key);
+    field public static final androidx.wear.compose.material.VignettePosition.Companion Companion;
+  }
+
+  public static final class VignettePosition.Companion {
+    method public int getBottom();
+    method public int getTop();
+    method public int getTopAndBottom();
+    property public final int Bottom;
+    property public final int Top;
+    property public final int TopAndBottom;
+  }
+
+}
+
+package androidx.wear.compose.material.dialog {
+
+  public final class DialogDefaults {
+    method public androidx.compose.foundation.layout.Arrangement.Vertical getAlertVerticalArrangement();
+    method public androidx.compose.foundation.layout.Arrangement.Vertical getConfirmationVerticalArrangement();
+    method public androidx.compose.foundation.layout.PaddingValues getContentPadding();
+    method public long getIndefiniteDurationMillis();
+    method public long getLongDurationMillis();
+    method public long getShortDurationMillis();
+    property public final androidx.compose.foundation.layout.Arrangement.Vertical AlertVerticalArrangement;
+    property public final androidx.compose.foundation.layout.Arrangement.Vertical ConfirmationVerticalArrangement;
+    property public final androidx.compose.foundation.layout.PaddingValues ContentPadding;
+    property public final long IndefiniteDurationMillis;
+    property public final long LongDurationMillis;
+    property public final long ShortDurationMillis;
+    field public static final androidx.wear.compose.material.dialog.DialogDefaults INSTANCE;
+  }
+
+  public final class DialogKt {
+    method @androidx.compose.runtime.Composable public static void Alert(kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit> title, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit>? icon, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit>? message, optional androidx.wear.compose.foundation.lazy.ScalingLazyListState scrollState, optional long backgroundColor, optional long titleColor, optional long messageColor, optional long iconColor, optional androidx.compose.foundation.layout.Arrangement.Vertical verticalArrangement, optional androidx.compose.foundation.layout.PaddingValues contentPadding, kotlin.jvm.functions.Function1<? super androidx.wear.compose.foundation.lazy.ScalingLazyListScope,kotlin.Unit> content);
+    method @Deprecated @androidx.compose.runtime.Composable public static void Alert(kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit> title, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit>? icon, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit>? message, optional androidx.wear.compose.material.ScalingLazyListState scrollState, optional long backgroundColor, optional long titleColor, optional long messageColor, optional long iconColor, optional androidx.compose.foundation.layout.Arrangement.Vertical verticalArrangement, optional androidx.compose.foundation.layout.PaddingValues contentPadding, kotlin.jvm.functions.Function1<? super androidx.wear.compose.material.ScalingLazyListScope,kotlin.Unit> content);
+    method @androidx.compose.runtime.Composable public static void Alert(kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit> title, kotlin.jvm.functions.Function0<kotlin.Unit> negativeButton, kotlin.jvm.functions.Function0<kotlin.Unit> positiveButton, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit>? icon, optional androidx.wear.compose.foundation.lazy.ScalingLazyListState scrollState, optional long backgroundColor, optional long contentColor, optional long titleColor, optional long iconColor, optional androidx.compose.foundation.layout.Arrangement.Vertical verticalArrangement, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit>? content);
+    method @Deprecated @androidx.compose.runtime.Composable public static void Alert(kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit> title, kotlin.jvm.functions.Function0<kotlin.Unit> negativeButton, kotlin.jvm.functions.Function0<kotlin.Unit> positiveButton, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit>? icon, optional androidx.wear.compose.material.ScalingLazyListState scrollState, optional long backgroundColor, optional long contentColor, optional long titleColor, optional long iconColor, optional androidx.compose.foundation.layout.Arrangement.Vertical verticalArrangement, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit>? content);
+    method @androidx.compose.runtime.Composable public static void Confirmation(kotlin.jvm.functions.Function0<kotlin.Unit> onTimeout, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit>? icon, optional androidx.wear.compose.foundation.lazy.ScalingLazyListState scrollState, optional long durationMillis, optional long backgroundColor, optional long contentColor, optional long iconColor, optional androidx.compose.foundation.layout.Arrangement.Vertical verticalArrangement, optional androidx.compose.foundation.layout.PaddingValues contentPadding, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit> content);
+    method @Deprecated @androidx.compose.runtime.Composable public static void Confirmation(kotlin.jvm.functions.Function0<kotlin.Unit> onTimeout, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit>? icon, optional androidx.wear.compose.material.ScalingLazyListState scrollState, optional long durationMillis, optional long backgroundColor, optional long contentColor, optional long iconColor, optional androidx.compose.foundation.layout.Arrangement.Vertical verticalArrangement, optional androidx.compose.foundation.layout.PaddingValues contentPadding, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit> content);
+  }
+
+  public final class Dialog_androidKt {
+    method @androidx.compose.runtime.Composable public static void Dialog(boolean showDialog, kotlin.jvm.functions.Function0<kotlin.Unit> onDismissRequest, optional androidx.compose.ui.Modifier modifier, optional androidx.wear.compose.foundation.lazy.ScalingLazyListState? scrollState, optional androidx.compose.ui.window.DialogProperties properties, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+    method @Deprecated @androidx.compose.runtime.Composable public static void Dialog(boolean showDialog, kotlin.jvm.functions.Function0<kotlin.Unit> onDismissRequest, optional androidx.compose.ui.Modifier modifier, optional androidx.wear.compose.material.ScalingLazyListState? scrollState, optional androidx.compose.ui.window.DialogProperties properties, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+  }
+
+}
+
diff --git a/wear/compose/compose-material/api/current.ignore b/wear/compose/compose-material/api/current.ignore
index 64c37fe3..68a4999 100644
--- a/wear/compose/compose-material/api/current.ignore
+++ b/wear/compose/compose-material/api/current.ignore
@@ -15,8 +15,6 @@
     Removed class androidx.wear.compose.material.DefaultTimeSourceKt
 RemovedClass: androidx.wear.compose.material.MaterialTextSelectionColorsKt:
     Removed class androidx.wear.compose.material.MaterialTextSelectionColorsKt
-RemovedClass: androidx.wear.compose.material.PlaceholderKt:
-    Removed class androidx.wear.compose.material.PlaceholderKt
 RemovedClass: androidx.wear.compose.material.RangeDefaultsKt:
     Removed class androidx.wear.compose.material.RangeDefaultsKt
 RemovedClass: androidx.wear.compose.material.Resources_androidKt:
@@ -25,7 +23,5 @@
     Removed class androidx.wear.compose.material.ScalingLazyColumnMeasureKt
 RemovedClass: androidx.wear.compose.material.ShapesKt:
     Removed class androidx.wear.compose.material.ShapesKt
-RemovedClass: androidx.wear.compose.material.SwipeableKt:
-    Removed class androidx.wear.compose.material.SwipeableKt
 RemovedClass: androidx.wear.compose.material.TypographyKt:
     Removed class androidx.wear.compose.material.TypographyKt
diff --git a/wear/compose/compose-material/api/res-1.2.0-beta01.txt b/wear/compose/compose-material/api/res-1.2.0-beta01.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/wear/compose/compose-material/api/res-1.2.0-beta01.txt
diff --git a/wear/compose/compose-material/api/restricted_1.2.0-beta01.txt b/wear/compose/compose-material/api/restricted_1.2.0-beta01.txt
new file mode 100644
index 0000000..13baed6
--- /dev/null
+++ b/wear/compose/compose-material/api/restricted_1.2.0-beta01.txt
@@ -0,0 +1,924 @@
+// Signature format: 4.0
+package androidx.wear.compose.material {
+
+  @Deprecated @androidx.compose.runtime.Immutable public final class AutoCenteringParams {
+    ctor @Deprecated public AutoCenteringParams(optional int itemIndex, optional int itemOffset);
+  }
+
+  @androidx.compose.runtime.Stable public interface ButtonBorder {
+    method @androidx.compose.runtime.Composable public androidx.compose.runtime.State<androidx.compose.foundation.BorderStroke> borderStroke(boolean enabled);
+  }
+
+  @androidx.compose.runtime.Stable public interface ButtonColors {
+    method @androidx.compose.runtime.Composable public androidx.compose.runtime.State<androidx.compose.ui.graphics.Color> backgroundColor(boolean enabled);
+    method @androidx.compose.runtime.Composable public androidx.compose.runtime.State<androidx.compose.ui.graphics.Color> contentColor(boolean enabled);
+  }
+
+  public final class ButtonDefaults {
+    method @androidx.compose.runtime.Composable public androidx.wear.compose.material.ButtonBorder buttonBorder(optional androidx.compose.foundation.BorderStroke? borderStroke, optional androidx.compose.foundation.BorderStroke? disabledBorderStroke);
+    method @androidx.compose.runtime.Composable public androidx.wear.compose.material.ButtonColors buttonColors(optional long backgroundColor, optional long contentColor, optional long disabledBackgroundColor, optional long disabledContentColor);
+    method public float getCompactButtonBackgroundPadding();
+    method public float getDefaultButtonSize();
+    method public float getDefaultIconSize();
+    method public float getExtraSmallButtonSize();
+    method public float getLargeButtonSize();
+    method public float getLargeIconSize();
+    method public float getSmallButtonSize();
+    method public float getSmallIconSize();
+    method @androidx.compose.runtime.Composable public androidx.wear.compose.material.ButtonColors iconButtonColors(optional long contentColor);
+    method @androidx.compose.runtime.Composable public androidx.wear.compose.material.ButtonBorder outlinedButtonBorder(optional long borderColor, optional long disabledBorderColor, optional float borderWidth);
+    method @androidx.compose.runtime.Composable public androidx.wear.compose.material.ButtonColors outlinedButtonColors(optional long contentColor);
+    method @androidx.compose.runtime.Composable public androidx.wear.compose.material.ButtonColors primaryButtonColors(optional long backgroundColor, optional long contentColor);
+    method @androidx.compose.runtime.Composable public androidx.wear.compose.material.ButtonColors secondaryButtonColors(optional long backgroundColor, optional long contentColor);
+    property public final float CompactButtonBackgroundPadding;
+    property public final float DefaultButtonSize;
+    property public final float DefaultIconSize;
+    property public final float ExtraSmallButtonSize;
+    property public final float LargeButtonSize;
+    property public final float LargeIconSize;
+    property public final float SmallButtonSize;
+    property public final float SmallIconSize;
+    field public static final androidx.wear.compose.material.ButtonDefaults INSTANCE;
+  }
+
+  public final class ButtonKt {
+    method @androidx.compose.runtime.Composable public static void Button(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.wear.compose.material.ButtonColors colors, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional androidx.compose.ui.graphics.Shape shape, optional androidx.wear.compose.material.ButtonBorder border, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.BoxScope,kotlin.Unit> content);
+    method @Deprecated @androidx.compose.runtime.Composable public static void Button(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.wear.compose.material.ButtonColors colors, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.BoxScope,kotlin.Unit> content);
+    method @androidx.compose.runtime.Composable public static void CompactButton(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.wear.compose.material.ButtonColors colors, optional float backgroundPadding, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional androidx.compose.ui.graphics.Shape shape, optional androidx.wear.compose.material.ButtonBorder border, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.BoxScope,kotlin.Unit> content);
+    method @Deprecated @androidx.compose.runtime.Composable public static void CompactButton(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.wear.compose.material.ButtonColors colors, optional float backgroundPadding, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.BoxScope,kotlin.Unit> content);
+    method @androidx.compose.runtime.Composable public static void OutlinedButton(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.wear.compose.material.ButtonColors colors, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional androidx.compose.ui.graphics.Shape shape, optional androidx.wear.compose.material.ButtonBorder border, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.BoxScope,kotlin.Unit> content);
+    method @androidx.compose.runtime.Composable public static void OutlinedCompactButton(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.wear.compose.material.ButtonColors colors, optional float backgroundPadding, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional androidx.compose.ui.graphics.Shape shape, optional androidx.wear.compose.material.ButtonBorder border, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.BoxScope,kotlin.Unit> content);
+  }
+
+  public final class CardDefaults {
+    method @androidx.compose.runtime.Composable public androidx.compose.ui.graphics.painter.Painter cardBackgroundPainter(optional long startBackgroundColor, optional long endBackgroundColor, optional androidx.compose.ui.unit.LayoutDirection gradientDirection);
+    method public float getAppImageSize();
+    method public androidx.compose.foundation.layout.PaddingValues getContentPadding();
+    method @androidx.compose.runtime.Composable public androidx.compose.ui.graphics.painter.Painter imageWithScrimBackgroundPainter(androidx.compose.ui.graphics.painter.Painter backgroundImagePainter, optional androidx.compose.ui.graphics.Brush backgroundImageScrimBrush);
+    property public final float AppImageSize;
+    property public final androidx.compose.foundation.layout.PaddingValues ContentPadding;
+    field public static final androidx.wear.compose.material.CardDefaults INSTANCE;
+  }
+
+  public final class CardKt {
+    method @androidx.compose.runtime.Composable public static void AppCard(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit> appName, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit> time, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit> title, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit>? appImage, optional androidx.compose.ui.graphics.painter.Painter backgroundPainter, optional long contentColor, optional long appColor, optional long timeColor, optional long titleColor, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit> content);
+    method @androidx.compose.runtime.Composable public static void Card(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.graphics.painter.Painter backgroundPainter, optional long contentColor, optional boolean enabled, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional androidx.compose.ui.semantics.Role? role, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit> content);
+    method @androidx.compose.runtime.Composable public static void TitleCard(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit> title, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit>? time, optional androidx.compose.ui.graphics.painter.Painter backgroundPainter, optional long contentColor, optional long titleColor, optional long timeColor, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit> content);
+  }
+
+  @androidx.compose.runtime.Stable public interface CheckboxColors {
+    method @androidx.compose.runtime.Composable public androidx.compose.runtime.State<androidx.compose.ui.graphics.Color> boxColor(boolean enabled, boolean checked);
+    method @androidx.compose.runtime.Composable public androidx.compose.runtime.State<androidx.compose.ui.graphics.Color> checkmarkColor(boolean enabled, boolean checked);
+  }
+
+  public final class CheckboxDefaults {
+    method @androidx.compose.runtime.Composable public androidx.wear.compose.material.CheckboxColors colors(optional long checkedBoxColor, optional long checkedCheckmarkColor, optional long uncheckedBoxColor, optional long uncheckedCheckmarkColor);
+    field public static final androidx.wear.compose.material.CheckboxDefaults INSTANCE;
+  }
+
+  @androidx.compose.runtime.Stable public interface ChipBorder {
+    method @androidx.compose.runtime.Composable public androidx.compose.runtime.State<androidx.compose.foundation.BorderStroke> borderStroke(boolean enabled);
+  }
+
+  @androidx.compose.runtime.Stable public interface ChipColors {
+    method @androidx.compose.runtime.Composable public androidx.compose.runtime.State<androidx.compose.ui.graphics.painter.Painter> background(boolean enabled);
+    method @androidx.compose.runtime.Composable public androidx.compose.runtime.State<androidx.compose.ui.graphics.Color> contentColor(boolean enabled);
+    method @androidx.compose.runtime.Composable public androidx.compose.runtime.State<androidx.compose.ui.graphics.Color> iconColor(boolean enabled);
+    method @androidx.compose.runtime.Composable public androidx.compose.runtime.State<androidx.compose.ui.graphics.Color> secondaryContentColor(boolean enabled);
+  }
+
+  public final class ChipDefaults {
+    method @androidx.compose.runtime.Composable public androidx.wear.compose.material.ChipColors childChipColors(optional long contentColor, optional long secondaryContentColor, optional long iconColor);
+    method @androidx.compose.runtime.Composable public androidx.wear.compose.material.ChipBorder chipBorder(optional androidx.compose.foundation.BorderStroke? borderStroke, optional androidx.compose.foundation.BorderStroke? disabledBorderStroke);
+    method @androidx.wear.compose.material.ExperimentalWearMaterialApi public androidx.wear.compose.material.ChipColors chipColors(androidx.compose.ui.graphics.painter.Painter backgroundPainter, long contentColor, long secondaryContentColor, long iconColor, androidx.compose.ui.graphics.painter.Painter disabledBackgroundPainter, long disabledContentColor, long disabledSecondaryContentColor, long disabledIconColor);
+    method @androidx.compose.runtime.Composable public androidx.wear.compose.material.ChipColors chipColors(optional long backgroundColor, optional long contentColor, optional long secondaryContentColor, optional long iconColor, optional long disabledBackgroundColor, optional long disabledContentColor, optional long disabledSecondaryContentColor, optional long disabledIconColor);
+    method public androidx.compose.foundation.layout.PaddingValues getCompactChipContentPadding();
+    method public androidx.compose.foundation.layout.PaddingValues getCompactChipTapTargetPadding();
+    method public androidx.compose.foundation.layout.PaddingValues getContentPadding();
+    method public float getIconSize();
+    method public float getLargeIconSize();
+    method public float getSmallIconSize();
+    method @androidx.compose.runtime.Composable public androidx.wear.compose.material.ChipColors gradientBackgroundChipColors(optional long startBackgroundColor, optional long endBackgroundColor, optional long contentColor, optional long secondaryContentColor, optional long iconColor, optional androidx.compose.ui.unit.LayoutDirection gradientDirection);
+    method @androidx.compose.runtime.Composable public androidx.wear.compose.material.ChipColors imageBackgroundChipColors(androidx.compose.ui.graphics.painter.Painter backgroundImagePainter, optional androidx.compose.ui.graphics.Brush backgroundImageScrimBrush, optional long contentColor, optional long secondaryContentColor, optional long iconColor);
+    method @androidx.compose.runtime.Composable public androidx.wear.compose.material.ChipBorder outlinedChipBorder(optional long borderColor, optional long disabledBorderColor, optional float borderWidth);
+    method @androidx.compose.runtime.Composable public androidx.wear.compose.material.ChipColors outlinedChipColors(optional long contentColor, optional long secondaryContentColor, optional long iconColor);
+    method @androidx.compose.runtime.Composable public androidx.wear.compose.material.ChipColors primaryChipColors(optional long backgroundColor, optional long contentColor, optional long secondaryContentColor, optional long iconColor);
+    method @androidx.compose.runtime.Composable public androidx.wear.compose.material.ChipColors secondaryChipColors(optional long backgroundColor, optional long contentColor, optional long secondaryContentColor, optional long iconColor);
+    property public final androidx.compose.foundation.layout.PaddingValues CompactChipContentPadding;
+    property public final androidx.compose.foundation.layout.PaddingValues CompactChipTapTargetPadding;
+    property public final androidx.compose.foundation.layout.PaddingValues ContentPadding;
+    property public final float IconSize;
+    property public final float LargeIconSize;
+    property public final float SmallIconSize;
+    field public static final androidx.wear.compose.material.ChipDefaults INSTANCE;
+  }
+
+  public final class ChipKt {
+    method @Deprecated @androidx.compose.runtime.Composable public static void Chip(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.wear.compose.material.ChipColors colors, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional androidx.compose.ui.semantics.Role? role, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit> content);
+    method @androidx.compose.runtime.Composable public static void Chip(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.wear.compose.material.ChipColors colors, androidx.wear.compose.material.ChipBorder border, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional androidx.compose.ui.semantics.Role? role, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit> content);
+    method @Deprecated @androidx.compose.runtime.Composable public static void Chip(kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit> label, kotlin.jvm.functions.Function0<kotlin.Unit> onClick, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit>? secondaryLabel, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.BoxScope,kotlin.Unit>? icon, optional androidx.wear.compose.material.ChipColors colors, optional boolean enabled, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional androidx.compose.foundation.layout.PaddingValues contentPadding);
+    method @androidx.compose.runtime.Composable public static void Chip(kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit> label, kotlin.jvm.functions.Function0<kotlin.Unit> onClick, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit>? secondaryLabel, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.BoxScope,kotlin.Unit>? icon, optional androidx.wear.compose.material.ChipColors colors, optional boolean enabled, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional androidx.compose.ui.graphics.Shape shape, optional androidx.wear.compose.material.ChipBorder border);
+    method @Deprecated @androidx.compose.runtime.Composable public static void CompactChip(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit>? label, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.BoxScope,kotlin.Unit>? icon, optional androidx.wear.compose.material.ChipColors colors, optional boolean enabled, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional androidx.compose.foundation.layout.PaddingValues contentPadding);
+    method @androidx.compose.runtime.Composable public static void CompactChip(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit>? label, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.BoxScope,kotlin.Unit>? icon, optional androidx.wear.compose.material.ChipColors colors, optional boolean enabled, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional androidx.compose.ui.graphics.Shape shape, optional androidx.wear.compose.material.ChipBorder border);
+    method @androidx.compose.runtime.Composable public static void OutlinedChip(kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit> label, kotlin.jvm.functions.Function0<kotlin.Unit> onClick, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit>? secondaryLabel, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.BoxScope,kotlin.Unit>? icon, optional androidx.wear.compose.material.ChipColors colors, optional boolean enabled, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional androidx.compose.ui.graphics.Shape shape, optional androidx.wear.compose.material.ChipBorder border);
+    method @androidx.compose.runtime.Composable public static void OutlinedCompactChip(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit>? label, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.BoxScope,kotlin.Unit>? icon, optional androidx.wear.compose.material.ChipColors colors, optional boolean enabled, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional androidx.compose.ui.graphics.Shape shape, optional androidx.wear.compose.material.ChipBorder border);
+  }
+
+  @androidx.compose.runtime.Stable public final class Colors {
+    ctor public Colors(optional long primary, optional long primaryVariant, optional long secondary, optional long secondaryVariant, optional long background, optional long surface, optional long error, optional long onPrimary, optional long onSecondary, optional long onBackground, optional long onSurface, optional long onSurfaceVariant, optional long onError);
+    method public androidx.wear.compose.material.Colors copy(optional long primary, optional long primaryVariant, optional long secondary, optional long secondaryVariant, optional long background, optional long surface, optional long error, optional long onPrimary, optional long onSecondary, optional long onBackground, optional long onSurface, optional long onSurfaceVariant, optional long onError);
+    method public long getBackground();
+    method public long getError();
+    method public long getOnBackground();
+    method public long getOnError();
+    method public long getOnPrimary();
+    method public long getOnSecondary();
+    method public long getOnSurface();
+    method public long getOnSurfaceVariant();
+    method public long getPrimary();
+    method public long getPrimaryVariant();
+    method public long getSecondary();
+    method public long getSecondaryVariant();
+    method public long getSurface();
+    property public final long background;
+    property public final long error;
+    property public final long onBackground;
+    property public final long onError;
+    property public final long onPrimary;
+    property public final long onSecondary;
+    property public final long onSurface;
+    property public final long onSurfaceVariant;
+    property public final long primary;
+    property public final long primaryVariant;
+    property public final long secondary;
+    property public final long secondaryVariant;
+    property public final long surface;
+  }
+
+  public final class ColorsKt {
+    method public static long contentColorFor(androidx.wear.compose.material.Colors, long backgroundColor);
+    method @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public static long contentColorFor(long backgroundColor);
+  }
+
+  public final class ContentAlpha {
+    method @androidx.compose.runtime.Composable public float getDisabled();
+    method @androidx.compose.runtime.Composable public float getHigh();
+    method @androidx.compose.runtime.Composable public float getMedium();
+    property @androidx.compose.runtime.Composable public final float disabled;
+    property @androidx.compose.runtime.Composable public final float high;
+    property @androidx.compose.runtime.Composable public final float medium;
+    field public static final androidx.wear.compose.material.ContentAlpha INSTANCE;
+  }
+
+  public final class ContentAlphaKt {
+    method public static androidx.compose.runtime.ProvidableCompositionLocal<java.lang.Float> getLocalContentAlpha();
+    property public static final androidx.compose.runtime.ProvidableCompositionLocal<java.lang.Float> LocalContentAlpha;
+  }
+
+  public final class ContentColorKt {
+    method public static androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.ui.graphics.Color> getLocalContentColor();
+    property public static final androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.ui.graphics.Color> LocalContentColor;
+  }
+
+  public final class CurvedTextKt {
+    method public static void curvedText(androidx.wear.compose.foundation.CurvedScope, String text, optional androidx.wear.compose.foundation.CurvedModifier modifier, optional long background, optional long color, optional long fontSize, optional androidx.compose.ui.text.font.FontFamily? fontFamily, optional androidx.compose.ui.text.font.FontWeight? fontWeight, optional androidx.compose.ui.text.font.FontStyle? fontStyle, optional androidx.compose.ui.text.font.FontSynthesis? fontSynthesis, optional androidx.wear.compose.foundation.CurvedTextStyle? style, optional androidx.wear.compose.foundation.CurvedDirection.Angular? angularDirection, optional int overflow);
+    method @Deprecated public static void curvedText(androidx.wear.compose.foundation.CurvedScope, String text, optional androidx.wear.compose.foundation.CurvedModifier modifier, optional long background, optional long color, optional long fontSize, optional androidx.wear.compose.foundation.CurvedTextStyle? style, optional androidx.wear.compose.foundation.CurvedDirection.Angular? angularDirection, optional int overflow);
+  }
+
+  @kotlin.RequiresOptIn(message="This Wear Material API is experimental and is likely to change or to be removed in" + " the future.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface ExperimentalWearMaterialApi {
+  }
+
+  @androidx.compose.runtime.Immutable @androidx.wear.compose.material.ExperimentalWearMaterialApi public final class FixedThreshold implements androidx.wear.compose.material.ThresholdConfig {
+    ctor public FixedThreshold(float offset);
+    method public float computeThreshold(androidx.compose.ui.unit.Density, float fromValue, float toValue);
+    method public androidx.wear.compose.material.FixedThreshold copy-0680j_4(float offset);
+  }
+
+  @androidx.compose.runtime.Immutable @androidx.wear.compose.material.ExperimentalWearMaterialApi public final class FractionalThreshold implements androidx.wear.compose.material.ThresholdConfig {
+    ctor public FractionalThreshold(float fraction);
+    method public float computeThreshold(androidx.compose.ui.unit.Density, float fromValue, float toValue);
+    method public androidx.wear.compose.material.FractionalThreshold copy(float fraction);
+  }
+
+  public final class HorizontalPageIndicatorKt {
+    method @androidx.compose.runtime.Composable public static void HorizontalPageIndicator(androidx.wear.compose.material.PageIndicatorState pageIndicatorState, optional androidx.compose.ui.Modifier modifier, optional int indicatorStyle, optional long selectedColor, optional long unselectedColor, optional float indicatorSize, optional float spacing, optional androidx.compose.ui.graphics.Shape indicatorShape);
+  }
+
+  public final class IconKt {
+    method @androidx.compose.runtime.Composable public static void Icon(androidx.compose.ui.graphics.ImageBitmap bitmap, String? contentDescription, optional androidx.compose.ui.Modifier modifier, optional long tint);
+    method @androidx.compose.runtime.Composable public static void Icon(androidx.compose.ui.graphics.painter.Painter painter, String? contentDescription, optional androidx.compose.ui.Modifier modifier, optional long tint);
+    method @androidx.compose.runtime.Composable public static void Icon(androidx.compose.ui.graphics.vector.ImageVector imageVector, String? contentDescription, optional androidx.compose.ui.Modifier modifier, optional long tint);
+  }
+
+  @androidx.compose.runtime.Stable public interface InlineSliderColors {
+    method @androidx.compose.runtime.Composable public androidx.compose.runtime.State<androidx.compose.ui.graphics.Color> backgroundColor(boolean enabled);
+    method @androidx.compose.runtime.Composable public androidx.compose.runtime.State<androidx.compose.ui.graphics.Color> barColor(boolean enabled, boolean selected);
+    method @androidx.compose.runtime.Composable public androidx.compose.runtime.State<androidx.compose.ui.graphics.Color> spacerColor(boolean enabled);
+  }
+
+  public final class InlineSliderDefaults {
+    method @androidx.compose.runtime.Composable public androidx.wear.compose.material.InlineSliderColors colors(optional long backgroundColor, optional long spacerColor, optional long selectedBarColor, optional long unselectedBarColor, optional long disabledBackgroundColor, optional long disabledSpacerColor, optional long disabledSelectedBarColor, optional long disabledUnselectedBarColor);
+    method public androidx.compose.ui.graphics.vector.ImageVector getDecrease();
+    method public androidx.compose.ui.graphics.vector.ImageVector getIncrease();
+    property public final androidx.compose.ui.graphics.vector.ImageVector Decrease;
+    property public final androidx.compose.ui.graphics.vector.ImageVector Increase;
+    field public static final androidx.wear.compose.material.InlineSliderDefaults INSTANCE;
+  }
+
+  public final class ListHeaderKt {
+    method @androidx.compose.runtime.Composable public static void ListHeader(optional androidx.compose.ui.Modifier modifier, optional long backgroundColor, optional long contentColor, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit> content);
+  }
+
+  public final class MaterialTheme {
+    method @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public androidx.wear.compose.material.Colors getColors();
+    method @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public androidx.wear.compose.material.Shapes getShapes();
+    method @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public androidx.wear.compose.material.Typography getTypography();
+    property @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public final androidx.wear.compose.material.Colors colors;
+    property @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public final androidx.wear.compose.material.Shapes shapes;
+    property @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public final androidx.wear.compose.material.Typography typography;
+    field public static final androidx.wear.compose.material.MaterialTheme INSTANCE;
+  }
+
+  public final class MaterialThemeKt {
+    method @androidx.compose.runtime.Composable public static void MaterialTheme(optional androidx.wear.compose.material.Colors colors, optional androidx.wear.compose.material.Typography typography, optional androidx.wear.compose.material.Shapes shapes, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+  }
+
+  public final class PageIndicatorDefaults {
+    method @androidx.compose.runtime.Composable public int style();
+    field public static final androidx.wear.compose.material.PageIndicatorDefaults INSTANCE;
+  }
+
+  public interface PageIndicatorState {
+    method public int getPageCount();
+    method public float getPageOffset();
+    method public int getSelectedPage();
+    property public abstract int pageCount;
+    property public abstract float pageOffset;
+    property public abstract int selectedPage;
+  }
+
+  @kotlin.jvm.JvmInline public final value class PageIndicatorStyle {
+    field public static final androidx.wear.compose.material.PageIndicatorStyle.Companion Companion;
+  }
+
+  public static final class PageIndicatorStyle.Companion {
+    method public int getCurved();
+    method public int getLinear();
+    property public final int Curved;
+    property public final int Linear;
+  }
+
+  public final class PickerDefaults {
+    method public androidx.wear.compose.foundation.lazy.ScalingParams defaultScalingParams(optional float edgeScale, optional float edgeAlpha, optional float minElementHeight, optional float maxElementHeight, optional float minTransitionArea, optional float maxTransitionArea, optional androidx.compose.animation.core.Easing scaleInterpolator, optional kotlin.jvm.functions.Function1<? super androidx.compose.ui.unit.Constraints,java.lang.Integer> viewportVerticalOffsetResolver);
+    method @androidx.compose.runtime.Composable public androidx.compose.foundation.gestures.FlingBehavior flingBehavior(androidx.wear.compose.material.PickerState state, optional androidx.compose.animation.core.DecayAnimationSpec<java.lang.Float> decay);
+    method public float getDefaultGradientRatio();
+    method @Deprecated public androidx.wear.compose.material.ScalingParams scalingParams(optional float edgeScale, optional float edgeAlpha, optional float minElementHeight, optional float maxElementHeight, optional float minTransitionArea, optional float maxTransitionArea, optional androidx.compose.animation.core.Easing scaleInterpolator, optional kotlin.jvm.functions.Function1<? super androidx.compose.ui.unit.Constraints,java.lang.Integer> viewportVerticalOffsetResolver);
+    property public final float DefaultGradientRatio;
+    field public static final androidx.wear.compose.material.PickerDefaults INSTANCE;
+  }
+
+  public final class PickerGroupItem {
+    ctor public PickerGroupItem(androidx.wear.compose.material.PickerState pickerState, optional androidx.compose.ui.Modifier modifier, optional String? contentDescription, optional androidx.compose.ui.focus.FocusRequester? focusRequester, optional kotlin.jvm.functions.Function0<kotlin.Unit> onSelected, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.BoxScope,kotlin.Unit>? readOnlyLabel, kotlin.jvm.functions.Function3<? super androidx.wear.compose.material.PickerScope,? super java.lang.Integer,? super java.lang.Boolean,kotlin.Unit> option);
+    method public String? getContentDescription();
+    method public androidx.compose.ui.focus.FocusRequester? getFocusRequester();
+    method public androidx.compose.ui.Modifier getModifier();
+    method public kotlin.jvm.functions.Function0<kotlin.Unit> getOnSelected();
+    method public kotlin.jvm.functions.Function3<androidx.wear.compose.material.PickerScope,java.lang.Integer,java.lang.Boolean,kotlin.Unit> getOption();
+    method public androidx.wear.compose.material.PickerState getPickerState();
+    method public kotlin.jvm.functions.Function1<androidx.compose.foundation.layout.BoxScope,kotlin.Unit>? getReadOnlyLabel();
+    property public final String? contentDescription;
+    property public final androidx.compose.ui.focus.FocusRequester? focusRequester;
+    property public final androidx.compose.ui.Modifier modifier;
+    property public final kotlin.jvm.functions.Function0<kotlin.Unit> onSelected;
+    property public final kotlin.jvm.functions.Function3<androidx.wear.compose.material.PickerScope,java.lang.Integer,java.lang.Boolean,kotlin.Unit> option;
+    property public final androidx.wear.compose.material.PickerState pickerState;
+    property public final kotlin.jvm.functions.Function1<androidx.compose.foundation.layout.BoxScope,kotlin.Unit>? readOnlyLabel;
+  }
+
+  public final class PickerGroupKt {
+    method @androidx.compose.runtime.Composable public static void PickerGroup(androidx.wear.compose.material.PickerGroupItem![] pickers, optional androidx.compose.ui.Modifier modifier, optional androidx.wear.compose.material.PickerGroupState pickerGroupState, optional kotlin.jvm.functions.Function1<? super java.lang.Integer,kotlin.Unit> onSelected, optional boolean autoCenter, optional boolean propagateMinConstraints, optional androidx.wear.compose.material.TouchExplorationStateProvider touchExplorationStateProvider, optional kotlin.jvm.functions.Function1<? super java.lang.Integer,kotlin.Unit>? separator);
+    method @androidx.compose.runtime.Composable public static androidx.wear.compose.material.PickerGroupState rememberPickerGroupState(optional int initiallySelectedIndex);
+  }
+
+  public final class PickerGroupState {
+    ctor public PickerGroupState(optional int initiallySelectedIndex);
+    method public int getSelectedIndex();
+    method public void setSelectedIndex(int);
+    property public final int selectedIndex;
+    field public static final androidx.wear.compose.material.PickerGroupState.Companion Companion;
+  }
+
+  public static final class PickerGroupState.Companion {
+    method public androidx.compose.runtime.saveable.Saver<androidx.wear.compose.material.PickerGroupState,java.lang.Object> getSaver();
+    property public final androidx.compose.runtime.saveable.Saver<androidx.wear.compose.material.PickerGroupState,java.lang.Object> Saver;
+  }
+
+  public final class PickerKt {
+    method @Deprecated @androidx.compose.runtime.Composable public static void Picker(androidx.wear.compose.material.PickerState state, optional androidx.compose.ui.Modifier modifier, optional boolean readOnly, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.BoxScope,kotlin.Unit>? readOnlyLabel, optional androidx.wear.compose.material.ScalingParams scalingParams, optional float separation, optional float gradientRatio, optional long gradientColor, optional androidx.compose.foundation.gestures.FlingBehavior flingBehavior, kotlin.jvm.functions.Function2<? super androidx.wear.compose.material.PickerScope,? super java.lang.Integer,kotlin.Unit> option);
+    method @androidx.compose.runtime.Composable public static void Picker(androidx.wear.compose.material.PickerState state, String? contentDescription, optional androidx.compose.ui.Modifier modifier, optional boolean readOnly, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.BoxScope,kotlin.Unit>? readOnlyLabel, optional kotlin.jvm.functions.Function0<kotlin.Unit> onSelected, optional androidx.wear.compose.foundation.lazy.ScalingParams scalingParams, optional float separation, optional float gradientRatio, optional long gradientColor, optional androidx.compose.foundation.gestures.FlingBehavior flingBehavior, optional boolean userScrollEnabled, kotlin.jvm.functions.Function2<? super androidx.wear.compose.material.PickerScope,? super java.lang.Integer,kotlin.Unit> option);
+    method @Deprecated @androidx.compose.runtime.Composable public static void Picker(androidx.wear.compose.material.PickerState state, String? contentDescription, optional androidx.compose.ui.Modifier modifier, optional boolean readOnly, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.BoxScope,kotlin.Unit>? readOnlyLabel, optional kotlin.jvm.functions.Function0<kotlin.Unit> onSelected, optional androidx.wear.compose.material.ScalingParams scalingParams, optional float separation, optional float gradientRatio, optional long gradientColor, optional androidx.compose.foundation.gestures.FlingBehavior flingBehavior, optional boolean userScrollEnabled, kotlin.jvm.functions.Function2<? super androidx.wear.compose.material.PickerScope,? super java.lang.Integer,kotlin.Unit> option);
+    method @Deprecated @androidx.compose.runtime.Composable public static void Picker(androidx.wear.compose.material.PickerState state, String? contentDescription, optional androidx.compose.ui.Modifier modifier, optional boolean readOnly, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.BoxScope,kotlin.Unit>? readOnlyLabel, optional kotlin.jvm.functions.Function0<kotlin.Unit> onSelected, optional androidx.wear.compose.material.ScalingParams scalingParams, optional float separation, optional float gradientRatio, optional long gradientColor, optional androidx.compose.foundation.gestures.FlingBehavior flingBehavior, kotlin.jvm.functions.Function2<? super androidx.wear.compose.material.PickerScope,? super java.lang.Integer,kotlin.Unit> option);
+    method @androidx.compose.runtime.Composable public static androidx.wear.compose.material.PickerState rememberPickerState(int initialNumberOfOptions, optional int initiallySelectedOption, optional boolean repeatItems);
+  }
+
+  public interface PickerScope {
+    method public int getSelectedOption();
+    property public abstract int selectedOption;
+  }
+
+  @androidx.compose.runtime.Stable public final class PickerState implements androidx.compose.foundation.gestures.ScrollableState {
+    ctor public PickerState(int initialNumberOfOptions, optional int initiallySelectedOption, optional boolean repeatItems);
+    method public suspend Object? animateScrollToOption(int index, kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    method public float dispatchRawDelta(float delta);
+    method public int getNumberOfOptions();
+    method public boolean getRepeatItems();
+    method public int getSelectedOption();
+    method public boolean isScrollInProgress();
+    method public suspend Object? scroll(androidx.compose.foundation.MutatePriority scrollPriority, kotlin.jvm.functions.Function2<? super androidx.compose.foundation.gestures.ScrollScope,? super kotlin.coroutines.Continuation<? super kotlin.Unit>,?> block, kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    method public suspend Object? scrollToOption(int index, kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    method public void setNumberOfOptions(int);
+    property public boolean canScrollBackward;
+    property public boolean canScrollForward;
+    property public boolean isScrollInProgress;
+    property public final int numberOfOptions;
+    property public final boolean repeatItems;
+    property public final int selectedOption;
+    field public static final androidx.wear.compose.material.PickerState.Companion Companion;
+  }
+
+  public static final class PickerState.Companion {
+    method public androidx.compose.runtime.saveable.Saver<androidx.wear.compose.material.PickerState,java.lang.Object> getSaver();
+    property public final androidx.compose.runtime.saveable.Saver<androidx.wear.compose.material.PickerState,java.lang.Object> Saver;
+  }
+
+  @androidx.wear.compose.material.ExperimentalWearMaterialApi public final class PlaceholderDefaults {
+    method @androidx.compose.runtime.Composable public androidx.compose.ui.graphics.painter.Painter painterWithPlaceholderOverlayBackgroundBrush(androidx.wear.compose.material.PlaceholderState placeholderState, androidx.compose.ui.graphics.painter.Painter painter, optional long color);
+    method @androidx.compose.runtime.Composable public androidx.compose.ui.graphics.painter.Painter placeholderBackgroundBrush(androidx.wear.compose.material.PlaceholderState placeholderState, optional long color);
+    method @androidx.compose.runtime.Composable public androidx.wear.compose.material.ChipColors placeholderChipColors(androidx.wear.compose.material.ChipColors originalChipColors, androidx.wear.compose.material.PlaceholderState placeholderState, optional long color);
+    method @androidx.compose.runtime.Composable public androidx.wear.compose.material.ChipColors placeholderChipColors(androidx.wear.compose.material.PlaceholderState placeholderState, optional long color);
+    field public static final androidx.wear.compose.material.PlaceholderDefaults INSTANCE;
+  }
+
+  public final class PlaceholderKt {
+    method @androidx.compose.runtime.Composable @androidx.wear.compose.material.ExperimentalWearMaterialApi public static androidx.compose.ui.Modifier placeholder(androidx.compose.ui.Modifier, androidx.wear.compose.material.PlaceholderState placeholderState, optional androidx.compose.ui.graphics.Shape shape, optional long color);
+    method @androidx.compose.runtime.Composable @androidx.wear.compose.material.ExperimentalWearMaterialApi public static androidx.compose.ui.Modifier placeholderShimmer(androidx.compose.ui.Modifier, androidx.wear.compose.material.PlaceholderState placeholderState, optional androidx.compose.ui.graphics.Shape shape, optional long color);
+    method @androidx.compose.runtime.Composable @androidx.wear.compose.material.ExperimentalWearMaterialApi public static androidx.wear.compose.material.PlaceholderState rememberPlaceholderState(kotlin.jvm.functions.Function0<java.lang.Boolean> isContentReady);
+  }
+
+  @androidx.compose.runtime.Stable @androidx.wear.compose.material.ExperimentalWearMaterialApi public final class PlaceholderState {
+    method public float getPlaceholderProgression();
+    method public boolean isShowContent();
+    method public boolean isWipeOff();
+    method public suspend Object? startPlaceholderAnimation(kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    property public final boolean isShowContent;
+    property public final boolean isWipeOff;
+    property public final float placeholderProgression;
+  }
+
+  @kotlin.jvm.JvmInline public final value class PositionIndicatorAlignment {
+    field public static final androidx.wear.compose.material.PositionIndicatorAlignment.Companion Companion;
+  }
+
+  public static final class PositionIndicatorAlignment.Companion {
+    method public int getEnd();
+    method public int getLeft();
+    method public int getOppositeRsb();
+    method public int getRight();
+    property public final int End;
+    property public final int Left;
+    property public final int OppositeRsb;
+    property public final int Right;
+  }
+
+  public final class PositionIndicatorKt {
+    method @androidx.compose.runtime.Composable public static void PositionIndicator(androidx.compose.foundation.lazy.LazyListState lazyListState, optional androidx.compose.ui.Modifier modifier, optional boolean reverseDirection);
+    method @androidx.compose.runtime.Composable public static void PositionIndicator(androidx.compose.foundation.ScrollState scrollState, optional androidx.compose.ui.Modifier modifier, optional boolean reverseDirection);
+    method @androidx.compose.runtime.Composable public static void PositionIndicator(androidx.wear.compose.foundation.lazy.ScalingLazyListState scalingLazyListState, optional androidx.compose.ui.Modifier modifier, optional boolean reverseDirection);
+    method @androidx.compose.runtime.Composable public static void PositionIndicator(androidx.wear.compose.material.PositionIndicatorState state, float indicatorHeight, float indicatorWidth, float paddingHorizontal, optional androidx.compose.ui.Modifier modifier, optional long background, optional long color, optional boolean reverseDirection, optional int position);
+    method @Deprecated @androidx.compose.runtime.Composable public static void PositionIndicator(androidx.wear.compose.material.ScalingLazyListState scalingLazyListState, optional androidx.compose.ui.Modifier modifier, optional boolean reverseDirection);
+    method @androidx.compose.runtime.Composable public static void PositionIndicator(kotlin.jvm.functions.Function0<java.lang.Float> value, optional androidx.compose.ui.Modifier modifier, optional kotlin.ranges.ClosedFloatingPointRange<java.lang.Float> range, optional long color, optional boolean reverseDirection, optional int position);
+  }
+
+  @androidx.compose.runtime.Stable public interface PositionIndicatorState {
+    method public float getPositionFraction();
+    method public float sizeFraction(float scrollableContainerSizePx);
+    method public int visibility(float scrollableContainerSizePx);
+    property public abstract float positionFraction;
+  }
+
+  @kotlin.jvm.JvmInline public final value class PositionIndicatorVisibility {
+    field public static final androidx.wear.compose.material.PositionIndicatorVisibility.Companion Companion;
+  }
+
+  public static final class PositionIndicatorVisibility.Companion {
+    method public int getAutoHide();
+    method public int getHide();
+    method public int getShow();
+    property public final int AutoHide;
+    property public final int Hide;
+    property public final int Show;
+  }
+
+  public final class ProgressIndicatorDefaults {
+    method public androidx.compose.animation.core.SpringSpec<java.lang.Float> getProgressAnimationSpec();
+    method public float getStrokeWidth();
+    property public final androidx.compose.animation.core.SpringSpec<java.lang.Float> ProgressAnimationSpec;
+    property public final float StrokeWidth;
+    field public static final androidx.wear.compose.material.ProgressIndicatorDefaults INSTANCE;
+  }
+
+  public final class ProgressIndicatorKt {
+    method @androidx.compose.runtime.Composable public static void CircularProgressIndicator(optional androidx.compose.ui.Modifier modifier, optional float startAngle, optional long indicatorColor, optional long trackColor, optional float strokeWidth);
+    method @androidx.compose.runtime.Composable public static void CircularProgressIndicator(float progress, optional androidx.compose.ui.Modifier modifier, optional float startAngle, optional float endAngle, optional long indicatorColor, optional long trackColor, optional float strokeWidth);
+  }
+
+  @androidx.compose.runtime.Stable public interface RadioButtonColors {
+    method @androidx.compose.runtime.Composable public androidx.compose.runtime.State<androidx.compose.ui.graphics.Color> dotColor(boolean enabled, boolean selected);
+    method @androidx.compose.runtime.Composable public androidx.compose.runtime.State<androidx.compose.ui.graphics.Color> ringColor(boolean enabled, boolean selected);
+  }
+
+  public final class RadioButtonDefaults {
+    method @androidx.compose.runtime.Composable public androidx.wear.compose.material.RadioButtonColors colors(optional long selectedRingColor, optional long selectedDotColor, optional long unselectedRingColor, optional long unselectedDotColor);
+    field public static final androidx.wear.compose.material.RadioButtonDefaults INSTANCE;
+  }
+
+  @androidx.compose.runtime.Immutable @androidx.wear.compose.material.ExperimentalWearMaterialApi public final class ResistanceConfig {
+    ctor public ResistanceConfig(float basis, optional float factorAtMin, optional float factorAtMax);
+    method public float computeResistance(float overflow);
+    method public float getBasis();
+    method public float getFactorAtMax();
+    method public float getFactorAtMin();
+    property public final float basis;
+    property public final float factorAtMax;
+    property public final float factorAtMin;
+  }
+
+  public final class ScaffoldKt {
+    method @androidx.compose.runtime.Composable public static void Scaffold(optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function0<kotlin.Unit>? vignette, optional kotlin.jvm.functions.Function0<kotlin.Unit>? positionIndicator, optional kotlin.jvm.functions.Function0<kotlin.Unit>? pageIndicator, optional kotlin.jvm.functions.Function0<kotlin.Unit>? timeText, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+  }
+
+  @Deprecated public final class ScalingLazyColumnDefaults {
+    method @Deprecated public androidx.wear.compose.material.ScalingParams scalingParams(optional float edgeScale, optional float edgeAlpha, optional float minElementHeight, optional float maxElementHeight, optional float minTransitionArea, optional float maxTransitionArea, optional androidx.compose.animation.core.Easing scaleInterpolator, optional kotlin.jvm.functions.Function1<? super androidx.compose.ui.unit.Constraints,java.lang.Integer> viewportVerticalOffsetResolver);
+    method @Deprecated @androidx.compose.runtime.Composable public androidx.compose.foundation.gestures.FlingBehavior snapFlingBehavior(androidx.wear.compose.material.ScalingLazyListState state, optional float snapOffset, optional androidx.compose.animation.core.DecayAnimationSpec<java.lang.Float> decay);
+    field @Deprecated public static final androidx.wear.compose.material.ScalingLazyColumnDefaults INSTANCE;
+  }
+
+  public final class ScalingLazyColumnKt {
+    method @Deprecated @androidx.compose.runtime.Composable public static void ScalingLazyColumn(optional androidx.compose.ui.Modifier modifier, optional androidx.wear.compose.material.ScalingLazyListState state, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional boolean reverseLayout, optional androidx.compose.foundation.layout.Arrangement.Vertical verticalArrangement, optional androidx.compose.ui.Alignment.Horizontal horizontalAlignment, optional androidx.compose.foundation.gestures.FlingBehavior flingBehavior, optional boolean userScrollEnabled, optional androidx.wear.compose.material.ScalingParams scalingParams, optional int anchorType, optional androidx.wear.compose.material.AutoCenteringParams? autoCentering, kotlin.jvm.functions.Function1<? super androidx.wear.compose.material.ScalingLazyListScope,kotlin.Unit> content);
+    method @Deprecated public static inline <T> void items(androidx.wear.compose.material.ScalingLazyListScope, java.util.List<? extends T> items, optional kotlin.jvm.functions.Function1<? super T,?>? key, kotlin.jvm.functions.Function2<? super androidx.wear.compose.material.ScalingLazyListItemScope,? super T,kotlin.Unit> itemContent);
+    method @Deprecated public static inline <T> void items(androidx.wear.compose.material.ScalingLazyListScope, T![] items, optional kotlin.jvm.functions.Function1<? super T,?>? key, kotlin.jvm.functions.Function2<? super androidx.wear.compose.material.ScalingLazyListItemScope,? super T,kotlin.Unit> itemContent);
+    method @Deprecated public static inline <T> void itemsIndexed(androidx.wear.compose.material.ScalingLazyListScope, java.util.List<? extends T> items, optional kotlin.jvm.functions.Function2<? super java.lang.Integer,? super T,?>? key, kotlin.jvm.functions.Function3<? super androidx.wear.compose.material.ScalingLazyListItemScope,? super java.lang.Integer,? super T,kotlin.Unit> itemContent);
+    method @Deprecated public static inline <T> void itemsIndexed(androidx.wear.compose.material.ScalingLazyListScope, T![] items, optional kotlin.jvm.functions.Function2<? super java.lang.Integer,? super T,?>? key, kotlin.jvm.functions.Function3<? super androidx.wear.compose.material.ScalingLazyListItemScope,? super java.lang.Integer,? super T,kotlin.Unit> itemContent);
+  }
+
+  @Deprecated @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class ScalingLazyListAnchorType {
+    field @Deprecated public static final androidx.wear.compose.material.ScalingLazyListAnchorType.Companion Companion;
+  }
+
+  @Deprecated public static final class ScalingLazyListAnchorType.Companion {
+    method @Deprecated public int getItemCenter();
+    method @Deprecated public int getItemStart();
+    property @Deprecated public final int ItemCenter;
+    property @Deprecated public final int ItemStart;
+  }
+
+  @Deprecated public sealed interface ScalingLazyListItemInfo {
+    method @Deprecated public float getAlpha();
+    method @Deprecated public int getIndex();
+    method @Deprecated public Object getKey();
+    method @Deprecated public int getOffset();
+    method @Deprecated public float getScale();
+    method @Deprecated public int getSize();
+    method @Deprecated public int getUnadjustedOffset();
+    method @Deprecated public int getUnadjustedSize();
+    property @Deprecated public abstract float alpha;
+    property @Deprecated public abstract int index;
+    property @Deprecated public abstract Object key;
+    property @Deprecated public abstract int offset;
+    property @Deprecated public abstract float scale;
+    property @Deprecated public abstract int size;
+    property @Deprecated public abstract int unadjustedOffset;
+    property @Deprecated public abstract int unadjustedSize;
+  }
+
+  @Deprecated @androidx.compose.runtime.Stable @androidx.wear.compose.material.ScalingLazyScopeMarker public sealed interface ScalingLazyListItemScope {
+    method @Deprecated public androidx.compose.ui.Modifier fillParentMaxHeight(androidx.compose.ui.Modifier, optional float fraction);
+    method @Deprecated public androidx.compose.ui.Modifier fillParentMaxSize(androidx.compose.ui.Modifier, optional float fraction);
+    method @Deprecated public androidx.compose.ui.Modifier fillParentMaxWidth(androidx.compose.ui.Modifier, optional float fraction);
+  }
+
+  @Deprecated public sealed interface ScalingLazyListLayoutInfo {
+    method @Deprecated public int getAfterAutoCenteringPadding();
+    method @Deprecated public int getAfterContentPadding();
+    method @Deprecated public int getBeforeAutoCenteringPadding();
+    method @Deprecated public int getBeforeContentPadding();
+    method @Deprecated public androidx.compose.foundation.gestures.Orientation getOrientation();
+    method @Deprecated public boolean getReverseLayout();
+    method @Deprecated public int getTotalItemsCount();
+    method @Deprecated public int getViewportEndOffset();
+    method @Deprecated public long getViewportSize();
+    method @Deprecated public int getViewportStartOffset();
+    method @Deprecated public java.util.List<androidx.wear.compose.material.ScalingLazyListItemInfo> getVisibleItemsInfo();
+    property @Deprecated public abstract int afterAutoCenteringPadding;
+    property @Deprecated public abstract int afterContentPadding;
+    property @Deprecated public abstract int beforeAutoCenteringPadding;
+    property @Deprecated public abstract int beforeContentPadding;
+    property @Deprecated public abstract androidx.compose.foundation.gestures.Orientation orientation;
+    property @Deprecated public abstract boolean reverseLayout;
+    property @Deprecated public abstract int totalItemsCount;
+    property @Deprecated public abstract int viewportEndOffset;
+    property @Deprecated public abstract long viewportSize;
+    property @Deprecated public abstract int viewportStartOffset;
+    property @Deprecated public abstract java.util.List<androidx.wear.compose.material.ScalingLazyListItemInfo> visibleItemsInfo;
+  }
+
+  @Deprecated @androidx.wear.compose.material.ScalingLazyScopeMarker public sealed interface ScalingLazyListScope {
+    method @Deprecated public void item(optional Object? key, kotlin.jvm.functions.Function1<? super androidx.wear.compose.material.ScalingLazyListItemScope,kotlin.Unit> content);
+    method @Deprecated public void items(int count, optional kotlin.jvm.functions.Function1<? super java.lang.Integer,?>? key, kotlin.jvm.functions.Function2<? super androidx.wear.compose.material.ScalingLazyListItemScope,? super java.lang.Integer,kotlin.Unit> itemContent);
+  }
+
+  @Deprecated @androidx.compose.runtime.Stable public final class ScalingLazyListState implements androidx.compose.foundation.gestures.ScrollableState {
+    ctor @Deprecated public ScalingLazyListState(optional int initialCenterItemIndex, optional int initialCenterItemScrollOffset);
+    method @Deprecated public suspend Object? animateScrollToItem(int index, optional int scrollOffset, optional kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    method @Deprecated public float dispatchRawDelta(float delta);
+    method @Deprecated public int getCenterItemIndex();
+    method @Deprecated public int getCenterItemScrollOffset();
+    method @Deprecated public androidx.wear.compose.material.ScalingLazyListLayoutInfo getLayoutInfo();
+    method @Deprecated public boolean isScrollInProgress();
+    method @Deprecated public suspend Object? scroll(androidx.compose.foundation.MutatePriority scrollPriority, kotlin.jvm.functions.Function2<? super androidx.compose.foundation.gestures.ScrollScope,? super kotlin.coroutines.Continuation<? super kotlin.Unit>,?> block, kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    method @Deprecated public suspend Object? scrollToItem(int index, optional int scrollOffset, optional kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    property @Deprecated public boolean canScrollBackward;
+    property @Deprecated public boolean canScrollForward;
+    property @Deprecated public final int centerItemIndex;
+    property @Deprecated public final int centerItemScrollOffset;
+    property @Deprecated public boolean isScrollInProgress;
+    property @Deprecated public final androidx.wear.compose.material.ScalingLazyListLayoutInfo layoutInfo;
+    field @Deprecated public static final androidx.wear.compose.material.ScalingLazyListState.Companion Companion;
+  }
+
+  @Deprecated public static final class ScalingLazyListState.Companion {
+    method @Deprecated public androidx.compose.runtime.saveable.Saver<androidx.wear.compose.material.ScalingLazyListState,java.lang.Object> getSaver();
+    property @Deprecated public final androidx.compose.runtime.saveable.Saver<androidx.wear.compose.material.ScalingLazyListState,java.lang.Object> Saver;
+  }
+
+  public final class ScalingLazyListStateKt {
+    method @Deprecated @androidx.compose.runtime.Composable public static androidx.wear.compose.material.ScalingLazyListState rememberScalingLazyListState(optional int initialCenterItemIndex, optional int initialCenterItemScrollOffset);
+  }
+
+  @Deprecated @kotlin.DslMarker public @interface ScalingLazyScopeMarker {
+  }
+
+  @Deprecated @androidx.compose.runtime.Stable public interface ScalingParams {
+    method @Deprecated public float getEdgeAlpha();
+    method @Deprecated public float getEdgeScale();
+    method @Deprecated public float getMaxElementHeight();
+    method @Deprecated public float getMaxTransitionArea();
+    method @Deprecated public float getMinElementHeight();
+    method @Deprecated public float getMinTransitionArea();
+    method @Deprecated public androidx.compose.animation.core.Easing getScaleInterpolator();
+    method @Deprecated public int resolveViewportVerticalOffset(long viewportConstraints);
+    property @Deprecated public abstract float edgeAlpha;
+    property @Deprecated public abstract float edgeScale;
+    property @Deprecated public abstract float maxElementHeight;
+    property @Deprecated public abstract float maxTransitionArea;
+    property @Deprecated public abstract float minElementHeight;
+    property @Deprecated public abstract float minTransitionArea;
+    property @Deprecated public abstract androidx.compose.animation.core.Easing scaleInterpolator;
+  }
+
+  public final class ScrollAwayKt {
+    method public static androidx.compose.ui.Modifier scrollAway(androidx.compose.ui.Modifier, androidx.compose.foundation.lazy.LazyListState scrollState, optional int itemIndex, optional float offset);
+    method public static androidx.compose.ui.Modifier scrollAway(androidx.compose.ui.Modifier, androidx.compose.foundation.ScrollState scrollState, optional float offset);
+    method public static androidx.compose.ui.Modifier scrollAway(androidx.compose.ui.Modifier, androidx.wear.compose.foundation.lazy.ScalingLazyListState scrollState, optional int itemIndex, optional float offset);
+    method @Deprecated public static androidx.compose.ui.Modifier scrollAway(androidx.compose.ui.Modifier, androidx.wear.compose.material.ScalingLazyListState scrollState, optional int itemIndex, optional float offset);
+  }
+
+  @androidx.compose.runtime.Immutable public final class Shapes {
+    ctor public Shapes(optional androidx.compose.foundation.shape.CornerBasedShape small, optional androidx.compose.foundation.shape.CornerBasedShape medium, optional androidx.compose.foundation.shape.CornerBasedShape large);
+    method public androidx.wear.compose.material.Shapes copy(optional androidx.compose.foundation.shape.CornerBasedShape small, optional androidx.compose.foundation.shape.CornerBasedShape medium, optional androidx.compose.foundation.shape.CornerBasedShape large);
+    method public androidx.compose.foundation.shape.CornerBasedShape getLarge();
+    method public androidx.compose.foundation.shape.CornerBasedShape getMedium();
+    method public androidx.compose.foundation.shape.CornerBasedShape getSmall();
+    property public final androidx.compose.foundation.shape.CornerBasedShape large;
+    property public final androidx.compose.foundation.shape.CornerBasedShape medium;
+    property public final androidx.compose.foundation.shape.CornerBasedShape small;
+  }
+
+  public final class SliderKt {
+    method @androidx.compose.runtime.Composable public static void InlineSlider(float value, kotlin.jvm.functions.Function1<? super java.lang.Float,kotlin.Unit> onValueChange, int steps, kotlin.jvm.functions.Function0<kotlin.Unit> decreaseIcon, kotlin.jvm.functions.Function0<kotlin.Unit> increaseIcon, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional kotlin.ranges.ClosedFloatingPointRange<java.lang.Float> valueRange, optional boolean segmented, optional androidx.wear.compose.material.InlineSliderColors colors);
+    method @androidx.compose.runtime.Composable public static void InlineSlider(int value, kotlin.jvm.functions.Function1<? super java.lang.Integer,kotlin.Unit> onValueChange, kotlin.ranges.IntProgression valueProgression, kotlin.jvm.functions.Function0<kotlin.Unit> decreaseIcon, kotlin.jvm.functions.Function0<kotlin.Unit> increaseIcon, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional boolean segmented, optional androidx.wear.compose.material.InlineSliderColors colors);
+  }
+
+  @androidx.compose.runtime.Stable public interface SplitToggleChipColors {
+    method @androidx.compose.runtime.Composable public androidx.compose.runtime.State<androidx.compose.ui.graphics.Color> backgroundColor(boolean enabled);
+    method @androidx.compose.runtime.Composable public androidx.compose.runtime.State<androidx.compose.ui.graphics.Color> contentColor(boolean enabled);
+    method @androidx.compose.runtime.Composable public androidx.compose.runtime.State<androidx.compose.ui.graphics.Color> secondaryContentColor(boolean enabled);
+    method @androidx.compose.runtime.Composable public androidx.compose.runtime.State<androidx.compose.ui.graphics.Color> splitBackgroundOverlay(boolean enabled, boolean checked);
+    method @androidx.compose.runtime.Composable public androidx.compose.runtime.State<androidx.compose.ui.graphics.Color> toggleControlColor(boolean enabled, boolean checked);
+  }
+
+  public final class StepperDefaults {
+    method public androidx.compose.ui.graphics.vector.ImageVector getDecrease();
+    method public androidx.compose.ui.graphics.vector.ImageVector getIncrease();
+    property public final androidx.compose.ui.graphics.vector.ImageVector Decrease;
+    property public final androidx.compose.ui.graphics.vector.ImageVector Increase;
+    field public static final androidx.wear.compose.material.StepperDefaults INSTANCE;
+  }
+
+  public final class StepperKt {
+    method @androidx.compose.runtime.Composable public static void Stepper(float value, kotlin.jvm.functions.Function1<? super java.lang.Float,kotlin.Unit> onValueChange, int steps, kotlin.jvm.functions.Function0<kotlin.Unit> decreaseIcon, kotlin.jvm.functions.Function0<kotlin.Unit> increaseIcon, optional androidx.compose.ui.Modifier modifier, optional kotlin.ranges.ClosedFloatingPointRange<java.lang.Float> valueRange, optional long backgroundColor, optional long contentColor, optional long iconColor, optional boolean enableRangeSemantics, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.BoxScope,kotlin.Unit> content);
+    method @Deprecated @androidx.compose.runtime.Composable public static void Stepper(float value, kotlin.jvm.functions.Function1<? super java.lang.Float,kotlin.Unit> onValueChange, int steps, kotlin.jvm.functions.Function0<kotlin.Unit> decreaseIcon, kotlin.jvm.functions.Function0<kotlin.Unit> increaseIcon, optional androidx.compose.ui.Modifier modifier, optional kotlin.ranges.ClosedFloatingPointRange<java.lang.Float> valueRange, optional long backgroundColor, optional long contentColor, optional long iconColor, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.BoxScope,kotlin.Unit> content);
+    method @androidx.compose.runtime.Composable public static void Stepper(int value, kotlin.jvm.functions.Function1<? super java.lang.Integer,kotlin.Unit> onValueChange, kotlin.ranges.IntProgression valueProgression, kotlin.jvm.functions.Function0<kotlin.Unit> decreaseIcon, kotlin.jvm.functions.Function0<kotlin.Unit> increaseIcon, optional androidx.compose.ui.Modifier modifier, optional long backgroundColor, optional long contentColor, optional long iconColor, optional boolean enableRangeSemantics, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.BoxScope,kotlin.Unit> content);
+    method @Deprecated @androidx.compose.runtime.Composable public static void Stepper(int value, kotlin.jvm.functions.Function1<? super java.lang.Integer,kotlin.Unit> onValueChange, kotlin.ranges.IntProgression valueProgression, kotlin.jvm.functions.Function0<kotlin.Unit> decreaseIcon, kotlin.jvm.functions.Function0<kotlin.Unit> increaseIcon, optional androidx.compose.ui.Modifier modifier, optional long backgroundColor, optional long contentColor, optional long iconColor, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.BoxScope,kotlin.Unit> content);
+  }
+
+  @androidx.compose.runtime.Immutable @androidx.wear.compose.material.ExperimentalWearMaterialApi public final class SwipeProgress<T> {
+    ctor public SwipeProgress(T from, T to, float fraction);
+    method public float getFraction();
+    method public T getFrom();
+    method public T getTo();
+    property public final float fraction;
+    property public final T from;
+    property public final T to;
+  }
+
+  public final class SwipeToDismissBoxDefaults {
+    method public androidx.compose.animation.core.SpringSpec<java.lang.Float> getAnimationSpec();
+    method public float getEdgeWidth();
+    property public final androidx.compose.animation.core.SpringSpec<java.lang.Float> AnimationSpec;
+    property public final float EdgeWidth;
+    field public static final androidx.wear.compose.material.SwipeToDismissBoxDefaults INSTANCE;
+  }
+
+  public final class SwipeToDismissBoxKt {
+    method @androidx.compose.runtime.Composable public static void SwipeToDismissBox(androidx.wear.compose.material.SwipeToDismissBoxState state, optional androidx.compose.ui.Modifier modifier, optional long backgroundScrimColor, optional long contentScrimColor, optional Object backgroundKey, optional Object contentKey, optional boolean hasBackground, kotlin.jvm.functions.Function2<? super androidx.compose.foundation.layout.BoxScope,? super java.lang.Boolean,kotlin.Unit> content);
+    method @androidx.compose.runtime.Composable public static void SwipeToDismissBox(kotlin.jvm.functions.Function0<kotlin.Unit> onDismissed, optional androidx.compose.ui.Modifier modifier, optional androidx.wear.compose.material.SwipeToDismissBoxState state, optional long backgroundScrimColor, optional long contentScrimColor, optional Object backgroundKey, optional Object contentKey, optional boolean hasBackground, kotlin.jvm.functions.Function2<? super androidx.compose.foundation.layout.BoxScope,? super java.lang.Boolean,kotlin.Unit> content);
+    method public static androidx.compose.ui.Modifier edgeSwipeToDismiss(androidx.compose.ui.Modifier, androidx.wear.compose.material.SwipeToDismissBoxState swipeToDismissBoxState, optional float edgeWidth);
+    method @androidx.compose.runtime.Composable public static androidx.wear.compose.material.SwipeToDismissBoxState rememberSwipeToDismissBoxState(optional androidx.compose.animation.core.AnimationSpec<java.lang.Float> animationSpec, optional kotlin.jvm.functions.Function1<? super androidx.wear.compose.material.SwipeToDismissValue,java.lang.Boolean> confirmStateChange);
+  }
+
+  @androidx.compose.runtime.Stable public final class SwipeToDismissBoxState {
+    ctor public SwipeToDismissBoxState(optional androidx.compose.animation.core.AnimationSpec<java.lang.Float> animationSpec, optional kotlin.jvm.functions.Function1<? super androidx.wear.compose.material.SwipeToDismissValue,java.lang.Boolean> confirmStateChange);
+    method public androidx.wear.compose.material.SwipeToDismissValue getCurrentValue();
+    method public androidx.wear.compose.material.SwipeToDismissValue getTargetValue();
+    method public boolean isAnimationRunning();
+    method public suspend Object? snapTo(androidx.wear.compose.material.SwipeToDismissValue targetValue, kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    property public final androidx.wear.compose.material.SwipeToDismissValue currentValue;
+    property public final boolean isAnimationRunning;
+    property public final androidx.wear.compose.material.SwipeToDismissValue targetValue;
+  }
+
+  public enum SwipeToDismissKeys {
+    method public static androidx.wear.compose.material.SwipeToDismissKeys valueOf(String value) throws java.lang.IllegalArgumentException, java.lang.NullPointerException;
+    method public static androidx.wear.compose.material.SwipeToDismissKeys[] values();
+    enum_constant public static final androidx.wear.compose.material.SwipeToDismissKeys Background;
+    enum_constant public static final androidx.wear.compose.material.SwipeToDismissKeys Content;
+  }
+
+  public enum SwipeToDismissValue {
+    method public static androidx.wear.compose.material.SwipeToDismissValue valueOf(String value) throws java.lang.IllegalArgumentException, java.lang.NullPointerException;
+    method public static androidx.wear.compose.material.SwipeToDismissValue[] values();
+    enum_constant public static final androidx.wear.compose.material.SwipeToDismissValue Default;
+    enum_constant public static final androidx.wear.compose.material.SwipeToDismissValue Dismissed;
+  }
+
+  @androidx.wear.compose.material.ExperimentalWearMaterialApi public final class SwipeableDefaults {
+    method public androidx.compose.animation.core.SpringSpec<java.lang.Float> getAnimationSpec();
+    method public float getVelocityThreshold();
+    method public androidx.wear.compose.material.ResistanceConfig? resistanceConfig(java.util.Set<java.lang.Float> anchors, optional float factorAtMin, optional float factorAtMax);
+    property public final androidx.compose.animation.core.SpringSpec<java.lang.Float> AnimationSpec;
+    property public final float VelocityThreshold;
+    field public static final androidx.wear.compose.material.SwipeableDefaults INSTANCE;
+    field public static final float StandardResistanceFactor = 10.0f;
+    field public static final float StiffResistanceFactor = 20.0f;
+  }
+
+  public final class SwipeableKt {
+    method @androidx.compose.runtime.Composable @androidx.wear.compose.material.ExperimentalWearMaterialApi public static <T> androidx.wear.compose.material.SwipeableState<T> rememberSwipeableState(T initialValue, optional androidx.compose.animation.core.AnimationSpec<java.lang.Float> animationSpec, optional kotlin.jvm.functions.Function1<? super T,java.lang.Boolean> confirmStateChange);
+    method @androidx.wear.compose.material.ExperimentalWearMaterialApi public static <T> androidx.compose.ui.Modifier swipeable(androidx.compose.ui.Modifier, androidx.wear.compose.material.SwipeableState<T> state, java.util.Map<java.lang.Float,? extends T> anchors, androidx.compose.foundation.gestures.Orientation orientation, optional boolean enabled, optional boolean reverseDirection, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, optional kotlin.jvm.functions.Function2<? super T,? super T,? extends androidx.wear.compose.material.ThresholdConfig> thresholds, optional androidx.wear.compose.material.ResistanceConfig? resistance, optional float velocityThreshold);
+  }
+
+  @androidx.compose.runtime.Stable @androidx.wear.compose.material.ExperimentalWearMaterialApi public class SwipeableState<T> {
+    ctor public SwipeableState(T initialValue, optional androidx.compose.animation.core.AnimationSpec<java.lang.Float> animationSpec, optional kotlin.jvm.functions.Function1<? super T,java.lang.Boolean> confirmStateChange);
+    method @androidx.wear.compose.material.ExperimentalWearMaterialApi public final suspend Object? animateTo(T targetValue, optional androidx.compose.animation.core.AnimationSpec<java.lang.Float> anim, optional kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    method public final T getCurrentValue();
+    method public final float getDirection();
+    method public final androidx.compose.runtime.State<java.lang.Float> getOffset();
+    method public final androidx.compose.runtime.State<java.lang.Float> getOverflow();
+    method public final androidx.wear.compose.material.SwipeProgress<T> getProgress();
+    method public final T getTargetValue();
+    method public final boolean isAnimationRunning();
+    method @androidx.wear.compose.material.ExperimentalWearMaterialApi public final suspend Object? performFling(float velocity, kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    method @androidx.wear.compose.material.ExperimentalWearMaterialApi public final suspend Object? snapTo(T targetValue, kotlin.coroutines.Continuation<? super kotlin.Unit>);
+    property public final T currentValue;
+    property @androidx.wear.compose.material.ExperimentalWearMaterialApi public final float direction;
+    property public final boolean isAnimationRunning;
+    property @androidx.wear.compose.material.ExperimentalWearMaterialApi public final androidx.compose.runtime.State<java.lang.Float> offset;
+    property @androidx.wear.compose.material.ExperimentalWearMaterialApi public final androidx.compose.runtime.State<java.lang.Float> overflow;
+    property @androidx.wear.compose.material.ExperimentalWearMaterialApi public final androidx.wear.compose.material.SwipeProgress<T> progress;
+    property @androidx.wear.compose.material.ExperimentalWearMaterialApi public final T targetValue;
+    field public static final androidx.wear.compose.material.SwipeableState.Companion Companion;
+  }
+
+  public static final class SwipeableState.Companion {
+    method public <T> androidx.compose.runtime.saveable.Saver<androidx.wear.compose.material.SwipeableState<T>,T> Saver(androidx.compose.animation.core.AnimationSpec<java.lang.Float> animationSpec, kotlin.jvm.functions.Function1<? super T,java.lang.Boolean> confirmStateChange);
+  }
+
+  @androidx.compose.runtime.Stable public interface SwitchColors {
+    method @androidx.compose.runtime.Composable public androidx.compose.runtime.State<androidx.compose.ui.graphics.Color> thumbColor(boolean enabled, boolean checked);
+    method @androidx.compose.runtime.Composable public androidx.compose.runtime.State<androidx.compose.ui.graphics.Color> trackColor(boolean enabled, boolean checked);
+  }
+
+  public final class SwitchDefaults {
+    method @androidx.compose.runtime.Composable public androidx.wear.compose.material.SwitchColors colors(optional long checkedThumbColor, optional long checkedTrackColor, optional long uncheckedThumbColor, optional long uncheckedTrackColor);
+    field public static final androidx.wear.compose.material.SwitchDefaults INSTANCE;
+  }
+
+  public final class TextKt {
+    method @androidx.compose.runtime.Composable public static void ProvideTextStyle(androidx.compose.ui.text.TextStyle value, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+    method @androidx.compose.runtime.Composable public static void Text(androidx.compose.ui.text.AnnotatedString text, optional androidx.compose.ui.Modifier modifier, optional long color, optional long fontSize, optional androidx.compose.ui.text.font.FontStyle? fontStyle, optional androidx.compose.ui.text.font.FontWeight? fontWeight, optional androidx.compose.ui.text.font.FontFamily? fontFamily, optional long letterSpacing, optional androidx.compose.ui.text.style.TextDecoration? textDecoration, optional androidx.compose.ui.text.style.TextAlign? textAlign, optional long lineHeight, optional int overflow, optional boolean softWrap, optional int maxLines, optional int minLines, optional java.util.Map<java.lang.String,androidx.compose.foundation.text.InlineTextContent> inlineContent, optional kotlin.jvm.functions.Function1<? super androidx.compose.ui.text.TextLayoutResult,kotlin.Unit> onTextLayout, optional androidx.compose.ui.text.TextStyle style);
+    method @Deprecated @androidx.compose.runtime.Composable public static void Text(androidx.compose.ui.text.AnnotatedString text, optional androidx.compose.ui.Modifier modifier, optional long color, optional long fontSize, optional androidx.compose.ui.text.font.FontStyle? fontStyle, optional androidx.compose.ui.text.font.FontWeight? fontWeight, optional androidx.compose.ui.text.font.FontFamily? fontFamily, optional long letterSpacing, optional androidx.compose.ui.text.style.TextDecoration? textDecoration, optional androidx.compose.ui.text.style.TextAlign? textAlign, optional long lineHeight, optional int overflow, optional boolean softWrap, optional int maxLines, optional java.util.Map<java.lang.String,androidx.compose.foundation.text.InlineTextContent> inlineContent, optional kotlin.jvm.functions.Function1<? super androidx.compose.ui.text.TextLayoutResult,kotlin.Unit> onTextLayout, optional androidx.compose.ui.text.TextStyle style);
+    method @androidx.compose.runtime.Composable public static void Text(String text, optional androidx.compose.ui.Modifier modifier, optional long color, optional long fontSize, optional androidx.compose.ui.text.font.FontStyle? fontStyle, optional androidx.compose.ui.text.font.FontWeight? fontWeight, optional androidx.compose.ui.text.font.FontFamily? fontFamily, optional long letterSpacing, optional androidx.compose.ui.text.style.TextDecoration? textDecoration, optional androidx.compose.ui.text.style.TextAlign? textAlign, optional long lineHeight, optional int overflow, optional boolean softWrap, optional int maxLines, optional int minLines, optional kotlin.jvm.functions.Function1<? super androidx.compose.ui.text.TextLayoutResult,kotlin.Unit> onTextLayout, optional androidx.compose.ui.text.TextStyle style);
+    method @Deprecated @androidx.compose.runtime.Composable public static void Text(String text, optional androidx.compose.ui.Modifier modifier, optional long color, optional long fontSize, optional androidx.compose.ui.text.font.FontStyle? fontStyle, optional androidx.compose.ui.text.font.FontWeight? fontWeight, optional androidx.compose.ui.text.font.FontFamily? fontFamily, optional long letterSpacing, optional androidx.compose.ui.text.style.TextDecoration? textDecoration, optional androidx.compose.ui.text.style.TextAlign? textAlign, optional long lineHeight, optional int overflow, optional boolean softWrap, optional int maxLines, optional kotlin.jvm.functions.Function1<? super androidx.compose.ui.text.TextLayoutResult,kotlin.Unit> onTextLayout, optional androidx.compose.ui.text.TextStyle style);
+    method public static androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.ui.text.TextStyle> getLocalTextStyle();
+    property public static final androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.ui.text.TextStyle> LocalTextStyle;
+  }
+
+  @androidx.compose.runtime.Stable @androidx.wear.compose.material.ExperimentalWearMaterialApi public interface ThresholdConfig {
+    method public float computeThreshold(androidx.compose.ui.unit.Density, float fromValue, float toValue);
+  }
+
+  public interface TimeSource {
+    method @androidx.compose.runtime.Composable public String getCurrentTime();
+    property @androidx.compose.runtime.Composable public abstract String currentTime;
+  }
+
+  public final class TimeTextDefaults {
+    method public void CurvedTextSeparator(androidx.wear.compose.foundation.CurvedScope, optional androidx.wear.compose.foundation.CurvedTextStyle? curvedTextStyle, optional androidx.wear.compose.foundation.ArcPaddingValues contentArcPadding);
+    method @androidx.compose.runtime.Composable public void TextSeparator(optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.text.TextStyle textStyle, optional androidx.compose.foundation.layout.PaddingValues contentPadding);
+    method public androidx.compose.foundation.layout.PaddingValues getContentPadding();
+    method @androidx.compose.runtime.Composable public String timeFormat();
+    method public androidx.wear.compose.material.TimeSource timeSource(String timeFormat);
+    method @androidx.compose.runtime.Composable public androidx.compose.ui.text.TextStyle timeTextStyle(optional long background, optional long color, optional long fontSize);
+    property public final androidx.compose.foundation.layout.PaddingValues ContentPadding;
+    field public static final androidx.wear.compose.material.TimeTextDefaults INSTANCE;
+    field public static final String TimeFormat12Hours = "h:mm";
+    field public static final String TimeFormat24Hours = "HH:mm";
+  }
+
+  public final class TimeTextKt {
+    method @androidx.compose.runtime.Composable public static void TimeText(optional androidx.compose.ui.Modifier modifier, optional androidx.wear.compose.material.TimeSource timeSource, optional androidx.compose.ui.text.TextStyle timeTextStyle, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional kotlin.jvm.functions.Function0<kotlin.Unit>? startLinearContent, optional kotlin.jvm.functions.Function1<? super androidx.wear.compose.foundation.CurvedScope,kotlin.Unit>? startCurvedContent, optional kotlin.jvm.functions.Function0<kotlin.Unit>? endLinearContent, optional kotlin.jvm.functions.Function1<? super androidx.wear.compose.foundation.CurvedScope,kotlin.Unit>? endCurvedContent, optional kotlin.jvm.functions.Function0<kotlin.Unit> textLinearSeparator, optional kotlin.jvm.functions.Function1<? super androidx.wear.compose.foundation.CurvedScope,kotlin.Unit> textCurvedSeparator);
+  }
+
+  @androidx.compose.runtime.Stable public interface ToggleButtonColors {
+    method @androidx.compose.runtime.Composable public androidx.compose.runtime.State<androidx.compose.ui.graphics.Color> backgroundColor(boolean enabled, boolean checked);
+    method @androidx.compose.runtime.Composable public androidx.compose.runtime.State<androidx.compose.ui.graphics.Color> contentColor(boolean enabled, boolean checked);
+  }
+
+  public final class ToggleButtonDefaults {
+    method public float getDefaultIconSize();
+    method public int getDefaultRole();
+    method public float getDefaultToggleButtonSize();
+    method public float getSmallIconSize();
+    method public float getSmallToggleButtonSize();
+    method @androidx.compose.runtime.Composable public androidx.wear.compose.material.ToggleButtonColors toggleButtonColors(optional long checkedBackgroundColor, optional long checkedContentColor, optional long disabledCheckedBackgroundColor, optional long disabledCheckedContentColor, optional long uncheckedBackgroundColor, optional long uncheckedContentColor, optional long disabledUncheckedBackgroundColor, optional long disabledUncheckedContentColor);
+    property public final float DefaultIconSize;
+    property public final int DefaultRole;
+    property public final float DefaultToggleButtonSize;
+    property public final float SmallIconSize;
+    property public final float SmallToggleButtonSize;
+    field public static final androidx.wear.compose.material.ToggleButtonDefaults INSTANCE;
+  }
+
+  public final class ToggleButtonKt {
+    method @androidx.compose.runtime.Composable public static void ToggleButton(boolean checked, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit> onCheckedChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.wear.compose.material.ToggleButtonColors colors, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional androidx.compose.ui.graphics.Shape shape, optional int role, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.BoxScope,kotlin.Unit> content);
+    method @Deprecated @androidx.compose.runtime.Composable public static void ToggleButton(boolean checked, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit> onCheckedChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.wear.compose.material.ToggleButtonColors colors, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional androidx.compose.ui.graphics.Shape shape, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.BoxScope,kotlin.Unit> content);
+    method @Deprecated @androidx.compose.runtime.Composable public static void ToggleButton(boolean checked, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit> onCheckedChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.wear.compose.material.ToggleButtonColors colors, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.BoxScope,kotlin.Unit> content);
+  }
+
+  @androidx.compose.runtime.Stable public interface ToggleChipColors {
+    method @androidx.compose.runtime.Composable public androidx.compose.runtime.State<androidx.compose.ui.graphics.painter.Painter> background(boolean enabled, boolean checked);
+    method @androidx.compose.runtime.Composable public androidx.compose.runtime.State<androidx.compose.ui.graphics.Color> contentColor(boolean enabled, boolean checked);
+    method @androidx.compose.runtime.Composable public androidx.compose.runtime.State<androidx.compose.ui.graphics.Color> secondaryContentColor(boolean enabled, boolean checked);
+    method @androidx.compose.runtime.Composable public androidx.compose.runtime.State<androidx.compose.ui.graphics.Color> toggleControlColor(boolean enabled, boolean checked);
+  }
+
+  public final class ToggleChipDefaults {
+    method public androidx.compose.ui.graphics.vector.ImageVector checkboxIcon(boolean checked);
+    method public androidx.compose.ui.graphics.vector.ImageVector getCheckboxOn();
+    method public androidx.compose.foundation.layout.PaddingValues getContentPadding();
+    method public float getIconSize();
+    method public androidx.compose.ui.graphics.vector.ImageVector getRadioOff();
+    method public androidx.compose.ui.graphics.vector.ImageVector getRadioOn();
+    method @androidx.compose.runtime.Composable public long getSwitchUncheckedIconColor();
+    method public androidx.compose.ui.graphics.vector.ImageVector radioIcon(boolean checked);
+    method @androidx.compose.runtime.Composable public androidx.wear.compose.material.SplitToggleChipColors splitToggleChipColors(optional long backgroundColor, optional long contentColor, optional long secondaryContentColor, optional long checkedToggleControlColor, optional long uncheckedToggleControlColor, optional long splitBackgroundOverlayColor);
+    method public androidx.compose.ui.graphics.vector.ImageVector switchIcon(boolean checked);
+    method @androidx.compose.runtime.Composable public androidx.wear.compose.material.ToggleChipColors toggleChipColors(optional long checkedStartBackgroundColor, optional long checkedEndBackgroundColor, optional long checkedContentColor, optional long checkedSecondaryContentColor, optional long checkedToggleControlColor, optional long uncheckedStartBackgroundColor, optional long uncheckedEndBackgroundColor, optional long uncheckedContentColor, optional long uncheckedSecondaryContentColor, optional long uncheckedToggleControlColor, optional androidx.compose.ui.unit.LayoutDirection gradientDirection);
+    property public final androidx.compose.ui.graphics.vector.ImageVector CheckboxOn;
+    property public final androidx.compose.foundation.layout.PaddingValues ContentPadding;
+    property public final float IconSize;
+    property public final androidx.compose.ui.graphics.vector.ImageVector RadioOff;
+    property public final androidx.compose.ui.graphics.vector.ImageVector RadioOn;
+    property @androidx.compose.runtime.Composable public final long SwitchUncheckedIconColor;
+    field public static final androidx.wear.compose.material.ToggleChipDefaults INSTANCE;
+  }
+
+  public final class ToggleChipKt {
+    method @androidx.compose.runtime.Composable public static void SplitToggleChip(boolean checked, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit> onCheckedChange, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit> label, kotlin.jvm.functions.Function0<kotlin.Unit> onClick, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.BoxScope,kotlin.Unit> toggleControl, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit>? secondaryLabel, optional androidx.wear.compose.material.SplitToggleChipColors colors, optional boolean enabled, optional androidx.compose.foundation.interaction.MutableInteractionSource checkedInteractionSource, optional androidx.compose.foundation.interaction.MutableInteractionSource clickInteractionSource, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional androidx.compose.ui.graphics.Shape shape);
+    method @androidx.compose.runtime.Composable public static void ToggleChip(boolean checked, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit> onCheckedChange, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit> label, kotlin.jvm.functions.Function0<kotlin.Unit> toggleControl, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.BoxScope,kotlin.Unit>? appIcon, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.RowScope,kotlin.Unit>? secondaryLabel, optional androidx.wear.compose.material.ToggleChipColors colors, optional boolean enabled, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional androidx.compose.ui.graphics.Shape shape);
+  }
+
+  public final class ToggleControlKt {
+    method @androidx.compose.runtime.Composable public static void Checkbox(boolean checked, optional androidx.compose.ui.Modifier modifier, optional androidx.wear.compose.material.CheckboxColors colors, optional boolean enabled, optional kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit>? onCheckedChange, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource);
+    method @androidx.compose.runtime.Composable public static void RadioButton(boolean selected, optional androidx.compose.ui.Modifier modifier, optional androidx.wear.compose.material.RadioButtonColors colors, optional boolean enabled, optional kotlin.jvm.functions.Function0<kotlin.Unit>? onClick, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource);
+    method @androidx.compose.runtime.Composable public static void Switch(boolean checked, optional androidx.compose.ui.Modifier modifier, optional androidx.wear.compose.material.SwitchColors colors, optional boolean enabled, optional kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit>? onCheckedChange, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource);
+  }
+
+  public fun interface TouchExplorationStateProvider {
+    method @androidx.compose.runtime.Composable public androidx.compose.runtime.State<java.lang.Boolean> touchExplorationState();
+  }
+
+  @androidx.compose.runtime.Immutable public final class Typography {
+    ctor public Typography(optional androidx.compose.ui.text.font.FontFamily defaultFontFamily, optional androidx.compose.ui.text.TextStyle display1, optional androidx.compose.ui.text.TextStyle display2, optional androidx.compose.ui.text.TextStyle display3, optional androidx.compose.ui.text.TextStyle title1, optional androidx.compose.ui.text.TextStyle title2, optional androidx.compose.ui.text.TextStyle title3, optional androidx.compose.ui.text.TextStyle body1, optional androidx.compose.ui.text.TextStyle body2, optional androidx.compose.ui.text.TextStyle button, optional androidx.compose.ui.text.TextStyle caption1, optional androidx.compose.ui.text.TextStyle caption2, optional androidx.compose.ui.text.TextStyle caption3);
+    method public androidx.wear.compose.material.Typography copy(optional androidx.compose.ui.text.TextStyle display1, optional androidx.compose.ui.text.TextStyle display2, optional androidx.compose.ui.text.TextStyle display3, optional androidx.compose.ui.text.TextStyle title1, optional androidx.compose.ui.text.TextStyle title2, optional androidx.compose.ui.text.TextStyle title3, optional androidx.compose.ui.text.TextStyle body1, optional androidx.compose.ui.text.TextStyle body2, optional androidx.compose.ui.text.TextStyle button, optional androidx.compose.ui.text.TextStyle caption1, optional androidx.compose.ui.text.TextStyle caption2, optional androidx.compose.ui.text.TextStyle caption3);
+    method public androidx.compose.ui.text.TextStyle getBody1();
+    method public androidx.compose.ui.text.TextStyle getBody2();
+    method public androidx.compose.ui.text.TextStyle getButton();
+    method public androidx.compose.ui.text.TextStyle getCaption1();
+    method public androidx.compose.ui.text.TextStyle getCaption2();
+    method public androidx.compose.ui.text.TextStyle getCaption3();
+    method public androidx.compose.ui.text.TextStyle getDisplay1();
+    method public androidx.compose.ui.text.TextStyle getDisplay2();
+    method public androidx.compose.ui.text.TextStyle getDisplay3();
+    method public androidx.compose.ui.text.TextStyle getTitle1();
+    method public androidx.compose.ui.text.TextStyle getTitle2();
+    method public androidx.compose.ui.text.TextStyle getTitle3();
+    property public final androidx.compose.ui.text.TextStyle body1;
+    property public final androidx.compose.ui.text.TextStyle body2;
+    property public final androidx.compose.ui.text.TextStyle button;
+    property public final androidx.compose.ui.text.TextStyle caption1;
+    property public final androidx.compose.ui.text.TextStyle caption2;
+    property public final androidx.compose.ui.text.TextStyle caption3;
+    property public final androidx.compose.ui.text.TextStyle display1;
+    property public final androidx.compose.ui.text.TextStyle display2;
+    property public final androidx.compose.ui.text.TextStyle display3;
+    property public final androidx.compose.ui.text.TextStyle title1;
+    property public final androidx.compose.ui.text.TextStyle title2;
+    property public final androidx.compose.ui.text.TextStyle title3;
+  }
+
+  public final class VignetteKt {
+    method @androidx.compose.runtime.Composable public static void Vignette(int vignettePosition, optional androidx.compose.ui.Modifier modifier);
+  }
+
+  @kotlin.jvm.JvmInline public final value class VignettePosition {
+    ctor public VignettePosition(int key);
+    field public static final androidx.wear.compose.material.VignettePosition.Companion Companion;
+  }
+
+  public static final class VignettePosition.Companion {
+    method public int getBottom();
+    method public int getTop();
+    method public int getTopAndBottom();
+    property public final int Bottom;
+    property public final int Top;
+    property public final int TopAndBottom;
+  }
+
+}
+
+package androidx.wear.compose.material.dialog {
+
+  public final class DialogDefaults {
+    method public androidx.compose.foundation.layout.Arrangement.Vertical getAlertVerticalArrangement();
+    method public androidx.compose.foundation.layout.Arrangement.Vertical getConfirmationVerticalArrangement();
+    method public androidx.compose.foundation.layout.PaddingValues getContentPadding();
+    method public long getIndefiniteDurationMillis();
+    method public long getLongDurationMillis();
+    method public long getShortDurationMillis();
+    property public final androidx.compose.foundation.layout.Arrangement.Vertical AlertVerticalArrangement;
+    property public final androidx.compose.foundation.layout.Arrangement.Vertical ConfirmationVerticalArrangement;
+    property public final androidx.compose.foundation.layout.PaddingValues ContentPadding;
+    property public final long IndefiniteDurationMillis;
+    property public final long LongDurationMillis;
+    property public final long ShortDurationMillis;
+    field public static final androidx.wear.compose.material.dialog.DialogDefaults INSTANCE;
+  }
+
+  public final class DialogKt {
+    method @androidx.compose.runtime.Composable public static void Alert(kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit> title, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit>? icon, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit>? message, optional androidx.wear.compose.foundation.lazy.ScalingLazyListState scrollState, optional long backgroundColor, optional long titleColor, optional long messageColor, optional long iconColor, optional androidx.compose.foundation.layout.Arrangement.Vertical verticalArrangement, optional androidx.compose.foundation.layout.PaddingValues contentPadding, kotlin.jvm.functions.Function1<? super androidx.wear.compose.foundation.lazy.ScalingLazyListScope,kotlin.Unit> content);
+    method @Deprecated @androidx.compose.runtime.Composable public static void Alert(kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit> title, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit>? icon, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit>? message, optional androidx.wear.compose.material.ScalingLazyListState scrollState, optional long backgroundColor, optional long titleColor, optional long messageColor, optional long iconColor, optional androidx.compose.foundation.layout.Arrangement.Vertical verticalArrangement, optional androidx.compose.foundation.layout.PaddingValues contentPadding, kotlin.jvm.functions.Function1<? super androidx.wear.compose.material.ScalingLazyListScope,kotlin.Unit> content);
+    method @androidx.compose.runtime.Composable public static void Alert(kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit> title, kotlin.jvm.functions.Function0<kotlin.Unit> negativeButton, kotlin.jvm.functions.Function0<kotlin.Unit> positiveButton, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit>? icon, optional androidx.wear.compose.foundation.lazy.ScalingLazyListState scrollState, optional long backgroundColor, optional long contentColor, optional long titleColor, optional long iconColor, optional androidx.compose.foundation.layout.Arrangement.Vertical verticalArrangement, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit>? content);
+    method @Deprecated @androidx.compose.runtime.Composable public static void Alert(kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit> title, kotlin.jvm.functions.Function0<kotlin.Unit> negativeButton, kotlin.jvm.functions.Function0<kotlin.Unit> positiveButton, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit>? icon, optional androidx.wear.compose.material.ScalingLazyListState scrollState, optional long backgroundColor, optional long contentColor, optional long titleColor, optional long iconColor, optional androidx.compose.foundation.layout.Arrangement.Vertical verticalArrangement, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit>? content);
+    method @androidx.compose.runtime.Composable public static void Confirmation(kotlin.jvm.functions.Function0<kotlin.Unit> onTimeout, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit>? icon, optional androidx.wear.compose.foundation.lazy.ScalingLazyListState scrollState, optional long durationMillis, optional long backgroundColor, optional long contentColor, optional long iconColor, optional androidx.compose.foundation.layout.Arrangement.Vertical verticalArrangement, optional androidx.compose.foundation.layout.PaddingValues contentPadding, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit> content);
+    method @Deprecated @androidx.compose.runtime.Composable public static void Confirmation(kotlin.jvm.functions.Function0<kotlin.Unit> onTimeout, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit>? icon, optional androidx.wear.compose.material.ScalingLazyListState scrollState, optional long durationMillis, optional long backgroundColor, optional long contentColor, optional long iconColor, optional androidx.compose.foundation.layout.Arrangement.Vertical verticalArrangement, optional androidx.compose.foundation.layout.PaddingValues contentPadding, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.ColumnScope,kotlin.Unit> content);
+  }
+
+  public final class Dialog_androidKt {
+    method @androidx.compose.runtime.Composable public static void Dialog(boolean showDialog, kotlin.jvm.functions.Function0<kotlin.Unit> onDismissRequest, optional androidx.compose.ui.Modifier modifier, optional androidx.wear.compose.foundation.lazy.ScalingLazyListState? scrollState, optional androidx.compose.ui.window.DialogProperties properties, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+    method @Deprecated @androidx.compose.runtime.Composable public static void Dialog(boolean showDialog, kotlin.jvm.functions.Function0<kotlin.Unit> onDismissRequest, optional androidx.compose.ui.Modifier modifier, optional androidx.wear.compose.material.ScalingLazyListState? scrollState, optional androidx.compose.ui.window.DialogProperties properties, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+  }
+
+}
+
diff --git a/wear/compose/compose-material/api/restricted_current.ignore b/wear/compose/compose-material/api/restricted_current.ignore
index 64c37fe3..68a4999 100644
--- a/wear/compose/compose-material/api/restricted_current.ignore
+++ b/wear/compose/compose-material/api/restricted_current.ignore
@@ -15,8 +15,6 @@
     Removed class androidx.wear.compose.material.DefaultTimeSourceKt
 RemovedClass: androidx.wear.compose.material.MaterialTextSelectionColorsKt:
     Removed class androidx.wear.compose.material.MaterialTextSelectionColorsKt
-RemovedClass: androidx.wear.compose.material.PlaceholderKt:
-    Removed class androidx.wear.compose.material.PlaceholderKt
 RemovedClass: androidx.wear.compose.material.RangeDefaultsKt:
     Removed class androidx.wear.compose.material.RangeDefaultsKt
 RemovedClass: androidx.wear.compose.material.Resources_androidKt:
@@ -25,7 +23,5 @@
     Removed class androidx.wear.compose.material.ScalingLazyColumnMeasureKt
 RemovedClass: androidx.wear.compose.material.ShapesKt:
     Removed class androidx.wear.compose.material.ShapesKt
-RemovedClass: androidx.wear.compose.material.SwipeableKt:
-    Removed class androidx.wear.compose.material.SwipeableKt
 RemovedClass: androidx.wear.compose.material.TypographyKt:
     Removed class androidx.wear.compose.material.TypographyKt
diff --git a/wear/compose/compose-material/src/androidTest/kotlin/androidx/wear/compose/material/SwipeToDismissBoxScreenshotTest.kt b/wear/compose/compose-material/src/androidTest/kotlin/androidx/wear/compose/material/SwipeToDismissBoxScreenshotTest.kt
index f6c528c..cc0f06d 100644
--- a/wear/compose/compose-material/src/androidTest/kotlin/androidx/wear/compose/material/SwipeToDismissBoxScreenshotTest.kt
+++ b/wear/compose/compose-material/src/androidTest/kotlin/androidx/wear/compose/material/SwipeToDismissBoxScreenshotTest.kt
@@ -18,7 +18,9 @@
 
 import android.os.Build
 import androidx.compose.foundation.layout.Box
+import androidx.compose.foundation.layout.BoxScope
 import androidx.compose.foundation.layout.size
+import androidx.compose.runtime.Composable
 import androidx.compose.runtime.CompositionLocalProvider
 import androidx.compose.testutils.assertAgainstGolden
 import androidx.compose.ui.Alignment
@@ -78,25 +80,57 @@
         verifySwipedScreenshot(LayoutDirection.Rtl, 0.5f)
     }
 
+    @Test
+    fun on_dismiss_overload_swiped_to_right_25_percent_ltr() {
+        verifySwipedScreenshot(LayoutDirection.Ltr, 0.25f, true,
+            "swiped_to_right_25_percent_ltr")
+    }
+
+    @Test
+    fun on_dismiss_overload_swiped_to_right_25_percent_rtl() {
+        verifySwipedScreenshot(LayoutDirection.Rtl, 0.25f, true,
+            "swiped_to_right_25_percent_rtl")
+    }
+
+    @Test
+    fun on_dismiss_overload_swiped_to_right_50_percent_ltr() {
+        verifySwipedScreenshot(LayoutDirection.Ltr, 0.5f, true,
+            "swiped_to_right_50_percent_ltr")
+    }
+
+    @Test
+    fun on_dismiss_overload_swiped_to_right_50_percent_rtl() {
+        verifySwipedScreenshot(LayoutDirection.Rtl, 0.5f, true,
+            "swiped_to_right_50_percent_rtl")
+    }
+
     private fun verifySwipedScreenshot(
         layoutDirection: LayoutDirection,
         swipedPercentage: Float,
+        isOnDismissOverload: Boolean = false,
+        goldenIdentifier: String = testName.methodName
     ) {
         rule.setContentWithTheme {
             CompositionLocalProvider(LocalLayoutDirection provides layoutDirection) {
                 val state = rememberSwipeToDismissBoxState()
-                SwipeToDismissBox(
-                    modifier = Modifier.testTag(TEST_TAG).size(106.dp),
-                    state = state
-                ) { isBackground ->
-                    if (isBackground) {
-                        Box(modifier = Modifier.align(Alignment.Center)) {
-                            Text(color = Color.White, text = "Background")
-                        }
-                    } else {
-                        Box(modifier = Modifier.align(Alignment.Center)) {
-                            Text(color = Color.White, text = "Foreground")
-                        }
+                if (isOnDismissOverload) {
+                    SwipeToDismissBox(
+                        onDismissed = {},
+                        modifier = Modifier
+                            .testTag(TEST_TAG)
+                            .size(106.dp),
+                        state = state
+                    ) { isBackground ->
+                        boxContent(isBackground = isBackground)
+                    }
+                } else {
+                    SwipeToDismissBox(
+                        modifier = Modifier
+                            .testTag(TEST_TAG)
+                            .size(106.dp),
+                        state = state
+                    ) { isBackground ->
+                        boxContent(isBackground = isBackground)
                     }
                 }
             }
@@ -108,6 +142,19 @@
 
         rule.onNodeWithTag(TEST_TAG)
             .captureToImage()
-            .assertAgainstGolden(screenshotRule, testName.methodName)
+            .assertAgainstGolden(screenshotRule, goldenIdentifier)
+    }
+
+    @Composable
+    private fun BoxScope.boxContent(isBackground: Boolean) {
+        if (isBackground) {
+            Box(modifier = Modifier.align(Alignment.Center)) {
+                Text(color = Color.White, text = "Background")
+            }
+        } else {
+            Box(modifier = Modifier.align(Alignment.Center)) {
+                Text(color = Color.White, text = "Foreground")
+            }
+        }
     }
 }
\ No newline at end of file
diff --git a/wear/compose/compose-material/src/main/java/androidx/wear/compose/material/SwipeToDismissBox.kt b/wear/compose/compose-material/src/main/java/androidx/wear/compose/material/SwipeToDismissBox.kt
index 5430358..204985b 100644
--- a/wear/compose/compose-material/src/main/java/androidx/wear/compose/material/SwipeToDismissBox.kt
+++ b/wear/compose/compose-material/src/main/java/androidx/wear/compose/material/SwipeToDismissBox.kt
@@ -38,7 +38,6 @@
 import androidx.compose.runtime.setValue
 import androidx.compose.ui.Modifier
 import androidx.compose.ui.composed
-import androidx.compose.ui.draw.clip
 import androidx.compose.ui.geometry.Offset
 import androidx.compose.ui.graphics.Color
 import androidx.compose.ui.graphics.RectangleShape
@@ -258,7 +257,7 @@
     modifier: Modifier = Modifier,
     state: SwipeToDismissBoxState = rememberSwipeToDismissBoxState(),
     backgroundScrimColor: Color = MaterialTheme.colors.background,
-    contentScrimColor: Color = contentColorFor(backgroundScrimColor),
+    contentScrimColor: Color = MaterialTheme.colors.background,
     backgroundKey: Any = SwipeToDismissKeys.Background,
     contentKey: Any = SwipeToDismissKeys.Content,
     hasBackground: Boolean = true,
diff --git a/wear/compose/compose-material3/integration-tests/build.gradle b/wear/compose/compose-material3/integration-tests/build.gradle
deleted file mode 100644
index fcaddc1..0000000
--- a/wear/compose/compose-material3/integration-tests/build.gradle
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import androidx.build.Publish
-
-plugins {
-    id("AndroidXPlugin")
-    id("com.android.library")
-    id("AndroidXComposePlugin")
-    id("org.jetbrains.kotlin.android")
-}
-
-dependencies {
-    implementation(libs.kotlinStdlib)
-
-    implementation(project(":compose:animation:animation"))
-    implementation(project(":compose:foundation:foundation"))
-    implementation(project(":compose:foundation:foundation-layout"))
-    implementation(project(":compose:runtime:runtime"))
-    implementation(project(":compose:ui:ui"))
-    implementation(project(":compose:ui:ui-text"))
-
-    implementation(project(':wear:compose:compose-foundation'))
-    implementation(project(':wear:compose:compose-material3'))
-    implementation(project(':wear:compose:compose-material3-samples'))
-    implementation(project(':wear:compose:integration-tests:demos:common'))
-}
-
-androidx {
-    name = "AndroidX Wear Compose Material3 Components Demos"
-    publish = Publish.NONE
-    inceptionYear = "2023"
-    description = "Contains the demo code for the AndroidX Wear Compose Material 3 components."
-}
-
-android {
-    defaultConfig {
-        minSdkVersion 25
-    }
-    namespace "androidx.wear.compose.material3.demos"
-}
\ No newline at end of file
diff --git a/wear/compose/compose-material3/integration-tests/src/main/java/androidx/wear/compose/material3/demos/WearMaterial3Demos.kt b/wear/compose/compose-material3/integration-tests/src/main/java/androidx/wear/compose/material3/demos/WearMaterial3Demos.kt
deleted file mode 100644
index 3379ab2..0000000
--- a/wear/compose/compose-material3/integration-tests/src/main/java/androidx/wear/compose/material3/demos/WearMaterial3Demos.kt
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * Copyright 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package androidx.wear.compose.material3.demos
-
-import androidx.compose.foundation.layout.Spacer
-import androidx.compose.foundation.layout.height
-import androidx.compose.ui.Modifier
-import androidx.compose.ui.unit.dp
-import androidx.wear.compose.integration.demos.common.Centralize
-import androidx.wear.compose.integration.demos.common.ComposableDemo
-import androidx.wear.compose.integration.demos.common.DemoCategory
-import androidx.wear.compose.material3.samples.ButtonSample
-import androidx.wear.compose.material3.samples.ChildButtonSample
-import androidx.wear.compose.material3.samples.FilledTonalButtonSample
-import androidx.wear.compose.material3.samples.FixedFontSize
-import androidx.wear.compose.material3.samples.OutlinedButtonSample
-import androidx.wear.compose.material3.samples.SimpleButtonSample
-import androidx.wear.compose.material3.samples.SimpleChildButtonSample
-import androidx.wear.compose.material3.samples.SimpleFilledTonalButtonSample
-import androidx.wear.compose.material3.samples.SimpleOutlinedButtonSample
-
-val WearMaterial3Demos = DemoCategory(
-    "Material3",
-    listOf(
-        DemoCategory(
-            "Button",
-            listOf(
-                DemoCategory(
-                    "Samples",
-                    listOf(
-                        ComposableDemo("Button") {
-                            Centralize {
-                                SimpleButtonSample()
-                                Spacer(Modifier.height(4.dp))
-                                ButtonSample()
-                            }
-                        },
-                        ComposableDemo("FilledTonalButton") {
-                            Centralize {
-                                SimpleFilledTonalButtonSample()
-                                Spacer(Modifier.height(4.dp))
-                                FilledTonalButtonSample()
-                            }
-                        },
-                        ComposableDemo("OutlinedButton") {
-                            Centralize {
-                                SimpleOutlinedButtonSample()
-                                Spacer(Modifier.height(4.dp))
-                                OutlinedButtonSample()
-                            }
-                        },
-                        ComposableDemo("ChildButton") {
-                            Centralize {
-                                SimpleChildButtonSample()
-                                Spacer(Modifier.height(4.dp))
-                                ChildButtonSample()
-                            }
-                        },
-                    )
-                ),
-                DemoCategory(
-                    "Demos",
-                    listOf(
-                        // Add button demos here
-                    )
-                )
-            )
-        ),
-        DemoCategory(
-            "Theme",
-            listOf(
-                ComposableDemo(
-                    title = "Fixed Font Size",
-                    description =
-                    "Display1 font size not impacted by changes to user font selection",
-                ) { Centralize { FixedFontSize() } },
-            )
-        )
-    )
-)
\ No newline at end of file
diff --git a/wear/compose/compose-material3/samples/build.gradle b/wear/compose/compose-material3/samples/build.gradle
index 527c408..05583d0 100644
--- a/wear/compose/compose-material3/samples/build.gradle
+++ b/wear/compose/compose-material3/samples/build.gradle
@@ -24,12 +24,6 @@
 }
 
 dependencies {
-    compileOnly(project(":annotation:annotation-sampled"))
-
-    implementation("androidx.compose.material:material-icons-core:1.4.2")
-    implementation(project(":compose:runtime:runtime"))
-    implementation(project(":wear:compose:compose-foundation"))
-    implementation(project(":wear:compose:compose-material3"))
 }
 
 android {
diff --git a/wear/compose/compose-material3/samples/src/main/java/androidx/wear/compose/material3/samples/ButtonSample.kt b/wear/compose/compose-material3/samples/src/main/java/androidx/wear/compose/material3/samples/ButtonSample.kt
deleted file mode 100644
index 955bd2b..0000000
--- a/wear/compose/compose-material3/samples/src/main/java/androidx/wear/compose/material3/samples/ButtonSample.kt
+++ /dev/null
@@ -1,135 +0,0 @@
-/*
- * Copyright 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package androidx.wear.compose.material3.samples
-
-import androidx.annotation.Sampled
-import androidx.compose.foundation.layout.size
-import androidx.compose.material.icons.Icons
-import androidx.compose.material.icons.filled.Favorite
-import androidx.compose.runtime.Composable
-import androidx.compose.ui.Modifier
-import androidx.wear.compose.material3.Button
-import androidx.wear.compose.material3.ButtonDefaults
-import androidx.wear.compose.material3.ChildButton
-import androidx.wear.compose.material3.FilledTonalButton
-import androidx.wear.compose.material3.Icon
-import androidx.wear.compose.material3.OutlinedButton
-import androidx.wear.compose.material3.Text
-
-@Sampled
-@Composable
-fun SimpleButtonSample() {
-    Button(
-        onClick = { /* Do something */ },
-        label = { Text("Simple Button") }
-    )
-}
-
-@Sampled
-@Composable
-fun ButtonSample() {
-    Button(
-        onClick = { /* Do something */ },
-        label = { Text("Button with icon") },
-        secondaryLabel = { Text("Secondary label") },
-        icon = {
-            Icon(
-                Icons.Filled.Favorite,
-                contentDescription = "Localized description",
-                modifier = Modifier.size(ButtonDefaults.IconSize)
-            )
-        }
-    )
-}
-
-@Sampled
-@Composable
-fun SimpleFilledTonalButtonSample() {
-    FilledTonalButton(
-        onClick = { /* Do something */ },
-        label = { Text("Simple FilledTonalButton") }
-    )
-}
-
-@Sampled
-@Composable
-fun FilledTonalButtonSample() {
-    FilledTonalButton(
-        onClick = { /* Do something */ },
-        label = { Text("FilledTonalButton") },
-        secondaryLabel = { Text("Secondary label") },
-        icon = {
-            Icon(
-                Icons.Filled.Favorite,
-                contentDescription = "Localized description",
-                modifier = Modifier.size(ButtonDefaults.IconSize)
-            )
-        }
-    )
-}
-
-@Sampled
-@Composable
-fun SimpleOutlinedButtonSample() {
-    OutlinedButton(
-        onClick = { /* Do something */ },
-        label = { Text("Simple OutlinedButton") }
-    )
-}
-
-@Sampled
-@Composable
-fun OutlinedButtonSample() {
-    OutlinedButton(
-        onClick = { /* Do something */ },
-        label = { Text("OutlinedButton") },
-        secondaryLabel = { Text("Secondary label") },
-        icon = {
-            Icon(
-                Icons.Filled.Favorite,
-                contentDescription = "Localized description",
-                modifier = Modifier.size(ButtonDefaults.IconSize)
-            )
-        }
-    )
-}
-
-@Sampled
-@Composable
-fun SimpleChildButtonSample() {
-    ChildButton(
-        onClick = { /* Do something */ },
-        label = { Text("Simple ChildButton") }
-    )
-}
-
-@Sampled
-@Composable
-fun ChildButtonSample() {
-    ChildButton(
-        onClick = { /* Do something */ },
-        label = { Text("ChildButton") },
-        secondaryLabel = { Text("Secondary label") },
-        icon = {
-            Icon(
-                Icons.Filled.Favorite,
-                contentDescription = "Localized description",
-                modifier = Modifier.size(ButtonDefaults.IconSize)
-            )
-        }
-    )
-}
diff --git a/wear/compose/compose-material3/samples/src/main/java/androidx/wear/compose/material3/samples/MaterialThemeSample.kt b/wear/compose/compose-material3/samples/src/main/java/androidx/wear/compose/material3/samples/MaterialThemeSample.kt
deleted file mode 100644
index 71069fd..0000000
--- a/wear/compose/compose-material3/samples/src/main/java/androidx/wear/compose/material3/samples/MaterialThemeSample.kt
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package androidx.wear.compose.material3.samples
-
-import androidx.annotation.Sampled
-import androidx.compose.runtime.Composable
-import androidx.compose.ui.platform.LocalDensity
-import androidx.compose.ui.unit.dp
-import androidx.wear.compose.material3.MaterialTheme
-import androidx.wear.compose.material3.Text
-
-@Sampled
-@Composable
-fun FixedFontSize() {
-    val typography = MaterialTheme.typography.copy(
-        displayLarge = MaterialTheme.typography.displayLarge.copy(
-            fontSize = with(LocalDensity.current) { 40.dp.toSp() }
-        )
-    )
-    MaterialTheme(typography = typography) {
-        Text(
-            text = "Fixed Font",
-            maxLines = 1,
-            style = MaterialTheme.typography.displayLarge,
-            color = MaterialTheme.colorScheme.onBackground,
-        )
-    }
-}
\ No newline at end of file
diff --git a/wear/compose/compose-material3/src/main/java/androidx/wear/compose/material3/Button.kt b/wear/compose/compose-material3/src/main/java/androidx/wear/compose/material3/Button.kt
index 4322d1f..4523dc5 100644
--- a/wear/compose/compose-material3/src/main/java/androidx/wear/compose/material3/Button.kt
+++ b/wear/compose/compose-material3/src/main/java/androidx/wear/compose/material3/Button.kt
@@ -59,10 +59,7 @@
  *
  * Button can be enabled or disabled. A disabled button will not respond to click events.
  *
- * TODO(b/261838497) Add Material3 UX guidance links
- *
- * Example of a [Button]:
- * @sample androidx.wear.compose.material3.samples.SimpleButtonSample
+ * TODO(b/261838497) Add Material3 samples and UX guidance links
  *
  * @param onClick Will be called when the user clicks the button
  * @param modifier Modifier to be applied to the button
@@ -133,10 +130,7 @@
  *
  * Button can be enabled or disabled. A disabled button will not respond to click events.
  *
- * TODO(b/261838497) Add Material3 UX guidance links
- *
- * Example of a [FilledTonalButton]:
- * @sample androidx.wear.compose.material3.samples.SimpleFilledTonalButtonSample
+ * TODO(b/261838497) Add Material3 samples and UX guidance links
  *
  * @param onClick Will be called when the user clicks the button
  * @param modifier Modifier to be applied to the button
@@ -191,10 +185,7 @@
  *
  * Button can be enabled or disabled. A disabled button will not respond to click events.
  *
- * TODO(b/261838497) Add Material3 UX guidance links
- *
- * Example of an [OutlinedButton]:
- * @sample androidx.wear.compose.material3.samples.SimpleOutlinedButtonSample
+ * TODO(b/261838497) Add Material3 samples and UX guidance links
  *
  * @param onClick Will be called when the user clicks the button
  * @param modifier Modifier to be applied to the button
@@ -249,10 +240,7 @@
  *
  * Button can be enabled or disabled. A disabled button will not respond to click events.
  *
- * TODO(b/261838497) Add Material3 UX guidance links
- *
- * Example of a [ChildButton]:
- * @sample androidx.wear.compose.material3.samples.SimpleChildButtonSample
+ * TODO(b/261838497) Add Material3 samples and UX guidance links
  *
  * @param onClick Will be called when the user clicks the button
  * @param modifier Modifier to be applied to the button
@@ -311,10 +299,7 @@
  *
  * [Button] can be enabled or disabled. A disabled button will not respond to click events.
  *
- * TODO(b/261838497) Add Material3 UX guidance links
- *
- * Example of a [Button] with an icon and secondary label:
- * @sample androidx.wear.compose.material3.samples.ButtonSample
+ * TODO(b/261838497) Add Material3 samples and UX guidance links
  *
  * @param onClick Will be called when the user clicks the button
  * @param modifier Modifier to be applied to the button
@@ -413,10 +398,7 @@
  * [FilledTonalButton] can be enabled or disabled. A disabled button will not respond to
  * click events.
  *
- * TODO(b/261838497) Add Material3 UX guidance links
- *
- * Example of a [FilledTonalButton] with an icon and secondary label:
- * @sample androidx.wear.compose.material3.samples.FilledTonalButtonSample
+ * TODO(b/261838497) Add Material3 samples and UX guidance links
  *
  * @param onClick Will be called when the user clicks the button
  * @param modifier Modifier to be applied to the button
@@ -497,10 +479,7 @@
  *
  * [OutlinedButton] can be enabled or disabled. A disabled button will not respond to click events.
  *
- * TODO(b/261838497) Add Material3 UX guidance links
- *
- * Example of an [OutlinedButton] with an icon and secondary label:
- * @sample androidx.wear.compose.material3.samples.OutlinedButtonSample
+ * TODO(b/261838497) Add Material3 samples and UX guidance links
  *
  * @param onClick Will be called when the user clicks the button
  * @param modifier Modifier to be applied to the button
@@ -580,10 +559,7 @@
  *
  * [Button] can be enabled or disabled. A disabled button will not respond to click events.
  *
- * TODO(b/261838497) Add Material3 UX guidance links
- *
- * Example of a [ChildButton] with an icon and secondary label:
- * @sample androidx.wear.compose.material3.samples.ChildButtonSample
+ * TODO(b/261838497) Add Material3 samples and UX guidance links
  *
  * @param onClick Will be called when the user clicks the button
  * @param modifier Modifier to be applied to the button
diff --git a/wear/compose/compose-material3/src/main/java/androidx/wear/compose/material3/Typography.kt b/wear/compose/compose-material3/src/main/java/androidx/wear/compose/material3/Typography.kt
index 699e4e0..96e3f33 100644
--- a/wear/compose/compose-material3/src/main/java/androidx/wear/compose/material3/Typography.kt
+++ b/wear/compose/compose-material3/src/main/java/androidx/wear/compose/material3/Typography.kt
@@ -29,8 +29,8 @@
  * The text styles in this typography are scaled according to the user's preferred font size in
  * the system settings. Larger font sizes can be fixed if necessary in order to avoid pressure on
  * screen space, because they are already sufficiently accessible.
- * Here is an example of fixing the font size for DisplayLarge:
- * @sample androidx.wear.compose.material3.samples.FixedFontSize
+ * Here is an example of fixing the font size for Display1:
+ * @sample androidx.wear.compose.material.samples.FixedFontSize
  *
  * TODO(b/273526150) Review documentation for typography, add examples for each size.
  * @property displayExtraLarge DisplayExtraLarge is the largest headline. Displays are the
diff --git a/wear/compose/compose-navigation/api/1.2.0-beta01.txt b/wear/compose/compose-navigation/api/1.2.0-beta01.txt
new file mode 100644
index 0000000..96ffadf
--- /dev/null
+++ b/wear/compose/compose-navigation/api/1.2.0-beta01.txt
@@ -0,0 +1,33 @@
+// Signature format: 4.0
+package androidx.wear.compose.navigation {
+
+  public final class NavGraphBuilderKt {
+    method public static void composable(androidx.navigation.NavGraphBuilder, String route, optional java.util.List<androidx.navigation.NamedNavArgument> arguments, optional java.util.List<androidx.navigation.NavDeepLink> deepLinks, kotlin.jvm.functions.Function1<? super androidx.navigation.NavBackStackEntry,kotlin.Unit> content);
+  }
+
+  public final class SwipeDismissableNavHostControllerKt {
+    method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State<androidx.navigation.NavBackStackEntry> currentBackStackEntryAsState(androidx.navigation.NavController);
+    method @androidx.compose.runtime.Composable public static androidx.navigation.NavHostController rememberSwipeDismissableNavController();
+  }
+
+  public final class SwipeDismissableNavHostKt {
+    method @androidx.compose.runtime.Composable public static void SwipeDismissableNavHost(androidx.navigation.NavHostController navController, androidx.navigation.NavGraph graph, optional androidx.compose.ui.Modifier modifier, optional androidx.wear.compose.navigation.SwipeDismissableNavHostState state);
+    method @androidx.compose.runtime.Composable public static void SwipeDismissableNavHost(androidx.navigation.NavHostController navController, String startDestination, optional androidx.compose.ui.Modifier modifier, optional androidx.wear.compose.navigation.SwipeDismissableNavHostState state, optional String? route, kotlin.jvm.functions.Function1<? super androidx.navigation.NavGraphBuilder,kotlin.Unit> builder);
+    method @androidx.compose.runtime.Composable public static androidx.wear.compose.navigation.SwipeDismissableNavHostState rememberSwipeDismissableNavHostState(optional androidx.wear.compose.material.SwipeToDismissBoxState swipeToDismissBoxState);
+  }
+
+  public final class SwipeDismissableNavHostState {
+    ctor public SwipeDismissableNavHostState(androidx.wear.compose.material.SwipeToDismissBoxState swipeToDismissBoxState);
+  }
+
+  @androidx.navigation.Navigator.Name("wear-navigator") public final class WearNavigator extends androidx.navigation.Navigator<androidx.wear.compose.navigation.WearNavigator.Destination> {
+    ctor public WearNavigator();
+    method public androidx.wear.compose.navigation.WearNavigator.Destination createDestination();
+  }
+
+  @androidx.navigation.NavDestination.ClassType(Composable::class) public static final class WearNavigator.Destination extends androidx.navigation.NavDestination {
+    ctor public WearNavigator.Destination(androidx.wear.compose.navigation.WearNavigator navigator, kotlin.jvm.functions.Function1<? super androidx.navigation.NavBackStackEntry,kotlin.Unit> content);
+  }
+
+}
+
diff --git a/wear/compose/compose-navigation/api/res-1.2.0-beta01.txt b/wear/compose/compose-navigation/api/res-1.2.0-beta01.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/wear/compose/compose-navigation/api/res-1.2.0-beta01.txt
diff --git a/wear/compose/compose-navigation/api/restricted_1.2.0-beta01.txt b/wear/compose/compose-navigation/api/restricted_1.2.0-beta01.txt
new file mode 100644
index 0000000..96ffadf
--- /dev/null
+++ b/wear/compose/compose-navigation/api/restricted_1.2.0-beta01.txt
@@ -0,0 +1,33 @@
+// Signature format: 4.0
+package androidx.wear.compose.navigation {
+
+  public final class NavGraphBuilderKt {
+    method public static void composable(androidx.navigation.NavGraphBuilder, String route, optional java.util.List<androidx.navigation.NamedNavArgument> arguments, optional java.util.List<androidx.navigation.NavDeepLink> deepLinks, kotlin.jvm.functions.Function1<? super androidx.navigation.NavBackStackEntry,kotlin.Unit> content);
+  }
+
+  public final class SwipeDismissableNavHostControllerKt {
+    method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State<androidx.navigation.NavBackStackEntry> currentBackStackEntryAsState(androidx.navigation.NavController);
+    method @androidx.compose.runtime.Composable public static androidx.navigation.NavHostController rememberSwipeDismissableNavController();
+  }
+
+  public final class SwipeDismissableNavHostKt {
+    method @androidx.compose.runtime.Composable public static void SwipeDismissableNavHost(androidx.navigation.NavHostController navController, androidx.navigation.NavGraph graph, optional androidx.compose.ui.Modifier modifier, optional androidx.wear.compose.navigation.SwipeDismissableNavHostState state);
+    method @androidx.compose.runtime.Composable public static void SwipeDismissableNavHost(androidx.navigation.NavHostController navController, String startDestination, optional androidx.compose.ui.Modifier modifier, optional androidx.wear.compose.navigation.SwipeDismissableNavHostState state, optional String? route, kotlin.jvm.functions.Function1<? super androidx.navigation.NavGraphBuilder,kotlin.Unit> builder);
+    method @androidx.compose.runtime.Composable public static androidx.wear.compose.navigation.SwipeDismissableNavHostState rememberSwipeDismissableNavHostState(optional androidx.wear.compose.material.SwipeToDismissBoxState swipeToDismissBoxState);
+  }
+
+  public final class SwipeDismissableNavHostState {
+    ctor public SwipeDismissableNavHostState(androidx.wear.compose.material.SwipeToDismissBoxState swipeToDismissBoxState);
+  }
+
+  @androidx.navigation.Navigator.Name("wear-navigator") public final class WearNavigator extends androidx.navigation.Navigator<androidx.wear.compose.navigation.WearNavigator.Destination> {
+    ctor public WearNavigator();
+    method public androidx.wear.compose.navigation.WearNavigator.Destination createDestination();
+  }
+
+  @androidx.navigation.NavDestination.ClassType(Composable::class) public static final class WearNavigator.Destination extends androidx.navigation.NavDestination {
+    ctor public WearNavigator.Destination(androidx.wear.compose.navigation.WearNavigator navigator, kotlin.jvm.functions.Function1<? super androidx.navigation.NavBackStackEntry,kotlin.Unit> content);
+  }
+
+}
+
diff --git a/wear/compose/compose-ui-tooling/api/1.2.0-beta01.txt b/wear/compose/compose-ui-tooling/api/1.2.0-beta01.txt
new file mode 100644
index 0000000..00f94c1
--- /dev/null
+++ b/wear/compose/compose-ui-tooling/api/1.2.0-beta01.txt
@@ -0,0 +1,20 @@
+// Signature format: 4.0
+package androidx.wear.compose.ui.tooling.preview {
+
+  @androidx.compose.ui.tooling.preview.Preview(device=androidx.compose.ui.tooling.preview.Devices.WEAR_OS_SQUARE, backgroundColor=4278190080L, showBackground=true, group="Devices - Small Square", showSystemUi=true) @androidx.compose.ui.tooling.preview.Preview(device=androidx.compose.ui.tooling.preview.Devices.WEAR_OS_LARGE_ROUND, backgroundColor=4278190080L, showBackground=true, group="Devices - Large Round", showSystemUi=true) @androidx.compose.ui.tooling.preview.Preview(device=androidx.compose.ui.tooling.preview.Devices.WEAR_OS_SMALL_ROUND, backgroundColor=4278190080L, showBackground=true, group="Devices - Small Round", showSystemUi=true) public @interface WearPreviewDevices {
+  }
+
+  @androidx.compose.ui.tooling.preview.Preview(device=androidx.compose.ui.tooling.preview.Devices.WEAR_OS_SMALL_ROUND, showSystemUi=true, backgroundColor=4278190080L, showBackground=true, group="Fonts - Small", fontScale=0.94f) @androidx.compose.ui.tooling.preview.Preview(device=androidx.compose.ui.tooling.preview.Devices.WEAR_OS_SMALL_ROUND, showSystemUi=true, backgroundColor=4278190080L, showBackground=true, group="Fonts - Normal", fontScale=1.0f) @androidx.compose.ui.tooling.preview.Preview(device=androidx.compose.ui.tooling.preview.Devices.WEAR_OS_SMALL_ROUND, showSystemUi=true, backgroundColor=4278190080L, showBackground=true, group="Fonts - Medium", fontScale=1.06f) @androidx.compose.ui.tooling.preview.Preview(device=androidx.compose.ui.tooling.preview.Devices.WEAR_OS_SMALL_ROUND, showSystemUi=true, backgroundColor=4278190080L, showBackground=true, group="Fonts - Large", fontScale=1.12f) @androidx.compose.ui.tooling.preview.Preview(device=androidx.compose.ui.tooling.preview.Devices.WEAR_OS_SMALL_ROUND, showSystemUi=true, backgroundColor=4278190080L, showBackground=true, group="Fonts - Larger", fontScale=1.18f) @androidx.compose.ui.tooling.preview.Preview(device=androidx.compose.ui.tooling.preview.Devices.WEAR_OS_SMALL_ROUND, showSystemUi=true, backgroundColor=4278190080L, showBackground=true, group="Fonts - Largest", fontScale=1.24f) public @interface WearPreviewFontScales {
+  }
+
+  @androidx.compose.ui.tooling.preview.Preview(device=androidx.compose.ui.tooling.preview.Devices.WEAR_OS_LARGE_ROUND, backgroundColor=4278190080L, showBackground=true, group="Devices - Large Round", showSystemUi=true) public @interface WearPreviewLargeRound {
+  }
+
+  @androidx.compose.ui.tooling.preview.Preview(device=androidx.compose.ui.tooling.preview.Devices.WEAR_OS_SMALL_ROUND, backgroundColor=4278190080L, showBackground=true, group="Devices - Small Round", showSystemUi=true) public @interface WearPreviewSmallRound {
+  }
+
+  @androidx.compose.ui.tooling.preview.Preview(device=androidx.compose.ui.tooling.preview.Devices.WEAR_OS_SQUARE, backgroundColor=4278190080L, showBackground=true, group="Devices - Small Square", showSystemUi=true) public @interface WearPreviewSquare {
+  }
+
+}
+
diff --git a/wear/compose/compose-ui-tooling/api/res-1.2.0-beta01.txt b/wear/compose/compose-ui-tooling/api/res-1.2.0-beta01.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/wear/compose/compose-ui-tooling/api/res-1.2.0-beta01.txt
diff --git a/wear/compose/compose-ui-tooling/api/restricted_1.2.0-beta01.txt b/wear/compose/compose-ui-tooling/api/restricted_1.2.0-beta01.txt
new file mode 100644
index 0000000..00f94c1
--- /dev/null
+++ b/wear/compose/compose-ui-tooling/api/restricted_1.2.0-beta01.txt
@@ -0,0 +1,20 @@
+// Signature format: 4.0
+package androidx.wear.compose.ui.tooling.preview {
+
+  @androidx.compose.ui.tooling.preview.Preview(device=androidx.compose.ui.tooling.preview.Devices.WEAR_OS_SQUARE, backgroundColor=4278190080L, showBackground=true, group="Devices - Small Square", showSystemUi=true) @androidx.compose.ui.tooling.preview.Preview(device=androidx.compose.ui.tooling.preview.Devices.WEAR_OS_LARGE_ROUND, backgroundColor=4278190080L, showBackground=true, group="Devices - Large Round", showSystemUi=true) @androidx.compose.ui.tooling.preview.Preview(device=androidx.compose.ui.tooling.preview.Devices.WEAR_OS_SMALL_ROUND, backgroundColor=4278190080L, showBackground=true, group="Devices - Small Round", showSystemUi=true) public @interface WearPreviewDevices {
+  }
+
+  @androidx.compose.ui.tooling.preview.Preview(device=androidx.compose.ui.tooling.preview.Devices.WEAR_OS_SMALL_ROUND, showSystemUi=true, backgroundColor=4278190080L, showBackground=true, group="Fonts - Small", fontScale=0.94f) @androidx.compose.ui.tooling.preview.Preview(device=androidx.compose.ui.tooling.preview.Devices.WEAR_OS_SMALL_ROUND, showSystemUi=true, backgroundColor=4278190080L, showBackground=true, group="Fonts - Normal", fontScale=1.0f) @androidx.compose.ui.tooling.preview.Preview(device=androidx.compose.ui.tooling.preview.Devices.WEAR_OS_SMALL_ROUND, showSystemUi=true, backgroundColor=4278190080L, showBackground=true, group="Fonts - Medium", fontScale=1.06f) @androidx.compose.ui.tooling.preview.Preview(device=androidx.compose.ui.tooling.preview.Devices.WEAR_OS_SMALL_ROUND, showSystemUi=true, backgroundColor=4278190080L, showBackground=true, group="Fonts - Large", fontScale=1.12f) @androidx.compose.ui.tooling.preview.Preview(device=androidx.compose.ui.tooling.preview.Devices.WEAR_OS_SMALL_ROUND, showSystemUi=true, backgroundColor=4278190080L, showBackground=true, group="Fonts - Larger", fontScale=1.18f) @androidx.compose.ui.tooling.preview.Preview(device=androidx.compose.ui.tooling.preview.Devices.WEAR_OS_SMALL_ROUND, showSystemUi=true, backgroundColor=4278190080L, showBackground=true, group="Fonts - Largest", fontScale=1.24f) public @interface WearPreviewFontScales {
+  }
+
+  @androidx.compose.ui.tooling.preview.Preview(device=androidx.compose.ui.tooling.preview.Devices.WEAR_OS_LARGE_ROUND, backgroundColor=4278190080L, showBackground=true, group="Devices - Large Round", showSystemUi=true) public @interface WearPreviewLargeRound {
+  }
+
+  @androidx.compose.ui.tooling.preview.Preview(device=androidx.compose.ui.tooling.preview.Devices.WEAR_OS_SMALL_ROUND, backgroundColor=4278190080L, showBackground=true, group="Devices - Small Round", showSystemUi=true) public @interface WearPreviewSmallRound {
+  }
+
+  @androidx.compose.ui.tooling.preview.Preview(device=androidx.compose.ui.tooling.preview.Devices.WEAR_OS_SQUARE, backgroundColor=4278190080L, showBackground=true, group="Devices - Small Square", showSystemUi=true) public @interface WearPreviewSquare {
+  }
+
+}
+
diff --git a/wear/compose/integration-tests/demos/build.gradle b/wear/compose/integration-tests/demos/build.gradle
index 0d46a1e..478b99e 100644
--- a/wear/compose/integration-tests/demos/build.gradle
+++ b/wear/compose/integration-tests/demos/build.gradle
@@ -63,8 +63,6 @@
     implementation(project(":wear:compose:compose-foundation-samples"))
     implementation(project(':wear:compose:compose-material'))
     implementation(project(":wear:compose:compose-material-samples"))
-    implementation(project(':wear:compose:integration-tests:demos:common'))
-    implementation(project(":wear:compose:compose-material3-integration-tests"))
 
     androidTestImplementation(project(":compose:ui:ui-test-junit4"))
     androidTestImplementation(project(":emoji2:emoji2"))
diff --git a/wear/compose/integration-tests/demos/common/build.gradle b/wear/compose/integration-tests/demos/common/build.gradle
deleted file mode 100644
index 9e6cd01e..0000000
--- a/wear/compose/integration-tests/demos/common/build.gradle
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-plugins {
-    id("AndroidXPlugin")
-    id("AndroidXComposePlugin")
-    id("com.android.library")
-    id("org.jetbrains.kotlin.android")
-}
-
-dependencies {
-    implementation(libs.kotlinStdlib)
-
-    api("androidx.activity:activity:1.2.0")
-    implementation(project(':wear:compose:compose-material'))
-
-}
-
-android {
-    defaultConfig {
-        minSdkVersion 25
-    }
-    namespace "androidx.wear.compose.integration.demos.common"
-}
diff --git a/wear/compose/integration-tests/demos/common/src/main/java/androidx/wear/compose/integration/demos/common/Demo.kt b/wear/compose/integration-tests/demos/common/src/main/java/androidx/wear/compose/integration/demos/common/Demo.kt
deleted file mode 100644
index 56fa2c7..0000000
--- a/wear/compose/integration-tests/demos/common/src/main/java/androidx/wear/compose/integration/demos/common/Demo.kt
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Copyright 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package androidx.wear.compose.integration.demos.common
-
-import android.app.Activity
-import androidx.activity.ComponentActivity
-import androidx.compose.foundation.layout.Arrangement
-import androidx.compose.foundation.layout.Column
-import androidx.compose.foundation.layout.ColumnScope
-import androidx.compose.foundation.layout.fillMaxSize
-import androidx.compose.runtime.Composable
-import androidx.compose.ui.Alignment
-import androidx.compose.ui.Modifier
-import androidx.wear.compose.material.SwipeToDismissBoxState
-import kotlin.reflect.KClass
-
-/**
- * Generic demo with a [title] that will be displayed in the list of demos.
- */
-sealed class Demo(val title: String, val description: String? = null) {
-    override fun toString() = title
-}
-
-/**
- * Demo that launches an [Activity] when selected.
- *
- * This should only be used for demos that need to customize the activity, the large majority of
- * demos should just use [ComposableDemo] instead.
- *
- * @property activityClass the KClass (Foo::class) of the activity that will be launched when
- * this demo is selected.
- */
-class ActivityDemo<T : ComponentActivity>(title: String, val activityClass: KClass<T>) : Demo(title)
-
-/**
- * A category of [Demo]s, that will display a list of [demos] when selected.
- */
-class DemoCategory(
-    title: String,
-    val demos: List<Demo>
-) : Demo(title)
-
-/**
- * Parameters which are used by [Demo] screens.
- */
-class DemoParameters(
-    val navigateBack: () -> Unit,
-    val swipeToDismissBoxState: SwipeToDismissBoxState
-)
-
-/**
- * Demo that displays [Composable] [content] when selected,
- * with a method to navigate back to the parent.
- */
-class ComposableDemo(
-    title: String,
-    description: String? = null,
-    val content: @Composable (params: DemoParameters) -> Unit,
-) : Demo(title, description)
-
-@Composable
-fun Centralize(modifier: Modifier = Modifier, content: @Composable ColumnScope.() -> Unit) {
-    Column(
-        modifier = modifier.fillMaxSize(),
-        verticalArrangement = Arrangement.Center,
-        horizontalAlignment = Alignment.CenterHorizontally,
-        content = content
-    )
-}
diff --git a/wear/compose/integration-tests/demos/src/androidTest/java/androidx/wear/compose/integration/demos/test/DemoTest.kt b/wear/compose/integration-tests/demos/src/androidTest/java/androidx/wear/compose/integration/demos/test/DemoTest.kt
index 646addf..9fe82bca 100644
--- a/wear/compose/integration-tests/demos/src/androidTest/java/androidx/wear/compose/integration/demos/test/DemoTest.kt
+++ b/wear/compose/integration-tests/demos/src/androidTest/java/androidx/wear/compose/integration/demos/test/DemoTest.kt
@@ -28,10 +28,10 @@
 import androidx.test.espresso.Espresso
 import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.filters.LargeTest
+import androidx.wear.compose.integration.demos.Demo
 import androidx.wear.compose.integration.demos.DemoActivity
+import androidx.wear.compose.integration.demos.DemoCategory
 import androidx.wear.compose.integration.demos.WearComposeDemos
-import androidx.wear.compose.integration.demos.common.Demo
-import androidx.wear.compose.integration.demos.common.DemoCategory
 import com.google.common.truth.Truth.assertThat
 import org.junit.Ignore
 import org.junit.Rule
diff --git a/wear/compose/integration-tests/demos/src/main/java/androidx/wear/compose/integration/demos/DemoActivity.kt b/wear/compose/integration-tests/demos/src/main/java/androidx/wear/compose/integration/demos/DemoActivity.kt
index 7de734f..361fb0e 100644
--- a/wear/compose/integration-tests/demos/src/main/java/androidx/wear/compose/integration/demos/DemoActivity.kt
+++ b/wear/compose/integration-tests/demos/src/main/java/androidx/wear/compose/integration/demos/DemoActivity.kt
@@ -36,9 +36,6 @@
 import androidx.compose.ui.platform.LocalFocusManager
 import androidx.compose.ui.platform.LocalView
 import androidx.core.app.ActivityCompat
-import androidx.wear.compose.integration.demos.common.ActivityDemo
-import androidx.wear.compose.integration.demos.common.Demo
-import androidx.wear.compose.integration.demos.common.DemoCategory
 import androidx.wear.compose.material.MaterialTheme
 
 /**
diff --git a/wear/compose/integration-tests/demos/src/main/java/androidx/wear/compose/integration/demos/DemoApp.kt b/wear/compose/integration-tests/demos/src/main/java/androidx/wear/compose/integration/demos/DemoApp.kt
index 7e6aa69..108b9ad 100644
--- a/wear/compose/integration-tests/demos/src/main/java/androidx/wear/compose/integration/demos/DemoApp.kt
+++ b/wear/compose/integration-tests/demos/src/main/java/androidx/wear/compose/integration/demos/DemoApp.kt
@@ -32,6 +32,7 @@
 import androidx.compose.runtime.remember
 import androidx.compose.runtime.setValue
 import androidx.compose.ui.Alignment
+import androidx.compose.ui.ExperimentalComposeUiApi
 import androidx.compose.ui.Modifier
 import androidx.compose.ui.composed
 import androidx.compose.ui.focus.FocusRequester
@@ -48,11 +49,6 @@
 import androidx.wear.compose.foundation.lazy.ScalingLazyListState
 import androidx.wear.compose.foundation.lazy.ScalingParams
 import androidx.wear.compose.foundation.lazy.rememberScalingLazyListState
-import androidx.wear.compose.integration.demos.common.ActivityDemo
-import androidx.wear.compose.integration.demos.common.ComposableDemo
-import androidx.wear.compose.integration.demos.common.Demo
-import androidx.wear.compose.integration.demos.common.DemoCategory
-import androidx.wear.compose.integration.demos.common.DemoParameters
 import androidx.wear.compose.material.Chip
 import androidx.wear.compose.material.ChipDefaults
 import androidx.wear.compose.material.ListHeader
@@ -158,13 +154,13 @@
                     modifier = Modifier.fillMaxWidth()
                 )
             }
-            demo.description?.let { description ->
+            if (demo.description != null) {
                 item {
                     CompositionLocalProvider(
                         LocalTextStyle provides MaterialTheme.typography.caption3
                     ) {
                         Text(
-                            text = description,
+                            text = demo.description,
                             modifier = Modifier.fillMaxWidth().align(Alignment.Center),
                             textAlign = TextAlign.Center
                         )
@@ -191,6 +187,7 @@
 
 internal data class TimestampedDelta(val time: Long, val delta: Float)
 
+@OptIn(ExperimentalComposeUiApi::class)
 @Suppress("ComposableModifierFactory")
 @Composable
 fun Modifier.rsbScroll(
diff --git a/wear/compose/integration-tests/demos/src/main/java/androidx/wear/compose/integration/demos/DemoComponents.kt b/wear/compose/integration-tests/demos/src/main/java/androidx/wear/compose/integration/demos/DemoComponents.kt
index c82c27b..ea5174c 100644
--- a/wear/compose/integration-tests/demos/src/main/java/androidx/wear/compose/integration/demos/DemoComponents.kt
+++ b/wear/compose/integration-tests/demos/src/main/java/androidx/wear/compose/integration/demos/DemoComponents.kt
@@ -1,5 +1,5 @@
 /*
- * Copyright 2023 The Android Open Source Project
+ * Copyright 2021 The Android Open 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,8 +16,14 @@
 
 package androidx.wear.compose.integration.demos
 
+import android.app.Activity
+import androidx.activity.ComponentActivity
 import androidx.compose.foundation.Image
+import androidx.compose.foundation.layout.Arrangement
 import androidx.compose.foundation.layout.Box
+import androidx.compose.foundation.layout.Column
+import androidx.compose.foundation.layout.ColumnScope
+import androidx.compose.foundation.layout.fillMaxSize
 import androidx.compose.foundation.layout.padding
 import androidx.compose.foundation.layout.requiredSize
 import androidx.compose.foundation.layout.size
@@ -37,7 +43,53 @@
 import androidx.wear.compose.material.Icon
 import androidx.wear.compose.material.LocalContentAlpha
 import androidx.wear.compose.material.MaterialTheme
+import androidx.wear.compose.material.SwipeToDismissBoxState
 import androidx.wear.compose.material.Text
+import kotlin.reflect.KClass
+
+/**
+ * Generic demo with a [title] that will be displayed in the list of demos.
+ */
+sealed class Demo(val title: String, val description: String? = null) {
+    override fun toString() = title
+}
+
+/**
+ * Demo that launches an [Activity] when selected.
+ *
+ * This should only be used for demos that need to customize the activity, the large majority of
+ * demos should just use [ComposableDemo] instead.
+ *
+ * @property activityClass the KClass (Foo::class) of the activity that will be launched when
+ * this demo is selected.
+ */
+class ActivityDemo<T : ComponentActivity>(title: String, val activityClass: KClass<T>) : Demo(title)
+
+/**
+ * A category of [Demo]s, that will display a list of [demos] when selected.
+ */
+class DemoCategory(
+    title: String,
+    val demos: List<Demo>
+) : Demo(title)
+
+/**
+ * Parameters which are used by [Demo] screens.
+ */
+class DemoParameters(
+    val navigateBack: () -> Unit,
+    val swipeToDismissBoxState: SwipeToDismissBoxState
+)
+
+/**
+ * Demo that displays [Composable] [content] when selected,
+ * with a method to navigate back to the parent.
+ */
+class ComposableDemo(
+    title: String,
+    description: String? = null,
+    val content: @Composable (params: DemoParameters) -> Unit,
+) : Demo(title, description)
 
 /**
  * A simple [Icon] with default size
@@ -110,6 +162,16 @@
     }
 }
 
+@Composable
+fun Centralize(modifier: Modifier = Modifier, content: @Composable ColumnScope.() -> Unit) {
+    Column(
+        modifier = modifier.fillMaxSize(),
+        verticalArrangement = Arrangement.Center,
+        horizontalAlignment = Alignment.CenterHorizontally,
+        content = content
+    )
+}
+
 public val DemoListTag = "DemoListTag"
 
 public val AlternatePrimaryColor1 = Color(0x7F, 0xCF, 0xFF)
diff --git a/wear/compose/integration-tests/demos/src/main/java/androidx/wear/compose/integration/demos/Demos.kt b/wear/compose/integration-tests/demos/src/main/java/androidx/wear/compose/integration/demos/Demos.kt
index 8efc582..6fa889e 100644
--- a/wear/compose/integration-tests/demos/src/main/java/androidx/wear/compose/integration/demos/Demos.kt
+++ b/wear/compose/integration-tests/demos/src/main/java/androidx/wear/compose/integration/demos/Demos.kt
@@ -23,10 +23,7 @@
 import androidx.compose.ui.Modifier
 import androidx.compose.ui.platform.LocalContext
 import androidx.compose.ui.text.style.TextAlign
-import androidx.wear.compose.integration.demos.common.ComposableDemo
-import androidx.wear.compose.integration.demos.common.DemoCategory
 import androidx.wear.compose.material.Text
-import androidx.wear.compose.material3.demos.WearMaterial3Demos
 
 val Info = DemoCategory(
     "App Info",
@@ -59,7 +56,6 @@
     listOf(
         WearFoundationDemos,
         WearMaterialDemos,
-        WearMaterial3Demos,
         Info
     )
 )
diff --git a/wear/compose/integration-tests/demos/src/main/java/androidx/wear/compose/integration/demos/FoundationDemos.kt b/wear/compose/integration-tests/demos/src/main/java/androidx/wear/compose/integration/demos/FoundationDemos.kt
index 730a272..c54950a 100644
--- a/wear/compose/integration-tests/demos/src/main/java/androidx/wear/compose/integration/demos/FoundationDemos.kt
+++ b/wear/compose/integration-tests/demos/src/main/java/androidx/wear/compose/integration/demos/FoundationDemos.kt
@@ -34,8 +34,6 @@
 import androidx.wear.compose.foundation.samples.SimpleScalingLazyColumnWithContentPadding
 import androidx.wear.compose.foundation.samples.SimpleScalingLazyColumnWithSnap
 import androidx.wear.compose.foundation.samples.SwipeToRevealWithExpandables
-import androidx.wear.compose.integration.demos.common.ComposableDemo
-import androidx.wear.compose.integration.demos.common.DemoCategory
 
 val WearFoundationDemos = DemoCategory(
     "Foundation",
diff --git a/wear/compose/integration-tests/demos/src/main/java/androidx/wear/compose/integration/demos/MaterialDemos.kt b/wear/compose/integration-tests/demos/src/main/java/androidx/wear/compose/integration/demos/MaterialDemos.kt
index c4ab979..205da0d 100644
--- a/wear/compose/integration-tests/demos/src/main/java/androidx/wear/compose/integration/demos/MaterialDemos.kt
+++ b/wear/compose/integration-tests/demos/src/main/java/androidx/wear/compose/integration/demos/MaterialDemos.kt
@@ -27,9 +27,6 @@
 import androidx.compose.ui.graphics.Color
 import androidx.compose.ui.unit.LayoutDirection
 import androidx.compose.ui.unit.dp
-import androidx.wear.compose.integration.demos.common.Centralize
-import androidx.wear.compose.integration.demos.common.ComposableDemo
-import androidx.wear.compose.integration.demos.common.DemoCategory
 import androidx.wear.compose.material.samples.AlertDialogSample
 import androidx.wear.compose.material.samples.AlertWithButtons
 import androidx.wear.compose.material.samples.AlertWithChips
diff --git a/wear/compose/integration-tests/demos/src/main/java/androidx/wear/compose/integration/demos/ScrollingWithRotaryInputDemo.kt b/wear/compose/integration-tests/demos/src/main/java/androidx/wear/compose/integration/demos/ScrollingWithRotaryInputDemo.kt
index 33c1b57..7153372 100644
--- a/wear/compose/integration-tests/demos/src/main/java/androidx/wear/compose/integration/demos/ScrollingWithRotaryInputDemo.kt
+++ b/wear/compose/integration-tests/demos/src/main/java/androidx/wear/compose/integration/demos/ScrollingWithRotaryInputDemo.kt
@@ -26,7 +26,6 @@
 import androidx.compose.ui.samples.PreRotaryEventSample
 import androidx.compose.ui.samples.RotaryEventSample
 import androidx.compose.ui.unit.dp
-import androidx.wear.compose.integration.demos.common.ComposableDemo
 import androidx.wear.compose.material.Text
 
 internal val RotaryInputDemos = listOf(
diff --git a/wear/protolayout/protolayout-expression-pipeline/src/main/java/androidx/wear/protolayout/expression/pipeline/Int32Nodes.java b/wear/protolayout/protolayout-expression-pipeline/src/main/java/androidx/wear/protolayout/expression/pipeline/Int32Nodes.java
index 1d69a87..75a3c59 100644
--- a/wear/protolayout/protolayout-expression-pipeline/src/main/java/androidx/wear/protolayout/expression/pipeline/Int32Nodes.java
+++ b/wear/protolayout/protolayout-expression-pipeline/src/main/java/androidx/wear/protolayout/expression/pipeline/Int32Nodes.java
@@ -91,11 +91,11 @@
         @NonNull
         private static DynamicDataKey<?> getDataKey(PlatformInt32SourceType type) {
             if (type == PlatformInt32SourceType.PLATFORM_INT32_SOURCE_TYPE_CURRENT_HEART_RATE) {
-                return PlatformHealthSources.HEART_RATE_BPM;
+                return PlatformHealthSources.Keys.HEART_RATE_BPM;
             }
 
             if (type == PlatformInt32SourceType.PLATFORM_INT32_SOURCE_TYPE_DAILY_STEP_COUNT) {
-                return PlatformHealthSources.DAILY_STEPS;
+                return PlatformHealthSources.Keys.DAILY_STEPS;
             }
 
             throw new IllegalArgumentException(
diff --git a/wear/protolayout/protolayout-expression-pipeline/src/main/java/androidx/wear/protolayout/expression/pipeline/SensorGatewaySingleDataProvider.java b/wear/protolayout/protolayout-expression-pipeline/src/main/java/androidx/wear/protolayout/expression/pipeline/SensorGatewaySingleDataProvider.java
index 564bab1..c90fbda 100644
--- a/wear/protolayout/protolayout-expression-pipeline/src/main/java/androidx/wear/protolayout/expression/pipeline/SensorGatewaySingleDataProvider.java
+++ b/wear/protolayout/protolayout-expression-pipeline/src/main/java/androidx/wear/protolayout/expression/pipeline/SensorGatewaySingleDataProvider.java
@@ -46,10 +46,10 @@
         this.mSensorGateway = sensorGateway;
         this.mSupportedKey = supportedKey;
 
-        if (mSupportedKey.equals(PlatformHealthSources.HEART_RATE_BPM)) {
-            mConvertFunc = value -> DynamicDataValue.fromFloat(value.floatValue());
-        } else { // mSupportedKey.equals(PlatformHealthSources.DAILY_STEPS)
+        if (mSupportedKey.equals(PlatformHealthSources.Keys.DAILY_STEPS)) {
             mConvertFunc = value -> DynamicDataValue.fromInt(value.intValue());
+        } else {
+            mConvertFunc = value -> DynamicDataValue.fromFloat(value.floatValue());
         }
     }
 
diff --git a/wear/protolayout/protolayout-expression-pipeline/src/test/java/androidx/wear/protolayout/expression/pipeline/FloatNodeTest.java b/wear/protolayout/protolayout-expression-pipeline/src/test/java/androidx/wear/protolayout/expression/pipeline/FloatNodeTest.java
index 4f2b87a..1f82ec7 100644
--- a/wear/protolayout/protolayout-expression-pipeline/src/test/java/androidx/wear/protolayout/expression/pipeline/FloatNodeTest.java
+++ b/wear/protolayout/protolayout-expression-pipeline/src/test/java/androidx/wear/protolayout/expression/pipeline/FloatNodeTest.java
@@ -135,13 +135,14 @@
         StateStore stateStore = new StateStore(new ArrayMap<>());
         stateStore.putAllPlatformProviders(
                 Collections.singletonMap(
-                        PlatformHealthSources.HEART_RATE_BPM,
+                        PlatformHealthSources.Keys.HEART_RATE_BPM,
                         new SensorGatewaySingleDataProvider(
-                                fakeSensorGateway, PlatformHealthSources.HEART_RATE_BPM)));
+                                fakeSensorGateway, PlatformHealthSources.Keys.HEART_RATE_BPM)));
         StateFloatSource dailyStepsSource =
                 StateFloatSource.newBuilder()
-                        .setSourceKey(PlatformHealthSources.HEART_RATE_BPM.getKey())
-                        .setSourceNamespace(PlatformHealthSources.HEART_RATE_BPM.getNamespace())
+                        .setSourceKey(PlatformHealthSources.Keys.HEART_RATE_BPM.getKey())
+                        .setSourceNamespace(
+                                PlatformHealthSources.Keys.HEART_RATE_BPM.getNamespace())
                         .build();
         List<Float> results = new ArrayList<>();
         StateFloatSourceNode dailyStepsSourceNode =
diff --git a/wear/protolayout/protolayout-expression-pipeline/src/test/java/androidx/wear/protolayout/expression/pipeline/Int32NodesTest.java b/wear/protolayout/protolayout-expression-pipeline/src/test/java/androidx/wear/protolayout/expression/pipeline/Int32NodesTest.java
index 043eab7..5b223d7 100644
--- a/wear/protolayout/protolayout-expression-pipeline/src/test/java/androidx/wear/protolayout/expression/pipeline/Int32NodesTest.java
+++ b/wear/protolayout/protolayout-expression-pipeline/src/test/java/androidx/wear/protolayout/expression/pipeline/Int32NodesTest.java
@@ -37,6 +37,7 @@
 import androidx.wear.protolayout.expression.pipeline.Int32Nodes.LegacyPlatformInt32SourceNode;
 import androidx.wear.protolayout.expression.pipeline.Int32Nodes.StateInt32SourceNode;
 import androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec;
+import androidx.wear.protolayout.expression.proto.DynamicDataProto.DynamicDataValue;
 import androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedInt32;
 import androidx.wear.protolayout.expression.proto.DynamicProto.DurationPartType;
 import androidx.wear.protolayout.expression.proto.DynamicProto.GetDurationPartOp;
@@ -44,7 +45,6 @@
 import androidx.wear.protolayout.expression.proto.DynamicProto.PlatformInt32SourceType;
 import androidx.wear.protolayout.expression.proto.DynamicProto.StateInt32Source;
 import androidx.wear.protolayout.expression.proto.FixedProto.FixedInt32;
-import androidx.wear.protolayout.expression.proto.DynamicDataProto.DynamicDataValue;
 
 import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.Iterables;
@@ -60,7 +60,6 @@
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
-import java.util.concurrent.Executor;
 
 @RunWith(AndroidJUnit4.class)
 public class Int32NodesTest {
@@ -232,13 +231,13 @@
         StateStore stateStore = new StateStore(new ArrayMap<>());
         stateStore.putAllPlatformProviders(
                 Collections.singletonMap(
-                        PlatformHealthSources.DAILY_STEPS,
+                        PlatformHealthSources.Keys.DAILY_STEPS,
                         new SensorGatewaySingleDataProvider(
-                                fakeSensorGateway, PlatformHealthSources.DAILY_STEPS)));
+                                fakeSensorGateway, PlatformHealthSources.Keys.DAILY_STEPS)));
         StateInt32Source dailyStepsSource =
                 StateInt32Source.newBuilder()
-                        .setSourceKey(PlatformHealthSources.DAILY_STEPS.getKey())
-                        .setSourceNamespace(PlatformHealthSources.DAILY_STEPS.getNamespace())
+                        .setSourceKey(PlatformHealthSources.Keys.DAILY_STEPS.getKey())
+                        .setSourceNamespace(PlatformHealthSources.Keys.DAILY_STEPS.getNamespace())
                         .build();
         List<Integer> results = new ArrayList<>();
         StateInt32SourceNode dailyStepsSourceNode =
@@ -399,9 +398,9 @@
         StateStore stateStore = new StateStore(new ArrayMap<>());
         stateStore.putAllPlatformProviders(
                 Collections.singletonMap(
-                        PlatformHealthSources.HEART_RATE_BPM,
+                        PlatformHealthSources.Keys.HEART_RATE_BPM,
                         new SensorGatewaySingleDataProvider(
-                                fakeSensorGateway, PlatformHealthSources.HEART_RATE_BPM)));
+                                fakeSensorGateway, PlatformHealthSources.Keys.HEART_RATE_BPM)));
         PlatformInt32Source platformSource =
                 PlatformInt32Source.newBuilder()
                         .setSourceType(
@@ -434,9 +433,9 @@
         StateStore stateStore = new StateStore(new ArrayMap<>());
         stateStore.putAllPlatformProviders(
                 Collections.singletonMap(
-                        PlatformHealthSources.DAILY_STEPS,
+                        PlatformHealthSources.Keys.DAILY_STEPS,
                         new SensorGatewaySingleDataProvider(
-                                fakeSensorGateway, PlatformHealthSources.DAILY_STEPS)));
+                                fakeSensorGateway, PlatformHealthSources.Keys.DAILY_STEPS)));
         PlatformInt32Source platformSource =
                 PlatformInt32Source.newBuilder()
                         .setSourceType(
@@ -469,9 +468,9 @@
         StateStore stateStore = new StateStore(new ArrayMap<>());
         stateStore.putAllPlatformProviders(
                 Collections.singletonMap(
-                        PlatformHealthSources.HEART_RATE_BPM,
+                        PlatformHealthSources.Keys.HEART_RATE_BPM,
                         new SensorGatewaySingleDataProvider(
-                                fakeSensorGateway, PlatformHealthSources.HEART_RATE_BPM)));
+                                fakeSensorGateway, PlatformHealthSources.Keys.HEART_RATE_BPM)));
         PlatformInt32Source platformSource =
                 PlatformInt32Source.newBuilder()
                         .setSourceType(
diff --git a/wear/protolayout/protolayout-expression/api/current.txt b/wear/protolayout/protolayout-expression/api/current.txt
index ee547f2..f51a3e9 100644
--- a/wear/protolayout/protolayout-expression/api/current.txt
+++ b/wear/protolayout/protolayout-expression/api/current.txt
@@ -306,17 +306,32 @@
     method public String getNamespace();
   }
 
+  @RequiresOptIn(level=androidx.annotation.RequiresOptIn.Level.ERROR) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) @java.lang.annotation.Target({java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.TYPE, java.lang.annotation.ElementType.FIELD}) public @interface ExperimentalProtoLayoutExtensionApi {
+  }
+
   public final class PlatformDataKey<T extends androidx.wear.protolayout.expression.DynamicBuilders.DynamicType> extends androidx.wear.protolayout.expression.DynamicDataKey<T> {
     ctor public PlatformDataKey(String, String);
   }
 
   public class PlatformHealthSources {
+    method @RequiresPermission(android.Manifest.permission.ACTIVITY_RECOGNITION) public static androidx.wear.protolayout.expression.DynamicBuilders.DynamicFloat dailyCalories();
+    method @RequiresPermission(android.Manifest.permission.ACTIVITY_RECOGNITION) public static androidx.wear.protolayout.expression.DynamicBuilders.DynamicFloat dailyDistanceM();
+    method @RequiresPermission(android.Manifest.permission.ACTIVITY_RECOGNITION) public static androidx.wear.protolayout.expression.DynamicBuilders.DynamicFloat dailyFloors();
     method @RequiresPermission(android.Manifest.permission.ACTIVITY_RECOGNITION) public static androidx.wear.protolayout.expression.DynamicBuilders.DynamicInt32 dailySteps();
     method @RequiresPermission(android.Manifest.permission.BODY_SENSORS) public static androidx.wear.protolayout.expression.DynamicBuilders.DynamicFloat heartRateBpm();
+  }
+
+  public static class PlatformHealthSources.Keys {
+    field @RequiresPermission(android.Manifest.permission.ACTIVITY_RECOGNITION) public static final androidx.wear.protolayout.expression.PlatformDataKey<androidx.wear.protolayout.expression.DynamicBuilders.DynamicFloat!> DAILY_CALORIES;
+    field @RequiresPermission(android.Manifest.permission.ACTIVITY_RECOGNITION) public static final androidx.wear.protolayout.expression.PlatformDataKey<androidx.wear.protolayout.expression.DynamicBuilders.DynamicFloat!> DAILY_DISTANCE_M;
+    field @RequiresPermission(android.Manifest.permission.ACTIVITY_RECOGNITION) public static final androidx.wear.protolayout.expression.PlatformDataKey<androidx.wear.protolayout.expression.DynamicBuilders.DynamicFloat!> DAILY_FLOORS;
     field @RequiresPermission(android.Manifest.permission.ACTIVITY_RECOGNITION) public static final androidx.wear.protolayout.expression.PlatformDataKey<androidx.wear.protolayout.expression.DynamicBuilders.DynamicInt32!> DAILY_STEPS;
     field @RequiresPermission(android.Manifest.permission.BODY_SENSORS) public static final androidx.wear.protolayout.expression.PlatformDataKey<androidx.wear.protolayout.expression.DynamicBuilders.DynamicFloat!> HEART_RATE_BPM;
   }
 
+  @RequiresOptIn(level=androidx.annotation.RequiresOptIn.Level.ERROR) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) @java.lang.annotation.Target({java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.TYPE, java.lang.annotation.ElementType.FIELD}) public @interface ProtoLayoutExperimental {
+  }
+
   public final class VersionBuilders {
   }
 
diff --git a/wear/protolayout/protolayout-expression/api/public_plus_experimental_current.txt b/wear/protolayout/protolayout-expression/api/public_plus_experimental_current.txt
deleted file mode 100644
index d82cdcd..0000000
--- a/wear/protolayout/protolayout-expression/api/public_plus_experimental_current.txt
+++ /dev/null
@@ -1,342 +0,0 @@
-// Signature format: 4.0
-package androidx.wear.protolayout.expression {
-
-  public final class AnimationParameterBuilders {
-    field public static final int REPEAT_MODE_RESTART = 1; // 0x1
-    field public static final int REPEAT_MODE_REVERSE = 2; // 0x2
-    field public static final int REPEAT_MODE_UNKNOWN = 0; // 0x0
-  }
-
-  public static final class AnimationParameterBuilders.AnimationParameters {
-    method @IntRange(from=0) public long getDelayMillis();
-    method @IntRange(from=0) public long getDurationMillis();
-    method public androidx.wear.protolayout.expression.AnimationParameterBuilders.Easing? getEasing();
-  }
-
-  public static final class AnimationParameterBuilders.AnimationParameters.Builder {
-    ctor public AnimationParameterBuilders.AnimationParameters.Builder();
-    method public androidx.wear.protolayout.expression.AnimationParameterBuilders.AnimationParameters build();
-    method public androidx.wear.protolayout.expression.AnimationParameterBuilders.AnimationParameters.Builder setDelayMillis(@IntRange(from=0) long);
-    method public androidx.wear.protolayout.expression.AnimationParameterBuilders.AnimationParameters.Builder setDurationMillis(@IntRange(from=0) long);
-    method public androidx.wear.protolayout.expression.AnimationParameterBuilders.AnimationParameters.Builder setEasing(androidx.wear.protolayout.expression.AnimationParameterBuilders.Easing);
-  }
-
-  public static final class AnimationParameterBuilders.AnimationSpec {
-    method public androidx.wear.protolayout.expression.AnimationParameterBuilders.AnimationParameters? getAnimationParameters();
-    method public androidx.wear.protolayout.expression.AnimationParameterBuilders.Repeatable? getRepeatable();
-  }
-
-  public static final class AnimationParameterBuilders.AnimationSpec.Builder {
-    ctor public AnimationParameterBuilders.AnimationSpec.Builder();
-    method public androidx.wear.protolayout.expression.AnimationParameterBuilders.AnimationSpec build();
-    method public androidx.wear.protolayout.expression.AnimationParameterBuilders.AnimationSpec.Builder setAnimationParameters(androidx.wear.protolayout.expression.AnimationParameterBuilders.AnimationParameters);
-    method public androidx.wear.protolayout.expression.AnimationParameterBuilders.AnimationSpec.Builder setRepeatable(androidx.wear.protolayout.expression.AnimationParameterBuilders.Repeatable);
-  }
-
-  public static interface AnimationParameterBuilders.Easing {
-    method public static androidx.wear.protolayout.expression.AnimationParameterBuilders.Easing cubicBezier(float, float, float, float);
-    method public static androidx.wear.protolayout.expression.AnimationParameterBuilders.Easing fromByteArray(byte[]);
-    method public default byte[] toEasingByteArray();
-    field public static final androidx.wear.protolayout.expression.AnimationParameterBuilders.Easing FAST_OUT_LINEAR_IN_EASING;
-    field public static final androidx.wear.protolayout.expression.AnimationParameterBuilders.Easing FAST_OUT_SLOW_IN_EASING;
-    field public static final androidx.wear.protolayout.expression.AnimationParameterBuilders.Easing LINEAR_OUT_SLOW_IN_EASING;
-  }
-
-  public static final class AnimationParameterBuilders.Repeatable {
-    method public androidx.wear.protolayout.expression.AnimationParameterBuilders.AnimationParameters? getForwardRepeatOverride();
-    method public int getIterations();
-    method public int getRepeatMode();
-    method public androidx.wear.protolayout.expression.AnimationParameterBuilders.AnimationParameters? getReverseRepeatOverride();
-    method public boolean hasInfiniteIteration();
-    field public static final androidx.wear.protolayout.expression.AnimationParameterBuilders.Repeatable INFINITE_REPEATABLE_WITH_RESTART;
-    field public static final androidx.wear.protolayout.expression.AnimationParameterBuilders.Repeatable INFINITE_REPEATABLE_WITH_REVERSE;
-  }
-
-  public static final class AnimationParameterBuilders.Repeatable.Builder {
-    ctor public AnimationParameterBuilders.Repeatable.Builder();
-    method public androidx.wear.protolayout.expression.AnimationParameterBuilders.Repeatable build();
-    method public androidx.wear.protolayout.expression.AnimationParameterBuilders.Repeatable.Builder setForwardRepeatOverride(androidx.wear.protolayout.expression.AnimationParameterBuilders.AnimationParameters);
-    method public androidx.wear.protolayout.expression.AnimationParameterBuilders.Repeatable.Builder setIterations(@IntRange(from=1) int);
-    method public androidx.wear.protolayout.expression.AnimationParameterBuilders.Repeatable.Builder setRepeatMode(int);
-    method public androidx.wear.protolayout.expression.AnimationParameterBuilders.Repeatable.Builder setReverseRepeatOverride(androidx.wear.protolayout.expression.AnimationParameterBuilders.AnimationParameters);
-  }
-
-  public final class AppDataKey<T extends androidx.wear.protolayout.expression.DynamicBuilders.DynamicType> extends androidx.wear.protolayout.expression.DynamicDataKey<T> {
-    ctor public AppDataKey(String);
-  }
-
-  public class ConditionScopes {
-  }
-
-  public static class ConditionScopes.ConditionScope<T extends androidx.wear.protolayout.expression.DynamicBuilders.DynamicType, RawT> {
-    method public androidx.wear.protolayout.expression.ConditionScopes.IfTrueScope<T!,RawT!> use(RawT!);
-    method public androidx.wear.protolayout.expression.ConditionScopes.IfTrueScope<T!,RawT!> use(T!);
-  }
-
-  public static class ConditionScopes.IfTrueScope<T extends androidx.wear.protolayout.expression.DynamicBuilders.DynamicType, RawT> {
-    method public T! elseUse(RawT!);
-    method public T! elseUse(T!);
-  }
-
-  public final class DynamicBuilders {
-  }
-
-  public static interface DynamicBuilders.DynamicBool extends androidx.wear.protolayout.expression.DynamicBuilders.DynamicType {
-    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool and(androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool);
-    method public static androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool constant(boolean);
-    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool eq(androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool);
-    method public static androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool from(androidx.wear.protolayout.expression.DynamicDataKey<androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool!>);
-    method public static androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool fromByteArray(byte[]);
-    method public static androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool fromByteArray(byte[], int, int);
-    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool ne(androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool);
-    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool negate();
-    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool or(androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool);
-    method public default byte[] toDynamicBoolByteArray();
-    method public default int toDynamicBoolByteArray(byte[]);
-    method public default int toDynamicBoolByteArray(byte[], int, int);
-  }
-
-  public static interface DynamicBuilders.DynamicColor extends androidx.wear.protolayout.expression.DynamicBuilders.DynamicType {
-    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicColor animate();
-    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicColor animate(androidx.wear.protolayout.expression.AnimationParameterBuilders.AnimationSpec);
-    method public static androidx.wear.protolayout.expression.DynamicBuilders.DynamicColor animate(androidx.wear.protolayout.expression.DynamicDataKey<androidx.wear.protolayout.expression.DynamicBuilders.DynamicColor!>);
-    method public static androidx.wear.protolayout.expression.DynamicBuilders.DynamicColor animate(androidx.wear.protolayout.expression.DynamicDataKey<androidx.wear.protolayout.expression.DynamicBuilders.DynamicColor!>, androidx.wear.protolayout.expression.AnimationParameterBuilders.AnimationSpec);
-    method public static androidx.wear.protolayout.expression.DynamicBuilders.DynamicColor animate(@ColorInt int, @ColorInt int);
-    method public static androidx.wear.protolayout.expression.DynamicBuilders.DynamicColor animate(@ColorInt int, @ColorInt int, androidx.wear.protolayout.expression.AnimationParameterBuilders.AnimationSpec);
-    method public static androidx.wear.protolayout.expression.DynamicBuilders.DynamicColor constant(@ColorInt int);
-    method public static androidx.wear.protolayout.expression.DynamicBuilders.DynamicColor from(androidx.wear.protolayout.expression.DynamicDataKey<androidx.wear.protolayout.expression.DynamicBuilders.DynamicColor!>);
-    method public static androidx.wear.protolayout.expression.DynamicBuilders.DynamicColor fromByteArray(byte[]);
-    method public static androidx.wear.protolayout.expression.DynamicBuilders.DynamicColor fromByteArray(byte[], int, int);
-    method public static androidx.wear.protolayout.expression.ConditionScopes.ConditionScope<androidx.wear.protolayout.expression.DynamicBuilders.DynamicColor!,java.lang.Integer!> onCondition(androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool);
-    method public default byte[] toDynamicColorByteArray();
-    method public default int toDynamicColorByteArray(byte[]);
-    method public default int toDynamicColorByteArray(byte[], int, int);
-  }
-
-  public static interface DynamicBuilders.DynamicDuration extends androidx.wear.protolayout.expression.DynamicBuilders.DynamicType {
-    method public static androidx.wear.protolayout.expression.DynamicBuilders.DynamicDuration fromByteArray(byte[]);
-    method public static androidx.wear.protolayout.expression.DynamicBuilders.DynamicDuration fromByteArray(byte[], int, int);
-    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicInt32 getHoursPart();
-    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicInt32 getIntDaysPart();
-    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicInt32 getMinutesPart();
-    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicInt32 getSecondsPart();
-    method public static androidx.wear.protolayout.expression.ConditionScopes.ConditionScope<androidx.wear.protolayout.expression.DynamicBuilders.DynamicDuration!,java.time.Duration!> onCondition(androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool);
-    method public default byte[] toDynamicDurationByteArray();
-    method public default int toDynamicDurationByteArray(byte[]);
-    method public default int toDynamicDurationByteArray(byte[], int, int);
-    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicInt32 toIntDays();
-    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicInt32 toIntHours();
-    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicInt32 toIntMinutes();
-    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicInt32 toIntSeconds();
-    method public static androidx.wear.protolayout.expression.DynamicBuilders.DynamicDuration withSecondsPrecision(java.time.Duration);
-  }
-
-  public static interface DynamicBuilders.DynamicFloat extends androidx.wear.protolayout.expression.DynamicBuilders.DynamicType {
-    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicFloat animate();
-    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicFloat animate(androidx.wear.protolayout.expression.AnimationParameterBuilders.AnimationSpec);
-    method public static androidx.wear.protolayout.expression.DynamicBuilders.DynamicFloat animate(androidx.wear.protolayout.expression.DynamicDataKey<androidx.wear.protolayout.expression.DynamicBuilders.DynamicFloat!>);
-    method public static androidx.wear.protolayout.expression.DynamicBuilders.DynamicFloat animate(androidx.wear.protolayout.expression.DynamicDataKey<androidx.wear.protolayout.expression.DynamicBuilders.DynamicFloat!>, androidx.wear.protolayout.expression.AnimationParameterBuilders.AnimationSpec);
-    method public static androidx.wear.protolayout.expression.DynamicBuilders.DynamicFloat animate(float, float);
-    method public static androidx.wear.protolayout.expression.DynamicBuilders.DynamicFloat animate(float, float, androidx.wear.protolayout.expression.AnimationParameterBuilders.AnimationSpec);
-    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicInt32 asInt();
-    method public static androidx.wear.protolayout.expression.DynamicBuilders.DynamicFloat constant(float);
-    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicFloat div(androidx.wear.protolayout.expression.DynamicBuilders.DynamicFloat);
-    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicFloat div(androidx.wear.protolayout.expression.DynamicBuilders.DynamicInt32);
-    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicFloat div(float);
-    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool eq(androidx.wear.protolayout.expression.DynamicBuilders.DynamicFloat);
-    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool eq(float);
-    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicString format();
-    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicString format(androidx.wear.protolayout.expression.DynamicBuilders.DynamicFloat.FloatFormatter);
-    method public static androidx.wear.protolayout.expression.DynamicBuilders.DynamicFloat from(androidx.wear.protolayout.expression.DynamicDataKey<androidx.wear.protolayout.expression.DynamicBuilders.DynamicFloat!>);
-    method public static androidx.wear.protolayout.expression.DynamicBuilders.DynamicFloat fromByteArray(byte[]);
-    method public static androidx.wear.protolayout.expression.DynamicBuilders.DynamicFloat fromByteArray(byte[], int, int);
-    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool gt(androidx.wear.protolayout.expression.DynamicBuilders.DynamicFloat);
-    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool gt(float);
-    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool gte(androidx.wear.protolayout.expression.DynamicBuilders.DynamicFloat);
-    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool gte(float);
-    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool lt(androidx.wear.protolayout.expression.DynamicBuilders.DynamicFloat);
-    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool lt(float);
-    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool lte(androidx.wear.protolayout.expression.DynamicBuilders.DynamicFloat);
-    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool lte(float);
-    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicFloat minus(androidx.wear.protolayout.expression.DynamicBuilders.DynamicFloat);
-    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicFloat minus(androidx.wear.protolayout.expression.DynamicBuilders.DynamicInt32);
-    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicFloat minus(float);
-    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool ne(androidx.wear.protolayout.expression.DynamicBuilders.DynamicFloat);
-    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool ne(float);
-    method public static androidx.wear.protolayout.expression.ConditionScopes.ConditionScope<androidx.wear.protolayout.expression.DynamicBuilders.DynamicFloat!,java.lang.Float!> onCondition(androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool);
-    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicFloat plus(androidx.wear.protolayout.expression.DynamicBuilders.DynamicFloat);
-    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicFloat plus(androidx.wear.protolayout.expression.DynamicBuilders.DynamicInt32);
-    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicFloat plus(float);
-    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicFloat rem(androidx.wear.protolayout.expression.DynamicBuilders.DynamicFloat);
-    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicFloat rem(androidx.wear.protolayout.expression.DynamicBuilders.DynamicInt32);
-    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicFloat rem(float);
-    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicFloat times(androidx.wear.protolayout.expression.DynamicBuilders.DynamicFloat);
-    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicFloat times(androidx.wear.protolayout.expression.DynamicBuilders.DynamicInt32);
-    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicFloat times(float);
-    method public default byte[] toDynamicFloatByteArray();
-    method public default int toDynamicFloatByteArray(byte[]);
-    method public default int toDynamicFloatByteArray(byte[], int, int);
-  }
-
-  public static class DynamicBuilders.DynamicFloat.FloatFormatter {
-    method @IntRange(from=0) public int getMaxFractionDigits();
-    method @IntRange(from=0) public int getMinFractionDigits();
-    method @IntRange(from=0) public int getMinIntegerDigits();
-    method public boolean isGroupingUsed();
-  }
-
-  public static final class DynamicBuilders.DynamicFloat.FloatFormatter.Builder {
-    ctor public DynamicBuilders.DynamicFloat.FloatFormatter.Builder();
-    method public androidx.wear.protolayout.expression.DynamicBuilders.DynamicFloat.FloatFormatter build();
-    method public androidx.wear.protolayout.expression.DynamicBuilders.DynamicFloat.FloatFormatter.Builder setGroupingUsed(boolean);
-    method public androidx.wear.protolayout.expression.DynamicBuilders.DynamicFloat.FloatFormatter.Builder setMaxFractionDigits(@IntRange(from=0) int);
-    method public androidx.wear.protolayout.expression.DynamicBuilders.DynamicFloat.FloatFormatter.Builder setMinFractionDigits(@IntRange(from=0) int);
-    method public androidx.wear.protolayout.expression.DynamicBuilders.DynamicFloat.FloatFormatter.Builder setMinIntegerDigits(@IntRange(from=0) int);
-  }
-
-  public static interface DynamicBuilders.DynamicInstant extends androidx.wear.protolayout.expression.DynamicBuilders.DynamicType {
-    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicDuration durationUntil(androidx.wear.protolayout.expression.DynamicBuilders.DynamicInstant);
-    method public static androidx.wear.protolayout.expression.DynamicBuilders.DynamicInstant fromByteArray(byte[]);
-    method public static androidx.wear.protolayout.expression.DynamicBuilders.DynamicInstant fromByteArray(byte[], int, int);
-    method public static androidx.wear.protolayout.expression.ConditionScopes.ConditionScope<androidx.wear.protolayout.expression.DynamicBuilders.DynamicInstant!,java.time.Instant!> onCondition(androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool);
-    method public static androidx.wear.protolayout.expression.DynamicBuilders.DynamicInstant platformTimeWithSecondsPrecision();
-    method public default byte[] toDynamicInstantByteArray();
-    method public default int toDynamicInstantByteArray(byte[]);
-    method public default int toDynamicInstantByteArray(byte[], int, int);
-    method public static androidx.wear.protolayout.expression.DynamicBuilders.DynamicInstant withSecondsPrecision(java.time.Instant);
-  }
-
-  public static interface DynamicBuilders.DynamicInt32 extends androidx.wear.protolayout.expression.DynamicBuilders.DynamicType {
-    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicInt32 animate();
-    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicInt32 animate(androidx.wear.protolayout.expression.AnimationParameterBuilders.AnimationSpec);
-    method public static androidx.wear.protolayout.expression.DynamicBuilders.DynamicInt32 animate(androidx.wear.protolayout.expression.DynamicDataKey<androidx.wear.protolayout.expression.DynamicBuilders.DynamicInt32!>);
-    method public static androidx.wear.protolayout.expression.DynamicBuilders.DynamicInt32 animate(androidx.wear.protolayout.expression.DynamicDataKey<androidx.wear.protolayout.expression.DynamicBuilders.DynamicInt32!>, androidx.wear.protolayout.expression.AnimationParameterBuilders.AnimationSpec);
-    method public static androidx.wear.protolayout.expression.DynamicBuilders.DynamicInt32 animate(int, int);
-    method public static androidx.wear.protolayout.expression.DynamicBuilders.DynamicInt32 animate(int, int, androidx.wear.protolayout.expression.AnimationParameterBuilders.AnimationSpec);
-    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicFloat asFloat();
-    method public static androidx.wear.protolayout.expression.DynamicBuilders.DynamicInt32 constant(int);
-    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicFloat div(androidx.wear.protolayout.expression.DynamicBuilders.DynamicFloat);
-    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicInt32 div(androidx.wear.protolayout.expression.DynamicBuilders.DynamicInt32);
-    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicFloat div(float);
-    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicInt32 div(int);
-    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool eq(androidx.wear.protolayout.expression.DynamicBuilders.DynamicInt32);
-    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool eq(int);
-    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicString format();
-    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicString format(androidx.wear.protolayout.expression.DynamicBuilders.DynamicInt32.IntFormatter);
-    method public static androidx.wear.protolayout.expression.DynamicBuilders.DynamicInt32 from(androidx.wear.protolayout.expression.DynamicDataKey<androidx.wear.protolayout.expression.DynamicBuilders.DynamicInt32!>);
-    method public static androidx.wear.protolayout.expression.DynamicBuilders.DynamicInt32 fromByteArray(byte[]);
-    method public static androidx.wear.protolayout.expression.DynamicBuilders.DynamicInt32 fromByteArray(byte[], int, int);
-    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool gt(androidx.wear.protolayout.expression.DynamicBuilders.DynamicInt32);
-    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool gt(int);
-    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool gte(androidx.wear.protolayout.expression.DynamicBuilders.DynamicInt32);
-    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool gte(int);
-    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool lt(androidx.wear.protolayout.expression.DynamicBuilders.DynamicInt32);
-    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool lt(int);
-    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool lte(androidx.wear.protolayout.expression.DynamicBuilders.DynamicInt32);
-    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool lte(int);
-    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicFloat minus(androidx.wear.protolayout.expression.DynamicBuilders.DynamicFloat);
-    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicInt32 minus(androidx.wear.protolayout.expression.DynamicBuilders.DynamicInt32);
-    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicFloat minus(float);
-    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicInt32 minus(int);
-    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool ne(androidx.wear.protolayout.expression.DynamicBuilders.DynamicInt32);
-    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool ne(int);
-    method public static androidx.wear.protolayout.expression.ConditionScopes.ConditionScope<androidx.wear.protolayout.expression.DynamicBuilders.DynamicInt32!,java.lang.Integer!> onCondition(androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool);
-    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicFloat plus(androidx.wear.protolayout.expression.DynamicBuilders.DynamicFloat);
-    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicInt32 plus(androidx.wear.protolayout.expression.DynamicBuilders.DynamicInt32);
-    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicFloat plus(float);
-    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicInt32 plus(int);
-    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicFloat rem(androidx.wear.protolayout.expression.DynamicBuilders.DynamicFloat);
-    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicInt32 rem(androidx.wear.protolayout.expression.DynamicBuilders.DynamicInt32);
-    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicFloat rem(float);
-    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicInt32 rem(int);
-    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicFloat times(androidx.wear.protolayout.expression.DynamicBuilders.DynamicFloat);
-    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicInt32 times(androidx.wear.protolayout.expression.DynamicBuilders.DynamicInt32);
-    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicFloat times(float);
-    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicInt32 times(int);
-    method public default byte[] toDynamicInt32ByteArray();
-    method public default int toDynamicInt32ByteArray(byte[]);
-    method public default int toDynamicInt32ByteArray(byte[], int, int);
-  }
-
-  public static class DynamicBuilders.DynamicInt32.IntFormatter {
-    method @IntRange(from=0) public int getMinIntegerDigits();
-    method public boolean isGroupingUsed();
-  }
-
-  public static final class DynamicBuilders.DynamicInt32.IntFormatter.Builder {
-    ctor public DynamicBuilders.DynamicInt32.IntFormatter.Builder();
-    method public androidx.wear.protolayout.expression.DynamicBuilders.DynamicInt32.IntFormatter build();
-    method public androidx.wear.protolayout.expression.DynamicBuilders.DynamicInt32.IntFormatter.Builder setGroupingUsed(boolean);
-    method public androidx.wear.protolayout.expression.DynamicBuilders.DynamicInt32.IntFormatter.Builder setMinIntegerDigits(@IntRange(from=0) int);
-  }
-
-  public static interface DynamicBuilders.DynamicString extends androidx.wear.protolayout.expression.DynamicBuilders.DynamicType {
-    method public default androidx.wear.protolayout.expression.DynamicBuilders.DynamicString concat(androidx.wear.protolayout.expression.DynamicBuilders.DynamicString);
-    method public static androidx.wear.protolayout.expression.DynamicBuilders.DynamicString constant(String);
-    method public static androidx.wear.protolayout.expression.DynamicBuilders.DynamicString from(androidx.wear.protolayout.expression.DynamicDataKey<androidx.wear.protolayout.expression.DynamicBuilders.DynamicString!>);
-    method public static androidx.wear.protolayout.expression.DynamicBuilders.DynamicString fromByteArray(byte[]);
-    method public static androidx.wear.protolayout.expression.DynamicBuilders.DynamicString fromByteArray(byte[], int, int);
-    method public static androidx.wear.protolayout.expression.ConditionScopes.ConditionScope<androidx.wear.protolayout.expression.DynamicBuilders.DynamicString!,java.lang.String!> onCondition(androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool);
-    method public default byte[] toDynamicStringByteArray();
-    method public default int toDynamicStringByteArray(byte[]);
-    method public default int toDynamicStringByteArray(byte[], int, int);
-  }
-
-  public static interface DynamicBuilders.DynamicType {
-  }
-
-  public final class DynamicDataBuilders {
-  }
-
-  public static interface DynamicDataBuilders.DynamicDataValue {
-    method public static androidx.wear.protolayout.expression.DynamicDataBuilders.DynamicDataValue fromBool(boolean);
-    method public static androidx.wear.protolayout.expression.DynamicDataBuilders.DynamicDataValue fromByteArray(byte[]);
-    method public static androidx.wear.protolayout.expression.DynamicDataBuilders.DynamicDataValue fromByteArray(byte[], int, int);
-    method public static androidx.wear.protolayout.expression.DynamicDataBuilders.DynamicDataValue fromColor(@ColorInt int);
-    method public static androidx.wear.protolayout.expression.DynamicDataBuilders.DynamicDataValue fromFloat(float);
-    method public static androidx.wear.protolayout.expression.DynamicDataBuilders.DynamicDataValue fromInt(int);
-    method public static androidx.wear.protolayout.expression.DynamicDataBuilders.DynamicDataValue fromString(String);
-    method public default byte[] toDynamicDataValueByteArray();
-    method public default int toDynamicDataValueByteArray(byte[]);
-    method public default int toDynamicDataValueByteArray(byte[], int, int);
-  }
-
-  public abstract class DynamicDataKey<T extends androidx.wear.protolayout.expression.DynamicBuilders.DynamicType> {
-    method public String getKey();
-    method public String getNamespace();
-  }
-
-  @RequiresOptIn(level=androidx.annotation.RequiresOptIn.Level.ERROR) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) @java.lang.annotation.Target({java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.TYPE, java.lang.annotation.ElementType.FIELD}) public @interface ExperimentalProtoLayoutExtensionApi {
-  }
-
-  public final class PlatformDataKey<T extends androidx.wear.protolayout.expression.DynamicBuilders.DynamicType> extends androidx.wear.protolayout.expression.DynamicDataKey<T> {
-    ctor public PlatformDataKey(String, String);
-  }
-
-  public class PlatformHealthSources {
-    method @RequiresPermission(android.Manifest.permission.ACTIVITY_RECOGNITION) public static androidx.wear.protolayout.expression.DynamicBuilders.DynamicInt32 dailySteps();
-    method @RequiresPermission(android.Manifest.permission.BODY_SENSORS) public static androidx.wear.protolayout.expression.DynamicBuilders.DynamicFloat heartRateBpm();
-    field @RequiresPermission(android.Manifest.permission.ACTIVITY_RECOGNITION) public static final androidx.wear.protolayout.expression.PlatformDataKey<androidx.wear.protolayout.expression.DynamicBuilders.DynamicInt32!> DAILY_STEPS;
-    field @RequiresPermission(android.Manifest.permission.BODY_SENSORS) public static final androidx.wear.protolayout.expression.PlatformDataKey<androidx.wear.protolayout.expression.DynamicBuilders.DynamicFloat!> HEART_RATE_BPM;
-  }
-
-  @RequiresOptIn(level=androidx.annotation.RequiresOptIn.Level.ERROR) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) @java.lang.annotation.Target({java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.TYPE, java.lang.annotation.ElementType.FIELD}) public @interface ProtoLayoutExperimental {
-  }
-
-  public final class VersionBuilders {
-  }
-
-  public static final class VersionBuilders.VersionInfo {
-    method public int getMajor();
-    method public int getMinor();
-  }
-
-  public static final class VersionBuilders.VersionInfo.Builder {
-    ctor public VersionBuilders.VersionInfo.Builder();
-    method public androidx.wear.protolayout.expression.VersionBuilders.VersionInfo build();
-    method public androidx.wear.protolayout.expression.VersionBuilders.VersionInfo.Builder setMajor(int);
-    method public androidx.wear.protolayout.expression.VersionBuilders.VersionInfo.Builder setMinor(int);
-  }
-
-}
-
diff --git a/wear/protolayout/protolayout-expression/api/restricted_current.txt b/wear/protolayout/protolayout-expression/api/restricted_current.txt
index ee547f2..f51a3e9 100644
--- a/wear/protolayout/protolayout-expression/api/restricted_current.txt
+++ b/wear/protolayout/protolayout-expression/api/restricted_current.txt
@@ -306,17 +306,32 @@
     method public String getNamespace();
   }
 
+  @RequiresOptIn(level=androidx.annotation.RequiresOptIn.Level.ERROR) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) @java.lang.annotation.Target({java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.TYPE, java.lang.annotation.ElementType.FIELD}) public @interface ExperimentalProtoLayoutExtensionApi {
+  }
+
   public final class PlatformDataKey<T extends androidx.wear.protolayout.expression.DynamicBuilders.DynamicType> extends androidx.wear.protolayout.expression.DynamicDataKey<T> {
     ctor public PlatformDataKey(String, String);
   }
 
   public class PlatformHealthSources {
+    method @RequiresPermission(android.Manifest.permission.ACTIVITY_RECOGNITION) public static androidx.wear.protolayout.expression.DynamicBuilders.DynamicFloat dailyCalories();
+    method @RequiresPermission(android.Manifest.permission.ACTIVITY_RECOGNITION) public static androidx.wear.protolayout.expression.DynamicBuilders.DynamicFloat dailyDistanceM();
+    method @RequiresPermission(android.Manifest.permission.ACTIVITY_RECOGNITION) public static androidx.wear.protolayout.expression.DynamicBuilders.DynamicFloat dailyFloors();
     method @RequiresPermission(android.Manifest.permission.ACTIVITY_RECOGNITION) public static androidx.wear.protolayout.expression.DynamicBuilders.DynamicInt32 dailySteps();
     method @RequiresPermission(android.Manifest.permission.BODY_SENSORS) public static androidx.wear.protolayout.expression.DynamicBuilders.DynamicFloat heartRateBpm();
+  }
+
+  public static class PlatformHealthSources.Keys {
+    field @RequiresPermission(android.Manifest.permission.ACTIVITY_RECOGNITION) public static final androidx.wear.protolayout.expression.PlatformDataKey<androidx.wear.protolayout.expression.DynamicBuilders.DynamicFloat!> DAILY_CALORIES;
+    field @RequiresPermission(android.Manifest.permission.ACTIVITY_RECOGNITION) public static final androidx.wear.protolayout.expression.PlatformDataKey<androidx.wear.protolayout.expression.DynamicBuilders.DynamicFloat!> DAILY_DISTANCE_M;
+    field @RequiresPermission(android.Manifest.permission.ACTIVITY_RECOGNITION) public static final androidx.wear.protolayout.expression.PlatformDataKey<androidx.wear.protolayout.expression.DynamicBuilders.DynamicFloat!> DAILY_FLOORS;
     field @RequiresPermission(android.Manifest.permission.ACTIVITY_RECOGNITION) public static final androidx.wear.protolayout.expression.PlatformDataKey<androidx.wear.protolayout.expression.DynamicBuilders.DynamicInt32!> DAILY_STEPS;
     field @RequiresPermission(android.Manifest.permission.BODY_SENSORS) public static final androidx.wear.protolayout.expression.PlatformDataKey<androidx.wear.protolayout.expression.DynamicBuilders.DynamicFloat!> HEART_RATE_BPM;
   }
 
+  @RequiresOptIn(level=androidx.annotation.RequiresOptIn.Level.ERROR) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) @java.lang.annotation.Target({java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.TYPE, java.lang.annotation.ElementType.FIELD}) public @interface ProtoLayoutExperimental {
+  }
+
   public final class VersionBuilders {
   }
 
diff --git a/wear/protolayout/protolayout-expression/lint-baseline.xml b/wear/protolayout/protolayout-expression/lint-baseline.xml
deleted file mode 100644
index 4fd400c..0000000
--- a/wear/protolayout/protolayout-expression/lint-baseline.xml
+++ /dev/null
@@ -1,58 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 8.1.0-alpha07" type="baseline" client="gradle" dependencies="false" name="AGP (8.0.0-beta03)" variant="all" version="8.1.0-alpha07">
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public Fingerprint getFingerprint() {"
-        errorLine2="                           ~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/wear/protolayout/expression/DynamicBuilders.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public static PlatformInt32Source fromProto("
-        errorLine2="                                          ~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/wear/protolayout/expression/DynamicBuilders.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        DynamicProto.PlatformInt32Source toProto() {"
-        errorLine2="                                         ~~~~~~~">
-        <location
-            file="src/main/java/androidx/wear/protolayout/expression/DynamicBuilders.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public DynamicProto.DynamicInt32 toDynamicInt32Proto() {"
-        errorLine2="                                         ~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/wear/protolayout/expression/DynamicBuilders.java"/>
-    </issue>
-
-    <issue
-        id="UnsafeOptInUsageError"
-        message="This declaration is opt-in and its usage should be marked with `@androidx.wear.protolayout.expression.ProtoLayoutExperimental` or `@OptIn(markerClass = androidx.wear.protolayout.expression.ProtoLayoutExperimental.class)`"
-        errorLine1="            return PlatformInt32Source.fromProto(proto.getPlatformSource());"
-        errorLine2="                                       ~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/wear/protolayout/expression/DynamicBuilders.java"/>
-    </issue>
-
-    <issue
-        id="UnsafeOptInUsageError"
-        message="This declaration is opt-in and its usage should be marked with `@androidx.wear.protolayout.expression.ProtoLayoutExperimental` or `@OptIn(markerClass = androidx.wear.protolayout.expression.ProtoLayoutExperimental.class)`"
-        errorLine1="            return PlatformInt32Source.fromProto(proto.getPlatformSource());"
-        errorLine2="                                                 ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/wear/protolayout/expression/DynamicBuilders.java"/>
-    </issue>
-
-</issues>
diff --git a/wear/protolayout/protolayout-expression/src/main/java/androidx/wear/protolayout/expression/DynamicBuilders.java b/wear/protolayout/protolayout-expression/src/main/java/androidx/wear/protolayout/expression/DynamicBuilders.java
index 284104c..0fe6f1a 100644
--- a/wear/protolayout/protolayout-expression/src/main/java/androidx/wear/protolayout/expression/DynamicBuilders.java
+++ b/wear/protolayout/protolayout-expression/src/main/java/androidx/wear/protolayout/expression/DynamicBuilders.java
@@ -433,7 +433,6 @@
             return mImpl.getSourceType().getNumber();
         }
 
-        /** @hide */
         @Override
         @RestrictTo(Scope.LIBRARY_GROUP)
         @Nullable
@@ -443,7 +442,6 @@
         /**
          * Creates a new wrapper instance from the proto.
          *
-         * @hide
          */
         @RestrictTo(Scope.LIBRARY_GROUP)
         @NonNull
@@ -461,7 +459,6 @@
         /**
          * Returns the internal proto instance.
          *
-         * @hide
          */
         @RestrictTo(Scope.LIBRARY_GROUP)
         @NonNull
@@ -469,7 +466,6 @@
             return mImpl;
         }
 
-        /** @hide */
         @Override
         @RestrictTo(Scope.LIBRARY_GROUP)
         @NonNull
diff --git a/wear/protolayout/protolayout-expression/src/main/java/androidx/wear/protolayout/expression/PlatformHealthSources.java b/wear/protolayout/protolayout-expression/src/main/java/androidx/wear/protolayout/expression/PlatformHealthSources.java
index 8be1449..0214ed2 100644
--- a/wear/protolayout/protolayout-expression/src/main/java/androidx/wear/protolayout/expression/PlatformHealthSources.java
+++ b/wear/protolayout/protolayout-expression/src/main/java/androidx/wear/protolayout/expression/PlatformHealthSources.java
@@ -27,48 +27,89 @@
 import androidx.wear.protolayout.expression.DynamicBuilders.DynamicInt32;
 import androidx.wear.protolayout.expression.DynamicBuilders.PlatformInt32Source;
 
-/** Utility class provides utils to access health data. */
+/** Dynamic types for platform health sources. */
 public class PlatformHealthSources {
-    private PlatformHealthSources() {
+    /** Data sources keys for platform health sources. */
+    public static class Keys {
+        private Keys() {}
+
+        /** The data source key for heart rate bpm data from platform health sources. */
+        @NonNull
+        @RequiresPermission(Manifest.permission.BODY_SENSORS)
+        public static final PlatformDataKey<DynamicFloat> HEART_RATE_BPM =
+                new PlatformDataKey<>("HeartRate");
+
+        /**
+         * The data source key for daily step count data from platform health sources. This is the
+         * total step count over a day and it resets when 00:00 is reached (in whatever is the
+         * timezone set at that time). This can result in the DAILY period being greater than or
+         * less than 24 hours when the timezone of the device is changed.
+         */
+        @NonNull
+        @RequiresPermission(Manifest.permission.ACTIVITY_RECOGNITION)
+        public static final PlatformDataKey<DynamicInt32> DAILY_STEPS =
+                new PlatformDataKey<>("Daily Steps");
+
+        /**
+         * The data source key for daily distance data (in meters) from platform health sources.
+         * This is the total distance over a day and it resets when 00:00 is reached (in whatever
+         * is the timezone set at that time). This can result in the DAILY period being greater
+         * than or less than 24 hours when the timezone of the device is changed.
+         */
+        @NonNull
+        @RequiresPermission(Manifest.permission.ACTIVITY_RECOGNITION)
+        public static final PlatformDataKey<DynamicFloat> DAILY_DISTANCE_M =
+                new PlatformDataKey<>("Daily Distance");
+
+        /**
+         * The data source key for daily calories data from platform health sources. This is the
+         * total number of calories over a day (including both BMR and active calories) and it
+         * resets when 00:00 is reached (in whatever is the timezone set at that time). This can
+         * result in the DAILY period being greater than or less than 24 hours when the timezone
+         * of the device is changed.
+         */
+        @NonNull
+        @RequiresPermission(Manifest.permission.ACTIVITY_RECOGNITION)
+        public static final PlatformDataKey<DynamicFloat> DAILY_CALORIES =
+                new PlatformDataKey<>("Daily Calories");
+
+        /**
+         * The data source key for daily floors data from platform health sources. This is the total
+         * number of floors climbed over a day and it resets when 00:00 is reached (in whatever
+         * is the timezone set at that time). This can result in the DAILY period being greater
+         * than or less than 24 hours when the timezone of the device is changed.
+         */
+        @NonNull
+        @RequiresPermission(Manifest.permission.ACTIVITY_RECOGNITION)
+        public static final PlatformDataKey<DynamicFloat> DAILY_FLOORS =
+                new PlatformDataKey<>("Daily Floors");
     }
 
-    /**
-     * The data source key for heart rate bpm data from default platform health sources.
-     */
-    @NonNull
-    @RequiresPermission(Manifest.permission.BODY_SENSORS)
-    public static final PlatformDataKey<DynamicFloat> HEART_RATE_BPM =
-            new PlatformDataKey<>("HeartRate");
+    private PlatformHealthSources() {}
 
     /**
-     * The data source key for daily step count data from default platform health sources.
-     */
-    @NonNull
-    @RequiresPermission(Manifest.permission.ACTIVITY_RECOGNITION)
-    public static final PlatformDataKey<DynamicInt32> DAILY_STEPS =
-            new PlatformDataKey<>("Daily Steps");
-
-    /**
-     * Creates a {@link DynamicInt32} which receives the current heat rate from the sensor.
+     * Creates a {@link DynamicFloat} which receives the current heat rate from platform sources.
      *
-     * <p> This method provides backward compatibility and is preferred over using {@code
-     * HEART_RATE_BPM} directly.
+     * <p>This method provides backward compatibility and is preferred over using {@link
+     * Keys#HEART_RATE_BPM} directly.
      */
     @RequiresPermission(Manifest.permission.BODY_SENSORS)
     @NonNull
     public static DynamicFloat heartRateBpm() {
         return new PlatformInt32Source.Builder()
                 .setSourceType(PLATFORM_INT32_SOURCE_TYPE_CURRENT_HEART_RATE)
-                .build().asFloat();
+                .build()
+                .asFloat();
     }
 
     /**
-     * Creates a {@link DynamicInt32} which receives the current daily steps from the sensor.
-     * This is the total step count over a day, where the previous day ends and a new day begins at
-     * 12:00 AM local time.
+     * Creates a {@link DynamicInt32} which receives the current daily steps from platform health
+     * sources. This is the total step count over a day and it resets when 00:00 is reached (in
+     * whatever is the timezone set at that time). This can result in the DAILY period being
+     * greater than or less than 24 hours when the timezone of the device is changed.
      *
-     * <p> This method provides backward compatibility and is preferred over using {@code
-     * DAILY_STEPS} directly.
+     * <p>This method provides backward compatibility and is preferred over using {@link
+     * Keys#DAILY_STEPS} directly.
      */
     @RequiresPermission(Manifest.permission.ACTIVITY_RECOGNITION)
     @NonNull
@@ -77,4 +118,42 @@
                 .setSourceType(PLATFORM_INT32_SOURCE_TYPE_DAILY_STEP_COUNT)
                 .build();
     }
+
+    /**
+     * Creates a {@link DynamicFloat} which receives the current daily floors from platform health
+     * sources. This is the total number of floors climbed over a day and it resets when 00:00 is
+     * reached (in whatever is the timezone set at that time). This can result in the DAILY
+     * period being greater than or less than 24 hours when the timezone of the device is changed.
+     */
+    @RequiresPermission(Manifest.permission.ACTIVITY_RECOGNITION)
+    @NonNull
+    public static DynamicFloat dailyFloors() {
+        return DynamicFloat.from(Keys.DAILY_FLOORS);
+    }
+
+    /**
+     * Creates a {@link DynamicFloat} which receives the current daily calories from platform health
+     * sources. This is the total number of calories over a day (including both BMR and active
+     * calories) and it resets when 00:00 is reached (in whatever is the timezone set at that
+     * time). This can result in the DAILY period being greater than or less than 24 hours when
+     * the timezone of the device is changed.
+     */
+    @RequiresPermission(Manifest.permission.ACTIVITY_RECOGNITION)
+    @NonNull
+    public static DynamicFloat dailyCalories() {
+        return DynamicFloat.from(Keys.DAILY_CALORIES);
+    }
+
+    /**
+     * Creates a {@link DynamicFloat} which receives the current daily distance expressed in meters
+     * from platform health sources. This is the total distance over a day and it resets when
+     * 00:00 is reached (in whatever is the timezone set at that time). This can result in the
+     * DAILY period being greater than or less than 24 hours when the timezone of the device is
+     * changed.
+     */
+    @RequiresPermission(Manifest.permission.ACTIVITY_RECOGNITION)
+    @NonNull
+    public static DynamicFloat dailyDistanceM() {
+        return DynamicFloat.from(Keys.DAILY_DISTANCE_M);
+    }
 }
diff --git a/wear/protolayout/protolayout-material/api/current.txt b/wear/protolayout/protolayout-material/api/current.txt
index f3cac87..64cf2bf 100644
--- a/wear/protolayout/protolayout-material/api/current.txt
+++ b/wear/protolayout/protolayout-material/api/current.txt
@@ -163,6 +163,7 @@
   public class Text implements androidx.wear.protolayout.LayoutElementBuilders.LayoutElement {
     method public static androidx.wear.protolayout.material.Text? fromLayoutElement(androidx.wear.protolayout.LayoutElementBuilders.LayoutElement);
     method public androidx.wear.protolayout.ColorBuilders.ColorProp getColor();
+    method @androidx.wear.protolayout.expression.ProtoLayoutExperimental public boolean getExcludeFontPadding();
     method public androidx.wear.protolayout.LayoutElementBuilders.FontStyle getFontStyle();
     method public float getLineHeight();
     method public int getMaxLines();
@@ -180,6 +181,7 @@
     ctor public Text.Builder(android.content.Context, String);
     method public androidx.wear.protolayout.material.Text build();
     method public androidx.wear.protolayout.material.Text.Builder setColor(androidx.wear.protolayout.ColorBuilders.ColorProp);
+    method @androidx.wear.protolayout.expression.ProtoLayoutExperimental public androidx.wear.protolayout.material.Text.Builder setExcludeFontPadding(boolean);
     method public androidx.wear.protolayout.material.Text.Builder setItalic(boolean);
     method public androidx.wear.protolayout.material.Text.Builder setMaxLines(@IntRange(from=1) int);
     method public androidx.wear.protolayout.material.Text.Builder setModifiers(androidx.wear.protolayout.ModifiersBuilders.Modifiers);
diff --git a/wear/protolayout/protolayout-material/api/public_plus_experimental_current.txt b/wear/protolayout/protolayout-material/api/public_plus_experimental_current.txt
deleted file mode 100644
index 64cf2bf..0000000
--- a/wear/protolayout/protolayout-material/api/public_plus_experimental_current.txt
+++ /dev/null
@@ -1,312 +0,0 @@
-// Signature format: 4.0
-package androidx.wear.protolayout.material {
-
-  public class Button implements androidx.wear.protolayout.LayoutElementBuilders.LayoutElement {
-    method public static androidx.wear.protolayout.material.Button? fromLayoutElement(androidx.wear.protolayout.LayoutElementBuilders.LayoutElement);
-    method public androidx.wear.protolayout.material.ButtonColors getButtonColors();
-    method public androidx.wear.protolayout.ModifiersBuilders.Clickable getClickable();
-    method public androidx.wear.protolayout.TypeBuilders.StringProp? getContentDescription();
-    method public androidx.wear.protolayout.LayoutElementBuilders.LayoutElement? getCustomContent();
-    method public String? getIconContent();
-    method public String? getImageContent();
-    method public androidx.wear.protolayout.DimensionBuilders.ContainerDimension getSize();
-    method public String? getTextContent();
-  }
-
-  public static final class Button.Builder implements androidx.wear.protolayout.LayoutElementBuilders.LayoutElement.Builder {
-    ctor public Button.Builder(android.content.Context, androidx.wear.protolayout.ModifiersBuilders.Clickable);
-    method public androidx.wear.protolayout.material.Button build();
-    method public androidx.wear.protolayout.material.Button.Builder setButtonColors(androidx.wear.protolayout.material.ButtonColors);
-    method public androidx.wear.protolayout.material.Button.Builder setContentDescription(androidx.wear.protolayout.TypeBuilders.StringProp);
-    method public androidx.wear.protolayout.material.Button.Builder setContentDescription(CharSequence);
-    method public androidx.wear.protolayout.material.Button.Builder setCustomContent(androidx.wear.protolayout.LayoutElementBuilders.LayoutElement);
-    method public androidx.wear.protolayout.material.Button.Builder setIconContent(String);
-    method public androidx.wear.protolayout.material.Button.Builder setIconContent(String, androidx.wear.protolayout.DimensionBuilders.DpProp);
-    method public androidx.wear.protolayout.material.Button.Builder setImageContent(String);
-    method public androidx.wear.protolayout.material.Button.Builder setSize(androidx.wear.protolayout.DimensionBuilders.DpProp);
-    method public androidx.wear.protolayout.material.Button.Builder setSize(@Dimension(unit=androidx.annotation.Dimension.DP) float);
-    method public androidx.wear.protolayout.material.Button.Builder setTextContent(String);
-    method public androidx.wear.protolayout.material.Button.Builder setTextContent(String, int);
-  }
-
-  public class ButtonColors {
-    ctor public ButtonColors(androidx.wear.protolayout.ColorBuilders.ColorProp, androidx.wear.protolayout.ColorBuilders.ColorProp);
-    ctor public ButtonColors(@ColorInt int, @ColorInt int);
-    method public androidx.wear.protolayout.ColorBuilders.ColorProp getBackgroundColor();
-    method public androidx.wear.protolayout.ColorBuilders.ColorProp getContentColor();
-    method public static androidx.wear.protolayout.material.ButtonColors primaryButtonColors(androidx.wear.protolayout.material.Colors);
-    method public static androidx.wear.protolayout.material.ButtonColors secondaryButtonColors(androidx.wear.protolayout.material.Colors);
-  }
-
-  public class ButtonDefaults {
-    method public static androidx.wear.protolayout.DimensionBuilders.DpProp recommendedIconSize(androidx.wear.protolayout.DimensionBuilders.DpProp);
-    method public static androidx.wear.protolayout.DimensionBuilders.DpProp recommendedIconSize(@Dimension(unit=androidx.annotation.Dimension.DP) float);
-    field public static final androidx.wear.protolayout.DimensionBuilders.DpProp DEFAULT_SIZE;
-    field public static final androidx.wear.protolayout.DimensionBuilders.DpProp EXTRA_LARGE_SIZE;
-    field public static final androidx.wear.protolayout.DimensionBuilders.DpProp LARGE_SIZE;
-    field public static final androidx.wear.protolayout.material.ButtonColors PRIMARY_COLORS;
-    field public static final androidx.wear.protolayout.material.ButtonColors SECONDARY_COLORS;
-  }
-
-  public class Chip implements androidx.wear.protolayout.LayoutElementBuilders.LayoutElement {
-    method public static androidx.wear.protolayout.material.Chip? fromLayoutElement(androidx.wear.protolayout.LayoutElementBuilders.LayoutElement);
-    method public androidx.wear.protolayout.material.ChipColors getChipColors();
-    method public androidx.wear.protolayout.ModifiersBuilders.Clickable getClickable();
-    method public androidx.wear.protolayout.TypeBuilders.StringProp? getContentDescription();
-    method public androidx.wear.protolayout.LayoutElementBuilders.LayoutElement? getCustomContent();
-    method public androidx.wear.protolayout.DimensionBuilders.ContainerDimension getHeight();
-    method public int getHorizontalAlignment();
-    method public String? getIconContent();
-    method public String? getPrimaryLabelContent();
-    method public String? getSecondaryLabelContent();
-    method public androidx.wear.protolayout.DimensionBuilders.ContainerDimension getWidth();
-  }
-
-  public static final class Chip.Builder implements androidx.wear.protolayout.LayoutElementBuilders.LayoutElement.Builder {
-    ctor public Chip.Builder(android.content.Context, androidx.wear.protolayout.ModifiersBuilders.Clickable, androidx.wear.protolayout.DeviceParametersBuilders.DeviceParameters);
-    method public androidx.wear.protolayout.material.Chip build();
-    method public androidx.wear.protolayout.material.Chip.Builder setChipColors(androidx.wear.protolayout.material.ChipColors);
-    method public androidx.wear.protolayout.material.Chip.Builder setContentDescription(androidx.wear.protolayout.TypeBuilders.StringProp);
-    method public androidx.wear.protolayout.material.Chip.Builder setContentDescription(CharSequence);
-    method public androidx.wear.protolayout.material.Chip.Builder setCustomContent(androidx.wear.protolayout.LayoutElementBuilders.LayoutElement);
-    method public androidx.wear.protolayout.material.Chip.Builder setHorizontalAlignment(int);
-    method public androidx.wear.protolayout.material.Chip.Builder setIconContent(String);
-    method public androidx.wear.protolayout.material.Chip.Builder setPrimaryLabelContent(String);
-    method public androidx.wear.protolayout.material.Chip.Builder setSecondaryLabelContent(String);
-    method public androidx.wear.protolayout.material.Chip.Builder setWidth(androidx.wear.protolayout.DimensionBuilders.ContainerDimension);
-    method public androidx.wear.protolayout.material.Chip.Builder setWidth(@Dimension(unit=androidx.annotation.Dimension.DP) float);
-  }
-
-  public class ChipColors {
-    ctor public ChipColors(androidx.wear.protolayout.ColorBuilders.ColorProp, androidx.wear.protolayout.ColorBuilders.ColorProp);
-    ctor public ChipColors(androidx.wear.protolayout.ColorBuilders.ColorProp, androidx.wear.protolayout.ColorBuilders.ColorProp, androidx.wear.protolayout.ColorBuilders.ColorProp, androidx.wear.protolayout.ColorBuilders.ColorProp);
-    ctor public ChipColors(@ColorInt int, @ColorInt int);
-    ctor public ChipColors(@ColorInt int, @ColorInt int, @ColorInt int, @ColorInt int);
-    method public androidx.wear.protolayout.ColorBuilders.ColorProp getBackgroundColor();
-    method public androidx.wear.protolayout.ColorBuilders.ColorProp getContentColor();
-    method public androidx.wear.protolayout.ColorBuilders.ColorProp getIconColor();
-    method public androidx.wear.protolayout.ColorBuilders.ColorProp getSecondaryContentColor();
-    method public static androidx.wear.protolayout.material.ChipColors primaryChipColors(androidx.wear.protolayout.material.Colors);
-    method public static androidx.wear.protolayout.material.ChipColors secondaryChipColors(androidx.wear.protolayout.material.Colors);
-  }
-
-  public class ChipDefaults {
-    field public static final androidx.wear.protolayout.material.ChipColors COMPACT_PRIMARY_COLORS;
-    field public static final androidx.wear.protolayout.material.ChipColors COMPACT_SECONDARY_COLORS;
-    field public static final androidx.wear.protolayout.material.ChipColors PRIMARY_COLORS;
-    field public static final androidx.wear.protolayout.material.ChipColors SECONDARY_COLORS;
-    field public static final androidx.wear.protolayout.material.ChipColors TITLE_PRIMARY_COLORS;
-    field public static final androidx.wear.protolayout.material.ChipColors TITLE_SECONDARY_COLORS;
-  }
-
-  public class CircularProgressIndicator implements androidx.wear.protolayout.LayoutElementBuilders.LayoutElement {
-    method public static androidx.wear.protolayout.material.CircularProgressIndicator? fromLayoutElement(androidx.wear.protolayout.LayoutElementBuilders.LayoutElement);
-    method public androidx.wear.protolayout.material.ProgressIndicatorColors getCircularProgressIndicatorColors();
-    method public androidx.wear.protolayout.TypeBuilders.StringProp? getContentDescription();
-    method public androidx.wear.protolayout.DimensionBuilders.DegreesProp getEndAngle();
-    method public androidx.wear.protolayout.DimensionBuilders.DegreesProp getProgress();
-    method public androidx.wear.protolayout.DimensionBuilders.DegreesProp getStartAngle();
-    method public androidx.wear.protolayout.DimensionBuilders.DpProp getStrokeWidth();
-  }
-
-  public static final class CircularProgressIndicator.Builder implements androidx.wear.protolayout.LayoutElementBuilders.LayoutElement.Builder {
-    ctor public CircularProgressIndicator.Builder();
-    method public androidx.wear.protolayout.material.CircularProgressIndicator build();
-    method public androidx.wear.protolayout.material.CircularProgressIndicator.Builder setCircularProgressIndicatorColors(androidx.wear.protolayout.material.ProgressIndicatorColors);
-    method public androidx.wear.protolayout.material.CircularProgressIndicator.Builder setContentDescription(androidx.wear.protolayout.TypeBuilders.StringProp);
-    method public androidx.wear.protolayout.material.CircularProgressIndicator.Builder setContentDescription(CharSequence);
-    method public androidx.wear.protolayout.material.CircularProgressIndicator.Builder setEndAngle(float);
-    method public androidx.wear.protolayout.material.CircularProgressIndicator.Builder setProgress(androidx.wear.protolayout.TypeBuilders.FloatProp);
-    method public androidx.wear.protolayout.material.CircularProgressIndicator.Builder setProgress(@FloatRange(from=0, to=1) float);
-    method public androidx.wear.protolayout.material.CircularProgressIndicator.Builder setStartAngle(float);
-    method public androidx.wear.protolayout.material.CircularProgressIndicator.Builder setStrokeWidth(androidx.wear.protolayout.DimensionBuilders.DpProp);
-    method public androidx.wear.protolayout.material.CircularProgressIndicator.Builder setStrokeWidth(@Dimension(unit=androidx.annotation.Dimension.DP) float);
-  }
-
-  public class Colors {
-    ctor public Colors(@ColorInt int, @ColorInt int, @ColorInt int, @ColorInt int);
-    method @ColorInt public int getOnPrimary();
-    method @ColorInt public int getOnSurface();
-    method @ColorInt public int getPrimary();
-    method @ColorInt public int getSurface();
-    field public static final androidx.wear.protolayout.material.Colors DEFAULT;
-  }
-
-  public class CompactChip implements androidx.wear.protolayout.LayoutElementBuilders.LayoutElement {
-    method public static androidx.wear.protolayout.material.CompactChip? fromLayoutElement(androidx.wear.protolayout.LayoutElementBuilders.LayoutElement);
-    method public androidx.wear.protolayout.material.ChipColors getChipColors();
-    method public androidx.wear.protolayout.ModifiersBuilders.Clickable getClickable();
-    method public String getText();
-  }
-
-  public static final class CompactChip.Builder implements androidx.wear.protolayout.LayoutElementBuilders.LayoutElement.Builder {
-    ctor public CompactChip.Builder(android.content.Context, String, androidx.wear.protolayout.ModifiersBuilders.Clickable, androidx.wear.protolayout.DeviceParametersBuilders.DeviceParameters);
-    method public androidx.wear.protolayout.material.CompactChip build();
-    method public androidx.wear.protolayout.material.CompactChip.Builder setChipColors(androidx.wear.protolayout.material.ChipColors);
-  }
-
-  public class ProgressIndicatorColors {
-    ctor public ProgressIndicatorColors(androidx.wear.protolayout.ColorBuilders.ColorProp, androidx.wear.protolayout.ColorBuilders.ColorProp);
-    ctor public ProgressIndicatorColors(@ColorInt int, @ColorInt int);
-    method public androidx.wear.protolayout.ColorBuilders.ColorProp getIndicatorColor();
-    method public androidx.wear.protolayout.ColorBuilders.ColorProp getTrackColor();
-    method public static androidx.wear.protolayout.material.ProgressIndicatorColors progressIndicatorColors(androidx.wear.protolayout.material.Colors);
-  }
-
-  public class ProgressIndicatorDefaults {
-    field public static final androidx.wear.protolayout.material.ProgressIndicatorColors DEFAULT_COLORS;
-    field public static final androidx.wear.protolayout.DimensionBuilders.DpProp DEFAULT_STROKE_WIDTH;
-    field public static final float GAP_END_ANGLE = 156.1f;
-    field public static final float GAP_START_ANGLE = -156.1f;
-  }
-
-  public class Text implements androidx.wear.protolayout.LayoutElementBuilders.LayoutElement {
-    method public static androidx.wear.protolayout.material.Text? fromLayoutElement(androidx.wear.protolayout.LayoutElementBuilders.LayoutElement);
-    method public androidx.wear.protolayout.ColorBuilders.ColorProp getColor();
-    method @androidx.wear.protolayout.expression.ProtoLayoutExperimental public boolean getExcludeFontPadding();
-    method public androidx.wear.protolayout.LayoutElementBuilders.FontStyle getFontStyle();
-    method public float getLineHeight();
-    method public int getMaxLines();
-    method public androidx.wear.protolayout.ModifiersBuilders.Modifiers getModifiers();
-    method public int getMultilineAlignment();
-    method public int getOverflow();
-    method public androidx.wear.protolayout.TypeBuilders.StringProp getText();
-    method public int getWeight();
-    method public boolean isItalic();
-    method public boolean isUnderline();
-  }
-
-  public static final class Text.Builder implements androidx.wear.protolayout.LayoutElementBuilders.LayoutElement.Builder {
-    ctor public Text.Builder(android.content.Context, androidx.wear.protolayout.TypeBuilders.StringProp, androidx.wear.protolayout.TypeBuilders.StringLayoutConstraint);
-    ctor public Text.Builder(android.content.Context, String);
-    method public androidx.wear.protolayout.material.Text build();
-    method public androidx.wear.protolayout.material.Text.Builder setColor(androidx.wear.protolayout.ColorBuilders.ColorProp);
-    method @androidx.wear.protolayout.expression.ProtoLayoutExperimental public androidx.wear.protolayout.material.Text.Builder setExcludeFontPadding(boolean);
-    method public androidx.wear.protolayout.material.Text.Builder setItalic(boolean);
-    method public androidx.wear.protolayout.material.Text.Builder setMaxLines(@IntRange(from=1) int);
-    method public androidx.wear.protolayout.material.Text.Builder setModifiers(androidx.wear.protolayout.ModifiersBuilders.Modifiers);
-    method public androidx.wear.protolayout.material.Text.Builder setMultilineAlignment(int);
-    method public androidx.wear.protolayout.material.Text.Builder setOverflow(int);
-    method public androidx.wear.protolayout.material.Text.Builder setTypography(int);
-    method public androidx.wear.protolayout.material.Text.Builder setUnderline(boolean);
-    method public androidx.wear.protolayout.material.Text.Builder setWeight(int);
-  }
-
-  public class TitleChip implements androidx.wear.protolayout.LayoutElementBuilders.LayoutElement {
-    method public static androidx.wear.protolayout.material.TitleChip? fromLayoutElement(androidx.wear.protolayout.LayoutElementBuilders.LayoutElement);
-    method public androidx.wear.protolayout.material.ChipColors getChipColors();
-    method public androidx.wear.protolayout.ModifiersBuilders.Clickable getClickable();
-    method public int getHorizontalAlignment();
-    method public String getText();
-    method public androidx.wear.protolayout.DimensionBuilders.ContainerDimension getWidth();
-  }
-
-  public static final class TitleChip.Builder implements androidx.wear.protolayout.LayoutElementBuilders.LayoutElement.Builder {
-    ctor public TitleChip.Builder(android.content.Context, String, androidx.wear.protolayout.ModifiersBuilders.Clickable, androidx.wear.protolayout.DeviceParametersBuilders.DeviceParameters);
-    method public androidx.wear.protolayout.material.TitleChip build();
-    method public androidx.wear.protolayout.material.TitleChip.Builder setChipColors(androidx.wear.protolayout.material.ChipColors);
-    method public androidx.wear.protolayout.material.TitleChip.Builder setHorizontalAlignment(int);
-    method public androidx.wear.protolayout.material.TitleChip.Builder setWidth(androidx.wear.protolayout.DimensionBuilders.ContainerDimension);
-    method public androidx.wear.protolayout.material.TitleChip.Builder setWidth(@Dimension(unit=androidx.annotation.Dimension.DP) float);
-  }
-
-  public class Typography {
-    field public static final int TYPOGRAPHY_BODY1 = 7; // 0x7
-    field public static final int TYPOGRAPHY_BODY2 = 8; // 0x8
-    field public static final int TYPOGRAPHY_BUTTON = 9; // 0x9
-    field public static final int TYPOGRAPHY_CAPTION1 = 10; // 0xa
-    field public static final int TYPOGRAPHY_CAPTION2 = 11; // 0xb
-    field public static final int TYPOGRAPHY_CAPTION3 = 12; // 0xc
-    field public static final int TYPOGRAPHY_DISPLAY1 = 1; // 0x1
-    field public static final int TYPOGRAPHY_DISPLAY2 = 2; // 0x2
-    field public static final int TYPOGRAPHY_DISPLAY3 = 3; // 0x3
-    field public static final int TYPOGRAPHY_TITLE1 = 4; // 0x4
-    field public static final int TYPOGRAPHY_TITLE2 = 5; // 0x5
-    field public static final int TYPOGRAPHY_TITLE3 = 6; // 0x6
-  }
-
-}
-
-package androidx.wear.protolayout.material.layouts {
-
-  public class EdgeContentLayout implements androidx.wear.protolayout.LayoutElementBuilders.LayoutElement {
-    method public static androidx.wear.protolayout.material.layouts.EdgeContentLayout? fromLayoutElement(androidx.wear.protolayout.LayoutElementBuilders.LayoutElement);
-    method public androidx.wear.protolayout.LayoutElementBuilders.LayoutElement? getContent();
-    method public androidx.wear.protolayout.LayoutElementBuilders.LayoutElement? getEdgeContent();
-    method public androidx.wear.protolayout.LayoutElementBuilders.LayoutElement? getPrimaryLabelTextContent();
-    method public androidx.wear.protolayout.LayoutElementBuilders.LayoutElement? getSecondaryLabelTextContent();
-  }
-
-  public static final class EdgeContentLayout.Builder implements androidx.wear.protolayout.LayoutElementBuilders.LayoutElement.Builder {
-    ctor public EdgeContentLayout.Builder(androidx.wear.protolayout.DeviceParametersBuilders.DeviceParameters);
-    method public androidx.wear.protolayout.material.layouts.EdgeContentLayout build();
-    method public androidx.wear.protolayout.material.layouts.EdgeContentLayout.Builder setContent(androidx.wear.protolayout.LayoutElementBuilders.LayoutElement);
-    method public androidx.wear.protolayout.material.layouts.EdgeContentLayout.Builder setEdgeContent(androidx.wear.protolayout.LayoutElementBuilders.LayoutElement);
-    method public androidx.wear.protolayout.material.layouts.EdgeContentLayout.Builder setPrimaryLabelTextContent(androidx.wear.protolayout.LayoutElementBuilders.LayoutElement);
-    method public androidx.wear.protolayout.material.layouts.EdgeContentLayout.Builder setSecondaryLabelTextContent(androidx.wear.protolayout.LayoutElementBuilders.LayoutElement);
-  }
-
-  public class LayoutDefaults {
-    field public static final androidx.wear.protolayout.DimensionBuilders.DpProp DEFAULT_VERTICAL_SPACER_HEIGHT;
-    field public static final float EDGE_CONTENT_LAYOUT_PADDING_ABOVE_MAIN_CONTENT_DP = 6.0f;
-    field public static final float EDGE_CONTENT_LAYOUT_PADDING_BELOW_MAIN_CONTENT_DP = 8.0f;
-    field @Deprecated public static final int MULTI_BUTTON_MAX_NUMBER = 7; // 0x7
-    field public static final androidx.wear.protolayout.DimensionBuilders.DpProp MULTI_SLOT_LAYOUT_HORIZONTAL_SPACER_WIDTH;
-  }
-
-  public static final class LayoutDefaults.MultiButtonLayoutDefaults {
-    field public static final int BUTTON_MAX_NUMBER = 7; // 0x7
-    field public static final androidx.wear.protolayout.DimensionBuilders.DpProp BUTTON_SIZE_FOR_1_BUTTON;
-    field public static final androidx.wear.protolayout.DimensionBuilders.DpProp BUTTON_SIZE_FOR_2_BUTTONS;
-    field public static final androidx.wear.protolayout.DimensionBuilders.DpProp BUTTON_SIZE_FOR_3_PLUS_BUTTONS;
-  }
-
-  public class MultiButtonLayout implements androidx.wear.protolayout.LayoutElementBuilders.LayoutElement {
-    method public static androidx.wear.protolayout.material.layouts.MultiButtonLayout? fromLayoutElement(androidx.wear.protolayout.LayoutElementBuilders.LayoutElement);
-    method public java.util.List<androidx.wear.protolayout.LayoutElementBuilders.LayoutElement!> getButtonContents();
-    method public int getFiveButtonDistribution();
-    field public static final int FIVE_BUTTON_DISTRIBUTION_BOTTOM_HEAVY = 2; // 0x2
-    field public static final int FIVE_BUTTON_DISTRIBUTION_TOP_HEAVY = 1; // 0x1
-  }
-
-  public static final class MultiButtonLayout.Builder implements androidx.wear.protolayout.LayoutElementBuilders.LayoutElement.Builder {
-    ctor public MultiButtonLayout.Builder();
-    method public androidx.wear.protolayout.material.layouts.MultiButtonLayout.Builder addButtonContent(androidx.wear.protolayout.LayoutElementBuilders.LayoutElement);
-    method public androidx.wear.protolayout.material.layouts.MultiButtonLayout build();
-    method public androidx.wear.protolayout.material.layouts.MultiButtonLayout.Builder setFiveButtonDistribution(int);
-  }
-
-  public class MultiSlotLayout implements androidx.wear.protolayout.LayoutElementBuilders.LayoutElement {
-    method public static androidx.wear.protolayout.material.layouts.MultiSlotLayout? fromLayoutElement(androidx.wear.protolayout.LayoutElementBuilders.LayoutElement);
-    method @Dimension(unit=androidx.annotation.Dimension.DP) public float getHorizontalSpacerWidth();
-    method public java.util.List<androidx.wear.protolayout.LayoutElementBuilders.LayoutElement!> getSlotContents();
-  }
-
-  public static final class MultiSlotLayout.Builder implements androidx.wear.protolayout.LayoutElementBuilders.LayoutElement.Builder {
-    ctor public MultiSlotLayout.Builder();
-    method public androidx.wear.protolayout.material.layouts.MultiSlotLayout.Builder addSlotContent(androidx.wear.protolayout.LayoutElementBuilders.LayoutElement);
-    method public androidx.wear.protolayout.material.layouts.MultiSlotLayout build();
-    method public androidx.wear.protolayout.material.layouts.MultiSlotLayout.Builder setHorizontalSpacerWidth(@Dimension(unit=androidx.annotation.Dimension.DP) float);
-  }
-
-  public class PrimaryLayout implements androidx.wear.protolayout.LayoutElementBuilders.LayoutElement {
-    method public static androidx.wear.protolayout.material.layouts.PrimaryLayout? fromLayoutElement(androidx.wear.protolayout.LayoutElementBuilders.LayoutElement);
-    method public androidx.wear.protolayout.LayoutElementBuilders.LayoutElement? getContent();
-    method public androidx.wear.protolayout.LayoutElementBuilders.LayoutElement? getPrimaryChipContent();
-    method public androidx.wear.protolayout.LayoutElementBuilders.LayoutElement? getPrimaryLabelTextContent();
-    method public androidx.wear.protolayout.LayoutElementBuilders.LayoutElement? getSecondaryLabelTextContent();
-    method @Dimension(unit=androidx.annotation.Dimension.DP) public float getVerticalSpacerHeight();
-  }
-
-  public static final class PrimaryLayout.Builder implements androidx.wear.protolayout.LayoutElementBuilders.LayoutElement.Builder {
-    ctor public PrimaryLayout.Builder(androidx.wear.protolayout.DeviceParametersBuilders.DeviceParameters);
-    method public androidx.wear.protolayout.material.layouts.PrimaryLayout build();
-    method public androidx.wear.protolayout.material.layouts.PrimaryLayout.Builder setContent(androidx.wear.protolayout.LayoutElementBuilders.LayoutElement);
-    method public androidx.wear.protolayout.material.layouts.PrimaryLayout.Builder setPrimaryChipContent(androidx.wear.protolayout.LayoutElementBuilders.LayoutElement);
-    method public androidx.wear.protolayout.material.layouts.PrimaryLayout.Builder setPrimaryLabelTextContent(androidx.wear.protolayout.LayoutElementBuilders.LayoutElement);
-    method public androidx.wear.protolayout.material.layouts.PrimaryLayout.Builder setSecondaryLabelTextContent(androidx.wear.protolayout.LayoutElementBuilders.LayoutElement);
-    method public androidx.wear.protolayout.material.layouts.PrimaryLayout.Builder setVerticalSpacerHeight(@Dimension(unit=androidx.annotation.Dimension.DP) float);
-  }
-
-}
-
diff --git a/wear/protolayout/protolayout-material/api/restricted_current.txt b/wear/protolayout/protolayout-material/api/restricted_current.txt
index f3cac87..64cf2bf 100644
--- a/wear/protolayout/protolayout-material/api/restricted_current.txt
+++ b/wear/protolayout/protolayout-material/api/restricted_current.txt
@@ -163,6 +163,7 @@
   public class Text implements androidx.wear.protolayout.LayoutElementBuilders.LayoutElement {
     method public static androidx.wear.protolayout.material.Text? fromLayoutElement(androidx.wear.protolayout.LayoutElementBuilders.LayoutElement);
     method public androidx.wear.protolayout.ColorBuilders.ColorProp getColor();
+    method @androidx.wear.protolayout.expression.ProtoLayoutExperimental public boolean getExcludeFontPadding();
     method public androidx.wear.protolayout.LayoutElementBuilders.FontStyle getFontStyle();
     method public float getLineHeight();
     method public int getMaxLines();
@@ -180,6 +181,7 @@
     ctor public Text.Builder(android.content.Context, String);
     method public androidx.wear.protolayout.material.Text build();
     method public androidx.wear.protolayout.material.Text.Builder setColor(androidx.wear.protolayout.ColorBuilders.ColorProp);
+    method @androidx.wear.protolayout.expression.ProtoLayoutExperimental public androidx.wear.protolayout.material.Text.Builder setExcludeFontPadding(boolean);
     method public androidx.wear.protolayout.material.Text.Builder setItalic(boolean);
     method public androidx.wear.protolayout.material.Text.Builder setMaxLines(@IntRange(from=1) int);
     method public androidx.wear.protolayout.material.Text.Builder setModifiers(androidx.wear.protolayout.ModifiersBuilders.Modifiers);
diff --git a/wear/protolayout/protolayout-material/lint-baseline.xml b/wear/protolayout/protolayout-material/lint-baseline.xml
index d1d66c6..4489b50 100644
--- a/wear/protolayout/protolayout-material/lint-baseline.xml
+++ b/wear/protolayout/protolayout-material/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 8.1.0-alpha07" type="baseline" client="gradle" dependencies="false" name="AGP (8.0.0-beta03)" variant="all" version="8.1.0-alpha07">
+<issues format="6" by="lint 8.1.0-beta02" type="baseline" client="gradle" dependencies="false" name="AGP (8.1.0-beta02)" variant="all" version="8.1.0-beta02">
 
     <issue
         id="BanThreadSleep"
diff --git a/wear/protolayout/protolayout-proto/src/main/proto/color.proto b/wear/protolayout/protolayout-proto/src/main/proto/color.proto
index f5535d9..d19205a 100644
--- a/wear/protolayout/protolayout-proto/src/main/proto/color.proto
+++ b/wear/protolayout/protolayout-proto/src/main/proto/color.proto
@@ -10,9 +10,15 @@
 
 // A property defining a color.
 message ColorProp {
-  // The color value, in ARGB format.
+  // The static color value, in ARGB format. If a dynamic value is also set and the
+  // renderer supports dynamic values for the corresponding field, this static
+  // value will be ignored. If the static value is not specified, zero
+  // (equivalent to {@link Color#TRANSPARENT}) will be used instead.
   optional uint32 argb = 1;
 
-  // The dynamic value.
+  // The dynamic value. Note that when setting this value, the static value is
+  // still required to be set to support older renderers that only read the
+  // static value. If {@code dynamicValue} has an invalid result, the provided
+  // static value will be used instead.
   androidx.wear.protolayout.expression.proto.DynamicColor dynamic_value = 2;
 }
diff --git a/wear/protolayout/protolayout-proto/src/main/proto/dimension.proto b/wear/protolayout/protolayout-proto/src/main/proto/dimension.proto
index 2a15694..5ff8223 100644
--- a/wear/protolayout/protolayout-proto/src/main/proto/dimension.proto
+++ b/wear/protolayout/protolayout-proto/src/main/proto/dimension.proto
@@ -12,10 +12,15 @@
 
 // A type for linear dimensions, measured in dp.
 message DpProp {
-  // The value, in dp.
+  // The static value, in dp. If a dynamic value is also set and the renderer supports
+  // dynamic values for the corresponding field, this static value will be
+  // ignored. If the static value is not specified, zero will be used instead.
   optional float value = 1;
 
-  // The dynamic value, in dp.
+  // The dynamic value, in dp. Note that when setting this value, the static value is
+  // still required to be set to support older renderers that only read the
+  // static value. If {@code dynamicValue} has an invalid result, the provided
+  // static value will be used instead.
   androidx.wear.protolayout.expression.proto.DynamicFloat dynamic_value = 2;
 
   oneof optional_value_for_layout {
@@ -77,10 +82,15 @@
 
 // A type for angular dimensions, measured in degrees.
 message DegreesProp {
-  // The value, in degrees.
+  // The static value, in degrees. If a dynamic value is also set and the renderer
+  // supports dynamic values for the corresponding field, this static value will be
+  // ignored. If the static value is not specified, zero will be used instead.
   optional float value = 1;
 
-  // The dynamic value, in degrees.
+  // The dynamic value, in degrees. Note that when setting this value, the static value is
+  // still required to be set to support older renderers that only read the
+  // static value. If {@code dynamicValue} has an invalid result, the provided
+  // static value will be used instead.
   androidx.wear.protolayout.expression.proto.DynamicFloat dynamic_value = 2;
 
   oneof optional_value_for_layout {
diff --git a/wear/protolayout/protolayout-proto/src/main/proto/types.proto b/wear/protolayout/protolayout-proto/src/main/proto/types.proto
index 9d9227f..865f5e3 100644
--- a/wear/protolayout/protolayout-proto/src/main/proto/types.proto
+++ b/wear/protolayout/protolayout-proto/src/main/proto/types.proto
@@ -22,11 +22,17 @@
 message StringProp {
 
   oneof optional_value {
-    // The value.
+    // The static value. If a dynamic value is also set and the renderer supports
+    // dynamic values for the corresponding field, this static value will be
+    // ignored. If the static value is not specified, {@code null} will be used
+    // instead.
     string value = 1;
   }
 
-  // The dynamic value.
+  // The dynamic value. Note that when setting this value, the static value is
+  // still required to be set to support older renderers that only read the
+  // static value. If {@code dynamicValue} has an invalid result, the provided
+  // static value will be used instead.
   androidx.wear.protolayout.expression.proto.DynamicString dynamic_value = 2;
 
   oneof optional_value_for_layout {
@@ -42,10 +48,15 @@
 
 // A float type.
 message FloatProp {
-  // The value.
+  // The static value. If a dynamic value is also set and the renderer supports
+  // dynamic values for the corresponding field, this static value will be
+  // ignored. If the static value is not specified, zero will be used instead.
   optional float value = 1;
 
-  // The dynamic value.
+  // The dynamic value. Note that when setting this value, the static value is
+  // still required to be set to support older renderers that only read the
+  // static value. If {@code dynamicValue} has an invalid result, the provided
+  // static value will be used instead.
   androidx.wear.protolayout.expression.proto.DynamicFloat dynamic_value = 2;
 }
 
diff --git a/wear/protolayout/protolayout-renderer/lint-baseline.xml b/wear/protolayout/protolayout-renderer/lint-baseline.xml
deleted file mode 100644
index 74ac90f..0000000
--- a/wear/protolayout/protolayout-renderer/lint-baseline.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 8.1.0-alpha07" type="baseline" client="gradle" dependencies="false" name="AGP (8.0.0-beta03)" variant="all" version="8.1.0-alpha07">
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public static final String ROOT_NODE_ID = NODE_ID_PREFIX + &quot;1&quot;;"
-        errorLine2="                               ~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/wear/protolayout/renderer/common/ProtoLayoutDiffer.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="        public NodeFingerprint getFingerprint() {"
-        errorLine2="                               ~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/wear/protolayout/renderer/common/ProtoLayoutDiffer.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public static final class LayoutDiff {"
-        errorLine2="                              ~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/wear/protolayout/renderer/common/ProtoLayoutDiffer.java"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public static boolean areNodesEquivalent("
-        errorLine2="                          ~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/wear/protolayout/renderer/common/ProtoLayoutDiffer.java"/>
-    </issue>
-
-</issues>
diff --git a/wear/protolayout/protolayout-renderer/src/main/java/androidx/wear/protolayout/renderer/dynamicdata/ProtoLayoutDynamicDataPipeline.java b/wear/protolayout/protolayout-renderer/src/main/java/androidx/wear/protolayout/renderer/dynamicdata/ProtoLayoutDynamicDataPipeline.java
index 3b0a666..88f1373 100644
--- a/wear/protolayout/protolayout-renderer/src/main/java/androidx/wear/protolayout/renderer/dynamicdata/ProtoLayoutDynamicDataPipeline.java
+++ b/wear/protolayout/protolayout-renderer/src/main/java/androidx/wear/protolayout/renderer/dynamicdata/ProtoLayoutDynamicDataPipeline.java
@@ -150,13 +150,13 @@
         if (sensorGateway != null) {
             evaluatorConfigBuilder.addPlatformDataProvider(
                     new SensorGatewaySingleDataProvider(
-                            sensorGateway, PlatformHealthSources.HEART_RATE_BPM),
-                    Collections.singleton(PlatformHealthSources.HEART_RATE_BPM)
+                            sensorGateway, PlatformHealthSources.Keys.HEART_RATE_BPM),
+                    Collections.singleton(PlatformHealthSources.Keys.HEART_RATE_BPM)
             );
             evaluatorConfigBuilder.addPlatformDataProvider(
                     new SensorGatewaySingleDataProvider(
-                            sensorGateway, PlatformHealthSources.DAILY_STEPS),
-                    Collections.singleton(PlatformHealthSources.DAILY_STEPS)
+                            sensorGateway, PlatformHealthSources.Keys.DAILY_STEPS),
+                    Collections.singleton(PlatformHealthSources.Keys.DAILY_STEPS)
             );
         }
         if (enableAnimations) {
diff --git a/wear/protolayout/protolayout/api/current.txt b/wear/protolayout/protolayout/api/current.txt
index 87a1ce4..2544ad2 100644
--- a/wear/protolayout/protolayout/api/current.txt
+++ b/wear/protolayout/protolayout/api/current.txt
@@ -559,7 +559,7 @@
     method public androidx.wear.protolayout.LayoutElementBuilders.FontStyle.Builder setWeight(int);
   }
 
-  @Deprecated public static class LayoutElementBuilders.FontStyles {
+  @Deprecated public static final class LayoutElementBuilders.FontStyles {
     method @Deprecated public static androidx.wear.protolayout.LayoutElementBuilders.FontStyle.Builder body1(androidx.wear.protolayout.DeviceParametersBuilders.DeviceParameters);
     method @Deprecated public static androidx.wear.protolayout.LayoutElementBuilders.FontStyle.Builder body2(androidx.wear.protolayout.DeviceParametersBuilders.DeviceParameters);
     method @Deprecated public static androidx.wear.protolayout.LayoutElementBuilders.FontStyle.Builder button(androidx.wear.protolayout.DeviceParametersBuilders.DeviceParameters);
diff --git a/wear/protolayout/protolayout/api/restricted_current.txt b/wear/protolayout/protolayout/api/restricted_current.txt
index 87a1ce4..2544ad2 100644
--- a/wear/protolayout/protolayout/api/restricted_current.txt
+++ b/wear/protolayout/protolayout/api/restricted_current.txt
@@ -559,7 +559,7 @@
     method public androidx.wear.protolayout.LayoutElementBuilders.FontStyle.Builder setWeight(int);
   }
 
-  @Deprecated public static class LayoutElementBuilders.FontStyles {
+  @Deprecated public static final class LayoutElementBuilders.FontStyles {
     method @Deprecated public static androidx.wear.protolayout.LayoutElementBuilders.FontStyle.Builder body1(androidx.wear.protolayout.DeviceParametersBuilders.DeviceParameters);
     method @Deprecated public static androidx.wear.protolayout.LayoutElementBuilders.FontStyle.Builder body2(androidx.wear.protolayout.DeviceParametersBuilders.DeviceParameters);
     method @Deprecated public static androidx.wear.protolayout.LayoutElementBuilders.FontStyle.Builder button(androidx.wear.protolayout.DeviceParametersBuilders.DeviceParameters);
diff --git a/wear/protolayout/protolayout/lint-baseline.xml b/wear/protolayout/protolayout/lint-baseline.xml
index 67777b6..b19d0be 100644
--- a/wear/protolayout/protolayout/lint-baseline.xml
+++ b/wear/protolayout/protolayout/lint-baseline.xml
@@ -1,14 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 8.1.0-alpha07" type="baseline" client="gradle" dependencies="false" name="AGP (8.0.0-beta03)" variant="all" version="8.1.0-alpha07">
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public @interface AngularAlignment {}"
-        errorLine2="                      ~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/wear/protolayout/LayoutElementBuilders.java"/>
-    </issue>
+<issues format="6" by="lint 8.1.0-beta02" type="baseline" client="gradle" dependencies="false" name="AGP (8.1.0-beta02)" variant="all" version="8.1.0-beta02">
 
     <issue
         id="UnsafeOptInUsageError"
diff --git a/wear/protolayout/protolayout/src/main/java/androidx/wear/protolayout/ColorBuilders.java b/wear/protolayout/protolayout/src/main/java/androidx/wear/protolayout/ColorBuilders.java
index e70f637..36981b9 100644
--- a/wear/protolayout/protolayout/src/main/java/androidx/wear/protolayout/ColorBuilders.java
+++ b/wear/protolayout/protolayout/src/main/java/androidx/wear/protolayout/ColorBuilders.java
@@ -18,6 +18,8 @@
 
 import static androidx.wear.protolayout.expression.Preconditions.checkNotNull;
 
+import android.graphics.Color;
+
 import androidx.annotation.ColorInt;
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
@@ -115,9 +117,10 @@
             }
 
             /**
-             * Sets the color value, in ARGB format.
-             * If a dynamic value is also set and the renderer supports dynamic values for the
-             * corresponding field, this static value will be ignored.
+             * Sets the static  color value, in ARGB format. If a dynamic value is also set and the
+             * renderer supports dynamic values for the corresponding field, this static value
+             * will be ignored. If the static value is not specified, zero (equivalent to {@link
+             * Color#TRANSPARENT}) will be used instead.
              *
              * @since 1.0
              */
@@ -130,7 +133,9 @@
 
             /**
              * Sets the dynamic value. Note that when setting this value, the static value is still
-             * required to be set to support older renderers that only read the static value.
+             * required to be set to support older renderers that only read the static value. If
+             * {@code dynamicValue} has an invalid result, the provided static value will be used
+             * instead.
              *
              * @since 1.2
              */
@@ -142,7 +147,13 @@
                 return this;
             }
 
-            /** Builds an instance from accumulated values. */
+            /**
+             * Builds an instance from accumulated values.
+             *
+             * @throws IllegalStateException if a dynamic value is set using {@link
+             *     #setDynamicValue(DynamicColor)} but neither {@link #Builder(int)} nor {@link
+             *     #setArgb(int)} is used to provide a static value.
+             */
             @NonNull
             public ColorProp build() {
                 if (mImpl.hasDynamicValue() && !mImpl.hasArgb()) {
diff --git a/wear/protolayout/protolayout/src/main/java/androidx/wear/protolayout/DimensionBuilders.java b/wear/protolayout/protolayout/src/main/java/androidx/wear/protolayout/DimensionBuilders.java
index 55627c1..1114eb6 100644
--- a/wear/protolayout/protolayout/src/main/java/androidx/wear/protolayout/DimensionBuilders.java
+++ b/wear/protolayout/protolayout/src/main/java/androidx/wear/protolayout/DimensionBuilders.java
@@ -229,7 +229,7 @@
             /**
              * Sets the static value, in dp. If a dynamic value is also set and the renderer
              * supports dynamic values for the corresponding field, this static value will be
-             * ignored.
+             * ignored. If the static value is not specified, zero will be used instead.
              *
              * @since 1.0
              */
@@ -243,6 +243,8 @@
             /**
              * Sets the dynamic value, in dp. Note that when setting this value, the static value is
              * still required to be set to support older renderers that only read the static value.
+             * If {@code dynamicValue} has an invalid result, the provided static value will be used
+             * instead.
              *
              * @since 1.2
              */
@@ -254,6 +256,13 @@
                 return this;
             }
 
+            /**
+             * Builds an instance from accumulated values.
+             *
+             * @throws IllegalStateException if a dynamic value is set using {@link
+             *     #setDynamicValue(DynamicFloat)} but neither {@link #Builder(float)} nor {@link
+             *     #setValue(float)} is used to provide a static value.
+             */
             @Override
             @NonNull
             public DpProp build() {
@@ -525,8 +534,7 @@
             public Builder() {}
 
             /**
-             * Sets the value, in sp. If a dynamic value is also set and the renderer supports
-             * dynamic values for the corresponding field, this static value will be ignored.
+             * Sets the value, in sp.
              *
              * @since 1.0
              */
@@ -727,7 +735,7 @@
             /**
              * Sets the static value, in degrees. If a dynamic value is also set and the renderer
              * supports dynamic values for the corresponding field, this static value will be
-             * ignored.
+             * ignored. If the static value is not specified, zero will be used instead.
              *
              * @since 1.0
              */
@@ -741,7 +749,8 @@
             /**
              * Sets the dynamic value, in degrees. Note that when setting this value, the static
              * value is still required to be set to support older renderers that only read the
-             * static value.
+             * static value. If {@code dynamicValue} has an invalid result, the provided static
+             * value will be used instead.
              *
              * @since 1.2
              */
@@ -753,7 +762,13 @@
                 return this;
             }
 
-            /** Builds an instance from accumulated values. */
+            /**
+             * Builds an instance from accumulated values.
+             *
+             * @throws IllegalStateException if a dynamic value is set using {@link
+             *     #setDynamicValue(DynamicFloat)} but neither {@link #Builder(float)} nor {@link
+             *     #setValue(float)} is used to provide a static value.
+             */
             @NonNull
             public DegreesProp build() {
                 if (mImpl.hasDynamicValue() && !mImpl.hasValue()) {
diff --git a/wear/protolayout/protolayout/src/main/java/androidx/wear/protolayout/LayoutElementBuilders.java b/wear/protolayout/protolayout/src/main/java/androidx/wear/protolayout/LayoutElementBuilders.java
index 43fe141..1930199 100644
--- a/wear/protolayout/protolayout/src/main/java/androidx/wear/protolayout/LayoutElementBuilders.java
+++ b/wear/protolayout/protolayout/src/main/java/androidx/wear/protolayout/LayoutElementBuilders.java
@@ -5134,11 +5134,9 @@
      *     {@link FontStyle}.
      */
     @Deprecated
-    public static class FontStyles {
+    public static final class FontStyles {
         private static final int LARGE_SCREEN_WIDTH_DP = 210;
 
-        private FontStyles() {}
-
         private static boolean isLargeScreen(@NonNull DeviceParameters deviceParameters) {
             return deviceParameters.getScreenWidthDp() >= LARGE_SCREEN_WIDTH_DP;
         }
@@ -5292,5 +5290,7 @@
             return new FontStyle.Builder()
                     .setSize(DimensionBuilders.sp(isLargeScreen(deviceParameters) ? 14 : 12));
         }
+
+        private FontStyles() {}
     }
 }
diff --git a/wear/protolayout/protolayout/src/main/java/androidx/wear/protolayout/TypeBuilders.java b/wear/protolayout/protolayout/src/main/java/androidx/wear/protolayout/TypeBuilders.java
index 15cf3aa..7a4cee0 100644
--- a/wear/protolayout/protolayout/src/main/java/androidx/wear/protolayout/TypeBuilders.java
+++ b/wear/protolayout/protolayout/src/main/java/androidx/wear/protolayout/TypeBuilders.java
@@ -182,7 +182,8 @@
 
             /**
              * Sets the static value. If a dynamic value is also set and the renderer supports
-             * dynamic values for the corresponding field, this static value will be ignored.
+             * dynamic values for the corresponding field, this static value will be ignored. If the
+             * static value is not specified, {@code null} will be used instead.
              *
              * @since 1.0
              */
@@ -195,7 +196,9 @@
 
             /**
              * Sets the dynamic value. Note that when setting this value, the static value is still
-             * required to be set to support older renderers that only read the static value.
+             * required to be set to support older renderers that only read the static value. If
+             * {@code dynamicValue} has an invalid result, the provided static value will be used
+             * instead.
              *
              * @since 1.2
              */
@@ -207,7 +210,14 @@
                 return this;
             }
 
-            /** Builds an instance from accumulated values. */
+            /**
+             * Builds an instance from accumulated values.
+             *
+             * @throws IllegalStateException if a dynamic value is set using {@link
+             *     #setDynamicValue(DynamicBuilders.DynamicString)} but neither {@link
+             *     #Builder(String)} nor {@link #setValue(String)} is used to provide a static
+             *     value.
+             */
             @NonNull
             public StringProp build() {
                 if (mImpl.hasDynamicValue() && !mImpl.hasValue()) {
@@ -400,8 +410,8 @@
 
             /**
              * Sets the static value. If a dynamic value is also set and the renderer supports
-             * dynamic values for the corresponding field, this static value will be ignored.
-             * If the static value is not specified, Zero will be used instead. 
+             * dynamic values for the corresponding field, this static value will be ignored. If the
+             * static value is not specified, zero will be used instead.
              *
              * @since 1.0
              */
@@ -415,9 +425,8 @@
             /**
              * Sets the dynamic value. Note that when setting this value, the static value is still
              * required to be set (with either {@link #Builder(float)} or {@link #setValue(float)})
-             * to support older renderers that only read the static value. If {@code dynamicValue
-             * } has an invalid result, the provided static value will be used
-             * instead.
+             * to support older renderers that only read the static value. If {@code dynamicValue }
+             * has an invalid result, the provided static value will be used instead.
              *
              * @since 1.2
              */
@@ -432,15 +441,13 @@
             /**
              * Builds an instance from accumulated values.
              *
-             * @throws IllegalStateException if a dynamic value is set using
-             *                               {@link #setDynamicValue(DynamicFloat)} but neither
-             *                               {@link #Builder(float)} nor
-             *                               {@link #setValue(float)} is used to provide a static
-             *                               value.
+             * @throws IllegalStateException if a dynamic value is set using {@link
+             *     #setDynamicValue(DynamicFloat)} but neither {@link #Builder(float)} nor {@link
+             *     #setValue(float)} is used to provide a static value.
              */
             @NonNull
             public FloatProp build() {
-                if(mImpl.hasDynamicValue() && !mImpl.hasValue()){
+                if (mImpl.hasDynamicValue() && !mImpl.hasValue()) {
                     throw new IllegalStateException("Static value is missing.");
                 }
                 return new FloatProp(mImpl.build(), mFingerprint);
diff --git a/wear/tiles/tiles-material/lint-baseline.xml b/wear/tiles/tiles-material/lint-baseline.xml
index 39bc7f8..a0b4b5f 100644
--- a/wear/tiles/tiles-material/lint-baseline.xml
+++ b/wear/tiles/tiles-material/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 8.0.0-beta03" type="baseline" client="gradle" dependencies="false" name="AGP (8.0.0-beta03)" variant="all" version="8.0.0-beta03">
+<issues format="6" by="lint 8.1.0-beta02" type="baseline" client="gradle" dependencies="false" name="AGP (8.1.0-beta02)" variant="all" version="8.1.0-beta02">
 
     <issue
         id="BanThreadSleep"
@@ -31,8 +31,8 @@
     <issue
         id="UnsafeOptInUsageError"
         message="This declaration is opt-in and its usage should be marked with `@androidx.wear.tiles.TilesExperimental` or `@OptIn(markerClass = androidx.wear.tiles.TilesExperimental.class)`"
-        errorLine1="                40, FONT_WEIGHT_MEDIUM, FONT_VARIANT_TITLE, 0.01f, isScalable, context);"
-        errorLine2="                    ~~~~~~~~~~~~~~~~~~">
+        errorLine1="                androidx.wear.tiles.LayoutElementBuilders.FONT_WEIGHT_MEDIUM,"
+        errorLine2="                                                          ~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/wear/tiles/material/Typography.java"/>
     </issue>
@@ -40,8 +40,8 @@
     <issue
         id="UnsafeOptInUsageError"
         message="This declaration is opt-in and its usage should be marked with `@androidx.wear.tiles.TilesExperimental` or `@OptIn(markerClass = androidx.wear.tiles.TilesExperimental.class)`"
-        errorLine1="                34, FONT_WEIGHT_MEDIUM, FONT_VARIANT_TITLE, 0.03f, isScalable, context);"
-        errorLine2="                    ~~~~~~~~~~~~~~~~~~">
+        errorLine1="                androidx.wear.tiles.LayoutElementBuilders.FONT_WEIGHT_MEDIUM,"
+        errorLine2="                                                          ~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/wear/tiles/material/Typography.java"/>
     </issue>
@@ -49,8 +49,8 @@
     <issue
         id="UnsafeOptInUsageError"
         message="This declaration is opt-in and its usage should be marked with `@androidx.wear.tiles.TilesExperimental` or `@OptIn(markerClass = androidx.wear.tiles.TilesExperimental.class)`"
-        errorLine1="                30, FONT_WEIGHT_MEDIUM, FONT_VARIANT_TITLE, 0.03f, isScalable, context);"
-        errorLine2="                    ~~~~~~~~~~~~~~~~~~">
+        errorLine1="                androidx.wear.tiles.LayoutElementBuilders.FONT_WEIGHT_MEDIUM,"
+        errorLine2="                                                          ~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/wear/tiles/material/Typography.java"/>
     </issue>
@@ -58,8 +58,8 @@
     <issue
         id="UnsafeOptInUsageError"
         message="This declaration is opt-in and its usage should be marked with `@androidx.wear.tiles.TilesExperimental` or `@OptIn(markerClass = androidx.wear.tiles.TilesExperimental.class)`"
-        errorLine1="                24, FONT_WEIGHT_MEDIUM, FONT_VARIANT_TITLE, 0.008f, isScalable, context);"
-        errorLine2="                    ~~~~~~~~~~~~~~~~~~">
+        errorLine1="                androidx.wear.tiles.LayoutElementBuilders.FONT_WEIGHT_MEDIUM,"
+        errorLine2="                                                          ~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/wear/tiles/material/Typography.java"/>
     </issue>
@@ -67,8 +67,8 @@
     <issue
         id="UnsafeOptInUsageError"
         message="This declaration is opt-in and its usage should be marked with `@androidx.wear.tiles.TilesExperimental` or `@OptIn(markerClass = androidx.wear.tiles.TilesExperimental.class)`"
-        errorLine1="                20, FONT_WEIGHT_MEDIUM, FONT_VARIANT_TITLE, 0.01f, isScalable, context);"
-        errorLine2="                    ~~~~~~~~~~~~~~~~~~">
+        errorLine1="                androidx.wear.tiles.LayoutElementBuilders.FONT_WEIGHT_MEDIUM,"
+        errorLine2="                                                          ~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/wear/tiles/material/Typography.java"/>
     </issue>
@@ -76,8 +76,8 @@
     <issue
         id="UnsafeOptInUsageError"
         message="This declaration is opt-in and its usage should be marked with `@androidx.wear.tiles.TilesExperimental` or `@OptIn(markerClass = androidx.wear.tiles.TilesExperimental.class)`"
-        errorLine1="                16, FONT_WEIGHT_MEDIUM, FONT_VARIANT_TITLE, 0.01f, isScalable, context);"
-        errorLine2="                    ~~~~~~~~~~~~~~~~~~">
+        errorLine1="                androidx.wear.tiles.LayoutElementBuilders.FONT_WEIGHT_MEDIUM,"
+        errorLine2="                                                          ~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/wear/tiles/material/Typography.java"/>
     </issue>
@@ -85,8 +85,8 @@
     <issue
         id="UnsafeOptInUsageError"
         message="This declaration is opt-in and its usage should be marked with `@androidx.wear.tiles.TilesExperimental` or `@OptIn(markerClass = androidx.wear.tiles.TilesExperimental.class)`"
-        errorLine1="                14, FONT_WEIGHT_MEDIUM, FONT_VARIANT_BODY, 0.01f, isScalable, context);"
-        errorLine2="                    ~~~~~~~~~~~~~~~~~~">
+        errorLine1="                androidx.wear.tiles.LayoutElementBuilders.FONT_WEIGHT_MEDIUM,"
+        errorLine2="                                                          ~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/wear/tiles/material/Typography.java"/>
     </issue>
@@ -94,8 +94,8 @@
     <issue
         id="UnsafeOptInUsageError"
         message="This declaration is opt-in and its usage should be marked with `@androidx.wear.tiles.TilesExperimental` or `@OptIn(markerClass = androidx.wear.tiles.TilesExperimental.class)`"
-        errorLine1="                12, FONT_WEIGHT_MEDIUM, FONT_VARIANT_BODY, 0.01f, isScalable, context);"
-        errorLine2="                    ~~~~~~~~~~~~~~~~~~">
+        errorLine1="                androidx.wear.tiles.LayoutElementBuilders.FONT_WEIGHT_MEDIUM,"
+        errorLine2="                                                          ~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/wear/tiles/material/Typography.java"/>
     </issue>
@@ -103,8 +103,8 @@
     <issue
         id="UnsafeOptInUsageError"
         message="This declaration is opt-in and its usage should be marked with `@androidx.wear.tiles.TilesExperimental` or `@OptIn(markerClass = androidx.wear.tiles.TilesExperimental.class)`"
-        errorLine1="                10, FONT_WEIGHT_MEDIUM, FONT_VARIANT_BODY, 0.01f, isScalable, context);"
-        errorLine2="                    ~~~~~~~~~~~~~~~~~~">
+        errorLine1="                androidx.wear.tiles.LayoutElementBuilders.FONT_WEIGHT_MEDIUM,"
+        errorLine2="                                                          ~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/wear/tiles/material/Typography.java"/>
     </issue>
diff --git a/wear/tiles/tiles-renderer/lint-baseline.xml b/wear/tiles/tiles-renderer/lint-baseline.xml
deleted file mode 100644
index 5a7fd53..0000000
--- a/wear/tiles/tiles-renderer/lint-baseline.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 8.1.0-alpha07" type="baseline" client="gradle" dependencies="false" name="AGP (8.0.0-beta03)" variant="all" version="8.1.0-alpha07">
-
-    <issue
-        id="UnsafeOptInUsageError"
-        message="This declaration is opt-in and its usage should be marked with `@androidx.wear.tiles.TilesExperimental` or `@OptIn(markerClass = androidx.wear.tiles.TilesExperimental.class)`"
-        errorLine1="                        .fromByteArray(resources.toByteArray())).toProto();"
-        errorLine2="                         ~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/wear/tiles/renderer/TileRenderer.java"/>
-    </issue>
-
-    <issue
-        id="UnsafeOptInUsageError"
-        message="This declaration is opt-in and its usage should be marked with `@androidx.wear.tiles.TilesExperimental` or `@OptIn(markerClass = androidx.wear.tiles.TilesExperimental.class)`"
-        errorLine1="                        .fromByteArray(resources.toByteArray())).toProto();"
-        errorLine2="                                                 ~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/wear/tiles/renderer/TileRenderer.java"/>
-    </issue>
-
-    <issue
-        id="UnsafeOptInUsageError"
-        message="This declaration is opt-in and its usage should be marked with `@androidx.wear.protolayout.expression.ProtoLayoutExperimental` or `@OptIn(markerClass = androidx.wear.protolayout.expression.ProtoLayoutExperimental.class)`"
-        errorLine1="                        .fromByteArray(layout.toByteArray())).toProto();"
-        errorLine2="                         ~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/wear/tiles/renderer/TileRenderer.java"/>
-    </issue>
-
-    <issue
-        id="UnsafeOptInUsageError"
-        message="This declaration is opt-in and its usage should be marked with `@androidx.wear.tiles.TilesExperimental` or `@OptIn(markerClass = androidx.wear.tiles.TilesExperimental.class)`"
-        errorLine1="                        .fromByteArray(layout.toByteArray())).toProto();"
-        errorLine2="                                              ~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/wear/tiles/renderer/TileRenderer.java"/>
-    </issue>
-
-</issues>
diff --git a/wear/tiles/tiles/lint-baseline.xml b/wear/tiles/tiles/lint-baseline.xml
deleted file mode 100644
index 9bf9d708..0000000
--- a/wear/tiles/tiles/lint-baseline.xml
+++ /dev/null
@@ -1,121 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 8.1.0-alpha11" type="baseline" client="gradle" dependencies="false" name="AGP (8.1.0-alpha11)" variant="all" version="8.1.0-alpha11">
-
-    <issue
-        id="RequireUnstableAidlAnnotation"
-        message="Unstable AIDL files must be annotated with `@RequiresOptIn` marker"
-        errorLine1="interface ResourcesCallback {"
-        errorLine2="^">
-        <location
-            file="src/main/aidl/androidx/wear/tiles/ResourcesCallback.aidl"/>
-    </issue>
-
-    <issue
-        id="RequireUnstableAidlAnnotation"
-        message="Unstable AIDL files must be annotated with `@RequiresOptIn` marker"
-        errorLine1="parcelable ResourcesData;"
-        errorLine2="~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/aidl/androidx/wear/tiles/ResourcesData.aidl"/>
-    </issue>
-
-    <issue
-        id="RequireUnstableAidlAnnotation"
-        message="Unstable AIDL files must be annotated with `@RequiresOptIn` marker"
-        errorLine1="parcelable ResourcesRequestData;"
-        errorLine2="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/aidl/androidx/wear/tiles/ResourcesRequestData.aidl"/>
-    </issue>
-
-    <issue
-        id="RequireUnstableAidlAnnotation"
-        message="Unstable AIDL files must be annotated with `@RequiresOptIn` marker"
-        errorLine1="parcelable TileAddEventData;"
-        errorLine2="~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/aidl/androidx/wear/tiles/TileAddEventData.aidl"/>
-    </issue>
-
-    <issue
-        id="RequireUnstableAidlAnnotation"
-        message="Unstable AIDL files must be annotated with `@RequiresOptIn` marker"
-        errorLine1="interface TileCallback {"
-        errorLine2="^">
-        <location
-            file="src/main/aidl/androidx/wear/tiles/TileCallback.aidl"/>
-    </issue>
-
-    <issue
-        id="RequireUnstableAidlAnnotation"
-        message="Unstable AIDL files must be annotated with `@RequiresOptIn` marker"
-        errorLine1="parcelable TileData;"
-        errorLine2="~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/aidl/androidx/wear/tiles/TileData.aidl"/>
-    </issue>
-
-    <issue
-        id="RequireUnstableAidlAnnotation"
-        message="Unstable AIDL files must be annotated with `@RequiresOptIn` marker"
-        errorLine1="parcelable TileEnterEventData;"
-        errorLine2="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/aidl/androidx/wear/tiles/TileEnterEventData.aidl"/>
-    </issue>
-
-    <issue
-        id="RequireUnstableAidlAnnotation"
-        message="Unstable AIDL files must be annotated with `@RequiresOptIn` marker"
-        errorLine1="parcelable TileLeaveEventData;"
-        errorLine2="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/aidl/androidx/wear/tiles/TileLeaveEventData.aidl"/>
-    </issue>
-
-    <issue
-        id="RequireUnstableAidlAnnotation"
-        message="Unstable AIDL files must be annotated with `@RequiresOptIn` marker"
-        errorLine1="interface TileProvider {"
-        errorLine2="^">
-        <location
-            file="src/main/aidl/androidx/wear/tiles/TileProvider.aidl"/>
-    </issue>
-
-    <issue
-        id="RequireUnstableAidlAnnotation"
-        message="Unstable AIDL files must be annotated with `@RequiresOptIn` marker"
-        errorLine1="parcelable TileRemoveEventData;"
-        errorLine2="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/aidl/androidx/wear/tiles/TileRemoveEventData.aidl"/>
-    </issue>
-
-    <issue
-        id="RequireUnstableAidlAnnotation"
-        message="Unstable AIDL files must be annotated with `@RequiresOptIn` marker"
-        errorLine1="parcelable TileRequestData;"
-        errorLine2="~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/aidl/androidx/wear/tiles/TileRequestData.aidl"/>
-    </issue>
-
-    <issue
-        id="RequireUnstableAidlAnnotation"
-        message="Unstable AIDL files must be annotated with `@RequiresOptIn` marker"
-        errorLine1="parcelable TileUpdateRequestData;"
-        errorLine2="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/aidl/androidx/wear/tiles/TileUpdateRequestData.aidl"/>
-    </issue>
-
-    <issue
-        id="RequireUnstableAidlAnnotation"
-        message="Unstable AIDL files must be annotated with `@RequiresOptIn` marker"
-        errorLine1="interface TileUpdateRequesterService {"
-        errorLine2="^">
-        <location
-            file="src/main/aidl/androidx/wear/tiles/TileUpdateRequesterService.aidl"/>
-    </issue>
-
-</issues>
diff --git a/wear/tiles/tiles/src/main/aidl/androidx/wear/tiles/ResourcesCallback.aidl b/wear/tiles/tiles/src/main/aidl/androidx/wear/tiles/ResourcesCallback.aidl
index 54fd2a1..62e6783 100644
--- a/wear/tiles/tiles/src/main/aidl/androidx/wear/tiles/ResourcesCallback.aidl
+++ b/wear/tiles/tiles/src/main/aidl/androidx/wear/tiles/ResourcesCallback.aidl
@@ -25,8 +25,8 @@
   * by standard proto version compatibility in the underlying payload. Any significant changes to
   * this interface will be handled by instead adding new calls into TileProvider.
   *
-  * @hide
   */
+@JavaPassthrough(annotation="@androidx.annotation.RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY)")
 interface ResourcesCallback {
     /**
       * Pass a new resource bundle to the system. This should be called in
diff --git a/wear/tiles/tiles/src/main/aidl/androidx/wear/tiles/TileCallback.aidl b/wear/tiles/tiles/src/main/aidl/androidx/wear/tiles/TileCallback.aidl
index 3b8a1da..ba760ff 100644
--- a/wear/tiles/tiles/src/main/aidl/androidx/wear/tiles/TileCallback.aidl
+++ b/wear/tiles/tiles/src/main/aidl/androidx/wear/tiles/TileCallback.aidl
@@ -25,8 +25,8 @@
   * by standard proto version compatibility in the underlying payload. Any significant changes to
   * this interface will be handled by instead adding new calls into TileProvider.
   *
-  * @hide
   */
+@JavaPassthrough(annotation="@androidx.annotation.RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY)")
 interface TileCallback {
     /**
       * Pass a new tile timeline to the system. This should be called in
diff --git a/wear/tiles/tiles/src/main/aidl/androidx/wear/tiles/TileProvider.aidl b/wear/tiles/tiles/src/main/aidl/androidx/wear/tiles/TileProvider.aidl
index a1b3967..b86756f 100644
--- a/wear/tiles/tiles/src/main/aidl/androidx/wear/tiles/TileProvider.aidl
+++ b/wear/tiles/tiles/src/main/aidl/androidx/wear/tiles/TileProvider.aidl
@@ -30,8 +30,8 @@
   * Interface to be implemented by a service which provides Tiles to a Wear
   * device.
   *
-  * @hide
   */
+@JavaPassthrough(annotation="@androidx.annotation.RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY)")
 interface TileProvider {
 
     const int API_VERSION = 1;
diff --git a/wear/tiles/tiles/src/main/aidl/androidx/wear/tiles/TileUpdateRequesterService.aidl b/wear/tiles/tiles/src/main/aidl/androidx/wear/tiles/TileUpdateRequesterService.aidl
index b7c1009..fe900f7 100644
--- a/wear/tiles/tiles/src/main/aidl/androidx/wear/tiles/TileUpdateRequesterService.aidl
+++ b/wear/tiles/tiles/src/main/aidl/androidx/wear/tiles/TileUpdateRequesterService.aidl
@@ -23,8 +23,8 @@
   * Interface, implemented by Tile Renderers, which allows a Tile Provider to
   * request that a Tile Renderer fetches a new Timeline from it.
   *
-  * @hide
   */
+@JavaPassthrough(annotation="@androidx.annotation.RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY)")
 interface TileUpdateRequesterService {
     const int API_VERSION = 1;
 
diff --git a/wear/watchface/watchface-client/api/current.txt b/wear/watchface/watchface-client/api/current.txt
index 57c6843..f122001 100644
--- a/wear/watchface/watchface-client/api/current.txt
+++ b/wear/watchface/watchface-client/api/current.txt
@@ -3,6 +3,8 @@
 
   public final class ComplicationSlotMetadata {
     ctor public ComplicationSlotMetadata(androidx.wear.watchface.complications.ComplicationSlotBounds? bounds, int boundsType, java.util.List<? extends androidx.wear.watchface.complications.data.ComplicationType> supportedTypes, androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy defaultDataSourcePolicy, boolean isInitiallyEnabled, boolean fixedComplicationDataSource, android.os.Bundle complicationConfigExtras);
+    ctor @androidx.wear.watchface.complications.data.ComplicationExperimental public ComplicationSlotMetadata(androidx.wear.watchface.complications.ComplicationSlotBounds? bounds, int boundsType, java.util.List<? extends androidx.wear.watchface.complications.data.ComplicationType> supportedTypes, androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy defaultDataSourcePolicy, boolean isInitiallyEnabled, boolean fixedComplicationDataSource, android.os.Bundle complicationConfigExtras, androidx.wear.watchface.BoundingArc? boundingArc);
+    method @androidx.wear.watchface.complications.data.ComplicationExperimental public androidx.wear.watchface.BoundingArc? getBoundingArc();
     method public androidx.wear.watchface.complications.ComplicationSlotBounds? getBounds();
     method public int getBoundsType();
     method public android.os.Bundle getComplicationConfigExtras();
@@ -22,6 +24,8 @@
   public final class ComplicationSlotState {
     ctor @Deprecated public ComplicationSlotState(android.graphics.Rect bounds, int boundsType, java.util.List<? extends androidx.wear.watchface.complications.data.ComplicationType> supportedTypes, androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy defaultDataSourcePolicy, androidx.wear.watchface.complications.data.ComplicationType defaultDataSourceType, boolean isEnabled, boolean isInitiallyEnabled, androidx.wear.watchface.complications.data.ComplicationType currentType, boolean fixedComplicationDataSource, android.os.Bundle complicationConfigExtras);
     ctor public ComplicationSlotState(android.graphics.Rect bounds, int boundsType, java.util.List<? extends androidx.wear.watchface.complications.data.ComplicationType> supportedTypes, androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy defaultDataSourcePolicy, boolean isEnabled, boolean isInitiallyEnabled, androidx.wear.watchface.complications.data.ComplicationType currentType, boolean fixedComplicationDataSource, android.os.Bundle complicationConfigExtras, Integer? nameResourceId, Integer? screenReaderNameResourceId);
+    ctor @androidx.wear.watchface.complications.data.ComplicationExperimental public ComplicationSlotState(android.graphics.Rect bounds, int boundsType, java.util.List<? extends androidx.wear.watchface.complications.data.ComplicationType> supportedTypes, androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy defaultDataSourcePolicy, boolean isEnabled, boolean isInitiallyEnabled, androidx.wear.watchface.complications.data.ComplicationType currentType, boolean fixedComplicationDataSource, android.os.Bundle complicationConfigExtras, Integer? nameResourceId, Integer? screenReaderNameResourceId, androidx.wear.watchface.BoundingArc? edgeComplicationBoundingArc);
+    method @androidx.wear.watchface.complications.data.ComplicationExperimental public androidx.wear.watchface.BoundingArc? getBoundingArc();
     method public android.graphics.Rect getBounds();
     method public int getBoundsType();
     method public android.os.Bundle getComplicationConfigExtras();
@@ -129,6 +133,7 @@
 
   public interface InteractiveWatchFaceClient extends java.lang.AutoCloseable {
     method @AnyThread public void addClientDisconnectListener(androidx.wear.watchface.client.InteractiveWatchFaceClient.ClientDisconnectListener listener, java.util.concurrent.Executor executor);
+    method @androidx.wear.watchface.client.WatchFaceClientExperimental public default void addOnWatchFaceColorsListener(java.util.concurrent.Executor executor, androidx.core.util.Consumer<androidx.wear.watchface.WatchFaceColors> listener);
     method public void addOnWatchFaceReadyListener(java.util.concurrent.Executor executor, androidx.wear.watchface.client.InteractiveWatchFaceClient.OnWatchFaceReadyListener listener);
     method @RequiresApi(android.os.Build.VERSION_CODES.R) @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public default androidx.wear.watchface.client.RemoteWatchFaceViewHost? createRemoteWatchFaceViewHost(android.os.IBinder hostToken, @Px int width, @Px int height) throws android.os.RemoteException;
     method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public default Integer? getComplicationIdAt(@Px int x, @Px int y) throws android.os.RemoteException;
@@ -143,6 +148,7 @@
     method public default boolean isRemoteWatchFaceViewHostSupported();
     method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public void performAmbientTick() throws android.os.RemoteException;
     method @AnyThread public void removeClientDisconnectListener(androidx.wear.watchface.client.InteractiveWatchFaceClient.ClientDisconnectListener listener);
+    method @androidx.wear.watchface.client.WatchFaceClientExperimental public default void removeOnWatchFaceColorsListener(androidx.core.util.Consumer<androidx.wear.watchface.WatchFaceColors> listener);
     method public void removeOnWatchFaceReadyListener(androidx.wear.watchface.client.InteractiveWatchFaceClient.OnWatchFaceReadyListener listener);
     method @RequiresApi(27) @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public android.graphics.Bitmap renderWatchFaceToBitmap(androidx.wear.watchface.RenderParameters renderParameters, java.time.Instant instant, androidx.wear.watchface.style.UserStyle? userStyle, java.util.Map<java.lang.Integer,? extends androidx.wear.watchface.complications.data.ComplicationData>? idAndComplicationData) throws android.os.RemoteException;
     method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public void sendTouchEvent(@Px int xPosition, @Px int yPosition, int tapType) throws android.os.RemoteException;
@@ -193,6 +199,9 @@
     property public abstract android.view.SurfaceControlViewHost.SurfacePackage surfacePackage;
   }
 
+  @kotlin.RequiresOptIn(message="This is an experimental API that may change or be removed without warning.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface WatchFaceClientExperimental {
+  }
+
   public interface WatchFaceControlClient extends java.lang.AutoCloseable {
     method @Deprecated @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public androidx.wear.watchface.client.HeadlessWatchFaceClient? createHeadlessWatchFaceClient(android.content.ComponentName watchFaceName, androidx.wear.watchface.client.DeviceConfig deviceConfig, @Px int surfaceWidth, @Px int surfaceHeight) throws android.os.RemoteException;
     method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public default androidx.wear.watchface.client.HeadlessWatchFaceClient? createHeadlessWatchFaceClient(String id, android.content.ComponentName watchFaceName, androidx.wear.watchface.client.DeviceConfig deviceConfig, @Px int surfaceWidth, @Px int surfaceHeight) throws android.os.RemoteException;
diff --git a/wear/watchface/watchface-client/api/public_plus_experimental_current.txt b/wear/watchface/watchface-client/api/public_plus_experimental_current.txt
deleted file mode 100644
index f122001..0000000
--- a/wear/watchface/watchface-client/api/public_plus_experimental_current.txt
+++ /dev/null
@@ -1,266 +0,0 @@
-// Signature format: 4.0
-package androidx.wear.watchface.client {
-
-  public final class ComplicationSlotMetadata {
-    ctor public ComplicationSlotMetadata(androidx.wear.watchface.complications.ComplicationSlotBounds? bounds, int boundsType, java.util.List<? extends androidx.wear.watchface.complications.data.ComplicationType> supportedTypes, androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy defaultDataSourcePolicy, boolean isInitiallyEnabled, boolean fixedComplicationDataSource, android.os.Bundle complicationConfigExtras);
-    ctor @androidx.wear.watchface.complications.data.ComplicationExperimental public ComplicationSlotMetadata(androidx.wear.watchface.complications.ComplicationSlotBounds? bounds, int boundsType, java.util.List<? extends androidx.wear.watchface.complications.data.ComplicationType> supportedTypes, androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy defaultDataSourcePolicy, boolean isInitiallyEnabled, boolean fixedComplicationDataSource, android.os.Bundle complicationConfigExtras, androidx.wear.watchface.BoundingArc? boundingArc);
-    method @androidx.wear.watchface.complications.data.ComplicationExperimental public androidx.wear.watchface.BoundingArc? getBoundingArc();
-    method public androidx.wear.watchface.complications.ComplicationSlotBounds? getBounds();
-    method public int getBoundsType();
-    method public android.os.Bundle getComplicationConfigExtras();
-    method public androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy getDefaultDataSourcePolicy();
-    method public boolean getFixedComplicationDataSource();
-    method public java.util.List<androidx.wear.watchface.complications.data.ComplicationType> getSupportedTypes();
-    method public boolean isInitiallyEnabled();
-    property public final androidx.wear.watchface.complications.ComplicationSlotBounds? bounds;
-    property public final int boundsType;
-    property public final android.os.Bundle complicationConfigExtras;
-    property public final androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy defaultDataSourcePolicy;
-    property public final boolean fixedComplicationDataSource;
-    property public final boolean isInitiallyEnabled;
-    property public final java.util.List<androidx.wear.watchface.complications.data.ComplicationType> supportedTypes;
-  }
-
-  public final class ComplicationSlotState {
-    ctor @Deprecated public ComplicationSlotState(android.graphics.Rect bounds, int boundsType, java.util.List<? extends androidx.wear.watchface.complications.data.ComplicationType> supportedTypes, androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy defaultDataSourcePolicy, androidx.wear.watchface.complications.data.ComplicationType defaultDataSourceType, boolean isEnabled, boolean isInitiallyEnabled, androidx.wear.watchface.complications.data.ComplicationType currentType, boolean fixedComplicationDataSource, android.os.Bundle complicationConfigExtras);
-    ctor public ComplicationSlotState(android.graphics.Rect bounds, int boundsType, java.util.List<? extends androidx.wear.watchface.complications.data.ComplicationType> supportedTypes, androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy defaultDataSourcePolicy, boolean isEnabled, boolean isInitiallyEnabled, androidx.wear.watchface.complications.data.ComplicationType currentType, boolean fixedComplicationDataSource, android.os.Bundle complicationConfigExtras, Integer? nameResourceId, Integer? screenReaderNameResourceId);
-    ctor @androidx.wear.watchface.complications.data.ComplicationExperimental public ComplicationSlotState(android.graphics.Rect bounds, int boundsType, java.util.List<? extends androidx.wear.watchface.complications.data.ComplicationType> supportedTypes, androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy defaultDataSourcePolicy, boolean isEnabled, boolean isInitiallyEnabled, androidx.wear.watchface.complications.data.ComplicationType currentType, boolean fixedComplicationDataSource, android.os.Bundle complicationConfigExtras, Integer? nameResourceId, Integer? screenReaderNameResourceId, androidx.wear.watchface.BoundingArc? edgeComplicationBoundingArc);
-    method @androidx.wear.watchface.complications.data.ComplicationExperimental public androidx.wear.watchface.BoundingArc? getBoundingArc();
-    method public android.graphics.Rect getBounds();
-    method public int getBoundsType();
-    method public android.os.Bundle getComplicationConfigExtras();
-    method public androidx.wear.watchface.complications.data.ComplicationType getCurrentType();
-    method public androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy getDefaultDataSourcePolicy();
-    method @Deprecated public androidx.wear.watchface.complications.data.ComplicationType getDefaultDataSourceType();
-    method public boolean getFixedComplicationDataSource();
-    method public Integer? getNameResourceId();
-    method public Integer? getScreenReaderNameResourceId();
-    method public java.util.List<androidx.wear.watchface.complications.data.ComplicationType> getSupportedTypes();
-    method public boolean isEnabled();
-    method public boolean isInitiallyEnabled();
-    property public final android.graphics.Rect bounds;
-    property public final int boundsType;
-    property public final android.os.Bundle complicationConfigExtras;
-    property public final androidx.wear.watchface.complications.data.ComplicationType currentType;
-    property public final androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy defaultDataSourcePolicy;
-    property @Deprecated public final androidx.wear.watchface.complications.data.ComplicationType defaultDataSourceType;
-    property public final boolean fixedComplicationDataSource;
-    property public final boolean isEnabled;
-    property public final boolean isInitiallyEnabled;
-    property public final Integer? nameResourceId;
-    property public final Integer? screenReaderNameResourceId;
-    property public final java.util.List<androidx.wear.watchface.complications.data.ComplicationType> supportedTypes;
-  }
-
-  @Deprecated public final class DefaultComplicationDataSourcePolicyAndType {
-    ctor @Deprecated public DefaultComplicationDataSourcePolicyAndType(androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy policy, androidx.wear.watchface.complications.data.ComplicationType type);
-    method @Deprecated public androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy getPolicy();
-    method @Deprecated public androidx.wear.watchface.complications.data.ComplicationType getType();
-    property @Deprecated public final androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy policy;
-    property @Deprecated public final androidx.wear.watchface.complications.data.ComplicationType type;
-  }
-
-  public final class DeviceConfig {
-    ctor public DeviceConfig(boolean hasLowBitAmbient, boolean hasBurnInProtection, long analogPreviewReferenceTimeMillis, long digitalPreviewReferenceTimeMillis);
-    method public long getAnalogPreviewReferenceTimeMillis();
-    method public long getDigitalPreviewReferenceTimeMillis();
-    method public boolean getHasBurnInProtection();
-    method public boolean getHasLowBitAmbient();
-    property public final long analogPreviewReferenceTimeMillis;
-    property public final long digitalPreviewReferenceTimeMillis;
-    property public final boolean hasBurnInProtection;
-    property public final boolean hasLowBitAmbient;
-  }
-
-  public final class DisconnectReasons {
-    field public static final int ENGINE_DETACHED = 2; // 0x2
-    field public static final int ENGINE_DIED = 1; // 0x1
-    field public static final androidx.wear.watchface.client.DisconnectReasons INSTANCE;
-  }
-
-  public interface EditorListener {
-    method public void onEditorStateChanged(androidx.wear.watchface.client.EditorState editorState);
-  }
-
-  public interface EditorServiceClient {
-    method public void addListener(androidx.wear.watchface.client.EditorListener editorListener, java.util.concurrent.Executor listenerExecutor);
-    method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public void closeEditor() throws android.os.RemoteException;
-    method public void removeListener(androidx.wear.watchface.client.EditorListener editorListener);
-  }
-
-  public final class EditorState {
-    method public java.util.Map<java.lang.Integer,androidx.wear.watchface.complications.data.ComplicationData> getPreviewComplicationsData();
-    method public android.graphics.Bitmap? getPreviewImage();
-    method public boolean getShouldCommitChanges();
-    method public androidx.wear.watchface.style.UserStyleData getUserStyle();
-    method public androidx.wear.watchface.client.WatchFaceId getWatchFaceId();
-    property public final java.util.Map<java.lang.Integer,androidx.wear.watchface.complications.data.ComplicationData> previewComplicationsData;
-    property public final android.graphics.Bitmap? previewImage;
-    property public final boolean shouldCommitChanges;
-    property public final androidx.wear.watchface.style.UserStyleData userStyle;
-    property public final androidx.wear.watchface.client.WatchFaceId watchFaceId;
-  }
-
-  public interface HeadlessWatchFaceClient extends java.lang.AutoCloseable {
-    method @AnyThread public void addClientDisconnectListener(androidx.wear.watchface.client.HeadlessWatchFaceClient.ClientDisconnectListener listener, java.util.concurrent.Executor executor);
-    method public default static androidx.wear.watchface.client.HeadlessWatchFaceClient createFromBundle(android.os.Bundle bundle);
-    method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public java.util.Map<java.lang.Integer,androidx.wear.watchface.client.ComplicationSlotState> getComplicationSlotsState() throws android.os.RemoteException;
-    method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public java.time.Instant getPreviewReferenceInstant() throws android.os.RemoteException;
-    method public default androidx.wear.watchface.style.UserStyleFlavors getUserStyleFlavors();
-    method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public androidx.wear.watchface.style.UserStyleSchema getUserStyleSchema() throws android.os.RemoteException;
-    method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public default byte[] getUserStyleSchemaDigestHash() throws android.os.RemoteException;
-    method @AnyThread public boolean isConnectionAlive();
-    method public default boolean isRenderWatchFaceToSurfaceSupported();
-    method @AnyThread public void removeClientDisconnectListener(androidx.wear.watchface.client.HeadlessWatchFaceClient.ClientDisconnectListener listener);
-    method @RequiresApi(27) @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public android.graphics.Bitmap? renderComplicationToBitmap(int complicationSlotId, androidx.wear.watchface.RenderParameters renderParameters, java.time.Instant instant, androidx.wear.watchface.complications.data.ComplicationData complicationData, androidx.wear.watchface.style.UserStyle? userStyle) throws android.os.RemoteException;
-    method @RequiresApi(27) @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public android.graphics.Bitmap renderWatchFaceToBitmap(androidx.wear.watchface.RenderParameters renderParameters, java.time.Instant instant, androidx.wear.watchface.style.UserStyle? userStyle, java.util.Map<java.lang.Integer,? extends androidx.wear.watchface.complications.data.ComplicationData>? slotIdToComplicationData) throws android.os.RemoteException;
-    method public android.os.Bundle toBundle();
-    property @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public abstract java.util.Map<java.lang.Integer,androidx.wear.watchface.client.ComplicationSlotState> complicationSlotsState;
-    property public default boolean isRenderWatchFaceToSurfaceSupported;
-    property @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public abstract java.time.Instant previewReferenceInstant;
-    property @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public abstract androidx.wear.watchface.style.UserStyleSchema userStyleSchema;
-    field public static final String BINDER_KEY = "HeadlessWatchFaceClient";
-    field public static final androidx.wear.watchface.client.HeadlessWatchFaceClient.Companion Companion;
-  }
-
-  public static interface HeadlessWatchFaceClient.ClientDisconnectListener {
-    method public void onClientDisconnected();
-  }
-
-  public static final class HeadlessWatchFaceClient.Companion {
-    method public androidx.wear.watchface.client.HeadlessWatchFaceClient createFromBundle(android.os.Bundle bundle);
-  }
-
-  public interface InteractiveWatchFaceClient extends java.lang.AutoCloseable {
-    method @AnyThread public void addClientDisconnectListener(androidx.wear.watchface.client.InteractiveWatchFaceClient.ClientDisconnectListener listener, java.util.concurrent.Executor executor);
-    method @androidx.wear.watchface.client.WatchFaceClientExperimental public default void addOnWatchFaceColorsListener(java.util.concurrent.Executor executor, androidx.core.util.Consumer<androidx.wear.watchface.WatchFaceColors> listener);
-    method public void addOnWatchFaceReadyListener(java.util.concurrent.Executor executor, androidx.wear.watchface.client.InteractiveWatchFaceClient.OnWatchFaceReadyListener listener);
-    method @RequiresApi(android.os.Build.VERSION_CODES.R) @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public default androidx.wear.watchface.client.RemoteWatchFaceViewHost? createRemoteWatchFaceViewHost(android.os.IBinder hostToken, @Px int width, @Px int height) throws android.os.RemoteException;
-    method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public default Integer? getComplicationIdAt(@Px int x, @Px int y) throws android.os.RemoteException;
-    method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public java.util.Map<java.lang.Integer,androidx.wear.watchface.client.ComplicationSlotState> getComplicationSlotsState() throws android.os.RemoteException;
-    method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public java.util.List<androidx.wear.watchface.ContentDescriptionLabel> getContentDescriptionLabels() throws android.os.RemoteException;
-    method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public String getInstanceId() throws android.os.RemoteException;
-    method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public default androidx.wear.watchface.client.OverlayStyle getOverlayStyle() throws android.os.RemoteException;
-    method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public java.time.Instant getPreviewReferenceInstant() throws android.os.RemoteException;
-    method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public androidx.wear.watchface.style.UserStyleSchema getUserStyleSchema() throws android.os.RemoteException;
-    method public default boolean isComplicationDisplayPolicySupported();
-    method @AnyThread public boolean isConnectionAlive();
-    method public default boolean isRemoteWatchFaceViewHostSupported();
-    method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public void performAmbientTick() throws android.os.RemoteException;
-    method @AnyThread public void removeClientDisconnectListener(androidx.wear.watchface.client.InteractiveWatchFaceClient.ClientDisconnectListener listener);
-    method @androidx.wear.watchface.client.WatchFaceClientExperimental public default void removeOnWatchFaceColorsListener(androidx.core.util.Consumer<androidx.wear.watchface.WatchFaceColors> listener);
-    method public void removeOnWatchFaceReadyListener(androidx.wear.watchface.client.InteractiveWatchFaceClient.OnWatchFaceReadyListener listener);
-    method @RequiresApi(27) @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public android.graphics.Bitmap renderWatchFaceToBitmap(androidx.wear.watchface.RenderParameters renderParameters, java.time.Instant instant, androidx.wear.watchface.style.UserStyle? userStyle, java.util.Map<java.lang.Integer,? extends androidx.wear.watchface.complications.data.ComplicationData>? idAndComplicationData) throws android.os.RemoteException;
-    method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public void sendTouchEvent(@Px int xPosition, @Px int yPosition, int tapType) throws android.os.RemoteException;
-    method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public void setWatchUiState(androidx.wear.watchface.client.WatchUiState watchUiState) throws android.os.RemoteException;
-    method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public void updateComplicationData(java.util.Map<java.lang.Integer,? extends androidx.wear.watchface.complications.data.ComplicationData> slotIdToComplicationData) throws android.os.RemoteException;
-    method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public void updateWatchFaceInstance(String newInstanceId, androidx.wear.watchface.style.UserStyle userStyle) throws android.os.RemoteException;
-    method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public void updateWatchFaceInstance(String newInstanceId, androidx.wear.watchface.style.UserStyleData userStyle) throws android.os.RemoteException;
-    property @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public abstract java.util.Map<java.lang.Integer,androidx.wear.watchface.client.ComplicationSlotState> complicationSlotsState;
-    property @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public abstract java.util.List<androidx.wear.watchface.ContentDescriptionLabel> contentDescriptionLabels;
-    property @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public abstract String instanceId;
-    property public default boolean isRemoteWatchFaceViewHostSupported;
-    property @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public default androidx.wear.watchface.client.OverlayStyle overlayStyle;
-    property @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public abstract java.time.Instant previewReferenceInstant;
-    property @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public abstract androidx.wear.watchface.style.UserStyleSchema userStyleSchema;
-    field public static final androidx.wear.watchface.client.InteractiveWatchFaceClient.Companion Companion;
-    field public static final int TAP_TYPE_CANCEL = 1; // 0x1
-    field public static final int TAP_TYPE_DOWN = 0; // 0x0
-    field public static final int TAP_TYPE_UP = 2; // 0x2
-  }
-
-  @kotlin.jvm.JvmDefaultWithCompatibility public static interface InteractiveWatchFaceClient.ClientDisconnectListener {
-    method @Deprecated public default void onClientDisconnected();
-    method public default void onClientDisconnected(int disconnectReason);
-  }
-
-  public static final class InteractiveWatchFaceClient.Companion {
-    field public static final int TAP_TYPE_CANCEL = 1; // 0x1
-    field public static final int TAP_TYPE_DOWN = 0; // 0x0
-    field public static final int TAP_TYPE_UP = 2; // 0x2
-  }
-
-  public static fun interface InteractiveWatchFaceClient.OnWatchFaceReadyListener {
-    method public void onWatchFaceReady();
-  }
-
-  public final class OverlayStyle {
-    ctor public OverlayStyle();
-    ctor public OverlayStyle(android.graphics.Color? backgroundColor, android.graphics.Color? foregroundColor);
-    method public android.graphics.Color? getBackgroundColor();
-    method public android.graphics.Color? getForegroundColor();
-    property public final android.graphics.Color? backgroundColor;
-    property public final android.graphics.Color? foregroundColor;
-  }
-
-  public interface RemoteWatchFaceViewHost extends java.lang.AutoCloseable {
-    method public android.view.SurfaceControlViewHost.SurfacePackage getSurfacePackage();
-    method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public void renderWatchFace(androidx.wear.watchface.RenderParameters renderParameters, java.time.Instant instant, androidx.wear.watchface.style.UserStyle? userStyle, java.util.Map<java.lang.Integer,? extends androidx.wear.watchface.complications.data.ComplicationData>? idAndComplicationData) throws android.os.RemoteException;
-    property public abstract android.view.SurfaceControlViewHost.SurfacePackage surfacePackage;
-  }
-
-  @kotlin.RequiresOptIn(message="This is an experimental API that may change or be removed without warning.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface WatchFaceClientExperimental {
-  }
-
-  public interface WatchFaceControlClient extends java.lang.AutoCloseable {
-    method @Deprecated @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public androidx.wear.watchface.client.HeadlessWatchFaceClient? createHeadlessWatchFaceClient(android.content.ComponentName watchFaceName, androidx.wear.watchface.client.DeviceConfig deviceConfig, @Px int surfaceWidth, @Px int surfaceHeight) throws android.os.RemoteException;
-    method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public default androidx.wear.watchface.client.HeadlessWatchFaceClient? createHeadlessWatchFaceClient(String id, android.content.ComponentName watchFaceName, androidx.wear.watchface.client.DeviceConfig deviceConfig, @Px int surfaceWidth, @Px int surfaceHeight) throws android.os.RemoteException;
-    method @kotlin.jvm.Throws(exceptionClasses={ServiceNotBoundException::class, ServiceStartFailureException::class}) public default static suspend Object? createWatchFaceControlClient(android.content.Context context, String watchFacePackageName, kotlin.coroutines.Continuation<? super androidx.wear.watchface.client.WatchFaceControlClient>) throws androidx.wear.watchface.client.WatchFaceControlClient.ServiceNotBoundException, androidx.wear.watchface.client.WatchFaceControlClient.ServiceStartFailureException;
-    method @Deprecated @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public java.util.Map<java.lang.Integer,androidx.wear.watchface.client.DefaultComplicationDataSourcePolicyAndType> getDefaultComplicationDataSourcePoliciesAndType(android.content.ComponentName watchFaceName) throws android.os.RemoteException;
-    method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public androidx.wear.watchface.client.EditorServiceClient getEditorServiceClient() throws android.os.RemoteException;
-    method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public androidx.wear.watchface.client.InteractiveWatchFaceClient? getInteractiveWatchFaceClientInstance(String instanceId) throws android.os.RemoteException;
-    method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public default suspend Object? getOrCreateInteractiveWatchFaceClient(String instanceId, androidx.wear.watchface.client.DeviceConfig deviceConfig, androidx.wear.watchface.client.WatchUiState watchUiState, androidx.wear.watchface.style.UserStyleData? userStyle, java.util.Map<java.lang.Integer,? extends androidx.wear.watchface.complications.data.ComplicationData>? slotIdToComplicationData, java.util.concurrent.Executor previewImageUpdateRequestedExecutor, androidx.core.util.Consumer<java.lang.String> previewImageUpdateRequestedListener, kotlin.coroutines.Continuation<? super androidx.wear.watchface.client.InteractiveWatchFaceClient>) throws android.os.RemoteException;
-    method @Deprecated @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public suspend Object? getOrCreateInteractiveWatchFaceClient(String id, androidx.wear.watchface.client.DeviceConfig deviceConfig, androidx.wear.watchface.client.WatchUiState watchUiState, androidx.wear.watchface.style.UserStyleData? userStyle, java.util.Map<java.lang.Integer,? extends androidx.wear.watchface.complications.data.ComplicationData>? slotIdToComplicationData, kotlin.coroutines.Continuation<? super androidx.wear.watchface.client.InteractiveWatchFaceClient>) throws android.os.RemoteException;
-    method public default boolean hasComplicationDataCache();
-    field public static final androidx.wear.watchface.client.WatchFaceControlClient.Companion Companion;
-  }
-
-  public static final class WatchFaceControlClient.Companion {
-    method @kotlin.jvm.Throws(exceptionClasses={ServiceNotBoundException::class, ServiceStartFailureException::class}) public suspend Object? createWatchFaceControlClient(android.content.Context context, String watchFacePackageName, kotlin.coroutines.Continuation<? super androidx.wear.watchface.client.WatchFaceControlClient>) throws androidx.wear.watchface.client.WatchFaceControlClient.ServiceNotBoundException, androidx.wear.watchface.client.WatchFaceControlClient.ServiceStartFailureException;
-  }
-
-  public static final class WatchFaceControlClient.ServiceNotBoundException extends java.lang.Exception {
-    ctor public WatchFaceControlClient.ServiceNotBoundException();
-  }
-
-  public static final class WatchFaceControlClient.ServiceStartFailureException extends java.lang.Exception {
-    ctor public WatchFaceControlClient.ServiceStartFailureException(optional String message);
-  }
-
-  public final class WatchFaceId {
-    ctor public WatchFaceId(String id);
-    method public String getId();
-    property public final String id;
-  }
-
-  public interface WatchFaceMetadataClient extends java.lang.AutoCloseable {
-    method public java.util.Map<java.lang.Integer,androidx.wear.watchface.client.ComplicationSlotMetadata> getComplicationSlotMetadataMap();
-    method public androidx.wear.watchface.style.UserStyleFlavors getUserStyleFlavors();
-    method public androidx.wear.watchface.style.UserStyleSchema getUserStyleSchema();
-    method public boolean isUserStyleSchemaStatic();
-    property public abstract boolean isUserStyleSchemaStatic;
-    field public static final androidx.wear.watchface.client.WatchFaceMetadataClient.Companion Companion;
-  }
-
-  public static final class WatchFaceMetadataClient.Companion {
-    method @kotlin.jvm.Throws(exceptionClasses={ServiceNotBoundException::class, ServiceStartFailureException::class, PackageManager.NameNotFoundException::class}) public suspend Object? create(android.content.Context context, android.content.ComponentName watchFaceName, kotlin.coroutines.Continuation<? super androidx.wear.watchface.client.WatchFaceMetadataClient>) throws android.content.pm.PackageManager.NameNotFoundException, androidx.wear.watchface.client.WatchFaceMetadataClient.ServiceNotBoundException, androidx.wear.watchface.client.WatchFaceMetadataClient.ServiceStartFailureException;
-  }
-
-  public static final class WatchFaceMetadataClient.ServiceNotBoundException extends java.lang.Exception {
-    ctor public WatchFaceMetadataClient.ServiceNotBoundException();
-  }
-
-  public static final class WatchFaceMetadataClient.ServiceStartFailureException extends java.lang.Exception {
-    ctor public WatchFaceMetadataClient.ServiceStartFailureException(optional String message);
-  }
-
-  public final class WatchUiState {
-    ctor public WatchUiState(boolean inAmbientMode, int interruptionFilter);
-    method public boolean getInAmbientMode();
-    method public int getInterruptionFilter();
-    property public final boolean inAmbientMode;
-    property public final int interruptionFilter;
-  }
-
-}
-
diff --git a/wear/watchface/watchface-client/api/restricted_current.txt b/wear/watchface/watchface-client/api/restricted_current.txt
index 57c6843..f122001 100644
--- a/wear/watchface/watchface-client/api/restricted_current.txt
+++ b/wear/watchface/watchface-client/api/restricted_current.txt
@@ -3,6 +3,8 @@
 
   public final class ComplicationSlotMetadata {
     ctor public ComplicationSlotMetadata(androidx.wear.watchface.complications.ComplicationSlotBounds? bounds, int boundsType, java.util.List<? extends androidx.wear.watchface.complications.data.ComplicationType> supportedTypes, androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy defaultDataSourcePolicy, boolean isInitiallyEnabled, boolean fixedComplicationDataSource, android.os.Bundle complicationConfigExtras);
+    ctor @androidx.wear.watchface.complications.data.ComplicationExperimental public ComplicationSlotMetadata(androidx.wear.watchface.complications.ComplicationSlotBounds? bounds, int boundsType, java.util.List<? extends androidx.wear.watchface.complications.data.ComplicationType> supportedTypes, androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy defaultDataSourcePolicy, boolean isInitiallyEnabled, boolean fixedComplicationDataSource, android.os.Bundle complicationConfigExtras, androidx.wear.watchface.BoundingArc? boundingArc);
+    method @androidx.wear.watchface.complications.data.ComplicationExperimental public androidx.wear.watchface.BoundingArc? getBoundingArc();
     method public androidx.wear.watchface.complications.ComplicationSlotBounds? getBounds();
     method public int getBoundsType();
     method public android.os.Bundle getComplicationConfigExtras();
@@ -22,6 +24,8 @@
   public final class ComplicationSlotState {
     ctor @Deprecated public ComplicationSlotState(android.graphics.Rect bounds, int boundsType, java.util.List<? extends androidx.wear.watchface.complications.data.ComplicationType> supportedTypes, androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy defaultDataSourcePolicy, androidx.wear.watchface.complications.data.ComplicationType defaultDataSourceType, boolean isEnabled, boolean isInitiallyEnabled, androidx.wear.watchface.complications.data.ComplicationType currentType, boolean fixedComplicationDataSource, android.os.Bundle complicationConfigExtras);
     ctor public ComplicationSlotState(android.graphics.Rect bounds, int boundsType, java.util.List<? extends androidx.wear.watchface.complications.data.ComplicationType> supportedTypes, androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy defaultDataSourcePolicy, boolean isEnabled, boolean isInitiallyEnabled, androidx.wear.watchface.complications.data.ComplicationType currentType, boolean fixedComplicationDataSource, android.os.Bundle complicationConfigExtras, Integer? nameResourceId, Integer? screenReaderNameResourceId);
+    ctor @androidx.wear.watchface.complications.data.ComplicationExperimental public ComplicationSlotState(android.graphics.Rect bounds, int boundsType, java.util.List<? extends androidx.wear.watchface.complications.data.ComplicationType> supportedTypes, androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy defaultDataSourcePolicy, boolean isEnabled, boolean isInitiallyEnabled, androidx.wear.watchface.complications.data.ComplicationType currentType, boolean fixedComplicationDataSource, android.os.Bundle complicationConfigExtras, Integer? nameResourceId, Integer? screenReaderNameResourceId, androidx.wear.watchface.BoundingArc? edgeComplicationBoundingArc);
+    method @androidx.wear.watchface.complications.data.ComplicationExperimental public androidx.wear.watchface.BoundingArc? getBoundingArc();
     method public android.graphics.Rect getBounds();
     method public int getBoundsType();
     method public android.os.Bundle getComplicationConfigExtras();
@@ -129,6 +133,7 @@
 
   public interface InteractiveWatchFaceClient extends java.lang.AutoCloseable {
     method @AnyThread public void addClientDisconnectListener(androidx.wear.watchface.client.InteractiveWatchFaceClient.ClientDisconnectListener listener, java.util.concurrent.Executor executor);
+    method @androidx.wear.watchface.client.WatchFaceClientExperimental public default void addOnWatchFaceColorsListener(java.util.concurrent.Executor executor, androidx.core.util.Consumer<androidx.wear.watchface.WatchFaceColors> listener);
     method public void addOnWatchFaceReadyListener(java.util.concurrent.Executor executor, androidx.wear.watchface.client.InteractiveWatchFaceClient.OnWatchFaceReadyListener listener);
     method @RequiresApi(android.os.Build.VERSION_CODES.R) @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public default androidx.wear.watchface.client.RemoteWatchFaceViewHost? createRemoteWatchFaceViewHost(android.os.IBinder hostToken, @Px int width, @Px int height) throws android.os.RemoteException;
     method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public default Integer? getComplicationIdAt(@Px int x, @Px int y) throws android.os.RemoteException;
@@ -143,6 +148,7 @@
     method public default boolean isRemoteWatchFaceViewHostSupported();
     method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public void performAmbientTick() throws android.os.RemoteException;
     method @AnyThread public void removeClientDisconnectListener(androidx.wear.watchface.client.InteractiveWatchFaceClient.ClientDisconnectListener listener);
+    method @androidx.wear.watchface.client.WatchFaceClientExperimental public default void removeOnWatchFaceColorsListener(androidx.core.util.Consumer<androidx.wear.watchface.WatchFaceColors> listener);
     method public void removeOnWatchFaceReadyListener(androidx.wear.watchface.client.InteractiveWatchFaceClient.OnWatchFaceReadyListener listener);
     method @RequiresApi(27) @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public android.graphics.Bitmap renderWatchFaceToBitmap(androidx.wear.watchface.RenderParameters renderParameters, java.time.Instant instant, androidx.wear.watchface.style.UserStyle? userStyle, java.util.Map<java.lang.Integer,? extends androidx.wear.watchface.complications.data.ComplicationData>? idAndComplicationData) throws android.os.RemoteException;
     method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public void sendTouchEvent(@Px int xPosition, @Px int yPosition, int tapType) throws android.os.RemoteException;
@@ -193,6 +199,9 @@
     property public abstract android.view.SurfaceControlViewHost.SurfacePackage surfacePackage;
   }
 
+  @kotlin.RequiresOptIn(message="This is an experimental API that may change or be removed without warning.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface WatchFaceClientExperimental {
+  }
+
   public interface WatchFaceControlClient extends java.lang.AutoCloseable {
     method @Deprecated @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public androidx.wear.watchface.client.HeadlessWatchFaceClient? createHeadlessWatchFaceClient(android.content.ComponentName watchFaceName, androidx.wear.watchface.client.DeviceConfig deviceConfig, @Px int surfaceWidth, @Px int surfaceHeight) throws android.os.RemoteException;
     method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public default androidx.wear.watchface.client.HeadlessWatchFaceClient? createHeadlessWatchFaceClient(String id, android.content.ComponentName watchFaceName, androidx.wear.watchface.client.DeviceConfig deviceConfig, @Px int surfaceWidth, @Px int surfaceHeight) throws android.os.RemoteException;
diff --git a/wear/watchface/watchface-client/lint-baseline.xml b/wear/watchface/watchface-client/lint-baseline.xml
index 23b3289..35ab4dd 100644
--- a/wear/watchface/watchface-client/lint-baseline.xml
+++ b/wear/watchface/watchface-client/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 8.1.0-alpha07" type="baseline" client="gradle" dependencies="false" name="AGP (8.0.0-beta03)" variant="all" version="8.1.0-alpha07">
+<issues format="6" by="lint 8.1.0-beta02" type="baseline" client="gradle" dependencies="false" name="AGP (8.1.0-beta02)" variant="all" version="8.1.0-beta02">
 
     <issue
         id="BanHideAnnotation"
diff --git a/wear/watchface/watchface-client/src/main/java/androidx/wear/watchface/client/InteractiveWatchFaceClient.kt b/wear/watchface/watchface-client/src/main/java/androidx/wear/watchface/client/InteractiveWatchFaceClient.kt
index 93d8ddca..58e8831 100644
--- a/wear/watchface/watchface-client/src/main/java/androidx/wear/watchface/client/InteractiveWatchFaceClient.kt
+++ b/wear/watchface/watchface-client/src/main/java/androidx/wear/watchface/client/InteractiveWatchFaceClient.kt
@@ -56,6 +56,7 @@
 import androidx.wear.watchface.style.UserStyleSetting.ComplicationSlotsUserStyleSetting
 import androidx.wear.watchface.toApiFormat
 import androidx.wear.watchface.utility.TraceEvent
+import androidx.wear.watchface.utility.aidlMethod
 import java.time.Instant
 import java.util.concurrent.Executor
 
@@ -422,34 +423,39 @@
 
     private val iWatchFaceListener =
         object : IWatchfaceListener.Stub() {
-            override fun getApiVersion() = IWatchfaceListener.API_VERSION
+            override fun getApiVersion() =
+                aidlMethod(TAG, "getApiVersion") { IWatchfaceListener.API_VERSION }
 
-            override fun onWatchfaceReady() {
-                this@InteractiveWatchFaceClientImpl.onWatchFaceReady()
-            }
-
-            override fun onWatchfaceColorsChanged(watchFaceColors: WatchFaceColorsWireFormat?) {
-                var listenerCopy: HashMap<Consumer<WatchFaceColors?>, Executor>
-
-                synchronized(lock) {
-                    listenerCopy = HashMap(watchFaceColorsChangeListeners)
-                    lastWatchFaceColors = watchFaceColors?.toApiFormat()
+            override fun onWatchfaceReady() =
+                aidlMethod(TAG, "onWatchfaceReady") {
+                    this@InteractiveWatchFaceClientImpl.onWatchFaceReady()
                 }
 
-                for ((listener, executor) in listenerCopy) {
-                    executor.execute { listener.accept(lastWatchFaceColors) }
-                }
-            }
+            override fun onWatchfaceColorsChanged(watchFaceColors: WatchFaceColorsWireFormat?) =
+                aidlMethod(TAG, "onWatchfaceColorsChanged") {
+                    var listenerCopy: HashMap<Consumer<WatchFaceColors?>, Executor>
 
-            override fun onPreviewImageUpdateRequested(watchFaceId: String) {
-                previewImageUpdateRequestedExecutor?.execute {
-                    previewImageUpdateRequestedListener!!.accept(watchFaceId)
-                }
-            }
+                    synchronized(lock) {
+                        listenerCopy = HashMap(watchFaceColorsChangeListeners)
+                        lastWatchFaceColors = watchFaceColors?.toApiFormat()
+                    }
 
-            override fun onEngineDetached() {
-                sendDisconnectNotification(DisconnectReasons.ENGINE_DETACHED)
-            }
+                    for ((listener, executor) in listenerCopy) {
+                        executor.execute { listener.accept(lastWatchFaceColors) }
+                    }
+                }
+
+            override fun onPreviewImageUpdateRequested(watchFaceId: String): Unit =
+                aidlMethod(TAG, "onPreviewImageUpdateRequested") {
+                    previewImageUpdateRequestedExecutor?.execute {
+                        previewImageUpdateRequestedListener!!.accept(watchFaceId)
+                    }
+                }
+
+            override fun onEngineDetached() =
+                aidlMethod(TAG, "onEngineDetached") {
+                    sendDisconnectNotification(DisconnectReasons.ENGINE_DETACHED)
+                }
         }
 
     init {
@@ -658,11 +664,13 @@
             iInteractiveWatchFace.apiVersion >= 2 -> {
                 iInteractiveWatchFace.addWatchfaceReadyListener(
                     object : IWatchfaceReadyListener.Stub() {
-                        override fun getApiVersion(): Int = IWatchfaceReadyListener.API_VERSION
+                        override fun getApiVersion(): Int =
+                            aidlMethod(TAG, "getApiVersion") { IWatchfaceReadyListener.API_VERSION }
 
-                        override fun onWatchfaceReady() {
-                            this@InteractiveWatchFaceClientImpl.onWatchFaceReady()
-                        }
+                        override fun onWatchfaceReady() =
+                            aidlMethod(TAG, "onWatchfaceReady") {
+                                this@InteractiveWatchFaceClientImpl.onWatchFaceReady()
+                            }
                     }
                 )
             }
@@ -771,4 +779,8 @@
         }
 
     override fun isComplicationDisplayPolicySupported() = iInteractiveWatchFace.apiVersion >= 8
+
+    companion object {
+        private const val TAG = "InteractiveWatchFaceClientImpl"
+    }
 }
diff --git a/wear/watchface/watchface-client/src/main/java/androidx/wear/watchface/client/WatchFaceControlClient.kt b/wear/watchface/watchface-client/src/main/java/androidx/wear/watchface/client/WatchFaceControlClient.kt
index 32d97b9..4414c28 100644
--- a/wear/watchface/watchface-client/src/main/java/androidx/wear/watchface/client/WatchFaceControlClient.kt
+++ b/wear/watchface/watchface-client/src/main/java/androidx/wear/watchface/client/WatchFaceControlClient.kt
@@ -44,6 +44,7 @@
 import androidx.wear.watchface.style.data.UserStyleWireFormat
 import androidx.wear.watchface.utility.AsyncTraceEvent
 import androidx.wear.watchface.utility.TraceEvent
+import androidx.wear.watchface.utility.aidlMethod
 import java.util.concurrent.Executor
 import kotlin.coroutines.resume
 import kotlin.coroutines.resumeWithException
@@ -502,31 +503,34 @@
                         null
                     ),
                     object : IPendingInteractiveWatchFace.Stub() {
-                        override fun getApiVersion() = API_VERSION
+                        override fun getApiVersion() =
+                            aidlMethod(TAG, "getApiVersion") { API_VERSION }
 
                         override fun onInteractiveWatchFaceCreated(
                             iInteractiveWatchFace: IInteractiveWatchFace
-                        ) {
-                            safeUnlinkToDeath(serviceBinder, deathObserver)
-                            traceEvent.close()
-                            continuation.resume(
-                                InteractiveWatchFaceClientImpl(
-                                    iInteractiveWatchFace,
-                                    previewImageUpdateRequestedExecutor,
-                                    previewImageUpdateRequestedListener
+                        ) =
+                            aidlMethod(TAG, "onInteractiveWatchFaceCreated") {
+                                safeUnlinkToDeath(serviceBinder, deathObserver)
+                                traceEvent.close()
+                                continuation.resume(
+                                    InteractiveWatchFaceClientImpl(
+                                        iInteractiveWatchFace,
+                                        previewImageUpdateRequestedExecutor,
+                                        previewImageUpdateRequestedListener
+                                    )
                                 )
-                            )
-                        }
+                            }
 
-                        override fun onInteractiveWatchFaceCrashed(exception: CrashInfoParcel) {
-                            safeUnlinkToDeath(serviceBinder, deathObserver)
-                            traceEvent.close()
-                            continuation.resumeWithException(
-                                WatchFaceControlClient.ServiceStartFailureException(
-                                    "Watchface crashed during init: $exception"
+                        override fun onInteractiveWatchFaceCrashed(exception: CrashInfoParcel) =
+                            aidlMethod(TAG, "onInteractiveWatchFaceCrashed") {
+                                safeUnlinkToDeath(serviceBinder, deathObserver)
+                                traceEvent.close()
+                                continuation.resumeWithException(
+                                    WatchFaceControlClient.ServiceStartFailureException(
+                                        "Watchface crashed during init: $exception"
+                                    )
                                 )
-                            )
-                        }
+                            }
                     }
                 )
                 ?.let {
diff --git a/wear/watchface/watchface-complications-data-source/src/main/java/androidx/wear/watchface/complications/datasource/ComplicationDataSourceService.kt b/wear/watchface/watchface-complications-data-source/src/main/java/androidx/wear/watchface/complications/datasource/ComplicationDataSourceService.kt
index 434be3409..7174168 100644
--- a/wear/watchface/watchface-complications-data-source/src/main/java/androidx/wear/watchface/complications/datasource/ComplicationDataSourceService.kt
+++ b/wear/watchface/watchface-complications-data-source/src/main/java/androidx/wear/watchface/complications/datasource/ComplicationDataSourceService.kt
@@ -27,6 +27,7 @@
 import android.os.IBinder
 import android.os.Looper
 import android.os.RemoteException
+import android.support.wearable.complications.ComplicationData as WireComplicationData
 import android.support.wearable.complications.ComplicationProviderInfo
 import android.support.wearable.complications.IComplicationManager
 import android.support.wearable.complications.IComplicationProvider
@@ -49,6 +50,7 @@
 import androidx.wear.watchface.complications.data.WeightedElementsComplicationData
 import androidx.wear.watchface.complications.datasource.ComplicationDataSourceService.Companion.METADATA_KEY_IMMEDIATE_UPDATE_PERIOD_MILLISECONDS
 import androidx.wear.watchface.complications.datasource.ComplicationDataSourceService.ComplicationRequestListener
+import androidx.wear.watchface.utility.aidlMethod
 import java.util.concurrent.CountDownLatch
 
 /**
@@ -448,9 +450,10 @@
 
     private inner class IComplicationProviderWrapper : IComplicationProvider.Stub() {
         @SuppressLint("SyntheticAccessor")
-        override fun onUpdate(complicationInstanceId: Int, type: Int, manager: IBinder) {
-            onUpdate2(complicationInstanceId, type, manager, bundle = null)
-        }
+        override fun onUpdate(complicationInstanceId: Int, type: Int, manager: IBinder): Unit =
+            aidlMethod(TAG, "onUpdate") {
+                onUpdate2(complicationInstanceId, type, manager, bundle = null)
+            }
 
         @SuppressLint("SyntheticAccessor")
         override fun onUpdate2(
@@ -458,268 +461,292 @@
             type: Int,
             manager: IBinder,
             bundle: Bundle?
-        ) {
-            val isForSafeWatchFace =
-                bundle?.getInt(
-                    IComplicationProvider.BUNDLE_KEY_IS_SAFE_FOR_WATCHFACE,
-                    TargetWatchFaceSafety.UNKNOWN
-                )
-                    ?: TargetWatchFaceSafety.UNKNOWN
-            val expectedDataType = fromWireType(type)
-            val iComplicationManager = IComplicationManager.Stub.asInterface(manager)
-            mainThreadHandler.post {
-                onComplicationRequest(
-                    @Suppress("NewApi")
-                    ComplicationRequest(
-                        complicationInstanceId,
-                        expectedDataType,
-                        immediateResponseRequired = false,
-                        isForSafeWatchFace = isForSafeWatchFace
-                    ),
-                    object : ComplicationRequestListener {
-                        override fun onComplicationData(complicationData: ComplicationData?) {
-                            // This can be run on an arbitrary thread, but that's OK.
-                            val dataType = complicationData?.type ?: ComplicationType.NO_DATA
-                            require(
-                                dataType != ComplicationType.NOT_CONFIGURED &&
-                                    dataType != ComplicationType.EMPTY
-                            ) {
-                                "Cannot send data of TYPE_NOT_CONFIGURED or " +
-                                    "TYPE_EMPTY. Use TYPE_NO_DATA instead."
-                            }
-                            require(
-                                dataType == ComplicationType.NO_DATA || dataType == expectedDataType
-                            ) {
-                                "Complication data should match the requested type. " +
-                                    "Expected $expectedDataType got $dataType."
-                            }
-                            if (complicationData is NoDataComplicationData) {
-                                complicationData.placeholder?.let {
-                                    require(it.type == expectedDataType) {
-                                        "Placeholder type must match the requested type. " +
-                                            "Expected $expectedDataType got ${it.type}."
+        ): Unit =
+            aidlMethod(TAG, "onUpdate2") {
+                val isForSafeWatchFace =
+                    bundle?.getInt(
+                        IComplicationProvider.BUNDLE_KEY_IS_SAFE_FOR_WATCHFACE,
+                        TargetWatchFaceSafety.UNKNOWN
+                    )
+                        ?: TargetWatchFaceSafety.UNKNOWN
+                val expectedDataType = fromWireType(type)
+                val iComplicationManager = IComplicationManager.Stub.asInterface(manager)
+                mainThreadHandler.post {
+                    onComplicationRequest(
+                        @Suppress("NewApi")
+                        ComplicationRequest(
+                            complicationInstanceId,
+                            expectedDataType,
+                            immediateResponseRequired = false,
+                            isForSafeWatchFace = isForSafeWatchFace
+                        ),
+                        object : ComplicationRequestListener {
+                            override fun onComplicationData(complicationData: ComplicationData?) {
+                                // This can be run on an arbitrary thread, but that's OK.
+                                val dataType = complicationData?.type ?: ComplicationType.NO_DATA
+                                require(
+                                    dataType != ComplicationType.NOT_CONFIGURED &&
+                                        dataType != ComplicationType.EMPTY
+                                ) {
+                                    "Cannot send data of TYPE_NOT_CONFIGURED or " +
+                                        "TYPE_EMPTY. Use TYPE_NO_DATA instead."
+                                }
+                                require(
+                                    dataType == ComplicationType.NO_DATA ||
+                                        dataType == expectedDataType
+                                ) {
+                                    "Complication data should match the requested type. " +
+                                        "Expected $expectedDataType got $dataType."
+                                }
+                                if (complicationData is NoDataComplicationData) {
+                                    complicationData.placeholder?.let {
+                                        require(it.type == expectedDataType) {
+                                            "Placeholder type must match the requested type. " +
+                                                "Expected $expectedDataType got ${it.type}."
+                                        }
                                     }
                                 }
+                                // When no update is needed, the complicationData is going to be
+                                // null.
+                                iComplicationManager.updateComplicationData(
+                                    complicationInstanceId,
+                                    complicationData?.asWireComplicationData()
+                                )
                             }
-                            // When no update is needed, the complicationData is going to be null.
-                            iComplicationManager.updateComplicationData(
-                                complicationInstanceId,
-                                complicationData?.asWireComplicationData()
-                            )
-                        }
 
-                        override fun onComplicationDataTimeline(
-                            complicationDataTimeline: ComplicationDataTimeline?
-                        ) {
-                            // This can be run on an arbitrary thread, but that's OK.
-                            val defaultComplicationData =
-                                complicationDataTimeline?.defaultComplicationData
-                            val dataType = defaultComplicationData?.type ?: ComplicationType.NO_DATA
-                            require(
-                                dataType != ComplicationType.NOT_CONFIGURED &&
-                                    dataType != ComplicationType.EMPTY
+                            override fun onComplicationDataTimeline(
+                                complicationDataTimeline: ComplicationDataTimeline?
                             ) {
-                                "Cannot send data of TYPE_NOT_CONFIGURED or " +
-                                    "TYPE_EMPTY. Use TYPE_NO_DATA instead."
-                            }
-                            require(
-                                dataType == ComplicationType.NO_DATA || dataType == expectedDataType
-                            ) {
-                                "Complication data should match the requested type. " +
-                                    "Expected $expectedDataType got $dataType."
-                            }
-                            if (
-                                defaultComplicationData != null &&
-                                    defaultComplicationData is NoDataComplicationData
-                            ) {
-                                defaultComplicationData.placeholder?.let {
-                                    require(it.type == expectedDataType) {
-                                        "Placeholder type must match the requested type. " +
-                                            "Expected $expectedDataType got ${it.type}."
+                                // This can be run on an arbitrary thread, but that's OK.
+                                val defaultComplicationData =
+                                    complicationDataTimeline?.defaultComplicationData
+                                val dataType =
+                                    defaultComplicationData?.type ?: ComplicationType.NO_DATA
+                                require(
+                                    dataType != ComplicationType.NOT_CONFIGURED &&
+                                        dataType != ComplicationType.EMPTY
+                                ) {
+                                    "Cannot send data of TYPE_NOT_CONFIGURED or " +
+                                        "TYPE_EMPTY. Use TYPE_NO_DATA instead."
+                                }
+                                require(
+                                    dataType == ComplicationType.NO_DATA ||
+                                        dataType == expectedDataType
+                                ) {
+                                    "Complication data should match the requested type. " +
+                                        "Expected $expectedDataType got $dataType."
+                                }
+                                if (
+                                    defaultComplicationData != null &&
+                                        defaultComplicationData is NoDataComplicationData
+                                ) {
+                                    defaultComplicationData.placeholder?.let {
+                                        require(it.type == expectedDataType) {
+                                            "Placeholder type must match the requested type. " +
+                                                "Expected $expectedDataType got ${it.type}."
+                                        }
                                     }
                                 }
-                            }
-                            complicationDataTimeline?.timelineEntries?.let { timelineEntries ->
-                                for (timelineEntry in timelineEntries) {
-                                    val timelineComplicationData = timelineEntry.complicationData
-                                    if (timelineComplicationData is NoDataComplicationData) {
-                                        timelineComplicationData.placeholder?.let {
-                                            require(it.type == expectedDataType) {
-                                                "Timeline entry Placeholder types must match the " +
-                                                    "requested type. Expected $expectedDataType " +
-                                                    "got ${timelineComplicationData.type}."
+                                complicationDataTimeline?.timelineEntries?.let { timelineEntries ->
+                                    for (timelineEntry in timelineEntries) {
+                                        val timelineComplicationData =
+                                            timelineEntry.complicationData
+                                        if (timelineComplicationData is NoDataComplicationData) {
+                                            timelineComplicationData.placeholder?.let {
+                                                require(it.type == expectedDataType) {
+                                                    "Timeline entry Placeholder types must match " +
+                                                        "the requested type. " +
+                                                        "Expected $expectedDataType " +
+                                                        "got ${timelineComplicationData.type}."
+                                                }
+                                            }
+                                        } else {
+                                            require(
+                                                timelineComplicationData.type == expectedDataType
+                                            ) {
+                                                "Timeline entry types must match the requested " +
+                                                    "type. Expected $expectedDataType got " +
+                                                    "${timelineComplicationData.type}."
                                             }
                                         }
-                                    } else {
-                                        require(timelineComplicationData.type == expectedDataType) {
-                                            "Timeline entry types must match the requested type. " +
-                                                "Expected $expectedDataType got " +
-                                                "${timelineComplicationData.type}."
-                                        }
                                     }
                                 }
+                                // When no update is needed, the complicationData is going to be
+                                // null.
+                                iComplicationManager.updateComplicationData(
+                                    complicationInstanceId,
+                                    complicationDataTimeline?.asWireComplicationData()
+                                )
                             }
-                            // When no update is needed, the complicationData is going to be null.
-                            iComplicationManager.updateComplicationData(
-                                complicationInstanceId,
-                                complicationDataTimeline?.asWireComplicationData()
-                            )
                         }
-                    }
-                )
+                    )
+                }
             }
-        }
 
         @SuppressLint("SyntheticAccessor")
-        override fun onComplicationDeactivated(complicationInstanceId: Int) {
-            mainThreadHandler.post {
-                this@ComplicationDataSourceService.onComplicationDeactivated(complicationInstanceId)
+        override fun onComplicationDeactivated(complicationInstanceId: Int): Unit =
+            aidlMethod(TAG, "onComplicationDeactivated") {
+                mainThreadHandler.post {
+                    this@ComplicationDataSourceService.onComplicationDeactivated(
+                        complicationInstanceId
+                    )
+                }
             }
-        }
 
         @SuppressLint("SyntheticAccessor")
         override fun onComplicationActivated(
             complicationInstanceId: Int,
             type: Int,
             manager: IBinder
-        ) {
-            mainThreadHandler.post {
-                this@ComplicationDataSourceService.onComplicationActivated(
-                    complicationInstanceId,
-                    fromWireType(type)
-                )
+        ): Unit =
+            aidlMethod(TAG, "onComplicationActivated") {
+                mainThreadHandler.post {
+                    this@ComplicationDataSourceService.onComplicationActivated(
+                        complicationInstanceId,
+                        fromWireType(type)
+                    )
+                }
             }
-        }
 
-        override fun getApiVersion(): Int {
-            return API_VERSION
-        }
+        override fun getApiVersion(): Int =
+            aidlMethod(TAG, "getApiVersion") {
+                return API_VERSION
+            }
 
         @SuppressLint("SyntheticAccessor")
-        override fun getComplicationPreviewData(
-            type: Int
-        ): android.support.wearable.complications.ComplicationData? {
-            val expectedDataType = fromWireType(type)
-            val complicationData = getPreviewData(expectedDataType)
-            val dataType = complicationData?.type ?: ComplicationType.NO_DATA
-            require(dataType == ComplicationType.NO_DATA || dataType == expectedDataType) {
-                "Preview data should match the requested type. " +
-                    "Expected $expectedDataType got $dataType."
+        override fun getComplicationPreviewData(type: Int): WireComplicationData? =
+            aidlMethod(TAG, "getComplicationPreviewData") {
+                val expectedDataType = fromWireType(type)
+                val complicationData = getPreviewData(expectedDataType)
+                val dataType = complicationData?.type ?: ComplicationType.NO_DATA
+                require(dataType == ComplicationType.NO_DATA || dataType == expectedDataType) {
+                    "Preview data should match the requested type. " +
+                        "Expected $expectedDataType got $dataType."
+                }
+
+                if (complicationData != null) {
+                    require(complicationData.validTimeRange == TimeRange.ALWAYS) {
+                        "Preview data should have time range set to ALWAYS."
+                    }
+                    require(!complicationData.asWireComplicationData().hasDynamicValues()) {
+                        "Preview data must not have dynamic values."
+                    }
+                }
+                return complicationData?.asWireComplicationData()
             }
 
-            if (complicationData != null) {
-                require(complicationData.validTimeRange == TimeRange.ALWAYS) {
-                    "Preview data should have time range set to ALWAYS."
-                }
-                require(!complicationData.asWireComplicationData().hasDynamicValues()) {
-                    "Preview data must not have dynamic values."
+        override fun onStartSynchronousComplicationRequests(complicationInstanceId: Int): Unit =
+            aidlMethod(TAG, "onStartSynchronousComplicationRequests") {
+                mainThreadHandler.post {
+                    this@ComplicationDataSourceService.onStartImmediateComplicationRequests(
+                        complicationInstanceId
+                    )
                 }
             }
-            return complicationData?.asWireComplicationData()
-        }
 
-        override fun onStartSynchronousComplicationRequests(complicationInstanceId: Int) {
-            mainThreadHandler.post {
-                this@ComplicationDataSourceService.onStartImmediateComplicationRequests(
-                    complicationInstanceId
-                )
+        override fun onStopSynchronousComplicationRequests(complicationInstanceId: Int): Unit =
+            aidlMethod(TAG, "onStopSynchronousComplicationRequests") {
+                mainThreadHandler.post {
+                    this@ComplicationDataSourceService.onStopImmediateComplicationRequests(
+                        complicationInstanceId
+                    )
+                }
             }
-        }
-
-        override fun onStopSynchronousComplicationRequests(complicationInstanceId: Int) {
-            mainThreadHandler.post {
-                this@ComplicationDataSourceService.onStopImmediateComplicationRequests(
-                    complicationInstanceId
-                )
-            }
-        }
 
         override fun onSynchronousComplicationRequest(complicationInstanceId: Int, type: Int) =
-            onSynchronousComplicationRequest2(complicationInstanceId, type, bundle = null)
+            aidlMethod(TAG, "onSynchronousComplicationRequest") {
+                onSynchronousComplicationRequest2(complicationInstanceId, type, bundle = null)
+            }
 
         override fun onSynchronousComplicationRequest2(
             complicationInstanceId: Int,
             type: Int,
             bundle: Bundle?
-        ): android.support.wearable.complications.ComplicationData? {
-            val isForSafeWatchFace =
-                bundle?.getInt(
-                    IComplicationProvider.BUNDLE_KEY_IS_SAFE_FOR_WATCHFACE,
-                    TargetWatchFaceSafety.UNKNOWN
-                )
-                    ?: TargetWatchFaceSafety.UNKNOWN
-            val expectedDataType = fromWireType(type)
-            val complicationType = fromWireType(type)
-            val latch = CountDownLatch(1)
-            var wireComplicationData: android.support.wearable.complications.ComplicationData? =
-                null
-            mainThreadHandler.post {
-                this@ComplicationDataSourceService.onComplicationRequest(
-                    @Suppress("NewApi")
-                    ComplicationRequest(
-                        complicationInstanceId,
-                        complicationType,
-                        immediateResponseRequired = true,
-                        isForSafeWatchFace = isForSafeWatchFace
-                    ),
-                    object : ComplicationRequestListener {
-                        override fun onComplicationData(complicationData: ComplicationData?) {
-                            // This can be run on an arbitrary thread, but that's OK.
-                            val dataType = complicationData?.type ?: ComplicationType.NO_DATA
-                            require(
-                                dataType != ComplicationType.NOT_CONFIGURED &&
-                                    dataType != ComplicationType.EMPTY
-                            ) {
-                                "Cannot send data of TYPE_NOT_CONFIGURED or " +
-                                    "TYPE_EMPTY. Use TYPE_NO_DATA instead."
-                            }
-                            require(
-                                dataType == ComplicationType.NO_DATA || dataType == expectedDataType
-                            ) {
-                                "Complication data should match the requested type. " +
-                                    "Expected $expectedDataType got $dataType."
+        ): WireComplicationData? =
+            aidlMethod(TAG, "onSynchronousComplicationRequest2") {
+                val isForSafeWatchFace =
+                    bundle?.getInt(
+                        IComplicationProvider.BUNDLE_KEY_IS_SAFE_FOR_WATCHFACE,
+                        TargetWatchFaceSafety.UNKNOWN
+                    )
+                        ?: TargetWatchFaceSafety.UNKNOWN
+                val expectedDataType = fromWireType(type)
+                val complicationType = fromWireType(type)
+                val latch = CountDownLatch(1)
+                var wireComplicationData: WireComplicationData? = null
+                mainThreadHandler.post {
+                    this@ComplicationDataSourceService.onComplicationRequest(
+                        @Suppress("NewApi")
+                        ComplicationRequest(
+                            complicationInstanceId,
+                            complicationType,
+                            immediateResponseRequired = true,
+                            isForSafeWatchFace = isForSafeWatchFace
+                        ),
+                        object : ComplicationRequestListener {
+                            override fun onComplicationData(complicationData: ComplicationData?) {
+                                // This can be run on an arbitrary thread, but that's OK.
+                                val dataType = complicationData?.type ?: ComplicationType.NO_DATA
+                                require(
+                                    dataType != ComplicationType.NOT_CONFIGURED &&
+                                        dataType != ComplicationType.EMPTY
+                                ) {
+                                    "Cannot send data of TYPE_NOT_CONFIGURED or " +
+                                        "TYPE_EMPTY. Use TYPE_NO_DATA instead."
+                                }
+                                require(
+                                    dataType == ComplicationType.NO_DATA ||
+                                        dataType == expectedDataType
+                                ) {
+                                    "Complication data should match the requested type. " +
+                                        "Expected $expectedDataType got $dataType."
+                                }
+
+                                // When no update is needed, the complicationData is going to be
+                                // null.
+                                wireComplicationData = complicationData?.asWireComplicationData()
+                                latch.countDown()
                             }
 
-                            // When no update is needed, the complicationData is going to be null.
-                            wireComplicationData = complicationData?.asWireComplicationData()
-                            latch.countDown()
+                            override fun onComplicationDataTimeline(
+                                complicationDataTimeline: ComplicationDataTimeline?
+                            ) {
+                                // This can be run on an arbitrary thread, but that's OK.
+                                val dataType =
+                                    complicationDataTimeline?.defaultComplicationData?.type
+                                        ?: ComplicationType.NO_DATA
+                                require(
+                                    dataType != ComplicationType.NOT_CONFIGURED &&
+                                        dataType != ComplicationType.EMPTY
+                                ) {
+                                    "Cannot send data of TYPE_NOT_CONFIGURED or " +
+                                        "TYPE_EMPTY. Use TYPE_NO_DATA instead."
+                                }
+                                require(
+                                    dataType == ComplicationType.NO_DATA ||
+                                        dataType == expectedDataType
+                                ) {
+                                    "Complication data should match the requested type. " +
+                                        "Expected $expectedDataType got $dataType."
+                                }
+
+                                // When no update is needed, the complicationData is going to be
+                                // null.
+                                wireComplicationData =
+                                    complicationDataTimeline?.asWireComplicationData()
+                                latch.countDown()
+                            }
                         }
-
-                        override fun onComplicationDataTimeline(
-                            complicationDataTimeline: ComplicationDataTimeline?
-                        ) {
-                            // This can be run on an arbitrary thread, but that's OK.
-                            val dataType =
-                                complicationDataTimeline?.defaultComplicationData?.type
-                                    ?: ComplicationType.NO_DATA
-                            require(
-                                dataType != ComplicationType.NOT_CONFIGURED &&
-                                    dataType != ComplicationType.EMPTY
-                            ) {
-                                "Cannot send data of TYPE_NOT_CONFIGURED or " +
-                                    "TYPE_EMPTY. Use TYPE_NO_DATA instead."
-                            }
-                            require(
-                                dataType == ComplicationType.NO_DATA || dataType == expectedDataType
-                            ) {
-                                "Complication data should match the requested type. " +
-                                    "Expected $expectedDataType got $dataType."
-                            }
-
-                            // When no update is needed, the complicationData is going to be null.
-                            wireComplicationData =
-                                complicationDataTimeline?.asWireComplicationData()
-                            latch.countDown()
-                        }
-                    }
-                )
+                    )
+                }
+                latch.await()
+                return wireComplicationData
             }
-            latch.await()
-            return wireComplicationData
-        }
     }
 
     public companion object {
+        private const val TAG = "ComplicationDataSourceService"
+
         /**
          * The intent action used to send update requests to the data source.
          * [ComplicationDataSourceService] must declare an intent filter for this action in the
diff --git a/wear/watchface/watchface-complications-data/lint-baseline.xml b/wear/watchface/watchface-complications-data/lint-baseline.xml
index 11bf0b2..6ffccee 100644
--- a/wear/watchface/watchface-complications-data/lint-baseline.xml
+++ b/wear/watchface/watchface-complications-data/lint-baseline.xml
@@ -1,50 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 8.1.0-alpha07" type="baseline" client="gradle" dependencies="false" name="AGP (8.0.0-beta03)" variant="all" version="8.1.0-alpha07">
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="class ComplicationData : Parcelable, Serializable {"
-        errorLine2="      ~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/android/support/wearable/complications/ComplicationData.kt"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    annotation class ComplicationType"
-        errorLine2="                     ~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/android/support/wearable/complications/ComplicationData.kt"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    annotation class ImageStyle"
-        errorLine2="                     ~~~~~~~~~~">
-        <location
-            file="src/main/java/android/support/wearable/complications/ComplicationData.kt"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    fun toStringNoRedaction() = &quot;ComplicationData{mType=$type, mFields=$fields}&quot;"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/android/support/wearable/complications/ComplicationData.kt"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    infix fun equalsUnevaluated(other: ComplicationData): Boolean ="
-        errorLine2="              ~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/wear/watchface/complications/data/Data.kt"/>
-    </issue>
+<issues format="6" by="lint 8.1.0-beta02" type="baseline" client="gradle" dependencies="false" name="AGP (8.1.0-beta02)" variant="all" version="8.1.0-beta02">
 
     <issue
         id="BanHideAnnotation"
@@ -94,15 +49,6 @@
     <issue
         id="BanHideAnnotation"
         message="@hide is not allowed in Javadoc"
-        errorLine1="    public val valueExpression: DynamicFloat? = valueExpression"
-        errorLine2="               ~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/wear/watchface/complications/data/Data.kt"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
         errorLine1="    public companion object {"
         errorLine2="                     ~~~~~~">
         <location
@@ -112,15 +58,6 @@
     <issue
         id="BanHideAnnotation"
         message="@hide is not allowed in Javadoc"
-        errorLine1="    public val valueExpression: DynamicFloat? = valueExpression"
-        errorLine2="               ~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/wear/watchface/complications/data/Data.kt"/>
-    </issue>
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
         errorLine1="    public companion object {"
         errorLine2="                     ~~~~~~">
         <location
@@ -184,8 +121,8 @@
     <issue
         id="BanHideAnnotation"
         message="@hide is not allowed in Javadoc"
-        errorLine1="    @RestrictTo(RestrictTo.Scope.SUBCLASSES) public fun getTimeDependentText(): TimeDependentText"
-        errorLine2="                                                        ~~~~~~~~~~~~~~~~~~~~">
+        errorLine1="    public fun getTimeDependentText(): WireTimeDependentText"
+        errorLine2="               ~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/wear/watchface/complications/data/Text.kt"/>
     </issue>
@@ -226,58 +163,4 @@
             file="src/main/java/androidx/wear/watchface/complications/data/Type.kt"/>
     </issue>
 
-    <issue
-        id="RequireUnstableAidlAnnotation"
-        message="Unstable AIDL files must be annotated with `@RequiresOptIn` marker"
-        errorLine1="parcelable ComplicationData;"
-        errorLine2="~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/aidl/android/support/wearable/complications/ComplicationData.aidl"/>
-    </issue>
-
-    <issue
-        id="RequireUnstableAidlAnnotation"
-        message="Unstable AIDL files must be annotated with `@RequiresOptIn` marker"
-        errorLine1="parcelable ComplicationProviderInfo;"
-        errorLine2="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/aidl/android/support/wearable/complications/ComplicationProviderInfo.aidl"/>
-    </issue>
-
-    <issue
-        id="RequireUnstableAidlAnnotation"
-        message="Unstable AIDL files must be annotated with `@RequiresOptIn` marker"
-        errorLine1="interface IComplicationManager {"
-        errorLine2="^">
-        <location
-            file="src/main/aidl/android/support/wearable/complications/IComplicationManager.aidl"/>
-    </issue>
-
-    <issue
-        id="RequireUnstableAidlAnnotation"
-        message="Unstable AIDL files must be annotated with `@RequiresOptIn` marker"
-        errorLine1="interface IComplicationProvider {"
-        errorLine2="^">
-        <location
-            file="src/main/aidl/android/support/wearable/complications/IComplicationProvider.aidl"/>
-    </issue>
-
-    <issue
-        id="RequireUnstableAidlAnnotation"
-        message="Unstable AIDL files must be annotated with `@RequiresOptIn` marker"
-        errorLine1="oneway interface IPreviewComplicationDataCallback {"
-        errorLine2="^">
-        <location
-            file="src/main/aidl/android/support/wearable/complications/IPreviewComplicationDataCallback.aidl"/>
-    </issue>
-
-    <issue
-        id="RequireUnstableAidlAnnotation"
-        message="Unstable AIDL files must be annotated with `@RequiresOptIn` marker"
-        errorLine1="interface IProviderInfoService {"
-        errorLine2="^">
-        <location
-            file="src/main/aidl/android/support/wearable/complications/IProviderInfoService.aidl"/>
-    </issue>
-
 </issues>
diff --git a/wear/watchface/watchface-complications-data/src/main/aidl/android/support/wearable/complications/ComplicationData.aidl b/wear/watchface/watchface-complications-data/src/main/aidl/android/support/wearable/complications/ComplicationData.aidl
index 3e67b25..90b065f 100644
--- a/wear/watchface/watchface-complications-data/src/main/aidl/android/support/wearable/complications/ComplicationData.aidl
+++ b/wear/watchface/watchface-complications-data/src/main/aidl/android/support/wearable/complications/ComplicationData.aidl
@@ -1,4 +1,4 @@
 package android.support.wearable.complications;
 
-/** {@hide} */
+@JavaPassthrough(annotation="@androidx.annotation.RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY)")
 parcelable ComplicationData;
diff --git a/wear/watchface/watchface-complications-data/src/main/aidl/android/support/wearable/complications/ComplicationProviderInfo.aidl b/wear/watchface/watchface-complications-data/src/main/aidl/android/support/wearable/complications/ComplicationProviderInfo.aidl
index 03b8282..75f3f2a 100644
--- a/wear/watchface/watchface-complications-data/src/main/aidl/android/support/wearable/complications/ComplicationProviderInfo.aidl
+++ b/wear/watchface/watchface-complications-data/src/main/aidl/android/support/wearable/complications/ComplicationProviderInfo.aidl
@@ -1,4 +1,4 @@
 package android.support.wearable.complications;
 
-/** {@hide} */
+@JavaPassthrough(annotation="@androidx.annotation.RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY)")
 parcelable ComplicationProviderInfo;
diff --git a/wear/watchface/watchface-complications-data/src/main/aidl/android/support/wearable/complications/IComplicationManager.aidl b/wear/watchface/watchface-complications-data/src/main/aidl/android/support/wearable/complications/IComplicationManager.aidl
index ceb4782..7b9a8af 100644
--- a/wear/watchface/watchface-complications-data/src/main/aidl/android/support/wearable/complications/IComplicationManager.aidl
+++ b/wear/watchface/watchface-complications-data/src/main/aidl/android/support/wearable/complications/IComplicationManager.aidl
@@ -5,8 +5,8 @@
 /**
  * Interface of a service that allows data providers to interact with the complications manager.
  *
- * {@hide}
  */
+@JavaPassthrough(annotation="@androidx.annotation.RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY)")
 interface IComplicationManager {
     /**
      * Updates complication data for the given complication slot.
diff --git a/wear/watchface/watchface-complications-data/src/main/aidl/android/support/wearable/complications/IComplicationProvider.aidl b/wear/watchface/watchface-complications-data/src/main/aidl/android/support/wearable/complications/IComplicationProvider.aidl
index 51d0d9e..2445d36 100644
--- a/wear/watchface/watchface-complications-data/src/main/aidl/android/support/wearable/complications/IComplicationProvider.aidl
+++ b/wear/watchface/watchface-complications-data/src/main/aidl/android/support/wearable/complications/IComplicationProvider.aidl
@@ -5,8 +5,8 @@
 /**
  * Interface for a service that allows data providers to receive information.
  *
- * @hide
  */
+@JavaPassthrough(annotation="@androidx.annotation.RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY)")
 interface IComplicationProvider {
     // IMPORTANT NOTE: All methods must be given an explicit transaction id that must never change
     // in the future to remain binary backwards compatible.
diff --git a/wear/watchface/watchface-complications-data/src/main/aidl/android/support/wearable/complications/IPreviewComplicationDataCallback.aidl b/wear/watchface/watchface-complications-data/src/main/aidl/android/support/wearable/complications/IPreviewComplicationDataCallback.aidl
index f30007b..7fbf236 100644
--- a/wear/watchface/watchface-complications-data/src/main/aidl/android/support/wearable/complications/IPreviewComplicationDataCallback.aidl
+++ b/wear/watchface/watchface-complications-data/src/main/aidl/android/support/wearable/complications/IPreviewComplicationDataCallback.aidl
@@ -6,8 +6,8 @@
  * Callback for IProviderInfoService.requestPreviewComplicationData to fetch
  * preview {@link ComplicationData} from a provider.
  *
- * @hide
  */
+@JavaPassthrough(annotation="@androidx.annotation.RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY)")
 oneway interface IPreviewComplicationDataCallback {
     /**
      * Updates complication data for the given complication.
diff --git a/wear/watchface/watchface-complications-data/src/main/aidl/android/support/wearable/complications/IProviderInfoService.aidl b/wear/watchface/watchface-complications-data/src/main/aidl/android/support/wearable/complications/IProviderInfoService.aidl
index 312b1e0..4c68067 100644
--- a/wear/watchface/watchface-complications-data/src/main/aidl/android/support/wearable/complications/IProviderInfoService.aidl
+++ b/wear/watchface/watchface-complications-data/src/main/aidl/android/support/wearable/complications/IProviderInfoService.aidl
@@ -8,8 +8,8 @@
 /**
  * Interface for a service that allows provider info to be retrieved from the system.
  *
- * @hide
  */
+@JavaPassthrough(annotation="@androidx.annotation.RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY)")
 interface IProviderInfoService {
     // IMPORTANT NOTE: All methods must be given an explicit transaction id that must never change
     // in the future to remain binary backwards compatible.
diff --git a/wear/watchface/watchface-complications-data/src/main/java/android/support/wearable/complications/ComplicationData.kt b/wear/watchface/watchface-complications-data/src/main/java/android/support/wearable/complications/ComplicationData.kt
index 7cb14ac..272a1fd 100644
--- a/wear/watchface/watchface-complications-data/src/main/java/android/support/wearable/complications/ComplicationData.kt
+++ b/wear/watchface/watchface-complications-data/src/main/java/android/support/wearable/complications/ComplicationData.kt
@@ -60,12 +60,10 @@
  * [isActiveAt] to determine whether the data is valid at that time. See the documentation for each
  * of the complication types below for details of which fields are expected to be displayed.
  *
- * @hide
  */
 @SuppressLint("BanParcelableUsage")
 @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)
 class ComplicationData : Parcelable, Serializable {
-    /** @hide */
     @IntDef(
         TYPE_EMPTY,
         TYPE_NOT_CONFIGURED,
@@ -86,7 +84,6 @@
     @Retention(AnnotationRetention.SOURCE)
     annotation class ComplicationType
 
-    /** @hide */
     @IntDef(IMAGE_STYLE_PHOTO, IMAGE_STYLE_ICON)
     @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)
     @Retention(AnnotationRetention.SOURCE)
@@ -1170,7 +1167,6 @@
             toStringNoRedaction()
         }
 
-    /** @hide */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     fun toStringNoRedaction() = "ComplicationData{mType=$type, mFields=$fields}"
 
diff --git a/wear/watchface/watchface-complications-data/src/main/java/androidx/wear/watchface/complications/data/DynamicComplicationDataEvaluator.kt b/wear/watchface/watchface-complications-data/src/main/java/androidx/wear/watchface/complications/data/ComplicationDataEvaluator.kt
similarity index 99%
rename from wear/watchface/watchface-complications-data/src/main/java/androidx/wear/watchface/complications/data/DynamicComplicationDataEvaluator.kt
rename to wear/watchface/watchface-complications-data/src/main/java/androidx/wear/watchface/complications/data/ComplicationDataEvaluator.kt
index b963cda..7aee659 100644
--- a/wear/watchface/watchface-complications-data/src/main/java/androidx/wear/watchface/complications/data/DynamicComplicationDataEvaluator.kt
+++ b/wear/watchface/watchface-complications-data/src/main/java/androidx/wear/watchface/complications/data/ComplicationDataEvaluator.kt
@@ -60,7 +60,7 @@
  * [androidx.wear.protolayout.expression.DynamicBuilders.DynamicType] within its fields.
  */
 @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)
-class DynamicComplicationDataEvaluator(
+class ComplicationDataEvaluator(
     private val stateStore: StateStore? = StateStore(emptyMap()),
     private val timeGateway: TimeGateway? = null,
     // TODO(b/281664278): remove the SensorGateway usage, implement PlatformDataProvider instead.
@@ -302,16 +302,16 @@
                         .apply { sensorGateway?.let {
                             addPlatformDataProvider(
                                 SensorGatewaySingleDataProvider(
-                                    sensorGateway, PlatformHealthSources.HEART_RATE_BPM
+                                    sensorGateway, PlatformHealthSources.Keys.HEART_RATE_BPM
                                 ),
-                                Collections.singleton(PlatformHealthSources.HEART_RATE_BPM)
+                                Collections.singleton(PlatformHealthSources.Keys.HEART_RATE_BPM)
                                     as Set<PlatformDataKey<*>>
                             )
                             addPlatformDataProvider(
                                 SensorGatewaySingleDataProvider(
-                                    sensorGateway, PlatformHealthSources.DAILY_STEPS
+                                    sensorGateway, PlatformHealthSources.Keys.DAILY_STEPS
                                 ),
-                                Collections.singleton(PlatformHealthSources.DAILY_STEPS)
+                                Collections.singleton(PlatformHealthSources.Keys.DAILY_STEPS)
                                     as Set<PlatformDataKey<*>>
                             )
                         } }
diff --git a/wear/watchface/watchface-complications-data/src/main/java/androidx/wear/watchface/complications/data/Data.kt b/wear/watchface/watchface-complications-data/src/main/java/androidx/wear/watchface/complications/data/Data.kt
index 6d7ec59..174af66 100644
--- a/wear/watchface/watchface-complications-data/src/main/java/androidx/wear/watchface/complications/data/Data.kt
+++ b/wear/watchface/watchface-complications-data/src/main/java/androidx/wear/watchface/complications/data/Data.kt
@@ -190,8 +190,8 @@
     /**
      * Similar to [equals], but avoids comparing evaluated fields (if dynamic values exist).
      *
-     * @hide
      */
+    @RestrictTo(RestrictTo.Scope.LIBRARY)
     infix fun equalsUnevaluated(other: ComplicationData): Boolean =
         asWireComplicationData() equalsUnevaluated other.asWireComplicationData()
 
diff --git a/wear/watchface/watchface-complications-data/src/main/java/androidx/wear/watchface/utility/AidlMethod.kt b/wear/watchface/watchface-complications-data/src/main/java/androidx/wear/watchface/utility/AidlMethod.kt
new file mode 100644
index 0000000..cac1908
--- /dev/null
+++ b/wear/watchface/watchface-complications-data/src/main/java/androidx/wear/watchface/utility/AidlMethod.kt
@@ -0,0 +1,35 @@
+/*
+ * Copyright 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package androidx.wear.watchface.utility
+
+import android.util.Log
+import androidx.annotation.RestrictTo
+
+/**
+ * Wrapper for all AIDL method implementations.
+ *
+ * Logs and rethrow failures.
+ */
+@RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)
+inline fun <T> aidlMethod(classTag: String, methodName: String, block: () -> T): T {
+    try {
+        return block()
+    } catch (e: Throwable) {
+        Log.e(classTag, "$methodName failed", e)
+        throw e
+    }
+}
diff --git a/wear/watchface/watchface-complications-data/src/test/java/androidx/wear/watchface/complications/data/DynamicComplicationDataEvaluatorTest.kt b/wear/watchface/watchface-complications-data/src/test/java/androidx/wear/watchface/complications/data/ComplicationDataEvaluatorTest.kt
similarity index 97%
rename from wear/watchface/watchface-complications-data/src/test/java/androidx/wear/watchface/complications/data/DynamicComplicationDataEvaluatorTest.kt
rename to wear/watchface/watchface-complications-data/src/test/java/androidx/wear/watchface/complications/data/ComplicationDataEvaluatorTest.kt
index 18e7111..01fdd1e 100644
--- a/wear/watchface/watchface-complications-data/src/test/java/androidx/wear/watchface/complications/data/DynamicComplicationDataEvaluatorTest.kt
+++ b/wear/watchface/watchface-complications-data/src/test/java/androidx/wear/watchface/complications/data/ComplicationDataEvaluatorTest.kt
@@ -28,7 +28,7 @@
 import androidx.wear.protolayout.expression.DynamicDataBuilders.DynamicDataValue
 import androidx.wear.protolayout.expression.pipeline.StateStore
 import androidx.wear.protolayout.expression.pipeline.TimeGateway
-import androidx.wear.watchface.complications.data.DynamicComplicationDataEvaluator.Companion.INVALID_DATA
+import androidx.wear.watchface.complications.data.ComplicationDataEvaluator.Companion.INVALID_DATA
 import com.google.common.truth.Expect
 import com.google.common.truth.Truth.assertThat
 import java.time.Instant
@@ -51,7 +51,7 @@
 import org.robolectric.shadows.ShadowLog
 
 @RunWith(SharedRobolectricTestRunner::class)
-class DynamicComplicationDataEvaluatorTest {
+class ComplicationDataEvaluatorTest {
     @get:Rule val expect = Expect.create()
 
     @Before
@@ -63,7 +63,7 @@
     fun evaluate_noExpression_returnsUnevaluated() = runBlocking {
         val data = WireComplicationData.Builder(TYPE_NO_DATA).setRangedValue(10f).build()
 
-        val evaluator = DynamicComplicationDataEvaluator()
+        val evaluator = ComplicationDataEvaluator()
 
         assertThat(evaluator.evaluate(data).firstOrNull()).isEqualTo(data)
     }
@@ -295,7 +295,7 @@
             // Defensive copy due to in-place evaluation.
             val expressed = WireComplicationData.Builder(scenario.expressed).build()
             val stateStore = StateStore(mapOf())
-            val evaluator = DynamicComplicationDataEvaluator(stateStore)
+            val evaluator = ComplicationDataEvaluator(stateStore)
             val allEvaluations =
                 evaluator
                     .evaluate(expressed)
@@ -329,7 +329,7 @@
                 )
                 .build()
         val timeGateway = mock<TimeGateway>()
-        val evaluator = DynamicComplicationDataEvaluator(timeGateway = timeGateway)
+        val evaluator = ComplicationDataEvaluator(timeGateway = timeGateway)
         val flow = evaluator.evaluate(expressed)
 
         // Validity check - TimeGateway not used until Flow collection.
@@ -361,7 +361,7 @@
                 .setListEntryCollection(listOf(constantData("List")))
                 .build()
                 .also { it.setTimelineEntryCollection(listOf(constantData("Timeline"))) }
-        val evaluator = DynamicComplicationDataEvaluator(keepDynamicValues = true)
+        val evaluator = ComplicationDataEvaluator(keepDynamicValues = true)
 
         assertThat(evaluator.evaluate(expressed).firstOrNull())
             .isEqualTo(
@@ -399,7 +399,7 @@
                 .setShortText(WireComplicationText("Text"))
                 .setPlaceholder(evaluatedData("Placeholder"))
                 .build()
-        val evaluator = DynamicComplicationDataEvaluator(keepDynamicValues = true)
+        val evaluator = ComplicationDataEvaluator(keepDynamicValues = true)
 
         assertThat(evaluator.evaluate(expressed).firstOrNull())
             .isEqualTo(
diff --git a/wear/watchface/watchface-complications/lint-baseline.xml b/wear/watchface/watchface-complications/lint-baseline.xml
index e05ec12..65d2b9f 100644
--- a/wear/watchface/watchface-complications/lint-baseline.xml
+++ b/wear/watchface/watchface-complications/lint-baseline.xml
@@ -1,14 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 8.1.0-alpha07" type="baseline" client="gradle" dependencies="false" name="AGP (8.0.0-beta03)" variant="all" version="8.1.0-alpha07">
-
-    <issue
-        id="BanHideAnnotation"
-        message="@hide is not allowed in Javadoc"
-        errorLine1="    public var closed: Boolean = false"
-        errorLine2="               ~~~~~~">
-        <location
-            file="src/main/java/androidx/wear/watchface/complications/ComplicationDataSourceInfoRetriever.kt"/>
-    </issue>
+<issues format="6" by="lint 8.1.0-beta02" type="baseline" client="gradle" dependencies="false" name="AGP (8.1.0-beta02)" variant="all" version="8.1.0-beta02">
 
     <issue
         id="BanHideAnnotation"
diff --git a/wear/watchface/watchface-complications/src/main/java/androidx/wear/watchface/complications/ComplicationDataSourceInfoRetriever.kt b/wear/watchface/watchface-complications/src/main/java/androidx/wear/watchface/complications/ComplicationDataSourceInfoRetriever.kt
index af4e203..b4b6119 100644
--- a/wear/watchface/watchface-complications/src/main/java/androidx/wear/watchface/complications/ComplicationDataSourceInfoRetriever.kt
+++ b/wear/watchface/watchface-complications/src/main/java/androidx/wear/watchface/complications/ComplicationDataSourceInfoRetriever.kt
@@ -47,9 +47,9 @@
 import androidx.wear.watchface.complications.data.SmallImageType
 import androidx.wear.watchface.complications.data.toApiComplicationData
 import androidx.wear.watchface.utility.TraceEvent
+import androidx.wear.watchface.utility.aidlMethod
 import androidx.wear.watchface.utility.iconEquals
 import androidx.wear.watchface.utility.iconHashCode
-import java.lang.IllegalArgumentException
 import kotlin.coroutines.resume
 import kotlin.coroutines.resumeWithException
 import kotlinx.coroutines.CancellableContinuation
@@ -105,9 +105,10 @@
     private val deferredService = CompletableDeferred<IProviderInfoService>()
     private val lock = Any()
 
-    /** @hide */
     @VisibleForTesting
     @RestrictTo(RestrictTo.Scope.LIBRARY)
+    @get:RestrictTo(RestrictTo.Scope.LIBRARY)
+    @set:RestrictTo(RestrictTo.Scope.LIBRARY)
     public var closed: Boolean = false
         private set
 
@@ -226,13 +227,14 @@
 
         override fun updateComplicationData(
             data: android.support.wearable.complications.ComplicationData?
-        ) {
-            safeUnlinkToDeath()
-            continuation!!.resume(data?.toApiComplicationData())
+        ) =
+            aidlMethod(TAG, "updateComplicationData") {
+                safeUnlinkToDeath()
+                continuation!!.resume(data?.toApiComplicationData())
 
-            // Re http://b/249121838 this is important, it prevents a memory leak.
-            continuation = null
-        }
+                // Re http://b/249121838 this is important, it prevents a memory leak.
+                continuation = null
+            }
 
         internal fun safeUnlinkToDeath() {
             try {
diff --git a/wear/watchface/watchface-data/lint-baseline.xml b/wear/watchface/watchface-data/lint-baseline.xml
index f5b7ee0..cc0a7eb 100644
--- a/wear/watchface/watchface-data/lint-baseline.xml
+++ b/wear/watchface/watchface-data/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 8.1.0-alpha07" type="baseline" client="gradle" dependencies="false" name="AGP (8.0.0-beta03)" variant="all" version="8.1.0-alpha07">
+<issues format="6" by="lint 8.1.0-beta02" type="baseline" client="gradle" dependencies="false" name="AGP (8.1.0-beta02)" variant="all" version="8.1.0-beta02">
 
     <issue
         id="BanHideAnnotation"
@@ -19,337 +19,4 @@
             file="src/main/java/androidx/wear/watchface/data/WatchFaceColorsWireFormat.java"/>
     </issue>
 
-    <issue
-        id="RequireUnstableAidlAnnotation"
-        message="Unstable AIDL files must be annotated with `@RequiresOptIn` marker"
-        errorLine1="parcelable ComplicationRenderParams;"
-        errorLine2="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/aidl/androidx/wear/watchface/control/data/ComplicationRenderParams.aidl"/>
-    </issue>
-
-    <issue
-        id="RequireUnstableAidlAnnotation"
-        message="Unstable AIDL files must be annotated with `@RequiresOptIn` marker"
-        errorLine1="parcelable ComplicationSlotMetadataWireFormat;"
-        errorLine2="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/aidl/androidx/wear/watchface/data/ComplicationSlotMetadataWireFormat.aidl"/>
-    </issue>
-
-    <issue
-        id="RequireUnstableAidlAnnotation"
-        message="Unstable AIDL files must be annotated with `@RequiresOptIn` marker"
-        errorLine1="parcelable ComplicationStateWireFormat;"
-        errorLine2="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/aidl/androidx/wear/watchface/data/ComplicationStateWireFormat.aidl"/>
-    </issue>
-
-    <issue
-        id="RequireUnstableAidlAnnotation"
-        message="Unstable AIDL files must be annotated with `@RequiresOptIn` marker"
-        errorLine1="parcelable ContentDescriptionLabel;"
-        errorLine2="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/aidl/android/support/wearable/watchface/accessibility/ContentDescriptionLabel.aidl"/>
-    </issue>
-
-    <issue
-        id="RequireUnstableAidlAnnotation"
-        message="Unstable AIDL files must be annotated with `@RequiresOptIn` marker"
-        errorLine1="parcelable CrashInfoParcel;"
-        errorLine2="~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/aidl/androidx/wear/watchface/control/data/CrashInfoParcel.aidl"/>
-    </issue>
-
-    <issue
-        id="RequireUnstableAidlAnnotation"
-        message="Unstable AIDL files must be annotated with `@RequiresOptIn` marker"
-        errorLine1="parcelable DefaultProviderPoliciesParams;"
-        errorLine2="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/aidl/androidx/wear/watchface/control/data/DefaultProviderPoliciesParams.aidl"/>
-    </issue>
-
-    <issue
-        id="RequireUnstableAidlAnnotation"
-        message="Unstable AIDL files must be annotated with `@RequiresOptIn` marker"
-        errorLine1="parcelable EditorStateWireFormat;"
-        errorLine2="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/aidl/androidx/wear/watchface/editor/data/EditorStateWireFormat.aidl"/>
-    </issue>
-
-    <issue
-        id="RequireUnstableAidlAnnotation"
-        message="Unstable AIDL files must be annotated with `@RequiresOptIn` marker"
-        errorLine1="parcelable GetComplicationSlotMetadataParams;"
-        errorLine2="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/aidl/androidx/wear/watchface/control/data/GetComplicationSlotMetadataParams.aidl"/>
-    </issue>
-
-    <issue
-        id="RequireUnstableAidlAnnotation"
-        message="Unstable AIDL files must be annotated with `@RequiresOptIn` marker"
-        errorLine1="parcelable GetUserStyleFlavorsParams;"
-        errorLine2="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/aidl/androidx/wear/watchface/control/data/GetUserStyleFlavorsParams.aidl"/>
-    </issue>
-
-    <issue
-        id="RequireUnstableAidlAnnotation"
-        message="Unstable AIDL files must be annotated with `@RequiresOptIn` marker"
-        errorLine1="parcelable GetUserStyleSchemaParams;"
-        errorLine2="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/aidl/androidx/wear/watchface/control/data/GetUserStyleSchemaParams.aidl"/>
-    </issue>
-
-    <issue
-        id="RequireUnstableAidlAnnotation"
-        message="Unstable AIDL files must be annotated with `@RequiresOptIn` marker"
-        errorLine1="parcelable HeadlessWatchFaceInstanceParams;"
-        errorLine2="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/aidl/androidx/wear/watchface/control/data/HeadlessWatchFaceInstanceParams.aidl"/>
-    </issue>
-
-    <issue
-        id="RequireUnstableAidlAnnotation"
-        message="Unstable AIDL files must be annotated with `@RequiresOptIn` marker"
-        errorLine1="interface IEditorObserver {"
-        errorLine2="^">
-        <location
-            file="src/main/aidl/androidx/wear/watchface/editor/IEditorObserver.aidl"/>
-    </issue>
-
-    <issue
-        id="RequireUnstableAidlAnnotation"
-        message="Unstable AIDL files must be annotated with `@RequiresOptIn` marker"
-        errorLine1="interface IEditorService {"
-        errorLine2="^">
-        <location
-            file="src/main/aidl/androidx/wear/watchface/editor/IEditorService.aidl"/>
-    </issue>
-
-    <issue
-        id="RequireUnstableAidlAnnotation"
-        message="Unstable AIDL files must be annotated with `@RequiresOptIn` marker"
-        errorLine1="interface IHeadlessWatchFace {"
-        errorLine2="^">
-        <location
-            file="src/main/aidl/androidx/wear/watchface/control/IHeadlessWatchFace.aidl"/>
-    </issue>
-
-    <issue
-        id="RequireUnstableAidlAnnotation"
-        message="Unstable AIDL files must be annotated with `@RequiresOptIn` marker"
-        errorLine1="interface IInteractiveWatchFace {"
-        errorLine2="^">
-        <location
-            file="src/main/aidl/androidx/wear/watchface/control/IInteractiveWatchFace.aidl"/>
-    </issue>
-
-    <issue
-        id="RequireUnstableAidlAnnotation"
-        message="Unstable AIDL files must be annotated with `@RequiresOptIn` marker"
-        errorLine1="interface IPendingInteractiveWatchFace {"
-        errorLine2="^">
-        <location
-            file="src/main/aidl/androidx/wear/watchface/control/IPendingInteractiveWatchFace.aidl"/>
-    </issue>
-
-    <issue
-        id="RequireUnstableAidlAnnotation"
-        message="Unstable AIDL files must be annotated with `@RequiresOptIn` marker"
-        errorLine1="interface IRemoteWatchFaceView {"
-        errorLine2="^">
-        <location
-            file="src/main/aidl/androidx/wear/watchface/control/IRemoteWatchFaceView.aidl"/>
-    </issue>
-
-    <issue
-        id="RequireUnstableAidlAnnotation"
-        message="Unstable AIDL files must be annotated with `@RequiresOptIn` marker"
-        errorLine1="interface IWatchFaceControlService {"
-        errorLine2="^">
-        <location
-            file="src/main/aidl/androidx/wear/watchface/control/IWatchFaceControlService.aidl"/>
-    </issue>
-
-    <issue
-        id="RequireUnstableAidlAnnotation"
-        message="Unstable AIDL files must be annotated with `@RequiresOptIn` marker"
-        errorLine1="interface IWatchFaceService {"
-        errorLine2="^">
-        <location
-            file="src/main/aidl/android/support/wearable/watchface/IWatchFaceService.aidl"/>
-    </issue>
-
-    <issue
-        id="RequireUnstableAidlAnnotation"
-        message="Unstable AIDL files must be annotated with `@RequiresOptIn` marker"
-        errorLine1="interface IWatchfaceListener {"
-        errorLine2="^">
-        <location
-            file="src/main/aidl/androidx/wear/watchface/control/IWatchfaceListener.aidl"/>
-    </issue>
-
-    <issue
-        id="RequireUnstableAidlAnnotation"
-        message="Unstable AIDL files must be annotated with `@RequiresOptIn` marker"
-        errorLine1="interface IWatchfaceReadyListener {"
-        errorLine2="^">
-        <location
-            file="src/main/aidl/androidx/wear/watchface/control/IWatchfaceReadyListener.aidl"/>
-    </issue>
-
-    <issue
-        id="RequireUnstableAidlAnnotation"
-        message="Unstable AIDL files must be annotated with `@RequiresOptIn` marker"
-        errorLine1="parcelable IdAndComplicationDataWireFormat;"
-        errorLine2="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/aidl/androidx/wear/watchface/data/IdAndComplicationDataWireFormat.aidl"/>
-    </issue>
-
-    <issue
-        id="RequireUnstableAidlAnnotation"
-        message="Unstable AIDL files must be annotated with `@RequiresOptIn` marker"
-        errorLine1="parcelable IdAndComplicationStateWireFormat;"
-        errorLine2="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/aidl/androidx/wear/watchface/data/IdAndComplicationStateWireFormat.aidl"/>
-    </issue>
-
-    <issue
-        id="RequireUnstableAidlAnnotation"
-        message="Unstable AIDL files must be annotated with `@RequiresOptIn` marker"
-        errorLine1="parcelable IdTypeAndDefaultProviderPolicyWireFormat;"
-        errorLine2="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/aidl/androidx/wear/watchface/control/data/IdTypeAndDefaultProviderPolicyWireFormat.aidl"/>
-    </issue>
-
-    <issue
-        id="RequireUnstableAidlAnnotation"
-        message="Unstable AIDL files must be annotated with `@RequiresOptIn` marker"
-        errorLine1="parcelable ImmutableSystemState;"
-        errorLine2="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/aidl/androidx/wear/watchface/data/ImmutableSystemState.aidl"/>
-    </issue>
-
-    <issue
-        id="RequireUnstableAidlAnnotation"
-        message="Unstable AIDL files must be annotated with `@RequiresOptIn` marker"
-        errorLine1="parcelable ParcelableWrapper;"
-        errorLine2="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/aidl/android/support/wearable/watchface/ParcelableWrapper.aidl"/>
-    </issue>
-
-    <issue
-        id="RequireUnstableAidlAnnotation"
-        message="Unstable AIDL files must be annotated with `@RequiresOptIn` marker"
-        errorLine1="parcelable RenderParametersWireFormat;"
-        errorLine2="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/aidl/androidx/wear/watchface/data/RenderParametersWireFormat.aidl"/>
-    </issue>
-
-    <issue
-        id="RequireUnstableAidlAnnotation"
-        message="Unstable AIDL files must be annotated with `@RequiresOptIn` marker"
-        errorLine1="parcelable UserStyleFlavorsWireFormat;"
-        errorLine2="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/aidl/androidx/wear/watchface/style/data/UserStyleFlavorsWireFormat.aidl"/>
-    </issue>
-
-    <issue
-        id="RequireUnstableAidlAnnotation"
-        message="Unstable AIDL files must be annotated with `@RequiresOptIn` marker"
-        errorLine1="parcelable UserStyleSchemaWireFormat;"
-        errorLine2="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/aidl/androidx/wear/watchface/style/data/UserStyleSchemaWireFormat.aidl"/>
-    </issue>
-
-    <issue
-        id="RequireUnstableAidlAnnotation"
-        message="Unstable AIDL files must be annotated with `@RequiresOptIn` marker"
-        errorLine1="parcelable UserStyleWireFormat;"
-        errorLine2="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/aidl/androidx/wear/watchface/style/data/UserStyleWireFormat.aidl"/>
-    </issue>
-
-    <issue
-        id="RequireUnstableAidlAnnotation"
-        message="Unstable AIDL files must be annotated with `@RequiresOptIn` marker"
-        errorLine1="parcelable WallpaperInteractiveWatchFaceInstanceParams;"
-        errorLine2="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/aidl/androidx/wear/watchface/control/data/WallpaperInteractiveWatchFaceInstanceParams.aidl"/>
-    </issue>
-
-    <issue
-        id="RequireUnstableAidlAnnotation"
-        message="Unstable AIDL files must be annotated with `@RequiresOptIn` marker"
-        errorLine1="parcelable WatchFaceColorsWireFormat;"
-        errorLine2="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/aidl/androidx/wear/watchface/data/WatchFaceColorsWireFormat.aidl"/>
-    </issue>
-
-    <issue
-        id="RequireUnstableAidlAnnotation"
-        message="Unstable AIDL files must be annotated with `@RequiresOptIn` marker"
-        errorLine1="parcelable WatchFaceOverlayStyleWireFormat;"
-        errorLine2="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/aidl/androidx/wear/watchface/data/WatchFaceOverlayStyleWireFormat.aidl"/>
-    </issue>
-
-    <issue
-        id="RequireUnstableAidlAnnotation"
-        message="Unstable AIDL files must be annotated with `@RequiresOptIn` marker"
-        errorLine1="parcelable WatchFaceRenderParams;"
-        errorLine2="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/aidl/androidx/wear/watchface/control/data/WatchFaceRenderParams.aidl"/>
-    </issue>
-
-    <issue
-        id="RequireUnstableAidlAnnotation"
-        message="Unstable AIDL files must be annotated with `@RequiresOptIn` marker"
-        errorLine1="parcelable WatchFaceStyle;"
-        errorLine2="~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/aidl/android/support/wearable/watchface/WatchFaceStyle.aidl"/>
-    </issue>
-
-    <issue
-        id="RequireUnstableAidlAnnotation"
-        message="Unstable AIDL files must be annotated with `@RequiresOptIn` marker"
-        errorLine1="parcelable WatchFaceSurfaceRenderParams;"
-        errorLine2="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/aidl/androidx/wear/watchface/control/data/WatchFaceSurfaceRenderParams.aidl"/>
-    </issue>
-
-    <issue
-        id="RequireUnstableAidlAnnotation"
-        message="Unstable AIDL files must be annotated with `@RequiresOptIn` marker"
-        errorLine1="parcelable WatchUiState;"
-        errorLine2="~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/aidl/androidx/wear/watchface/data/WatchUiState.aidl"/>
-    </issue>
-
 </issues>
diff --git a/wear/watchface/watchface-data/src/main/aidl/android/support/wearable/watchface/IWatchFaceService.aidl b/wear/watchface/watchface-data/src/main/aidl/android/support/wearable/watchface/IWatchFaceService.aidl
index 93cea18..deff8a4 100644
--- a/wear/watchface/watchface-data/src/main/aidl/android/support/wearable/watchface/IWatchFaceService.aidl
+++ b/wear/watchface/watchface-data/src/main/aidl/android/support/wearable/watchface/IWatchFaceService.aidl
@@ -27,8 +27,8 @@
 /**
  * Interface of a service that allows the watch face to interact with the wearable.
  *
- * @hide
  */
+@JavaPassthrough(annotation="@androidx.annotation.RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY)")
 interface IWatchFaceService {
     // IMPORTANT NOTE: All methods must be given an explicit transaction id that must never change
     // in the future to remain binary backwards compatible.
diff --git a/wear/watchface/watchface-data/src/main/aidl/android/support/wearable/watchface/ParcelableWrapper.aidl b/wear/watchface/watchface-data/src/main/aidl/android/support/wearable/watchface/ParcelableWrapper.aidl
index 80fe65b..67e24ff 100644
--- a/wear/watchface/watchface-data/src/main/aidl/android/support/wearable/watchface/ParcelableWrapper.aidl
+++ b/wear/watchface/watchface-data/src/main/aidl/android/support/wearable/watchface/ParcelableWrapper.aidl
@@ -16,5 +16,5 @@
 
 package android.support.wearable.watchface;
 
-/** @hide */
+@JavaPassthrough(annotation="@androidx.annotation.RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY)")
 parcelable ParcelableWrapper;
\ No newline at end of file
diff --git a/wear/watchface/watchface-data/src/main/aidl/android/support/wearable/watchface/WatchFaceStyle.aidl b/wear/watchface/watchface-data/src/main/aidl/android/support/wearable/watchface/WatchFaceStyle.aidl
index cd37bc9..bcc0cd8 100644
--- a/wear/watchface/watchface-data/src/main/aidl/android/support/wearable/watchface/WatchFaceStyle.aidl
+++ b/wear/watchface/watchface-data/src/main/aidl/android/support/wearable/watchface/WatchFaceStyle.aidl
@@ -16,5 +16,5 @@
 
 package android.support.wearable.watchface;
 
-/** @hide */
+@JavaPassthrough(annotation="@androidx.annotation.RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY)")
 parcelable WatchFaceStyle;
diff --git a/wear/watchface/watchface-data/src/main/aidl/android/support/wearable/watchface/accessibility/ContentDescriptionLabel.aidl b/wear/watchface/watchface-data/src/main/aidl/android/support/wearable/watchface/accessibility/ContentDescriptionLabel.aidl
index 6277ce1..83e6ad9 100644
--- a/wear/watchface/watchface-data/src/main/aidl/android/support/wearable/watchface/accessibility/ContentDescriptionLabel.aidl
+++ b/wear/watchface/watchface-data/src/main/aidl/android/support/wearable/watchface/accessibility/ContentDescriptionLabel.aidl
@@ -16,5 +16,5 @@
 
 package android.support.wearable.watchface.accessibility;
 
-/** @hide */
+@JavaPassthrough(annotation="@androidx.annotation.RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY)")
 parcelable ContentDescriptionLabel;
diff --git a/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/control/IHeadlessWatchFace.aidl b/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/control/IHeadlessWatchFace.aidl
index 0ec9d11..f2806f0 100644
--- a/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/control/IHeadlessWatchFace.aidl
+++ b/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/control/IHeadlessWatchFace.aidl
@@ -25,9 +25,8 @@
 
 /**
  * Interface for interacting with a stateless headless instance of a watch face.
- *
- * @hide
  */
+@JavaPassthrough(annotation="@androidx.annotation.RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY)")
 interface IHeadlessWatchFace {
     // IMPORTANT NOTE: All methods must be given an explicit transaction id that must never change
     // in the future to remain binary backwards compatible.
diff --git a/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/control/IInteractiveWatchFace.aidl b/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/control/IInteractiveWatchFace.aidl
index 226b887..1871ae9 100644
--- a/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/control/IInteractiveWatchFace.aidl
+++ b/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/control/IInteractiveWatchFace.aidl
@@ -31,8 +31,8 @@
 /**
  * Interface for interacting with an interactive instance of a watch face.
  *
- * @hide
  */
+@JavaPassthrough(annotation="@androidx.annotation.RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY)")
 interface IInteractiveWatchFace {
     // IMPORTANT NOTE: All methods must be given an explicit transaction id that must never change
     // in the future to remain binary backwards compatible.
diff --git a/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/control/IPendingInteractiveWatchFace.aidl b/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/control/IPendingInteractiveWatchFace.aidl
index 3a46130..bddbe35 100644
--- a/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/control/IPendingInteractiveWatchFace.aidl
+++ b/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/control/IPendingInteractiveWatchFace.aidl
@@ -22,8 +22,8 @@
 /**
  * Callback issued when {@link IInteractiveWatchFaceWcs} has been created.
  *
- * @hide
  */
+@JavaPassthrough(annotation="@androidx.annotation.RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY)")
 interface IPendingInteractiveWatchFace {
    // IMPORTANT NOTE: All methods must be given an explicit transaction id that must never change
    // in the future to remain binary backwards compatible.
diff --git a/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/control/IRemoteWatchFaceView.aidl b/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/control/IRemoteWatchFaceView.aidl
index a9e24a6..77bd93d 100644
--- a/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/control/IRemoteWatchFaceView.aidl
+++ b/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/control/IRemoteWatchFaceView.aidl
@@ -22,8 +22,8 @@
 /**
  * Interface for rendering into a remove view.
  *
- * @hide
  */
+@JavaPassthrough(annotation="@androidx.annotation.RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY)")
 interface IRemoteWatchFaceView {
     // IMPORTANT NOTE: All methods must be given an explicit transaction id that must never change
     // in the future to remain binary backwards compatible.
diff --git a/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/control/IWatchFaceControlService.aidl b/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/control/IWatchFaceControlService.aidl
index 574dfb92..0824bc8 100644
--- a/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/control/IWatchFaceControlService.aidl
+++ b/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/control/IWatchFaceControlService.aidl
@@ -34,8 +34,8 @@
 /**
  * Interface of a service that allows the user to create watch face instances.
  *
- * @hide
  */
+@JavaPassthrough(annotation="@androidx.annotation.RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY)")
 interface IWatchFaceControlService {
     // IMPORTANT NOTE: All methods must be given an explicit transaction id that must never change
     // in the future to remain binary backwards compatible.
diff --git a/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/control/IWatchfaceListener.aidl b/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/control/IWatchfaceListener.aidl
index e3522e5..62df9d7 100644
--- a/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/control/IWatchfaceListener.aidl
+++ b/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/control/IWatchfaceListener.aidl
@@ -21,8 +21,8 @@
 /**
  * Binder interface that allows the watch face to send notifications to its clients.
  *
- * @hide
  */
+@JavaPassthrough(annotation="@androidx.annotation.RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY)")
 interface IWatchfaceListener {
     // IMPORTANT NOTE: All methods must be given an explicit transaction id that must never change
     // in the future to remain binary backwards compatible.
diff --git a/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/control/IWatchfaceReadyListener.aidl b/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/control/IWatchfaceReadyListener.aidl
index 986a932..52a0d92 100644
--- a/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/control/IWatchfaceReadyListener.aidl
+++ b/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/control/IWatchfaceReadyListener.aidl
@@ -20,8 +20,8 @@
  * Interface of a service that allows the user to create watch face instances.
  *
  * @Deprecated Use IWatchfaceListener instead where possible.
- * @hide
  */
+@JavaPassthrough(annotation="@androidx.annotation.RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY)")
 interface IWatchfaceReadyListener {
     // IMPORTANT NOTE: All methods must be given an explicit transaction id that must never change
     // in the future to remain binary backwards compatible.
diff --git a/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/control/data/ComplicationRenderParams.aidl b/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/control/data/ComplicationRenderParams.aidl
index 299880b..c703857 100644
--- a/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/control/data/ComplicationRenderParams.aidl
+++ b/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/control/data/ComplicationRenderParams.aidl
@@ -16,5 +16,5 @@
 
 package androidx.wear.watchface.control.data;
 
-/** @hide */
+@JavaPassthrough(annotation="@androidx.annotation.RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY)")
 parcelable ComplicationRenderParams;
diff --git a/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/control/data/CrashInfoParcel.aidl b/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/control/data/CrashInfoParcel.aidl
index e2d824c..4bba42b9 100644
--- a/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/control/data/CrashInfoParcel.aidl
+++ b/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/control/data/CrashInfoParcel.aidl
@@ -16,5 +16,5 @@
 
 package androidx.wear.watchface.control.data;
 
-/** @hide */
+@JavaPassthrough(annotation="@androidx.annotation.RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY)")
 parcelable CrashInfoParcel;
diff --git a/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/control/data/DefaultProviderPoliciesParams.aidl b/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/control/data/DefaultProviderPoliciesParams.aidl
index f9bec24..b34b13a 100644
--- a/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/control/data/DefaultProviderPoliciesParams.aidl
+++ b/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/control/data/DefaultProviderPoliciesParams.aidl
@@ -16,5 +16,5 @@
 
 package androidx.wear.watchface.control.data;
 
-/** @hide */
+@JavaPassthrough(annotation="@androidx.annotation.RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY)")
 parcelable DefaultProviderPoliciesParams;
diff --git a/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/control/data/GetComplicationSlotMetadataParams.aidl b/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/control/data/GetComplicationSlotMetadataParams.aidl
index 79b281e..91b34ec6 100644
--- a/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/control/data/GetComplicationSlotMetadataParams.aidl
+++ b/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/control/data/GetComplicationSlotMetadataParams.aidl
@@ -16,5 +16,5 @@
 
 package androidx.wear.watchface.control.data;
 
-/** @hide */
+@JavaPassthrough(annotation="@androidx.annotation.RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY)")
 parcelable GetComplicationSlotMetadataParams;
diff --git a/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/control/data/GetUserStyleFlavorsParams.aidl b/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/control/data/GetUserStyleFlavorsParams.aidl
index f4f171d..3c232ba 100644
--- a/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/control/data/GetUserStyleFlavorsParams.aidl
+++ b/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/control/data/GetUserStyleFlavorsParams.aidl
@@ -16,5 +16,5 @@
 
 package androidx.wear.watchface.control.data;
 
-/** @hide */
+@JavaPassthrough(annotation="@androidx.annotation.RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY)")
 parcelable GetUserStyleFlavorsParams;
diff --git a/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/control/data/GetUserStyleSchemaParams.aidl b/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/control/data/GetUserStyleSchemaParams.aidl
index 3c0ffd2..5acac14 100644
--- a/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/control/data/GetUserStyleSchemaParams.aidl
+++ b/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/control/data/GetUserStyleSchemaParams.aidl
@@ -16,5 +16,5 @@
 
 package androidx.wear.watchface.control.data;
 
-/** @hide */
+@JavaPassthrough(annotation="@androidx.annotation.RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY)")
 parcelable GetUserStyleSchemaParams;
diff --git a/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/control/data/HeadlessWatchFaceInstanceParams.aidl b/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/control/data/HeadlessWatchFaceInstanceParams.aidl
index 57e951e..e463bb7 100644
--- a/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/control/data/HeadlessWatchFaceInstanceParams.aidl
+++ b/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/control/data/HeadlessWatchFaceInstanceParams.aidl
@@ -16,5 +16,5 @@
 
 package androidx.wear.watchface.control.data;
 
-/** @hide */
+@JavaPassthrough(annotation="@androidx.annotation.RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY)")
 parcelable HeadlessWatchFaceInstanceParams;
diff --git a/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/control/data/IdTypeAndDefaultProviderPolicyWireFormat.aidl b/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/control/data/IdTypeAndDefaultProviderPolicyWireFormat.aidl
index 7c35062..338584a 100644
--- a/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/control/data/IdTypeAndDefaultProviderPolicyWireFormat.aidl
+++ b/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/control/data/IdTypeAndDefaultProviderPolicyWireFormat.aidl
@@ -16,5 +16,5 @@
 
 package androidx.wear.watchface.control.data;
 
-/** @hide */
+@JavaPassthrough(annotation="@androidx.annotation.RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY)")
 parcelable IdTypeAndDefaultProviderPolicyWireFormat;
diff --git a/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/control/data/WallpaperInteractiveWatchFaceInstanceParams.aidl b/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/control/data/WallpaperInteractiveWatchFaceInstanceParams.aidl
index 765f2d6..7a180557 100644
--- a/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/control/data/WallpaperInteractiveWatchFaceInstanceParams.aidl
+++ b/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/control/data/WallpaperInteractiveWatchFaceInstanceParams.aidl
@@ -16,5 +16,5 @@
 
 package androidx.wear.watchface.control.data;
 
-/** @hide */
+@JavaPassthrough(annotation="@androidx.annotation.RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY)")
 parcelable WallpaperInteractiveWatchFaceInstanceParams;
diff --git a/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/control/data/WatchFaceRenderParams.aidl b/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/control/data/WatchFaceRenderParams.aidl
index 0577ccf..c1caef1 100644
--- a/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/control/data/WatchFaceRenderParams.aidl
+++ b/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/control/data/WatchFaceRenderParams.aidl
@@ -16,5 +16,5 @@
 
 package androidx.wear.watchface.control.data;
 
-/** @hide */
+@JavaPassthrough(annotation="@androidx.annotation.RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY)")
 parcelable WatchFaceRenderParams;
diff --git a/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/control/data/WatchFaceSurfaceRenderParams.aidl b/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/control/data/WatchFaceSurfaceRenderParams.aidl
index 9000a22..7abf25e 100644
--- a/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/control/data/WatchFaceSurfaceRenderParams.aidl
+++ b/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/control/data/WatchFaceSurfaceRenderParams.aidl
@@ -16,5 +16,5 @@
 
 package androidx.wear.watchface.control.data;
 
-/** @hide */
+@JavaPassthrough(annotation="@androidx.annotation.RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY)")
 parcelable WatchFaceSurfaceRenderParams;
diff --git a/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/data/ComplicationSlotMetadataWireFormat.aidl b/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/data/ComplicationSlotMetadataWireFormat.aidl
index d379432..8f91764 100644
--- a/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/data/ComplicationSlotMetadataWireFormat.aidl
+++ b/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/data/ComplicationSlotMetadataWireFormat.aidl
@@ -16,5 +16,5 @@
 
 package androidx.wear.watchface.data;
 
-/** @hide */
+@JavaPassthrough(annotation="@androidx.annotation.RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY)")
 parcelable ComplicationSlotMetadataWireFormat;
diff --git a/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/data/ComplicationStateWireFormat.aidl b/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/data/ComplicationStateWireFormat.aidl
index 65999d4..d68d0a8 100644
--- a/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/data/ComplicationStateWireFormat.aidl
+++ b/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/data/ComplicationStateWireFormat.aidl
@@ -16,5 +16,5 @@
 
 package androidx.wear.watchface.data;
 
-/** @hide */
+@JavaPassthrough(annotation="@androidx.annotation.RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY)")
 parcelable ComplicationStateWireFormat;
diff --git a/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/data/IdAndComplicationDataWireFormat.aidl b/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/data/IdAndComplicationDataWireFormat.aidl
index 0cb09f5..1a41cf0 100644
--- a/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/data/IdAndComplicationDataWireFormat.aidl
+++ b/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/data/IdAndComplicationDataWireFormat.aidl
@@ -16,5 +16,5 @@
 
 package androidx.wear.watchface.data;
 
-/** @hide */
+@JavaPassthrough(annotation="@androidx.annotation.RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY)")
 parcelable IdAndComplicationDataWireFormat;
diff --git a/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/data/IdAndComplicationStateWireFormat.aidl b/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/data/IdAndComplicationStateWireFormat.aidl
index 145d2b5..7f5c1dc 100644
--- a/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/data/IdAndComplicationStateWireFormat.aidl
+++ b/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/data/IdAndComplicationStateWireFormat.aidl
@@ -16,5 +16,5 @@
 
 package androidx.wear.watchface.data;
 
-/** @hide */
+@JavaPassthrough(annotation="@androidx.annotation.RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY)")
 parcelable IdAndComplicationStateWireFormat;
diff --git a/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/data/ImmutableSystemState.aidl b/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/data/ImmutableSystemState.aidl
index c5ada43..6a9b6a14 100644
--- a/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/data/ImmutableSystemState.aidl
+++ b/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/data/ImmutableSystemState.aidl
@@ -16,5 +16,5 @@
 
 package androidx.wear.watchface.data;
 
-/** @hide */
+@JavaPassthrough(annotation="@androidx.annotation.RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY)")
 parcelable ImmutableSystemState;
diff --git a/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/data/RenderParametersWireFormat.aidl b/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/data/RenderParametersWireFormat.aidl
index cd55f73..d825f7f 100644
--- a/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/data/RenderParametersWireFormat.aidl
+++ b/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/data/RenderParametersWireFormat.aidl
@@ -16,5 +16,5 @@
 
 package androidx.wear.watchface.data;
 
-/** @hide */
+@JavaPassthrough(annotation="@androidx.annotation.RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY)")
 parcelable RenderParametersWireFormat;
diff --git a/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/data/WatchFaceColorsWireFormat.aidl b/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/data/WatchFaceColorsWireFormat.aidl
index 31ae53b..c4c1b38 100644
--- a/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/data/WatchFaceColorsWireFormat.aidl
+++ b/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/data/WatchFaceColorsWireFormat.aidl
@@ -16,5 +16,5 @@
 
 package androidx.wear.watchface.data;
 
-/** @hide */
+@JavaPassthrough(annotation="@androidx.annotation.RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY)")
 parcelable WatchFaceColorsWireFormat;
\ No newline at end of file
diff --git a/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/data/WatchFaceOverlayStyleWireFormat.aidl b/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/data/WatchFaceOverlayStyleWireFormat.aidl
index 7d0e7ff..e4d2166 100644
--- a/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/data/WatchFaceOverlayStyleWireFormat.aidl
+++ b/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/data/WatchFaceOverlayStyleWireFormat.aidl
@@ -16,5 +16,5 @@
 
 package androidx.wear.watchface.data;
 
-/** @hide */
+@JavaPassthrough(annotation="@androidx.annotation.RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY)")
 parcelable WatchFaceOverlayStyleWireFormat;
\ No newline at end of file
diff --git a/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/data/WatchUiState.aidl b/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/data/WatchUiState.aidl
index d7a8888..2652f5b 100644
--- a/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/data/WatchUiState.aidl
+++ b/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/data/WatchUiState.aidl
@@ -16,5 +16,5 @@
 
 package androidx.wear.watchface.data;
 
-/** @hide */
+@JavaPassthrough(annotation="@androidx.annotation.RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY)")
 parcelable WatchUiState;
diff --git a/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/editor/IEditorObserver.aidl b/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/editor/IEditorObserver.aidl
index 5269e72..774776d 100644
--- a/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/editor/IEditorObserver.aidl
+++ b/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/editor/IEditorObserver.aidl
@@ -21,8 +21,8 @@
 /**
  * Observer interface for watch face editor state changes.
  *
- * @hide
  */
+@JavaPassthrough(annotation="@androidx.annotation.RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY)")
 interface IEditorObserver {
     // IMPORTANT NOTE: All methods must be given an explicit transaction id that must never change
     // in the future to remain binary backwards compatible.
diff --git a/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/editor/IEditorService.aidl b/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/editor/IEditorService.aidl
index a7ef3a1..229e253 100644
--- a/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/editor/IEditorService.aidl
+++ b/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/editor/IEditorService.aidl
@@ -21,8 +21,8 @@
 /**
  * Interface for the watchface editor service.
  *
- * @hide
  */
+@JavaPassthrough(annotation="@androidx.annotation.RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY)")
 interface IEditorService {
     // IMPORTANT NOTE: All methods must be given an explicit transaction id that must never change
     // in the future to remain binary backwards compatible.
diff --git a/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/editor/data/EditorStateWireFormat.aidl b/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/editor/data/EditorStateWireFormat.aidl
index 70cd594..2863d34 100644
--- a/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/editor/data/EditorStateWireFormat.aidl
+++ b/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/editor/data/EditorStateWireFormat.aidl
@@ -16,5 +16,5 @@
 
 package androidx.wear.watchface.editor.data;
 
-/** @hide */
+@JavaPassthrough(annotation="@androidx.annotation.RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY)")
 parcelable EditorStateWireFormat;
diff --git a/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/style/data/UserStyleFlavorsWireFormat.aidl b/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/style/data/UserStyleFlavorsWireFormat.aidl
index b8b067c..16009be 100644
--- a/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/style/data/UserStyleFlavorsWireFormat.aidl
+++ b/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/style/data/UserStyleFlavorsWireFormat.aidl
@@ -16,5 +16,5 @@
 
 package androidx.wear.watchface.style.data;
 
-/** @hide */
+@JavaPassthrough(annotation="@androidx.annotation.RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY)")
 parcelable UserStyleFlavorsWireFormat;
diff --git a/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/style/data/UserStyleSchemaWireFormat.aidl b/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/style/data/UserStyleSchemaWireFormat.aidl
index abdac90..62a83bc 100644
--- a/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/style/data/UserStyleSchemaWireFormat.aidl
+++ b/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/style/data/UserStyleSchemaWireFormat.aidl
@@ -16,5 +16,5 @@
 
 package androidx.wear.watchface.style.data;
 
-/** @hide */
+@JavaPassthrough(annotation="@androidx.annotation.RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY)")
 parcelable UserStyleSchemaWireFormat;
diff --git a/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/style/data/UserStyleWireFormat.aidl b/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/style/data/UserStyleWireFormat.aidl
index 23a4ba4..d6dd85d 100644
--- a/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/style/data/UserStyleWireFormat.aidl
+++ b/wear/watchface/watchface-data/src/main/aidl/androidx/wear/watchface/style/data/UserStyleWireFormat.aidl
@@ -16,5 +16,5 @@
 
 package androidx.wear.watchface.style.data;
 
-/** @hide */
+@JavaPassthrough(annotation="@androidx.annotation.RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY)")
 parcelable UserStyleWireFormat;
diff --git a/wear/watchface/watchface-editor/src/main/java/androidx/wear/watchface/editor/EditorSession.kt b/wear/watchface/watchface-editor/src/main/java/androidx/wear/watchface/editor/EditorSession.kt
index abfdb69e..70b05b1 100644
--- a/wear/watchface/watchface-editor/src/main/java/androidx/wear/watchface/editor/EditorSession.kt
+++ b/wear/watchface/watchface-editor/src/main/java/androidx/wear/watchface/editor/EditorSession.kt
@@ -57,6 +57,7 @@
 import androidx.wear.watchface.complications.toApiComplicationDataSourceInfo
 import androidx.wear.watchface.control.data.HeadlessWatchFaceInstanceParams
 import androidx.wear.watchface.data.IdAndComplicationDataWireFormat
+import androidx.wear.watchface.editor.EditorSession.Companion.createHeadlessEditorSession
 import androidx.wear.watchface.editor.data.EditorStateWireFormat
 import androidx.wear.watchface.sanitizeWatchFaceId
 import androidx.wear.watchface.style.UserStyle
@@ -288,62 +289,57 @@
             complicationDataSourceInfoRetrieverProvider: ComplicationDataSourceInfoRetrieverProvider
         ): EditorSession =
             TraceEvent("EditorSession.createOnWatchEditorSessionAsyncImpl").use {
-                try {
-                    val editorRequest =
-                        editIntent
-                            .getParcelableExtra<ComponentName>(Constants.EXTRA_WATCH_FACE_COMPONENT)
-                            ?.let { EditorRequest(it, "", null) }
-                            ?: EditorRequest.createFromIntent(editIntent)
-                    Log.d(
-                        TAG,
-                        "createOnWatchEditorSession ${editorRequest.watchFaceComponentName} " +
-                            "${editorRequest.watchFaceId}"
+                val editorRequest =
+                    editIntent
+                        .getParcelableExtra<ComponentName>(Constants.EXTRA_WATCH_FACE_COMPONENT)
+                        ?.let { EditorRequest(it, "", null) }
+                        ?: EditorRequest.createFromIntent(editIntent)
+                Log.d(
+                    TAG,
+                    "createOnWatchEditorSession ${editorRequest.watchFaceComponentName} " +
+                        "${editorRequest.watchFaceId}"
+                )
+                // We need to respect the lifecycle and register the ActivityResultListener now.
+                val session =
+                    OnWatchFaceEditorSessionImpl(
+                        activity,
+                        editorRequest.watchFaceComponentName,
+                        editorRequest.watchFaceId,
+                        editorRequest.initialUserStyle,
+                        complicationDataSourceInfoRetrieverProvider,
+                        activity.lifecycleScope,
+                        editorRequest.previewScreenshotParams
                     )
-                    // We need to respect the lifecycle and register the ActivityResultListener now.
-                    val session =
-                        OnWatchFaceEditorSessionImpl(
-                            activity,
-                            editorRequest.watchFaceComponentName,
-                            editorRequest.watchFaceId,
-                            editorRequest.initialUserStyle,
-                            complicationDataSourceInfoRetrieverProvider,
-                            activity.lifecycleScope,
-                            editorRequest.previewScreenshotParams
-                        )
-                    // But full initialization has to be deferred because
-                    // [WatchFace.getOrCreateEditorDelegate] is async.
-                    // Resolve only after init has been completed.
-                    withContext(activity.lifecycleScope.coroutineContext) {
-                        withTimeout(EDITING_SESSION_TIMEOUT.toMillis()) {
-                            session.setEditorDelegate(
-                                // Either create a delegate for a new headless client or await an
-                                // interactive one.
-                                if (editorRequest.headlessDeviceConfig != null) {
-                                    WatchFace.createHeadlessSessionDelegate(
+                // But full initialization has to be deferred because
+                // [WatchFace.getOrCreateEditorDelegate] is async.
+                // Resolve only after init has been completed.
+                withContext(activity.lifecycleScope.coroutineContext) {
+                    withTimeout(EDITING_SESSION_TIMEOUT.toMillis()) {
+                        session.setEditorDelegate(
+                            // Either create a delegate for a new headless client or await an
+                            // interactive one.
+                            if (editorRequest.headlessDeviceConfig != null) {
+                                WatchFace.createHeadlessSessionDelegate(
+                                    editorRequest.watchFaceComponentName,
+                                    HeadlessWatchFaceInstanceParams(
                                         editorRequest.watchFaceComponentName,
-                                        HeadlessWatchFaceInstanceParams(
-                                            editorRequest.watchFaceComponentName,
-                                            editorRequest.headlessDeviceConfig.asWireDeviceConfig(),
-                                            activity.resources.displayMetrics.widthPixels,
-                                            activity.resources.displayMetrics.heightPixels,
-                                            editorRequest.watchFaceId.id
-                                        ),
-                                        activity
+                                        editorRequest.headlessDeviceConfig.asWireDeviceConfig(),
+                                        activity.resources.displayMetrics.widthPixels,
+                                        activity.resources.displayMetrics.heightPixels,
+                                        editorRequest.watchFaceId.id
+                                    ),
+                                    activity
+                                )
+                            } else {
+                                WatchFace.getOrCreateEditorDelegate(
+                                        editorRequest.watchFaceComponentName
                                     )
-                                } else {
-                                    WatchFace.getOrCreateEditorDelegate(
-                                            editorRequest.watchFaceComponentName
-                                        )
-                                        .await()
-                                }
-                            )
-                            // Resolve only after init has been completed.
-                            session
-                        }
+                                    .await()
+                            }
+                        )
+                        // Resolve only after init has been completed.
+                        session
                     }
-                } catch (e: Exception) {
-                    Log.e(TAG, "createOnWatchEditorSessionImpl failed", e)
-                    throw e
                 }
             }
 
@@ -684,9 +680,6 @@
                         ?.mapValues { it.value.await() ?: EmptyComplicationData() }
                         ?: emptyMap()
                 deferredComplicationPreviewDataAvailable.complete(Unit)
-            } catch (e: Exception) {
-                Log.w(TAG, "fetchComplicationsData failed", e)
-                throw e
             } finally {
                 complicationDataSourceInfoRetriever.close()
             }
diff --git a/wear/watchface/watchface-style/lint-baseline.xml b/wear/watchface/watchface-style/lint-baseline.xml
index b008824..24fc107 100644
--- a/wear/watchface/watchface-style/lint-baseline.xml
+++ b/wear/watchface/watchface-style/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 8.1.0-alpha07" type="baseline" client="gradle" dependencies="false" name="AGP (8.0.0-beta03)" variant="all" version="8.1.0-alpha07">
+<issues format="6" by="lint 8.1.0-beta02" type="baseline" client="gradle" dependencies="false" name="AGP (8.1.0-beta02)" variant="all" version="8.1.0-beta02">
 
     <issue
         id="BanHideAnnotation"
diff --git a/wear/watchface/watchface-style/old-api-test-stub/lint-baseline.xml b/wear/watchface/watchface-style/old-api-test-stub/lint-baseline.xml
deleted file mode 100644
index 1441b88..0000000
--- a/wear/watchface/watchface-style/old-api-test-stub/lint-baseline.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 8.1.0-alpha11" type="baseline" client="gradle" dependencies="false" name="AGP (8.1.0-alpha11)" variant="all" version="8.1.0-alpha11">
-
-    <issue
-        id="RequireUnstableAidlAnnotation"
-        message="Unstable AIDL files must be annotated with `@RequiresOptIn` marker"
-        errorLine1="interface IStyleEchoService {"
-        errorLine2="^">
-        <location
-            file="src/main/aidl/androidx/wear/watchface/style/test/IStyleEchoService.aidl"/>
-    </issue>
-
-</issues>
diff --git a/wear/watchface/watchface-style/old-api-test-stub/src/main/aidl/androidx/wear/watchface/style/test/IStyleEchoService.aidl b/wear/watchface/watchface-style/old-api-test-stub/src/main/aidl/androidx/wear/watchface/style/test/IStyleEchoService.aidl
index 51fefd7..d89a4b3 100644
--- a/wear/watchface/watchface-style/old-api-test-stub/src/main/aidl/androidx/wear/watchface/style/test/IStyleEchoService.aidl
+++ b/wear/watchface/watchface-style/old-api-test-stub/src/main/aidl/androidx/wear/watchface/style/test/IStyleEchoService.aidl
@@ -20,9 +20,8 @@
 
 /**
  * Interface of a service that allows testing of IPC round trips vs an old binary.
- *
- * @hide
  */
+@JavaPassthrough(annotation="@androidx.annotation.RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY)")
 interface IStyleEchoService {
     /**
      * Returns the UserStyleSchemaWireFormat after converting to and from API format.
diff --git a/wear/watchface/watchface/lint-baseline.xml b/wear/watchface/watchface/lint-baseline.xml
index a3c7f33..43de6de 100644
--- a/wear/watchface/watchface/lint-baseline.xml
+++ b/wear/watchface/watchface/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 8.1.0-alpha07" type="baseline" client="gradle" dependencies="false" name="AGP (8.0.0-beta03)" variant="all" version="8.1.0-alpha07">
+<issues format="6" by="lint 8.1.0-beta02" type="baseline" client="gradle" dependencies="false" name="AGP (8.1.0-beta02)" variant="all" version="8.1.0-beta02">
 
     <issue
         id="BanHideAnnotation"
diff --git a/wear/watchface/watchface/src/main/java/androidx/wear/watchface/WatchFaceService.kt b/wear/watchface/watchface/src/main/java/androidx/wear/watchface/WatchFaceService.kt
index 0f9a4ba..537923c 100644
--- a/wear/watchface/watchface/src/main/java/androidx/wear/watchface/WatchFaceService.kt
+++ b/wear/watchface/watchface/src/main/java/androidx/wear/watchface/WatchFaceService.kt
@@ -370,23 +370,18 @@
                     return null
                 }
                 runBlocking {
-                    try {
-                        withTimeout(AWAIT_DEFERRED_TIMEOUT) {
-                            val deferredValue = waitDeferred(engine)
-                            when (executionThread) {
-                                ExecutionThread.UI -> {
-                                    withContext(engine.uiThreadCoroutineScope.coroutineContext) {
-                                        task(deferredValue)
-                                    }
-                                }
-                                ExecutionThread.CURRENT -> {
+                    withTimeout(AWAIT_DEFERRED_TIMEOUT) {
+                        val deferredValue = waitDeferred(engine)
+                        when (executionThread) {
+                            ExecutionThread.UI -> {
+                                withContext(engine.uiThreadCoroutineScope.coroutineContext) {
                                     task(deferredValue)
                                 }
                             }
+                            ExecutionThread.CURRENT -> {
+                                task(deferredValue)
+                            }
                         }
-                    } catch (e: Exception) {
-                        Log.e(TAG, "Operation $traceName failed", e)
-                        throw e
                     }
                 }
             }
@@ -1518,15 +1513,10 @@
         fun setUserStyle(userStyle: UserStyleWireFormat): Unit =
             TraceEvent("EngineWrapper.setUserStyle").use {
                 uiThreadCoroutineScope.launch {
-                    try {
-                        setUserStyleImpl(
-                            deferredEarlyInitDetails.await().userStyleRepository,
-                            userStyle
-                        )
-                    } catch (e: Exception) {
-                        Log.e(TAG, "setUserStyle failed", e)
-                        throw e
-                    }
+                    setUserStyleImpl(
+                        deferredEarlyInitDetails.await().userStyleRepository,
+                        userStyle
+                    )
                 }
             }
 
@@ -2854,14 +2844,9 @@
     task: suspend () -> R
 ): R =
     TraceEvent(traceEventName).use {
-        try {
-            // Inside runBlocking, coroutineContext has a different value.
-            val desiredContext = coroutineContext
-            return runBlocking { withContext(desiredContext) { task() } }
-        } catch (e: Exception) {
-            Log.e("CoroutineScope", "Exception in traceEventName", e)
-            throw e
-        }
+        // Inside runBlocking, coroutineContext has a different value.
+        val desiredContext = coroutineContext
+        return runBlocking { withContext(desiredContext) { task() } }
     }
 
 /**
diff --git a/wear/watchface/watchface/src/main/java/androidx/wear/watchface/control/HeadlessWatchFaceImpl.kt b/wear/watchface/watchface/src/main/java/androidx/wear/watchface/control/HeadlessWatchFaceImpl.kt
index 5c0e535..e3b1597 100644
--- a/wear/watchface/watchface/src/main/java/androidx/wear/watchface/control/HeadlessWatchFaceImpl.kt
+++ b/wear/watchface/watchface/src/main/java/androidx/wear/watchface/control/HeadlessWatchFaceImpl.kt
@@ -23,6 +23,7 @@
 import androidx.wear.watchface.control.data.ComplicationRenderParams
 import androidx.wear.watchface.control.data.WatchFaceRenderParams
 import androidx.wear.watchface.utility.TraceEvent
+import androidx.wear.watchface.utility.aidlMethod
 import kotlinx.coroutines.runBlocking
 import kotlinx.coroutines.withContext
 
@@ -68,88 +69,103 @@
         }
     }
 
-    override fun getApiVersion() = IHeadlessWatchFace.API_VERSION
+    override fun getApiVersion() =
+        aidlMethod(TAG, "getApiVersion") { IHeadlessWatchFace.API_VERSION }
 
     override fun renderWatchFaceToBitmap(params: WatchFaceRenderParams) =
-        WatchFaceService.awaitDeferredWatchFaceImplThenRunOnUiThreadBlocking(
-            engine,
-            "HeadlessWatchFaceImpl.renderWatchFaceToBitmap"
-        ) {
-            it.renderWatchFaceToBitmap(params)
+        aidlMethod(TAG, "renderWatchFaceToBitmap") {
+            WatchFaceService.awaitDeferredWatchFaceImplThenRunOnUiThreadBlocking(
+                engine,
+                "HeadlessWatchFaceImpl.renderWatchFaceToBitmap"
+            ) {
+                it.renderWatchFaceToBitmap(params)
+            }
         }
 
     override fun getPreviewReferenceTimeMillis() =
-        WatchFaceService.awaitDeferredWatchFaceImplThenRunOnUiThreadBlocking(
-            engine,
-            "HeadlessWatchFaceImpl.getPreviewReferenceTimeMillis"
-        ) {
-            it.previewReferenceInstant.toEpochMilli()
+        aidlMethod(TAG, "getPreviewReferenceTimeMillis") {
+            WatchFaceService.awaitDeferredWatchFaceImplThenRunOnUiThreadBlocking(
+                engine,
+                "HeadlessWatchFaceImpl.getPreviewReferenceTimeMillis"
+            ) {
+                it.previewReferenceInstant.toEpochMilli()
+            }
+                ?: 0
         }
-            ?: 0
 
-    override fun getComplicationState() = run {
-        val engineCopy = engine
-        WatchFaceService.awaitDeferredEarlyInitDetailsThenRunOnThread(
-            engineCopy,
-            "HeadlessWatchFaceImpl.getComplicationState",
-            WatchFaceService.Companion.ExecutionThread.UI
-        ) {
-            it.complicationSlotsManager.getComplicationsState(engineCopy!!.screenBounds)
+    override fun getComplicationState() =
+        aidlMethod(TAG, "getComplicationState") {
+            val engineCopy = engine
+            WatchFaceService.awaitDeferredEarlyInitDetailsThenRunOnThread(
+                engineCopy,
+                "HeadlessWatchFaceImpl.getComplicationState",
+                WatchFaceService.Companion.ExecutionThread.UI
+            ) {
+                it.complicationSlotsManager.getComplicationsState(engineCopy!!.screenBounds)
+            }
         }
-    }
 
     override fun renderComplicationToBitmap(params: ComplicationRenderParams) =
-        WatchFaceService.awaitDeferredWatchFaceImplThenRunOnUiThreadBlocking(
-            engine,
-            "HeadlessWatchFaceImpl.renderComplicationToBitmap"
-        ) {
-            it.renderComplicationToBitmap(params)
+        aidlMethod(TAG, "renderComplicationToBitmap") {
+            WatchFaceService.awaitDeferredWatchFaceImplThenRunOnUiThreadBlocking(
+                engine,
+                "HeadlessWatchFaceImpl.renderComplicationToBitmap"
+            ) {
+                it.renderComplicationToBitmap(params)
+            }
         }
 
     override fun getUserStyleSchema() =
-        WatchFaceService.awaitDeferredEarlyInitDetailsThenRunOnThread(
-            engine,
-            "HeadlessWatchFaceImpl.getUserStyleSchema",
-            WatchFaceService.Companion.ExecutionThread.CURRENT
-        ) {
-            it.userStyleRepository.schema.toWireFormat()
+        aidlMethod(TAG, "getUserStyleSchema") {
+            WatchFaceService.awaitDeferredEarlyInitDetailsThenRunOnThread(
+                engine,
+                "HeadlessWatchFaceImpl.getUserStyleSchema",
+                WatchFaceService.Companion.ExecutionThread.CURRENT
+            ) {
+                it.userStyleRepository.schema.toWireFormat()
+            }
         }
 
     override fun computeUserStyleSchemaDigestHash() =
-        WatchFaceService.awaitDeferredEarlyInitDetailsThenRunOnThread(
-            engine,
-            "HeadlessWatchFaceImpl.computeUserStyleSchemaDigestHash",
-            WatchFaceService.Companion.ExecutionThread.CURRENT
-        ) {
-            it.userStyleRepository.schema.getDigestHash()
+        aidlMethod(TAG, "computeUserStyleSchemaDigestHash") {
+            WatchFaceService.awaitDeferredEarlyInitDetailsThenRunOnThread(
+                engine,
+                "HeadlessWatchFaceImpl.computeUserStyleSchemaDigestHash",
+                WatchFaceService.Companion.ExecutionThread.CURRENT
+            ) {
+                it.userStyleRepository.schema.getDigestHash()
+            }
         }
 
     override fun getUserStyleFlavors() =
-        WatchFaceService.awaitDeferredEarlyInitDetailsThenRunOnThread(
-            engine,
-            "HeadlessWatchFaceImpl.getUserStyleFlavors",
-            WatchFaceService.Companion.ExecutionThread.CURRENT
-        ) {
-            it.userStyleFlavors.toWireFormat()
+        aidlMethod(TAG, "getUserStyleFlavors") {
+            WatchFaceService.awaitDeferredEarlyInitDetailsThenRunOnThread(
+                engine,
+                "HeadlessWatchFaceImpl.getUserStyleFlavors",
+                WatchFaceService.Companion.ExecutionThread.CURRENT
+            ) {
+                it.userStyleFlavors.toWireFormat()
+            }
         }
 
-    override fun release() {
-        TraceEvent("HeadlessWatchFaceImpl.release").use {
-            runBlocking {
-                    val engineCopy = synchronized(this) { engine!! }
-                    withContext(engineCopy.uiThreadCoroutineScope.coroutineContext) {
-                        headlessInstances.remove(this@HeadlessWatchFaceImpl)
-                        synchronized(this@HeadlessWatchFaceImpl) {
-                            engine!!.onDestroy()
-                            engine = null
+    override fun release() =
+        aidlMethod(TAG, "release") {
+            TraceEvent("HeadlessWatchFaceImpl.release").use {
+                runBlocking {
+                        val engineCopy = synchronized(this) { engine!! }
+                        withContext(engineCopy.uiThreadCoroutineScope.coroutineContext) {
+                            headlessInstances.remove(this@HeadlessWatchFaceImpl)
+                            synchronized(this@HeadlessWatchFaceImpl) {
+                                engine!!.onDestroy()
+                                engine = null
 
-                            watchFaceService!!.onDestroy()
-                            watchFaceService = null
+                                watchFaceService!!.onDestroy()
+                                watchFaceService = null
+                            }
                         }
+                        engineCopy
                     }
-                    engineCopy
-                }
-                .cancelCoroutineScopes()
+                    .cancelCoroutineScopes()
+            }
         }
-    }
 }
diff --git a/wear/watchface/watchface/src/main/java/androidx/wear/watchface/control/InteractiveWatchFaceImpl.kt b/wear/watchface/watchface/src/main/java/androidx/wear/watchface/control/InteractiveWatchFaceImpl.kt
index 8a2ee93..210810d 100644
--- a/wear/watchface/watchface/src/main/java/androidx/wear/watchface/control/InteractiveWatchFaceImpl.kt
+++ b/wear/watchface/watchface/src/main/java/androidx/wear/watchface/control/InteractiveWatchFaceImpl.kt
@@ -33,6 +33,7 @@
 import androidx.wear.watchface.style.data.UserStyleSchemaWireFormat
 import androidx.wear.watchface.style.data.UserStyleWireFormat
 import androidx.wear.watchface.utility.TraceEvent
+import androidx.wear.watchface.utility.aidlMethod
 import java.time.Instant
 import kotlinx.coroutines.launch
 import kotlinx.coroutines.runBlocking
@@ -50,123 +51,141 @@
     private val uiThreadCoroutineScope = engine!!.uiThreadCoroutineScope
     private val systemTimeProvider = engine!!.systemTimeProvider
 
-    override fun getApiVersion() = IInteractiveWatchFace.API_VERSION
+    override fun getApiVersion() =
+        aidlMethod(TAG, "getApiVersion") { IInteractiveWatchFace.API_VERSION }
 
-    override fun sendTouchEvent(xPos: Int, yPos: Int, tapType: Int) {
-        val engineCopy = engine ?: return
-        WatchFaceService.awaitDeferredWatchFaceImplThenRunOnUiThreadBlocking(
-            engineCopy,
-            "InteractiveWatchFaceImpl.sendTouchEvent"
-        ) { watchFaceImpl ->
-            watchFaceImpl.onTapCommand(
-                tapType,
-                TapEvent(xPos, yPos, Instant.ofEpochMilli(systemTimeProvider.getSystemTimeMillis()))
-            )
+    override fun sendTouchEvent(xPos: Int, yPos: Int, tapType: Int): Unit =
+        aidlMethod(TAG, "sendTouchEvent") {
+            val engineCopy = engine ?: return
+            WatchFaceService.awaitDeferredWatchFaceImplThenRunOnUiThreadBlocking(
+                engineCopy,
+                "InteractiveWatchFaceImpl.sendTouchEvent"
+            ) { watchFaceImpl ->
+                watchFaceImpl.onTapCommand(
+                    tapType,
+                    TapEvent(
+                        xPos,
+                        yPos,
+                        Instant.ofEpochMilli(systemTimeProvider.getSystemTimeMillis())
+                    )
+                )
+            }
         }
-    }
 
-    override fun unused18() {}
+    override fun unused18() = aidlMethod(TAG, "unused18") {}
 
-    override fun unused20() {}
+    override fun unused20() = aidlMethod(TAG, "unused20") {}
 
-    override fun addWatchFaceListener(listener: IWatchfaceListener) {
-        engine?.addWatchFaceListener(listener)
-            ?: Log.w(TAG, "addWatchFaceListener ignored due to null engine")
-    }
+    override fun addWatchFaceListener(listener: IWatchfaceListener): Unit =
+        aidlMethod(TAG, "addWatchFaceListener") {
+            engine?.addWatchFaceListener(listener)
+                ?: Log.w(TAG, "addWatchFaceListener ignored due to null engine")
+        }
 
-    override fun removeWatchFaceListener(listener: IWatchfaceListener) {
-        engine?.removeWatchFaceListener(listener)
-            ?: Log.w(TAG, "removeWatchFaceListener ignored due to null engine")
-    }
+    override fun removeWatchFaceListener(listener: IWatchfaceListener): Unit =
+        aidlMethod(TAG, "removeWatchFaceListener") {
+            engine?.removeWatchFaceListener(listener)
+                ?: Log.w(TAG, "removeWatchFaceListener ignored due to null engine")
+        }
 
     override fun getWatchFaceOverlayStyle(): WatchFaceOverlayStyleWireFormat? =
-        WatchFaceService.awaitDeferredWatchFaceThenRunOnUiThread(
-            engine,
-            "InteractiveWatchFaceImpl.getWatchFaceOverlayStyle"
-        ) {
-            WatchFaceOverlayStyleWireFormat(
-                it.overlayStyle.backgroundColor,
-                it.overlayStyle.foregroundColor
-            )
+        aidlMethod(TAG, "getWatchFaceOverlayStyle") {
+            WatchFaceService.awaitDeferredWatchFaceThenRunOnUiThread(
+                engine,
+                "InteractiveWatchFaceImpl.getWatchFaceOverlayStyle"
+            ) {
+                WatchFaceOverlayStyleWireFormat(
+                    it.overlayStyle.backgroundColor,
+                    it.overlayStyle.foregroundColor
+                )
+            }
         }
 
-    override fun getContentDescriptionLabels(): Array<ContentDescriptionLabel>? {
-        return WatchFaceService.awaitDeferredWatchFaceImplThenRunOnUiThreadBlocking(
-            engine,
-            "InteractiveWatchFaceImpl.getContentDescriptionLabels"
-        ) {
-            engine?.contentDescriptionLabels
+    override fun getContentDescriptionLabels(): Array<ContentDescriptionLabel>? =
+        aidlMethod(TAG, "getContentDescriptionLabels") {
+            return WatchFaceService.awaitDeferredWatchFaceImplThenRunOnUiThreadBlocking(
+                engine,
+                "InteractiveWatchFaceImpl.getContentDescriptionLabels"
+            ) {
+                engine?.contentDescriptionLabels
+            }
         }
-    }
 
     @RequiresApi(Build.VERSION_CODES.O_MR1)
-    override fun renderWatchFaceToBitmap(params: WatchFaceRenderParams): Bundle? {
-        return WatchFaceService.awaitDeferredWatchFaceImplThenRunOnUiThreadBlocking(
-            engine,
-            "InteractiveWatchFaceImpl.renderWatchFaceToBitmap"
-        ) { watchFaceImpl ->
-            watchFaceImpl.renderWatchFaceToBitmap(params)
+    override fun renderWatchFaceToBitmap(params: WatchFaceRenderParams): Bundle? =
+        aidlMethod(TAG, "renderWatchFaceToBitmap") {
+            return WatchFaceService.awaitDeferredWatchFaceImplThenRunOnUiThreadBlocking(
+                engine,
+                "InteractiveWatchFaceImpl.renderWatchFaceToBitmap"
+            ) { watchFaceImpl ->
+                watchFaceImpl.renderWatchFaceToBitmap(params)
+            }
         }
-    }
 
     @RequiresApi(Build.VERSION_CODES.R)
     override fun createRemoteWatchFaceView(
         hostToken: IBinder,
         width: Int,
         height: Int
-    ): IRemoteWatchFaceView? {
-        return WatchFaceService.awaitDeferredWatchFaceImplThenRunOnUiThreadBlocking(
-            engine,
-            "InteractiveWatchFaceImpl.createRemoteWatchFaceView"
-        ) { watchFaceImpl ->
-            watchFaceImpl.createRemoteWatchFaceView(hostToken, width, height)
+    ): IRemoteWatchFaceView? =
+        aidlMethod(TAG, "createRemoteWatchFaceView") {
+            return WatchFaceService.awaitDeferredWatchFaceImplThenRunOnUiThreadBlocking(
+                engine,
+                "InteractiveWatchFaceImpl.createRemoteWatchFaceView"
+            ) { watchFaceImpl ->
+                watchFaceImpl.createRemoteWatchFaceView(hostToken, width, height)
+            }
         }
-    }
 
-    override fun getPreviewReferenceTimeMillis(): Long {
-        return WatchFaceService.awaitDeferredWatchFaceImplThenRunOnUiThreadBlocking(
-            engine,
-            "InteractiveWatchFaceImpl.getPreviewReferenceTimeMillis"
-        ) { watchFaceImpl ->
-            watchFaceImpl.previewReferenceInstant.toEpochMilli()
+    override fun getPreviewReferenceTimeMillis(): Long =
+        aidlMethod(TAG, "getPreviewReferenceTimeMillis") {
+            return WatchFaceService.awaitDeferredWatchFaceImplThenRunOnUiThreadBlocking(
+                engine,
+                "InteractiveWatchFaceImpl.getPreviewReferenceTimeMillis"
+            ) { watchFaceImpl ->
+                watchFaceImpl.previewReferenceInstant.toEpochMilli()
+            }
+                ?: 0
         }
-            ?: 0
-    }
 
-    override fun setWatchUiState(watchUiState: WatchUiState) {
-        WatchFaceService.awaitDeferredWatchFaceImplThenRunOnUiThreadBlocking(
-            engine,
-            "InteractiveWatchFaceImpl.setWatchUiState"
-        ) {
-            engine?.let { it.setWatchUiState(watchUiState, fromSysUi = true) }
-                ?: Log.d(TAG, "setWatchUiState ignored due to null engine id $instanceId")
+    override fun setWatchUiState(watchUiState: WatchUiState): Unit =
+        aidlMethod(TAG, "setWatchUiState") {
+            WatchFaceService.awaitDeferredWatchFaceImplThenRunOnUiThreadBlocking(
+                engine,
+                "InteractiveWatchFaceImpl.setWatchUiState"
+            ) {
+                engine?.let { it.setWatchUiState(watchUiState, fromSysUi = true) }
+                    ?: Log.d(TAG, "setWatchUiState ignored due to null engine id $instanceId")
+            }
         }
-    }
 
-    override fun getInstanceId(): String = instanceId
+    override fun getInstanceId(): String = aidlMethod(TAG, "getInstanceId") { instanceId }
 
-    override fun ambientTickUpdate() {
-        uiThreadCoroutineScope.runBlockingWithTracing(
-            "InteractiveWatchFaceImpl.ambientTickUpdate"
-        ) {
-            engine?.ambientTickUpdate()
-                ?: Log.d(TAG, "ambientTickUpdate ignored due to null engine id $instanceId")
+    override fun ambientTickUpdate(): Unit =
+        aidlMethod(TAG, "ambientTickUpdate") {
+            uiThreadCoroutineScope.runBlockingWithTracing(
+                "InteractiveWatchFaceImpl.ambientTickUpdate"
+            ) {
+                engine?.ambientTickUpdate()
+                    ?: Log.d(TAG, "ambientTickUpdate ignored due to null engine id $instanceId")
+            }
         }
-    }
 
     override fun release(): Unit =
-        TraceEvent("InteractiveWatchFaceImpl.release").use {
-            // Note this is a one way method called on a binder thread, so it shouldn't matter if we
-            // block.
-            runBlocking {
-                try {
-                    withContext(uiThreadCoroutineScope.coroutineContext) {
-                        engine?.let { it.deferredWatchFaceImpl.await() }
-                        InteractiveInstanceManager.releaseInstance(instanceId)
+        aidlMethod(TAG, "release") {
+            TraceEvent("InteractiveWatchFaceImpl.release").use {
+                // Note this is a one way method called on a binder thread, so it shouldn't matter
+                // if we block.
+                runBlocking {
+                    try {
+                        withContext(uiThreadCoroutineScope.coroutineContext) {
+                            engine?.let { it.deferredWatchFaceImpl.await() }
+                            InteractiveInstanceManager.releaseInstance(instanceId)
+                        }
+                    } catch (e: Exception) {
+                        // deferredWatchFaceImpl may have completed with an exception. This will
+                        // have already been reported so we can ignore it.
                     }
-                } catch (e: Exception) {
-                    // deferredWatchFaceImpl may have completed with an exception. This will
-                    // have already been reported so we can ignore it.
                 }
             }
         }
@@ -174,72 +193,92 @@
     override fun updateComplicationData(
         complicationDatumWireFormats: MutableList<IdAndComplicationDataWireFormat>
     ): Unit =
-        TraceEvent("InteractiveWatchFaceImpl.updateComplicationData").use {
-            if ("user" != Build.TYPE) {
-                Log.d(TAG, "updateComplicationData " + complicationDatumWireFormats.joinToString())
+        aidlMethod(TAG, "updateComplicationData") {
+            TraceEvent("InteractiveWatchFaceImpl.updateComplicationData").use {
+                if ("user" != Build.TYPE) {
+                    Log.d(
+                        TAG,
+                        "updateComplicationData " + complicationDatumWireFormats.joinToString()
+                    )
+                }
+
+                engine?.setComplicationDataList(complicationDatumWireFormats)
+                    ?: Log.d(
+                        TAG,
+                        "updateComplicationData ignored due to null engine id $instanceId"
+                    )
             }
-
-            engine?.setComplicationDataList(complicationDatumWireFormats)
-                ?: Log.d(TAG, "updateComplicationData ignored due to null engine id $instanceId")
         }
 
-    override fun updateWatchfaceInstance(newInstanceId: String, userStyle: UserStyleWireFormat) {
-        /**
-         * This is blocking to ensure ordering with respect to any subsequent [getInstanceId] and
-         * [getPreviewReferenceTimeMillis] calls.
-         */
-        uiThreadCoroutineScope.runBlockingWithTracing(
-            "InteractiveWatchFaceImpl.updateWatchfaceInstance"
-        ) {
-            if (instanceId != newInstanceId) {
-                engine?.updateInstance(newInstanceId)
-                instanceId = newInstanceId
+    override fun updateWatchfaceInstance(
+        newInstanceId: String,
+        userStyle: UserStyleWireFormat
+    ): Unit =
+        aidlMethod(TAG, "updateWatchfaceInstance") {
+            /**
+             * This is blocking to ensure ordering with respect to any subsequent [getInstanceId]
+             * and [getPreviewReferenceTimeMillis] calls.
+             */
+            uiThreadCoroutineScope.runBlockingWithTracing(
+                "InteractiveWatchFaceImpl.updateWatchfaceInstance"
+            ) {
+                if (instanceId != newInstanceId) {
+                    engine?.updateInstance(newInstanceId)
+                    instanceId = newInstanceId
+                }
+                engine?.setUserStyle(userStyle)
             }
-            engine?.setUserStyle(userStyle)
         }
-    }
 
-    override fun getComplicationDetails(): List<IdAndComplicationStateWireFormat>? {
-        val engineCopy = engine
-        return WatchFaceService.awaitDeferredEarlyInitDetailsThenRunOnThread(
-            engineCopy,
-            "InteractiveWatchFaceImpl.getComplicationDetails",
-            WatchFaceService.Companion.ExecutionThread.UI
-        ) {
-            it.complicationSlotsManager.getComplicationsState(engineCopy!!.screenBounds)
+    override fun getComplicationDetails(): List<IdAndComplicationStateWireFormat>? =
+        aidlMethod(TAG, "getComplicationDetails") {
+            val engineCopy = engine
+            return WatchFaceService.awaitDeferredEarlyInitDetailsThenRunOnThread(
+                engineCopy,
+                "InteractiveWatchFaceImpl.getComplicationDetails",
+                WatchFaceService.Companion.ExecutionThread.UI
+            ) {
+                it.complicationSlotsManager.getComplicationsState(engineCopy!!.screenBounds)
+            }
         }
-    }
 
-    override fun getUserStyleSchema(): UserStyleSchemaWireFormat? {
-        return WatchFaceService.awaitDeferredEarlyInitDetailsThenRunOnThread(
-            engine,
-            "InteractiveWatchFaceImpl.getUserStyleSchema",
-            WatchFaceService.Companion.ExecutionThread.CURRENT
-        ) {
-            it.userStyleRepository.schema.toWireFormat()
+    override fun getUserStyleSchema(): UserStyleSchemaWireFormat? =
+        aidlMethod(TAG, "getUserStyleSchema") {
+            return WatchFaceService.awaitDeferredEarlyInitDetailsThenRunOnThread(
+                engine,
+                "InteractiveWatchFaceImpl.getUserStyleSchema",
+                WatchFaceService.Companion.ExecutionThread.CURRENT
+            ) {
+                it.userStyleRepository.schema.toWireFormat()
+            }
         }
-    }
 
-    override fun bringAttentionToComplication(id: Int) {
-        // Unsupported.
-    }
-
-    override fun addWatchfaceReadyListener(listener: IWatchfaceReadyListener) {
-        uiThreadCoroutineScope.launch {
-            engine?.addWatchfaceReadyListener(listener)
-                ?: Log.d(TAG, "addWatchfaceReadyListener ignored due to null engine id $instanceId")
+    override fun bringAttentionToComplication(id: Int) =
+        aidlMethod(TAG, "bringAttentionToComplication") {
+            // Unsupported.
         }
-    }
 
-    override fun getComplicationIdAt(xPos: Int, yPos: Int): Long {
-        return WatchFaceService.awaitDeferredWatchFaceImplThenRunOnUiThreadBlocking(
-            engine,
-            "InteractiveWatchFaceImpl.getComplicationIdAt"
-        ) {
-            it.complicationSlotsManager.getComplicationSlotAt(xPos, yPos)?.id?.toLong()
+    override fun addWatchfaceReadyListener(listener: IWatchfaceReadyListener): Unit =
+        aidlMethod(TAG, "addWatchfaceReadyListener") {
+            uiThreadCoroutineScope.launch {
+                engine?.addWatchfaceReadyListener(listener)
+                    ?: Log.d(
+                        TAG,
+                        "addWatchfaceReadyListener ignored due to null engine id $instanceId"
+                    )
+            }
         }
-            ?: Long.MIN_VALUE
-    }
+
+    override fun getComplicationIdAt(xPos: Int, yPos: Int): Long =
+        aidlMethod(TAG, "getComplicationIdAt") {
+            return WatchFaceService.awaitDeferredWatchFaceImplThenRunOnUiThreadBlocking(
+                engine,
+                "InteractiveWatchFaceImpl.getComplicationIdAt"
+            ) {
+                it.complicationSlotsManager.getComplicationSlotAt(xPos, yPos)?.id?.toLong()
+            }
+                ?: Long.MIN_VALUE
+        }
 
     fun onDestroy() {
         // Note this is almost certainly called on the ui thread, from release() above.
diff --git a/wear/watchface/watchface/src/main/java/androidx/wear/watchface/control/RemoteWatchFaceView.kt b/wear/watchface/watchface/src/main/java/androidx/wear/watchface/control/RemoteWatchFaceView.kt
index f2312e1e..f88d810 100644
--- a/wear/watchface/watchface/src/main/java/androidx/wear/watchface/control/RemoteWatchFaceView.kt
+++ b/wear/watchface/watchface/src/main/java/androidx/wear/watchface/control/RemoteWatchFaceView.kt
@@ -24,6 +24,7 @@
 import androidx.annotation.RequiresApi
 import androidx.wear.watchface.control.data.WatchFaceRenderParams
 import androidx.wear.watchface.utility.AsyncTraceEvent
+import androidx.wear.watchface.utility.aidlMethod
 import kotlinx.coroutines.CompletableDeferred
 import kotlinx.coroutines.CoroutineScope
 import kotlinx.coroutines.launch
@@ -65,21 +66,22 @@
         )
     }
 
-    override fun getApiVersion() = IRemoteWatchFaceView.API_VERSION
+    override fun getApiVersion() =
+        aidlMethod(TAG, "getApiVersion") { IRemoteWatchFaceView.API_VERSION }
 
-    override fun renderWatchFace(params: WatchFaceRenderParams) {
-        val traceEvent = AsyncTraceEvent("RemoteWatchFaceView.renderWatchFace")
-        uiThreadCoroutineScope.launch {
-            renderCallback(deferredSurfaceHolder.await(), params)
-            traceEvent.close()
+    override fun renderWatchFace(params: WatchFaceRenderParams): Unit =
+        aidlMethod(TAG, "renderWatchFace") {
+            val traceEvent = AsyncTraceEvent("RemoteWatchFaceView.renderWatchFace")
+            uiThreadCoroutineScope.launch {
+                renderCallback(deferredSurfaceHolder.await(), params)
+                traceEvent.close()
+            }
         }
-    }
 
-    override fun getSurfacePackage(): SurfaceControlViewHost.SurfacePackage {
-        return host.surfacePackage!!
-    }
+    override fun getSurfacePackage(): SurfaceControlViewHost.SurfacePackage =
+        aidlMethod(TAG, "getSurfacePackage") {
+            return host.surfacePackage!!
+        }
 
-    override fun close() {
-        host.release()
-    }
+    override fun close() = aidlMethod(TAG, "close") { host.release() }
 }
diff --git a/wear/watchface/watchface/src/main/java/androidx/wear/watchface/control/WatchFaceControlService.kt b/wear/watchface/watchface/src/main/java/androidx/wear/watchface/control/WatchFaceControlService.kt
index 92a7cf0..3ca3862 100644
--- a/wear/watchface/watchface/src/main/java/androidx/wear/watchface/control/WatchFaceControlService.kt
+++ b/wear/watchface/watchface/src/main/java/androidx/wear/watchface/control/WatchFaceControlService.kt
@@ -44,6 +44,7 @@
 import androidx.wear.watchface.style.data.UserStyleSchemaWireFormat
 import androidx.wear.watchface.utility.AsyncTraceEvent
 import androidx.wear.watchface.utility.TraceEvent
+import androidx.wear.watchface.utility.aidlMethod
 import java.io.FileDescriptor
 import java.io.PrintWriter
 import kotlinx.coroutines.CoroutineScope
@@ -119,28 +120,33 @@
     private var service: WatchFaceControlService?,
     private val uiThreadCoroutineScope: CoroutineScope
 ) : IWatchFaceControlService.Stub() {
-    override fun getApiVersion(): Int = IWatchFaceControlService.API_VERSION
+    override fun getApiVersion(): Int =
+        aidlMethod(TAG, "getApiVersion") { IWatchFaceControlService.API_VERSION }
 
     internal companion object {
         const val TAG = "IWatchFaceInstanceServiceStub"
     }
 
     override fun getInteractiveWatchFaceInstance(instanceId: String): IInteractiveWatchFace? =
-        TraceEvent("IWatchFaceInstanceServiceStub.getInteractiveWatchFaceInstance").use {
-            // This call is thread safe so we don't need to trampoline via the UI thread.
-            InteractiveInstanceManager.getAndRetainInstance(instanceId)
+        aidlMethod(TAG, "getInteractiveWatchFaceInstance") {
+            TraceEvent("IWatchFaceInstanceServiceStub.getInteractiveWatchFaceInstance").use {
+                // This call is thread safe so we don't need to trampoline via the UI thread.
+                InteractiveInstanceManager.getAndRetainInstance(instanceId)
+            }
         }
 
     override fun createHeadlessWatchFaceInstance(
         params: HeadlessWatchFaceInstanceParams
     ): IHeadlessWatchFace? =
-        TraceEvent("IWatchFaceInstanceServiceStub.createHeadlessWatchFaceInstance").use {
-            createServiceAndHeadlessEngine(params.watchFaceName)?.let { serviceAndEngine ->
-                // This is serviced on a background thread so it should be fine to block.
-                uiThreadCoroutineScope.runBlockingWithTracing("createHeadlessInstance") {
-                    // However the WatchFaceService.createWatchFace method needs to be run on the UI
-                    // thread.
-                    serviceAndEngine.engine.createHeadlessInstance(params)
+        aidlMethod(TAG, "createHeadlessWatchFaceInstance") {
+            TraceEvent("IWatchFaceInstanceServiceStub.createHeadlessWatchFaceInstance").use {
+                createServiceAndHeadlessEngine(params.watchFaceName)?.let { serviceAndEngine ->
+                    // This is serviced on a background thread so it should be fine to block.
+                    uiThreadCoroutineScope.runBlockingWithTracing("createHeadlessInstance") {
+                        // However the WatchFaceService.createWatchFace method needs to be run on
+                        // the UI thread.
+                        serviceAndEngine.engine.createHeadlessInstance(params)
+                    }
                 }
             }
         }
@@ -150,13 +156,8 @@
         val engine: WatchFaceService.EngineWrapper
     ) {
         fun destroy() {
-            try {
-                engine.onDestroy()
-                service.onDestroy()
-            } catch (e: Exception) {
-                Log.e(TAG, "ServiceAndEngine.destroy failed due to exception", e)
-                throw e
-            }
+            engine.onDestroy()
+            service.onDestroy()
         }
     }
 
@@ -202,78 +203,86 @@
     override fun getOrCreateInteractiveWatchFace(
         params: WallpaperInteractiveWatchFaceInstanceParams,
         callback: IPendingInteractiveWatchFace
-    ): IInteractiveWatchFace? {
-        val asyncTraceEvent =
-            AsyncTraceEvent("IWatchFaceInstanceServiceStub.getOrCreateInteractiveWatchFaceWCS")
-        return try {
-            InteractiveInstanceManager
+    ): IInteractiveWatchFace? =
+        aidlMethod(TAG, "getOrCreateInteractiveWatchFace") {
+            val asyncTraceEvent =
+                AsyncTraceEvent("IWatchFaceInstanceServiceStub.getOrCreateInteractiveWatchFaceWCS")
+            return@aidlMethod InteractiveInstanceManager
                 .getExistingInstanceOrSetPendingWallpaperInteractiveWatchFaceInstance(
                     InteractiveInstanceManager.PendingWallpaperInteractiveWatchFaceInstance(
                         params,
                         // Wrapped IPendingInteractiveWatchFace to support tracing.
                         object : IPendingInteractiveWatchFace.Stub() {
-                            override fun getApiVersion() = callback.apiVersion
+                            override fun getApiVersion() =
+                                aidlMethod(TAG, "getApiVersion") { callback.apiVersion }
 
                             override fun onInteractiveWatchFaceCreated(
                                 iInteractiveWatchFaceWcs: IInteractiveWatchFace?
-                            ) {
-                                asyncTraceEvent.close()
-                                callback.onInteractiveWatchFaceCreated(iInteractiveWatchFaceWcs)
-                            }
+                            ) =
+                                aidlMethod(TAG, "onInteractiveWatchFaceCreated") {
+                                    asyncTraceEvent.close()
+                                    callback.onInteractiveWatchFaceCreated(iInteractiveWatchFaceWcs)
+                                }
 
-                            override fun onInteractiveWatchFaceCrashed(exception: CrashInfoParcel) {
-                                asyncTraceEvent.close()
-                                callback.onInteractiveWatchFaceCrashed(exception)
-                            }
+                            override fun onInteractiveWatchFaceCrashed(exception: CrashInfoParcel) =
+                                aidlMethod(TAG, "onInteractiveWatchFaceCrashed") {
+                                    asyncTraceEvent.close()
+                                    callback.onInteractiveWatchFaceCrashed(exception)
+                                }
                         }
                     )
                 )
-        } catch (e: Exception) {
-            Log.e(TAG, "getOrCreateInteractiveWatchFace failed ", e)
-            throw e
         }
-    }
 
-    override fun getEditorService(): EditorService = EditorService.globalEditorService
+    override fun getEditorService(): EditorService =
+        aidlMethod(TAG, "getEditorService") { EditorService.globalEditorService }
 
     override fun getDefaultProviderPolicies(
         params: DefaultProviderPoliciesParams
     ): Array<IdTypeAndDefaultProviderPolicyWireFormat>? =
-        createServiceAndHeadlessEngineAndEvaluate(
-            params.watchFaceName,
-            "IWatchFaceInstanceServiceStub.getDefaultProviderPolicies"
-        ) {
-            it.engine.getDefaultProviderPolicies()
+        aidlMethod(TAG, "getDefaultProviderPolicies") {
+            createServiceAndHeadlessEngineAndEvaluate(
+                params.watchFaceName,
+                "IWatchFaceInstanceServiceStub.getDefaultProviderPolicies"
+            ) {
+                it.engine.getDefaultProviderPolicies()
+            }
         }
 
     override fun getUserStyleSchema(params: GetUserStyleSchemaParams): UserStyleSchemaWireFormat? =
-        createServiceAndHeadlessEngineAndEvaluate(
-            params.watchFaceName,
-            "IWatchFaceInstanceServiceStub.getUserStyleSchema"
-        ) {
-            it.engine.getUserStyleSchemaWireFormat()
+        aidlMethod(TAG, "getUserStyleSchema") {
+            createServiceAndHeadlessEngineAndEvaluate(
+                params.watchFaceName,
+                "IWatchFaceInstanceServiceStub.getUserStyleSchema"
+            ) {
+                it.engine.getUserStyleSchemaWireFormat()
+            }
         }
 
     override fun getComplicationSlotMetadata(
         params: GetComplicationSlotMetadataParams
     ): Array<ComplicationSlotMetadataWireFormat>? =
-        createServiceAndHeadlessEngineAndEvaluate(
-            params.watchFaceName,
-            "IWatchFaceInstanceServiceStub.getComplicationSlotMetadata"
-        ) {
-            it.engine.getComplicationSlotMetadataWireFormats()
+        aidlMethod(TAG, "getComplicationSlotMetadata") {
+            createServiceAndHeadlessEngineAndEvaluate(
+                params.watchFaceName,
+                "IWatchFaceInstanceServiceStub.getComplicationSlotMetadata"
+            ) {
+                it.engine.getComplicationSlotMetadataWireFormats()
+            }
         }
 
-    override fun hasComplicationCache() = true
+    override fun hasComplicationCache() = aidlMethod(TAG, "hasComplicationCache") { true }
 
     override fun getUserStyleFlavors(
         params: GetUserStyleFlavorsParams
     ): UserStyleFlavorsWireFormat? =
-        createServiceAndHeadlessEngineAndEvaluate(
-            params.watchFaceName,
-            "IWatchFaceInstanceServiceStub.getUserStyleFlavors"
-        ) {
-            it.engine.getUserStyleFlavorsWireFormat()
+        aidlMethod(TAG, "getUserStyleFlavors") {
+            createServiceAndHeadlessEngineAndEvaluate(
+                params.watchFaceName,
+                "IWatchFaceInstanceServiceStub.getUserStyleFlavors"
+            ) {
+                it.engine.getUserStyleFlavorsWireFormat()
+            }
         }
 
     private fun <T> createServiceAndHeadlessEngineAndEvaluate(
@@ -282,17 +291,12 @@
         function: (serviceAndEngine: ServiceAndEngine) -> T
     ): T? =
         TraceEvent(functionName).use {
-            return try {
-                createServiceAndHeadlessEngine(watchFaceName)?.let { serviceAndEngine ->
-                    try {
-                        function(serviceAndEngine)
-                    } finally {
-                        serviceAndEngine.destroy()
-                    }
+            createServiceAndHeadlessEngine(watchFaceName)?.let { serviceAndEngine ->
+                try {
+                    function(serviceAndEngine)
+                } finally {
+                    serviceAndEngine.destroy()
                 }
-            } catch (e: Exception) {
-                Log.e(TAG, "$functionName failed due to exception", e)
-                throw e
             }
         }
 
diff --git a/wear/watchface/watchface/src/main/java/androidx/wear/watchface/editor/EditorService.kt b/wear/watchface/watchface/src/main/java/androidx/wear/watchface/editor/EditorService.kt
index 0755492..259fb55 100644
--- a/wear/watchface/watchface/src/main/java/androidx/wear/watchface/editor/EditorService.kt
+++ b/wear/watchface/watchface/src/main/java/androidx/wear/watchface/editor/EditorService.kt
@@ -21,6 +21,7 @@
 import androidx.annotation.RestrictTo
 import androidx.wear.watchface.IndentingPrintWriter
 import androidx.wear.watchface.editor.data.EditorStateWireFormat
+import androidx.wear.watchface.utility.aidlMethod
 
 /** Implementation of [IEditorService], intended for use by EditorSession only. */
 @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)
@@ -38,57 +39,58 @@
         internal const val TAG = "EditorService"
     }
 
-    public override fun getApiVersion(): Int = API_VERSION
+    public override fun getApiVersion(): Int = aidlMethod(TAG, "fun") { API_VERSION }
 
-    override fun registerObserver(observer: IEditorObserver): Int {
-        synchronized(lock) {
-            val id = nextId++
-            observers[id] = observer
-            val deathObserver =
-                IBinder.DeathRecipient {
-                    Log.w(TAG, "observer died, closing editor")
-                    // If SysUI dies we should close the editor too, otherwise the watchface could
-                    // get
-                    // left in an inconsistent state where it has local edits that were not
-                    // persisted by
-                    // the system.
-                    closeEditor()
-                    unregisterObserver(id)
-                }
-            observer.asBinder().linkToDeath(deathObserver, 0)
-            deathObservers[id] = deathObserver
-            return id
-        }
-    }
-
-    override fun unregisterObserver(observerId: Int) {
-        synchronized(lock) {
-            deathObservers[observerId]?.let {
-                try {
-                    observers[observerId]?.asBinder()?.unlinkToDeath(it, 0)
-                } catch (e: NoSuchElementException) {
-                    // This really shouldn't happen.
-                    Log.w(TAG, "unregisterObserver encountered", e)
-                }
+    override fun registerObserver(observer: IEditorObserver): Int =
+        aidlMethod(TAG, "registerObserver") {
+            synchronized(lock) {
+                val id = nextId++
+                observers[id] = observer
+                val deathObserver =
+                    IBinder.DeathRecipient {
+                        Log.w(TAG, "observer died, closing editor")
+                        // If SysUI dies we should close the editor too, otherwise the watchface
+                        // could get left in an inconsistent state where it has local edits that
+                        // were not persisted by the system.
+                        closeEditor()
+                        unregisterObserver(id)
+                    }
+                observer.asBinder().linkToDeath(deathObserver, 0)
+                deathObservers[id] = deathObserver
+                return@aidlMethod id
             }
-            observers.remove(observerId)
-            deathObservers.remove(observerId)
         }
-    }
+
+    override fun unregisterObserver(observerId: Int): Unit =
+        aidlMethod(TAG, "unregisterObserver") {
+            synchronized(lock) {
+                deathObservers[observerId]?.let {
+                    try {
+                        observers[observerId]?.asBinder()?.unlinkToDeath(it, 0)
+                    } catch (e: NoSuchElementException) {
+                        // This really shouldn't happen.
+                        Log.w(TAG, "unregisterObserver encountered", e)
+                    }
+                }
+                observers.remove(observerId)
+                deathObservers.remove(observerId)
+            }
+        }
 
     public abstract class CloseCallback {
         /** Called when [closeEditor] is called. */
         public abstract fun onClose()
     }
 
-    override fun closeEditor() {
-        val callbackCopy = synchronized(lock) { HashSet<CloseCallback>(closeEditorCallbacks) }
-        // We iterate on a copy of closeEditorCallbacks to avoid calls to removeCloseCallback
-        // mutating a set we're iterating.
-        for (observer in callbackCopy) {
-            observer.onClose()
+    override fun closeEditor() =
+        aidlMethod(TAG, "closeEditor") {
+            val callbackCopy = synchronized(lock) { HashSet<CloseCallback>(closeEditorCallbacks) }
+            // We iterate on a copy of closeEditorCallbacks to avoid calls to removeCloseCallback
+            // mutating a set we're iterating.
+            for (observer in callbackCopy) {
+                observer.onClose()
+            }
         }
-    }
 
     /**
      * Adds [closeCallback] to the set of observers to be called if the client calls [closeEditor].
diff --git a/wear/wear-phone-interactions/api/aidlRelease/current/android/support/wearable/authentication/IAuthenticationRequestCallback.aidl b/wear/wear-phone-interactions/api/aidlRelease/current/android/support/wearable/authentication/IAuthenticationRequestCallback.aidl
index 114c1ed..5d7d2ca 100644
--- a/wear/wear-phone-interactions/api/aidlRelease/current/android/support/wearable/authentication/IAuthenticationRequestCallback.aidl
+++ b/wear/wear-phone-interactions/api/aidlRelease/current/android/support/wearable/authentication/IAuthenticationRequestCallback.aidl
@@ -17,7 +17,7 @@
 // later when a module using the interface is updated, e.g., Mainline modules.
 
 package android.support.wearable.authentication;
-/* @hide */
+@JavaPassthrough(annotation="@androidx.annotation.RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY)")
 interface IAuthenticationRequestCallback {
   void onResult(in android.os.Bundle result) = 0;
   int getApiVersion() = 1;
diff --git a/wear/wear-phone-interactions/api/aidlRelease/current/android/support/wearable/authentication/IAuthenticationRequestService.aidl b/wear/wear-phone-interactions/api/aidlRelease/current/android/support/wearable/authentication/IAuthenticationRequestService.aidl
index 1126fe8..0c73bef 100644
--- a/wear/wear-phone-interactions/api/aidlRelease/current/android/support/wearable/authentication/IAuthenticationRequestService.aidl
+++ b/wear/wear-phone-interactions/api/aidlRelease/current/android/support/wearable/authentication/IAuthenticationRequestService.aidl
@@ -17,7 +17,7 @@
 // later when a module using the interface is updated, e.g., Mainline modules.
 
 package android.support.wearable.authentication;
-/* @hide */
+@JavaPassthrough(annotation="@androidx.annotation.RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY)")
 interface IAuthenticationRequestService {
   void openUrl(in android.os.Bundle request, in android.support.wearable.authentication.IAuthenticationRequestCallback authenticationRequestCallback) = 0;
   int getApiVersion() = 1;
diff --git a/wear/wear-phone-interactions/api/aidlRelease/current/android/support/wearable/notifications/IBridgingManagerService.aidl b/wear/wear-phone-interactions/api/aidlRelease/current/android/support/wearable/notifications/IBridgingManagerService.aidl
index 48c39d9..0a4f677 100644
--- a/wear/wear-phone-interactions/api/aidlRelease/current/android/support/wearable/notifications/IBridgingManagerService.aidl
+++ b/wear/wear-phone-interactions/api/aidlRelease/current/android/support/wearable/notifications/IBridgingManagerService.aidl
@@ -32,7 +32,7 @@
 // later when a module using the interface is updated, e.g., Mainline modules.
 
 package android.support.wearable.notifications;
-/* @hide */
+@JavaPassthrough(annotation="@androidx.annotation.RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY)")
 interface IBridgingManagerService {
   void setBridgingConfig(in android.os.Bundle bridgingConfig) = 0;
   int getApiVersion() = 1;
diff --git a/wear/wear-phone-interactions/lint-baseline.xml b/wear/wear-phone-interactions/lint-baseline.xml
deleted file mode 100644
index 229ded5..0000000
--- a/wear/wear-phone-interactions/lint-baseline.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 8.1.0-alpha11" type="baseline" client="gradle" dependencies="false" name="AGP (8.1.0-alpha11)" variant="all" version="8.1.0-alpha11">
-
-    <issue
-        id="RequireUnstableAidlAnnotation"
-        message="Unstable AIDL files must be annotated with `@RequiresOptIn` marker"
-        errorLine1="interface IAuthenticationRequestCallback {"
-        errorLine2="^">
-        <location
-            file="src/main/aidl/android/support/wearable/authentication/IAuthenticationRequestCallback.aidl"/>
-    </issue>
-
-    <issue
-        id="RequireUnstableAidlAnnotation"
-        message="Unstable AIDL files must be annotated with `@RequiresOptIn` marker"
-        errorLine1="interface IAuthenticationRequestService {"
-        errorLine2="^">
-        <location
-            file="src/main/aidl/android/support/wearable/authentication/IAuthenticationRequestService.aidl"/>
-    </issue>
-
-    <issue
-        id="RequireUnstableAidlAnnotation"
-        message="Unstable AIDL files must be annotated with `@RequiresOptIn` marker"
-        errorLine1="interface IBridgingManagerService {"
-        errorLine2="^">
-        <location
-            file="src/main/aidl/android/support/wearable/notifications/IBridgingManagerService.aidl"/>
-    </issue>
-
-</issues>
diff --git a/wear/wear-phone-interactions/src/main/stableAidl/android/support/wearable/authentication/IAuthenticationRequestCallback.aidl b/wear/wear-phone-interactions/src/main/stableAidl/android/support/wearable/authentication/IAuthenticationRequestCallback.aidl
index a57c4a3..48bcd21 100644
--- a/wear/wear-phone-interactions/src/main/stableAidl/android/support/wearable/authentication/IAuthenticationRequestCallback.aidl
+++ b/wear/wear-phone-interactions/src/main/stableAidl/android/support/wearable/authentication/IAuthenticationRequestCallback.aidl
@@ -5,9 +5,8 @@
 /**
  * Interface for defining the callback to be notified when an aync remote authentication request
  * completes.
- *
- * @hide
  */
+@JavaPassthrough(annotation="@androidx.annotation.RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY)")
 interface IAuthenticationRequestCallback {
   // IMPORTANT NOTE: All methods must be given an explicit transcation id that must never change
   // in the future to remain binary backwards compatible
diff --git a/wear/wear-phone-interactions/src/main/stableAidl/android/support/wearable/authentication/IAuthenticationRequestService.aidl b/wear/wear-phone-interactions/src/main/stableAidl/android/support/wearable/authentication/IAuthenticationRequestService.aidl
index 58b6215..5d470bc 100644
--- a/wear/wear-phone-interactions/src/main/stableAidl/android/support/wearable/authentication/IAuthenticationRequestService.aidl
+++ b/wear/wear-phone-interactions/src/main/stableAidl/android/support/wearable/authentication/IAuthenticationRequestService.aidl
@@ -6,9 +6,8 @@
 
 /**
  * Interface of a service that supports an async remote authentication.
- *
- * @hide
  */
+ @JavaPassthrough(annotation="@androidx.annotation.RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY)")
 interface IAuthenticationRequestService {
   // IMPORTANT NOTE: all methods must be given an explicit transaction id that must never change
   // in the future to remain binary backwards compatible.
diff --git a/wear/wear-phone-interactions/src/main/stableAidl/android/support/wearable/notifications/IBridgingManagerService.aidl b/wear/wear-phone-interactions/src/main/stableAidl/android/support/wearable/notifications/IBridgingManagerService.aidl
index a62b0b5..949c5c9 100644
--- a/wear/wear-phone-interactions/src/main/stableAidl/android/support/wearable/notifications/IBridgingManagerService.aidl
+++ b/wear/wear-phone-interactions/src/main/stableAidl/android/support/wearable/notifications/IBridgingManagerService.aidl
@@ -20,9 +20,8 @@
 
 /**
  * Interface of a service that allows setting the notification bridging configuration
- *
- * @hide
  */
+@JavaPassthrough(annotation="@androidx.annotation.RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY)")
 interface IBridgingManagerService {
     // IMPORTANT NOTE: All methods must be given an explicit transaction id that must never change
     // in the future to remain binary backwards compatible.
diff --git a/wear/wear/lint-baseline.xml b/wear/wear/lint-baseline.xml
index d2d3f5c..ba5b485 100644
--- a/wear/wear/lint-baseline.xml
+++ b/wear/wear/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.4.0-alpha08" type="baseline" client="gradle" dependencies="false" name="AGP (7.4.0-alpha08)" variant="all" version="7.4.0-alpha08">
+<issues format="6" by="lint 8.1.0-beta02" type="baseline" client="gradle" dependencies="false" name="AGP (8.1.0-beta02)" variant="all" version="8.1.0-beta02">
 
     <issue
         id="BanThreadSleep"
diff --git a/webkit/integration-tests/testapp/src/main/assets/www/web_message_listener.html b/webkit/integration-tests/testapp/src/main/assets/www/web_message_listener.html
index 11ed1b0..83fed4e 100644
--- a/webkit/integration-tests/testapp/src/main/assets/www/web_message_listener.html
+++ b/webkit/integration-tests/testapp/src/main/assets/www/web_message_listener.html
@@ -15,6 +15,12 @@
 -->
 <head>
   <script type="text/javascript">
+    window.onload = () => {
+        document.getElementById('type_select').style.display =
+            nativeFeatures.isArrayBufferSupported() ? 'block' : 'none';
+    }
+    let shouldUseArrayBuffer = false;
+
     let timestamp = 0;
     replyObject.onmessage = function(event) {
         document.getElementById("result").innerHTML = event.data;
@@ -28,11 +34,29 @@
     };
     replyWithMessagePortObject.postMessage("send port", [channel.port1]);
 
+    function buildMessage(index) {
+        if (shouldUseArrayBuffer) {
+            const buffer = new ArrayBuffer(4);
+            new DataView(buffer).setInt32(0, index, false);
+            return buffer;
+        } else {
+            return index.toString();
+        }
+    }
     let messageCounter = 0;
     multipleMessagesObject.addEventListener("message", function(event) {
-        const i = parseInt(event.data);
+        const data = event.data;
+        let i = 0;
+        if (typeof data === 'string') {
+            i = parseInt(event.data);
+        } else if (data instanceof ArrayBuffer) {
+            i = new DataView(event.data).getInt32(0, false);
+        } else {
+            // Invalid type
+            console.error(`Invalid type: ${typeof data}`);
+        }
         if (i < 4999) {
-            multipleMessagesObject.postMessage((i + 1).toString());
+            multipleMessagesObject.postMessage(buildMessage(i + 1));
             if (i % 100 === 0) {
                 const counterInfo = (messageCounter + i)+ " messages sent.";
                 document.getElementById("multiple_messages").innerHTML = counterInfo;
@@ -48,8 +72,11 @@
     function startPostMessage(e) {
         e.preventDefault();
         document.getElementById("multiple_button").disabled = true;
+        // Get type of message to send, based on HTML type_select.
+        const type = document.getElementById('type_select').value;
+        shouldUseArrayBuffer = type === 'ArrayBuffer';
         timestamp = performance.now();
-        multipleMessagesObject.postMessage("0");
+        multipleMessagesObject.postMessage(buildMessage(0));
     }
 
     function showToast(e) {
@@ -74,6 +101,12 @@
     <button type="button" onclick="showToast(event)">Show Toast</button>
   </div>
   <div>
+    <select id="type_select">
+      <option>String</option>
+      <option>ArrayBuffer</option>
+    </select>
+  </div>
+  <div>
     <button id="multiple_button" type="button" onclick="startPostMessage(event)">
       Send 5000 messages
     </button>
diff --git a/webkit/integration-tests/testapp/src/main/java/com/example/androidx/webkit/WebMessageCompatActivity.java b/webkit/integration-tests/testapp/src/main/java/com/example/androidx/webkit/WebMessageCompatActivity.java
index 9d15a52..8c66216 100644
--- a/webkit/integration-tests/testapp/src/main/java/com/example/androidx/webkit/WebMessageCompatActivity.java
+++ b/webkit/integration-tests/testapp/src/main/java/com/example/androidx/webkit/WebMessageCompatActivity.java
@@ -52,8 +52,8 @@
     private static final String TYPE_STRING = "String";
     private static final String TYPE_ARRAY_BUFFER = "ArrayBuffer";
     private static final String[] MESSAGE_TYPES = {TYPE_STRING, TYPE_ARRAY_BUFFER};
-    private static final boolean PAYLOAD_FEATURE_ENABLED =
-            WebViewFeature.isFeatureSupported(WebViewFeature.WEB_MESSAGE_GET_MESSAGE_PAYLOAD);
+    private static final boolean ARRAY_BUFFER_FEATURE_ENABLED =
+            WebViewFeature.isFeatureSupported(WebViewFeature.WEB_MESSAGE_ARRAY_BUFFER);
 
     private WebView mWebView;
     private TextView mTextView, mPerfTextView;
@@ -96,7 +96,7 @@
                 android.R.layout.simple_spinner_dropdown_item, MESSAGE_TYPES);
         mSpinner.setAdapter(adapter);
         // If GET_PAYLOAD feature is not supported, disable the type selection spinner.
-        mSpinner.setEnabled(PAYLOAD_FEATURE_ENABLED);
+        mSpinner.setEnabled(ARRAY_BUFFER_FEATURE_ENABLED);
 
         try (InputStream is = getAssets().open("www/web_message_compat.html")) {
             String webContent = new String(ByteStreams.toByteArray(is), Charsets.UTF_8);
@@ -174,7 +174,7 @@
                 }
                 if (mMessageCount == mExpectedCount) {
                     refreshPerfText();
-                    mSpinner.setEnabled(PAYLOAD_FEATURE_ENABLED);
+                    mSpinner.setEnabled(ARRAY_BUFFER_FEATURE_ENABLED);
                 }
                 sendMessage();
             }
diff --git a/webkit/integration-tests/testapp/src/main/java/com/example/androidx/webkit/WebMessageListenerActivity.java b/webkit/integration-tests/testapp/src/main/java/com/example/androidx/webkit/WebMessageListenerActivity.java
index fadd41a..627af50 100644
--- a/webkit/integration-tests/testapp/src/main/java/com/example/androidx/webkit/WebMessageListenerActivity.java
+++ b/webkit/integration-tests/testapp/src/main/java/com/example/androidx/webkit/WebMessageListenerActivity.java
@@ -27,6 +27,7 @@
 import android.text.TextUtils;
 import android.text.style.AbsoluteSizeSpan;
 import android.view.View;
+import android.webkit.JavascriptInterface;
 import android.webkit.WebResourceRequest;
 import android.webkit.WebResourceResponse;
 import android.webkit.WebView;
@@ -152,7 +153,16 @@
         public void onPostMessage(@NonNull WebView view, @NonNull WebMessageCompat message,
                 @NonNull Uri sourceOrigin,
                 boolean isMainFrame, @NonNull JavaScriptReplyProxy replyProxy) {
-            replyProxy.postMessage(message.getData());
+            switch (message.getType()) {
+                case WebMessageCompat.TYPE_STRING:
+                    replyProxy.postMessage(message.getData());
+                    break;
+                case WebMessageCompat.TYPE_ARRAY_BUFFER:
+                    replyProxy.postMessage(message.getArrayBuffer());
+                    break;
+                default:
+                    throw new IllegalArgumentException("Invalid WebMessage type");
+            }
             mCounter++;
             if (mCounter % 100 == 0) {
                 mTextView.setText(TextUtils.concat(
@@ -161,6 +171,14 @@
         }
     }
 
+    private static class NativeFeatureInterface {
+        @SuppressWarnings("unused") // used from Javascript
+        @JavascriptInterface
+        public boolean isArrayBufferSupported() {
+            return WebViewFeature.isFeatureSupported(WebViewFeature.WEB_MESSAGE_ARRAY_BUFFER);
+        }
+    }
+
     @SuppressLint("SetJavascriptEnabled")
     @Override
     protected void onCreate(@Nullable Bundle savedInstanceState) {
@@ -191,6 +209,7 @@
         WebView webView = findViewById(R.id.webview);
         webView.setWebViewClient(new MyWebViewClient(assetLoader));
         webView.getSettings().setJavaScriptEnabled(true);
+        webView.addJavascriptInterface(new NativeFeatureInterface(), "nativeFeatures");
 
         HashSet<String> allowedOriginRules = new HashSet<>(Arrays.asList("https://example.com"));
         // Add WebMessageListeners.
diff --git a/webkit/webkit/src/androidTest/java/androidx/webkit/WebViewWebMessageCompatTest.java b/webkit/webkit/src/androidTest/java/androidx/webkit/WebViewWebMessageCompatTest.java
index 752546d..8eaeebd 100644
--- a/webkit/webkit/src/androidTest/java/androidx/webkit/WebViewWebMessageCompatTest.java
+++ b/webkit/webkit/src/androidTest/java/androidx/webkit/WebViewWebMessageCompatTest.java
@@ -122,7 +122,7 @@
     @Test
     public void testArrayBufferOverPort() throws Exception {
         WebkitUtils.checkFeature(WebViewFeature.POST_WEB_MESSAGE);
-        WebkitUtils.checkFeature(WebViewFeature.WEB_MESSAGE_GET_MESSAGE_PAYLOAD);
+        WebkitUtils.checkFeature(WebViewFeature.WEB_MESSAGE_ARRAY_BUFFER);
         loadHtmlSync(ECHO_MESSAGE);
         final WebMessagePortCompat port = preparePort();
         port.postMessage(new WebMessageCompat(mBytes));
@@ -132,7 +132,7 @@
     @Test
     public void testArrayBufferToMainFrame() throws Exception {
         WebkitUtils.checkFeature(WebViewFeature.POST_WEB_MESSAGE);
-        WebkitUtils.checkFeature(WebViewFeature.WEB_MESSAGE_GET_MESSAGE_PAYLOAD);
+        WebkitUtils.checkFeature(WebViewFeature.WEB_MESSAGE_ARRAY_BUFFER);
         loadHtmlSync(ECHO_MESSAGE);
         preparePort();
         mWebViewOnUiThread.postWebMessageCompat(new WebMessageCompat(mBytes), Uri.EMPTY);
diff --git a/webkit/webkit/src/androidTest/java/androidx/webkit/WebViewWebMessageListenerTest.java b/webkit/webkit/src/androidTest/java/androidx/webkit/WebViewWebMessageListenerTest.java
index f532071..72881f8 100644
--- a/webkit/webkit/src/androidTest/java/androidx/webkit/WebViewWebMessageListenerTest.java
+++ b/webkit/webkit/src/androidTest/java/androidx/webkit/WebViewWebMessageListenerTest.java
@@ -29,6 +29,7 @@
 import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
+import org.junit.function.ThrowingRunnable;
 import org.junit.runner.RunWith;
 
 import java.util.Arrays;
@@ -48,18 +49,34 @@
 @SdkSuppress(minSdkVersion = Build.VERSION_CODES.LOLLIPOP)
 public class WebViewWebMessageListenerTest {
     private static final String BASE_URI = "http://www.example.com";
-    private static final String JS_OBJECT_NAME = "myObject";
+    private static final String JS_OBJECT_NAME = "myWebMessageListener";
     private static final String BASIC_USAGE = "<!DOCTYPE html><html><body>"
             + "    <script>"
-            + "        myObject.postMessage('hello');"
+            + "        myWebMessageListener.postMessage('hello');"
             + "    </script>"
             + "</body></html>";
+
+    private static final String BASIC_ARRAY_BUFFER_USAGE = "<!DOCTYPE html><html><body>"
+            + "    <script>"
+            + "        myWebMessageListener.postMessage(new Int8Array([1,2,3]).buffer);"
+            + "    </script>"
+            + "</body></html>";
+
     private static final String REPLY_PROXY = "<!DOCTYPE html><html><body>"
             + "    <script>"
-            + "        myObject.onmessage = function(event) {"
+            + "        myWebMessageListener.onmessage = function(event) {"
             + "             window.replyReceived = event.data;"
             + "        };"
-            + "        myObject.postMessage('hello');"
+            + "        myWebMessageListener.postMessage('hello');"
+            + "    </script>"
+            + "</body></html>";
+
+    private static final String REPLY_PROXY_ARRAY_BUFFER = "<!DOCTYPE html><html><body>"
+            + "    <script>"
+            + "        myWebMessageListener.onmessage = function(event) {"
+            + "             myWebMessageListener.postMessage(event.data);"
+            + "        };"
+            + "        myWebMessageListener.postMessage('hello');"
             + "    </script>"
             + "</body></html>";
     private static final Set<String> MATCH_EXAMPLE_COM = new HashSet<>(Arrays.asList(BASE_URI));
@@ -119,7 +136,7 @@
     public void testAddWebMessageListenerBasicUsage() throws Exception {
         mWebViewOnUiThread.addWebMessageListener(JS_OBJECT_NAME, MATCH_EXAMPLE_COM, mListener);
 
-        // BASIC_USAGE html page will call myObject.postMessage('hello'); in JavaScript.
+        // BASIC_USAGE html page will call myWebMessageListener.postMessage('hello'); in JavaScript.
         loadHtmlSync(BASIC_USAGE);
         TestWebMessageListener.Data data = mListener.waitForOnPostMessage();
         Assert.assertEquals("hello", data.mMessage.getData());
@@ -129,11 +146,26 @@
     }
 
     @Test
+    public void testAddWebMessageListenerBasicUsage_ArrayBuffer() throws Exception {
+        WebkitUtils.checkFeature(WebViewFeature.WEB_MESSAGE_ARRAY_BUFFER);
+        mWebViewOnUiThread.addWebMessageListener(JS_OBJECT_NAME, MATCH_EXAMPLE_COM, mListener);
+
+        // BASIC_ARRAY_BUFFER_USAGE html page will call myWebMessageListener.postMessage('hello');
+        // in JavaScript.
+        loadHtmlSync(BASIC_ARRAY_BUFFER_USAGE);
+        TestWebMessageListener.Data data = mListener.waitForOnPostMessage();
+        Assert.assertArrayEquals(new byte[] {1, 2, 3}, data.mMessage.getArrayBuffer());
+
+        Assert.assertTrue(
+                "Should have no more message at this point.", mListener.hasNoMoreOnPostMessage());
+    }
+
+    @Test
     public void testAfterRemoveWebMessageListener_JsObjectExistWithoutAnotherPageLoad()
             throws Exception {
         mWebViewOnUiThread.addWebMessageListener(JS_OBJECT_NAME, MATCH_EXAMPLE_COM, mListener);
 
-        // BASIC_USAGE html page will call myObject.postMessage('hello'); in JavaScript.
+        // BASIC_USAGE html page will call myWebMessageListener.postMessage('hello'); in JavaScript.
         loadHtmlSync(BASIC_USAGE);
         TestWebMessageListener.Data data = mListener.waitForOnPostMessage();
         Assert.assertEquals("hello", data.mMessage.getData());
@@ -147,7 +179,7 @@
     public void testAfterRemoveWebMessageListener_NextPageLoadRemovesJsObject() throws Exception {
         mWebViewOnUiThread.addWebMessageListener(JS_OBJECT_NAME, MATCH_EXAMPLE_COM, mListener);
 
-        // BASIC_USAGE html page will call myObject.postMessage('hello'); in JavaScript.
+        // BASIC_USAGE html page will call myWebMessageListener.postMessage('hello'); in JavaScript.
         loadHtmlSync(BASIC_USAGE);
         TestWebMessageListener.Data data = mListener.waitForOnPostMessage();
         Assert.assertEquals("hello", data.mMessage.getData());
@@ -165,7 +197,7 @@
             throws Exception {
         mWebViewOnUiThread.addWebMessageListener(JS_OBJECT_NAME, MATCH_EXAMPLE_COM, mListener);
 
-        // BASIC_USAGE html page will call myObject.postMessage('hello'); in JavaScript.
+        // BASIC_USAGE html page will call myWebMessageListener.postMessage('hello'); in JavaScript.
         loadHtmlSync(BASIC_USAGE);
         TestWebMessageListener.Data data = mListener.waitForOnPostMessage();
         Assert.assertEquals("hello", data.mMessage.getData());
@@ -174,10 +206,11 @@
         Assert.assertEquals("\"object\"",
                 mWebViewOnUiThread.evaluateJavascriptSync("typeof " + JS_OBJECT_NAME + ";"));
 
-        // With the current implementation, evaluateJavascript() and myObject.postMessage() are
-        // in the same IPC channel and the order of them are guaranteed. So if we call
-        // myObject.postMessage() by using evaluateJavascript(), we will send postMessage() first
-        // then the callback of evaluateJavascript() will be called second. When
+        // With the current implementation, evaluateJavascript() and
+        // myWebMessageListener.postMessage() are in the same IPC channel and the order of them
+        // are guaranteed. So if we call myWebMessageListener.postMessage() by using
+        // evaluateJavascript(), we will send postMessage() first then the callback of
+        // evaluateJavascript() will be called second. When
         // evaluateJavascriptSync() returns, if there is a postMessage() call reached to the
         // browser side, we should have already received that. We expect no message to reach
         // to the browser side in this test, therefore mListener.hasNoMoreOnPostMessage() should be
@@ -196,7 +229,7 @@
     public void testWebMessageListenerReplyProxyIsIsomorphic() throws Exception {
         mWebViewOnUiThread.addWebMessageListener(JS_OBJECT_NAME, MATCH_EXAMPLE_COM, mListener);
 
-        // BASIC_USAGE html page will call myObject.postMessage('hello'); in JavaScript.
+        // BASIC_USAGE html page will call myWebMessageListener.postMessage('hello'); in JavaScript.
         loadHtmlSync(BASIC_USAGE);
         TestWebMessageListener.Data data = mListener.waitForOnPostMessage();
         Assert.assertEquals("hello", data.mMessage.getData());
@@ -210,8 +243,8 @@
     public void testJavaScriptReplyProxyBasicUsage() throws Exception {
         mWebViewOnUiThread.addWebMessageListener(JS_OBJECT_NAME, MATCH_EXAMPLE_COM, mListener);
 
-        // REPLY_PROXY html page will set myObject.onmessage to save the message to
-        // window.replyReceived and call myObject.postMessage('hello'); in JavaScript.
+        // REPLY_PROXY html page will set myWebMessageListener.onmessage to save the message to
+        // window.replyReceived and call myWebMessageListener.postMessage('hello'); in JavaScript.
         loadHtmlSync(REPLY_PROXY);
         TestWebMessageListener.Data data = mListener.waitForOnPostMessage();
         Assert.assertEquals("hello", data.mMessage.getData());
@@ -222,6 +255,44 @@
                 mWebViewOnUiThread.evaluateJavascriptSync("window.replyReceived"));
     }
 
+    private void verifyJavaScriptReplyProxyArrayBuffer(byte[] arrayBuffer) throws Exception {
+        mWebViewOnUiThread.addWebMessageListener(JS_OBJECT_NAME, MATCH_EXAMPLE_COM, mListener);
+
+        // REPLY_PROXY_ARRAY_BUFFER html page will echo back message with
+        // myWebMessageListener.postMessage(); in JavaScript.
+        loadHtmlSync(REPLY_PROXY_ARRAY_BUFFER);
+        TestWebMessageListener.Data data = mListener.waitForOnPostMessage();
+        Assert.assertEquals("hello", data.mMessage.getData());
+
+        data.mReplyProxy.postMessage(arrayBuffer);
+        Assert.assertArrayEquals(arrayBuffer,
+                mListener.waitForOnPostMessage().mMessage.getArrayBuffer());
+    }
+
+    @Test
+    public void testJavaScriptReplyProxyBasicUsage_ArrayBuffer() throws Exception {
+        WebkitUtils.checkFeature(WebViewFeature.WEB_MESSAGE_ARRAY_BUFFER);
+        verifyJavaScriptReplyProxyArrayBuffer(new byte[] {1, 2, 3, 4, 5});
+    }
+
+    @Test
+    public void testJavaScriptReplyProxyBasicUsage_EmptyArrayBuffer() throws Exception {
+        WebkitUtils.checkFeature(WebViewFeature.WEB_MESSAGE_ARRAY_BUFFER);
+        verifyJavaScriptReplyProxyArrayBuffer(new byte[0]);
+    }
+
+    // Verify null ArrayBuffer message will not be dropped silently.
+    @Test
+    public void testJavaScriptReplyProxyBasicUsage_NullArrayBuffer() throws Exception {
+        WebkitUtils.checkFeature(WebViewFeature.WEB_MESSAGE_ARRAY_BUFFER);
+        Assert.assertThrows(NullPointerException.class, new ThrowingRunnable() {
+            @Override
+            public void run() throws Throwable {
+                verifyJavaScriptReplyProxyArrayBuffer(null);
+            }
+        });
+    }
+
     private void loadHtmlSync(String html) {
         mWebViewOnUiThread.loadDataWithBaseURLAndWaitForCompletion(
                 BASE_URI, html, "text/html", null, null);
diff --git a/webkit/webkit/src/main/java/androidx/webkit/JavaScriptReplyProxy.java b/webkit/webkit/src/main/java/androidx/webkit/JavaScriptReplyProxy.java
index 9a02429..358b473 100644
--- a/webkit/webkit/src/main/java/androidx/webkit/JavaScriptReplyProxy.java
+++ b/webkit/webkit/src/main/java/androidx/webkit/JavaScriptReplyProxy.java
@@ -40,13 +40,25 @@
      * Post a String message to the injected JavaScript object which sent this {@link
      * JavaScriptReplyProxy}.
      *
-     * @param message The data to send to the JavaScript context.
+     * @param message The String data to send to the JavaScript context.
      */
     @RequiresFeature(name = WebViewFeature.WEB_MESSAGE_LISTENER,
             enforcement = "androidx.webkit.WebViewFeature#isFeatureSupported")
     public abstract void postMessage(@NonNull String message);
 
     /**
+     * Post a ArrayBuffer message to the injected JavaScript object which sent this
+     * {@link JavaScriptReplyProxy}.
+     *
+     * @param arrayBuffer The ArrayBuffer to send to the JavaScript context.
+     * @hide
+     */
+    @RequiresFeature(name = WebViewFeature.WEB_MESSAGE_ARRAY_BUFFER,
+            enforcement = "androidx.webkit.WebViewFeature#isFeatureSupported")
+    @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)
+    public abstract void postMessage(@NonNull byte[] arrayBuffer);
+
+    /**
      * This class cannot be created by applications.
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY)
diff --git a/webkit/webkit/src/main/java/androidx/webkit/WebMessageCompat.java b/webkit/webkit/src/main/java/androidx/webkit/WebMessageCompat.java
index fbe1f28..413f807 100644
--- a/webkit/webkit/src/main/java/androidx/webkit/WebMessageCompat.java
+++ b/webkit/webkit/src/main/java/androidx/webkit/WebMessageCompat.java
@@ -76,7 +76,7 @@
      * @param arrayBuffer the array buffer data of the message.
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)
-    @RequiresFeature(name = WebViewFeature.WEB_MESSAGE_GET_MESSAGE_PAYLOAD,
+    @RequiresFeature(name = WebViewFeature.WEB_MESSAGE_ARRAY_BUFFER,
             enforcement = "androidx.webkit.WebViewFeature#isFeatureSupported")
     public WebMessageCompat(@NonNull byte[] arrayBuffer) {
         this(arrayBuffer, null);
@@ -89,7 +89,7 @@
      * @param ports       the ports that are sent with the message.
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)
-    @RequiresFeature(name = WebViewFeature.WEB_MESSAGE_GET_MESSAGE_PAYLOAD,
+    @RequiresFeature(name = WebViewFeature.WEB_MESSAGE_ARRAY_BUFFER,
             enforcement = "androidx.webkit.WebViewFeature#isFeatureSupported")
     public WebMessageCompat(@NonNull byte[] arrayBuffer,
             @Nullable WebMessagePortCompat[] ports) {
diff --git a/webkit/webkit/src/main/java/androidx/webkit/WebViewCompat.java b/webkit/webkit/src/main/java/androidx/webkit/WebViewCompat.java
index d820dce..d110b42 100644
--- a/webkit/webkit/src/main/java/androidx/webkit/WebViewCompat.java
+++ b/webkit/webkit/src/main/java/androidx/webkit/WebViewCompat.java
@@ -601,18 +601,19 @@
      * methods on that object once it is available to use:
      * <pre class="prettyprint">
      * // Web page (in JavaScript)
-     * // message needs to be a JavaScript String, MessagePorts is an optional parameter.
+     * // message needs to be a JavaScript String or ArrayBuffer, MessagePorts is an optional
+     * // parameter.
      * myObject.postMessage(message[, MessagePorts])
      *
      * // To receive messages posted from the app side, assign a function to the "onmessage"
      * // property. This function should accept a single "event" argument. "event" has a "data"
-     * // property, which is the message string from the app side.
+     * // property, which is the message String or ArrayBuffer from the app side.
      * myObject.onmessage = function(event) { ... }
      *
      * // To be compatible with DOM EventTarget's addEventListener, it accepts type and listener
      * // parameters, where type can be only "message" type and listener can only be a JavaScript
      * // function for myObject. An event object will be passed to listener with a "data" property,
-     * // which is the message string from the app side.
+     * // which is the message String or ArrayBuffer from the app side.
      * myObject.addEventListener(type, listener)
      *
      * // To be compatible with DOM EventTarget's removeEventListener, it accepts type and listener
@@ -649,6 +650,63 @@
      * </pre>
      *
      * <p>
+     * Suppose the communication is already setup, to send ArrayBuffer from the app to web, it
+     * needs to check feature flag({@link WebViewFeature#WEB_MESSAGE_ARRAY_BUFFER}). Here is a
+     * example to send file content from app to web:
+     * <pre class="prettyprint">
+     * // App (in Java)
+     * WebMessageListener myListener = new WebMessageListener() {
+     *   &#064;Override
+     *   public void onPostMessage(WebView view, WebMessageCompat message, Uri sourceOrigin,
+     *            boolean isMainFrame, JavaScriptReplyProxy replyProxy) {
+     *     // Communication is setup, send file data to web.
+     *     if (WebViewFeature.isFeatureSupported(WebViewFeature.WEB_MESSAGE_ARRAY_BUFFER)) {
+     *       // Suppose readFileData method is to read content from file.
+     *       byte[] fileData = readFileData("myFile.dat");
+     *       replyProxy.postMessage(fileData);
+     *     }
+     *   }
+     * }
+     * </pre>
+     * <pre class="prettyprint">
+     * // Web page (in JavaScript)
+     * myObject.onmessage = function(event) {
+     *   if (event.data instanceof ArrayBuffer) {
+     *     const data = event.data;  // Received file content from app.
+     *     const dataView = new DataView(data);
+     *     // Consume file content by using JavaScript DataView to access ArrayBuffer.
+     *   }
+     * }
+     * myObject.postMessage("Setup!");
+     * </pre>
+     *
+     * <p>
+     * Suppose the communication is already setup, and feature flag
+     * {@link WebViewFeature#WEB_MESSAGE_ARRAY_BUFFER} is check. Here is a example to download
+     * image in WebView, and send to app:
+     * <pre class="prettyprint">
+     * // Web page (in JavaScript)
+     * const response = await fetch('example.jpg');
+     * if (response.ok) {
+     *     const imageData = await response.arrayBuffer();
+     *     myObject.postMessage(imageData);
+     * }
+     * </pre>
+     * <pre class="prettyprint">
+     * // App (in Java)
+     * WebMessageListener myListener = new WebMessageListener() {
+     *   &#064;Override
+     *   public void onPostMessage(WebView view, WebMessageCompat message, Uri sourceOrigin,
+     *            boolean isMainFrame, JavaScriptReplyProxy replyProxy) {
+     *     if (message.getType() == WebMessageCompat.TYPE_ARRAY_BUFFER) {
+     *       byte[] imageData = message.getArrayBuffer();
+     *       // do something like draw image on ImageView.
+     *     }
+     *   }
+     * };
+     * </pre>
+     *
+     * <p>
      * This method should only be called if {@link WebViewFeature#isFeatureSupported(String)}
      * returns true for {@link WebViewFeature#WEB_MESSAGE_LISTENER}.
      *
diff --git a/webkit/webkit/src/main/java/androidx/webkit/WebViewFeature.java b/webkit/webkit/src/main/java/androidx/webkit/WebViewFeature.java
index 24118ea..28bc43f 100644
--- a/webkit/webkit/src/main/java/androidx/webkit/WebViewFeature.java
+++ b/webkit/webkit/src/main/java/androidx/webkit/WebViewFeature.java
@@ -80,7 +80,7 @@
             SAFE_BROWSING_RESPONSE_SHOW_INTERSTITIAL,
             WEB_MESSAGE_PORT_POST_MESSAGE,
             WEB_MESSAGE_PORT_CLOSE,
-            WEB_MESSAGE_GET_MESSAGE_PAYLOAD,
+            WEB_MESSAGE_ARRAY_BUFFER,
             WEB_MESSAGE_PORT_SET_MESSAGE_CALLBACK,
             CREATE_WEB_MESSAGE_CHANNEL,
             POST_WEB_MESSAGE,
@@ -354,7 +354,7 @@
      * {@link WebViewCompat#postWebMessage(WebView, WebMessageCompat, Uri)} with ArrayBuffer type.
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)
-    public static final String WEB_MESSAGE_GET_MESSAGE_PAYLOAD = "WEB_MESSAGE_GET_MESSAGE_PAYLOAD";
+    public static final String WEB_MESSAGE_ARRAY_BUFFER = "WEB_MESSAGE_ARRAY_BUFFER";
 
     /**
      * Feature for {@link #isFeatureSupported(String)}.
diff --git a/webkit/webkit/src/main/java/androidx/webkit/internal/JavaScriptReplyProxyImpl.java b/webkit/webkit/src/main/java/androidx/webkit/internal/JavaScriptReplyProxyImpl.java
index 56e6565..2ca4c03 100644
--- a/webkit/webkit/src/main/java/androidx/webkit/internal/JavaScriptReplyProxyImpl.java
+++ b/webkit/webkit/src/main/java/androidx/webkit/internal/JavaScriptReplyProxyImpl.java
@@ -23,6 +23,7 @@
 import org.chromium.support_lib_boundary.util.BoundaryInterfaceReflectionUtil;
 
 import java.lang.reflect.InvocationHandler;
+import java.util.Objects;
 import java.util.concurrent.Callable;
 
 /**
@@ -62,4 +63,17 @@
             throw WebViewFeatureInternal.getUnsupportedOperationException();
         }
     }
+
+    @Override
+    public void postMessage(@NonNull byte[] arrayBuffer) {
+        // WebView cannot handle null ArrayBuffer as WebMessage.
+        Objects.requireNonNull(arrayBuffer, "ArrayBuffer must be non-null");
+        final ApiFeature.NoFramework feature = WebViewFeatureInternal.WEB_MESSAGE_ARRAY_BUFFER;
+        if (feature.isSupportedByWebView()) {
+            mBoundaryInterface.postMessageWithPayload(BoundaryInterfaceReflectionUtil
+                    .createInvocationHandlerFor(new WebMessagePayloadAdapter(arrayBuffer)));
+        } else {
+            throw WebViewFeatureInternal.getUnsupportedOperationException();
+        }
+    }
 }
diff --git a/webkit/webkit/src/main/java/androidx/webkit/internal/WebMessageAdapter.java b/webkit/webkit/src/main/java/androidx/webkit/internal/WebMessageAdapter.java
index e1222fa..1fd56c5 100644
--- a/webkit/webkit/src/main/java/androidx/webkit/internal/WebMessageAdapter.java
+++ b/webkit/webkit/src/main/java/androidx/webkit/internal/WebMessageAdapter.java
@@ -32,6 +32,7 @@
 import org.chromium.support_lib_boundary.util.Features;
 
 import java.lang.reflect.InvocationHandler;
+import java.util.Objects;
 
 /**
  * Adapter between {@link WebMessageCompat} and
@@ -41,14 +42,14 @@
 public class WebMessageAdapter implements WebMessageBoundaryInterface {
     private WebMessageCompat mWebMessageCompat;
 
-    private static final String[] sFeatures = {Features.WEB_MESSAGE_GET_MESSAGE_PAYLOAD};
+    private static final String[] sFeatures = {Features.WEB_MESSAGE_ARRAY_BUFFER};
 
     public WebMessageAdapter(@NonNull WebMessageCompat webMessage) {
         this.mWebMessageCompat = webMessage;
     }
 
     /**
-     * @deprecated  Keep backwards competibility with old version of WebView. This method is
+     * @deprecated  Keep backwards compatibility with old version of WebView. This method is
      * equivalent to {@link WebMessagePayloadBoundaryInterface#getAsString()}.
      */
     @Deprecated
@@ -62,8 +63,20 @@
     @Override
     @Nullable
     public InvocationHandler getMessagePayload() {
-        return BoundaryInterfaceReflectionUtil.createInvocationHandlerFor(
-                new WebMessagePayloadAdapter(mWebMessageCompat));
+        final WebMessagePayloadAdapter adapter;
+        switch (mWebMessageCompat.getType()) {
+            case WebMessageCompat.TYPE_STRING:
+                adapter = new WebMessagePayloadAdapter(mWebMessageCompat.getData());
+                break;
+            case WebMessageCompat.TYPE_ARRAY_BUFFER:
+                adapter = new WebMessagePayloadAdapter(
+                        Objects.requireNonNull(mWebMessageCompat.getArrayBuffer()));
+                break;
+            default:
+                throw new IllegalStateException(
+                        "Unknown web message payload type: " + mWebMessageCompat.getType());
+        }
+        return BoundaryInterfaceReflectionUtil.createInvocationHandlerFor(adapter);
     }
 
     @Override
@@ -93,7 +106,7 @@
             @WebMessageCompat.Type final int type) {
         return type == WebMessageCompat.TYPE_STRING
                 || (type == WebMessageCompat.TYPE_ARRAY_BUFFER
-                && WebViewFeatureInternal.WEB_MESSAGE_GET_MESSAGE_PAYLOAD.isSupportedByWebView());
+                && WebViewFeatureInternal.WEB_MESSAGE_ARRAY_BUFFER.isSupportedByWebView());
     }
 
     // ====================================================================================
@@ -111,7 +124,7 @@
             @NonNull WebMessageBoundaryInterface boundaryInterface) {
         final WebMessagePortCompat[] ports = toWebMessagePortCompats(
                 boundaryInterface.getPorts());
-        if (WebViewFeatureInternal.WEB_MESSAGE_GET_MESSAGE_PAYLOAD.isSupportedByWebView()) {
+        if (WebViewFeatureInternal.WEB_MESSAGE_ARRAY_BUFFER.isSupportedByWebView()) {
             WebMessagePayloadBoundaryInterface payloadInterface =
                     BoundaryInterfaceReflectionUtil.castToSuppLibClass(
                             WebMessagePayloadBoundaryInterface.class,
diff --git a/webkit/webkit/src/main/java/androidx/webkit/internal/WebMessageListenerAdapter.java b/webkit/webkit/src/main/java/androidx/webkit/internal/WebMessageListenerAdapter.java
index 1fe7990..062fc21 100644
--- a/webkit/webkit/src/main/java/androidx/webkit/internal/WebMessageListenerAdapter.java
+++ b/webkit/webkit/src/main/java/androidx/webkit/internal/WebMessageListenerAdapter.java
@@ -63,6 +63,6 @@
      */
     @Override
     public @NonNull String[] getSupportedFeatures() {
-        return new String[] {Features.WEB_MESSAGE_LISTENER};
+        return new String[] {Features.WEB_MESSAGE_LISTENER, Features.WEB_MESSAGE_ARRAY_BUFFER};
     }
 }
diff --git a/webkit/webkit/src/main/java/androidx/webkit/internal/WebMessagePayloadAdapter.java b/webkit/webkit/src/main/java/androidx/webkit/internal/WebMessagePayloadAdapter.java
index fc194d6..532683f 100644
--- a/webkit/webkit/src/main/java/androidx/webkit/internal/WebMessagePayloadAdapter.java
+++ b/webkit/webkit/src/main/java/androidx/webkit/internal/WebMessagePayloadAdapter.java
@@ -22,46 +22,63 @@
 
 import org.chromium.support_lib_boundary.WebMessagePayloadBoundaryInterface;
 
+import java.util.Objects;
+
 /**
  * Adapter between {@link WebMessageCompat} and {@link WebMessagePayloadBoundaryInterface}.
  * This class is used to pass **payload** of a WebMessageCompat to Chromium.
  */
 public class WebMessagePayloadAdapter implements WebMessagePayloadBoundaryInterface {
-    private final @NonNull WebMessageCompat mMessageCompat;
+    private final @WebMessagePayloadType int mType;
+    private final @Nullable String mString;
+    private final @Nullable byte[] mArrayBuffer;
 
-    public WebMessagePayloadAdapter(@NonNull WebMessageCompat webMessageCompat) {
-        mMessageCompat = webMessageCompat;
+    public WebMessagePayloadAdapter(@Nullable final String data) {
+        mType = WebMessageCompat.TYPE_STRING;
+        mString = data;
+        mArrayBuffer = null;
+    }
+
+    public WebMessagePayloadAdapter(@NonNull final byte[] arrayBuffer) {
+        mType = WebMessageCompat.TYPE_ARRAY_BUFFER;
+        mString = null;
+        mArrayBuffer = arrayBuffer;
     }
 
     @Override
     @NonNull
     public String[] getSupportedFeatures() {
         // getType, getAsString and getAsArrayBuffer are covered by
-        // WEB_MESSAGE_GET_MESSAGE_PAYLOAD.
+        // WEB_MESSAGE_ARRAY_BUFFER.
         return new String[0];
     }
 
     @Override
     public int getType() {
-        switch (mMessageCompat.getType()) {
-            case WebMessageCompat.TYPE_STRING:
-                return WebMessagePayloadType.TYPE_STRING;
-            case WebMessageCompat.TYPE_ARRAY_BUFFER:
-                return WebMessagePayloadType.TYPE_ARRAY_BUFFER;
-        }
-        // Should never happen.
-        throw WebViewFeatureInternal.getUnsupportedOperationException();
+        return mType;
     }
 
     @Nullable
     @Override
     public String getAsString() {
-        return mMessageCompat.getData();
+        checkType(WebMessagePayloadType.TYPE_STRING);
+        return mString;
     }
 
     @NonNull
     @Override
     public byte[] getAsArrayBuffer() {
-        return mMessageCompat.getArrayBuffer();
+        checkType(WebMessagePayloadType.TYPE_ARRAY_BUFFER);
+        return Objects.requireNonNull(mArrayBuffer);
     }
+
+    /**
+     * Check if current message payload type is the {@code expectedType}.
+     */
+    private void checkType(@WebMessagePayloadType int expectedType) {
+        if (mType != expectedType) {
+            throw new IllegalStateException("Expected " + expectedType + ", but type is " + mType);
+        }
+    }
+
 }
diff --git a/webkit/webkit/src/main/java/androidx/webkit/internal/WebViewFeatureInternal.java b/webkit/webkit/src/main/java/androidx/webkit/internal/WebViewFeatureInternal.java
index a549787..59627a9 100644
--- a/webkit/webkit/src/main/java/androidx/webkit/internal/WebViewFeatureInternal.java
+++ b/webkit/webkit/src/main/java/androidx/webkit/internal/WebViewFeatureInternal.java
@@ -313,9 +313,9 @@
      * {@link WebMessagePortCompat#postMessage(WebMessageCompat)} with ArrayBuffer type, and
      * {@link WebViewCompat#postWebMessage(WebView, WebMessageCompat, Uri)} with ArrayBuffer type.
      */
-    public static final ApiFeature.NoFramework WEB_MESSAGE_GET_MESSAGE_PAYLOAD =
-            new ApiFeature.NoFramework(WebViewFeature.WEB_MESSAGE_GET_MESSAGE_PAYLOAD,
-                    Features.WEB_MESSAGE_GET_MESSAGE_PAYLOAD);
+    public static final ApiFeature.NoFramework WEB_MESSAGE_ARRAY_BUFFER =
+            new ApiFeature.NoFramework(WebViewFeature.WEB_MESSAGE_ARRAY_BUFFER,
+                    Features.WEB_MESSAGE_ARRAY_BUFFER);
 
     /**
      * This feature covers
diff --git a/window/extensions/extensions/api/current.txt b/window/extensions/extensions/api/current.txt
index 490edb0..20f4ee8 100644
--- a/window/extensions/extensions/api/current.txt
+++ b/window/extensions/extensions/api/current.txt
@@ -16,13 +16,31 @@
 
 package androidx.window.extensions.area {
 
+  public interface ExtensionWindowAreaPresentation {
+    method public android.content.Context getPresentationContext();
+    method public void setPresentationView(android.view.View);
+  }
+
+  public interface ExtensionWindowAreaStatus {
+    method public android.util.DisplayMetrics getWindowAreaDisplayMetrics();
+    method public int getWindowAreaStatus();
+  }
+
   public interface WindowAreaComponent {
+    method public default void addRearDisplayPresentationStatusListener(androidx.window.extensions.core.util.function.Consumer<androidx.window.extensions.area.ExtensionWindowAreaStatus!>);
     method public void addRearDisplayStatusListener(androidx.window.extensions.core.util.function.Consumer<java.lang.Integer!>);
+    method public default void endRearDisplayPresentationSession();
     method public void endRearDisplaySession();
+    method public default android.util.DisplayMetrics getRearDisplayMetrics();
+    method public default androidx.window.extensions.area.ExtensionWindowAreaPresentation? getRearDisplayPresentation();
+    method public default void removeRearDisplayPresentationStatusListener(androidx.window.extensions.core.util.function.Consumer<androidx.window.extensions.area.ExtensionWindowAreaStatus!>);
     method public void removeRearDisplayStatusListener(androidx.window.extensions.core.util.function.Consumer<java.lang.Integer!>);
+    method public default void startRearDisplayPresentationSession(android.app.Activity, androidx.window.extensions.core.util.function.Consumer<java.lang.Integer!>);
     method public void startRearDisplaySession(android.app.Activity, androidx.window.extensions.core.util.function.Consumer<java.lang.Integer!>);
     field public static final int SESSION_STATE_ACTIVE = 1; // 0x1
+    field public static final int SESSION_STATE_CONTENT_VISIBLE = 2; // 0x2
     field public static final int SESSION_STATE_INACTIVE = 0; // 0x0
+    field public static final int STATUS_ACTIVE = 3; // 0x3
     field public static final int STATUS_AVAILABLE = 2; // 0x2
     field public static final int STATUS_UNAVAILABLE = 1; // 0x1
     field public static final int STATUS_UNSUPPORTED = 0; // 0x0
diff --git a/window/extensions/extensions/api/public_plus_experimental_current.txt b/window/extensions/extensions/api/public_plus_experimental_current.txt
deleted file mode 100644
index 490edb0..0000000
--- a/window/extensions/extensions/api/public_plus_experimental_current.txt
+++ /dev/null
@@ -1,209 +0,0 @@
-// Signature format: 4.0
-package androidx.window.extensions {
-
-  public interface WindowExtensions {
-    method public default androidx.window.extensions.embedding.ActivityEmbeddingComponent? getActivityEmbeddingComponent();
-    method public default int getVendorApiLevel();
-    method public default androidx.window.extensions.area.WindowAreaComponent? getWindowAreaComponent();
-    method public androidx.window.extensions.layout.WindowLayoutComponent? getWindowLayoutComponent();
-  }
-
-  public class WindowExtensionsProvider {
-    method public static androidx.window.extensions.WindowExtensions getWindowExtensions();
-  }
-
-}
-
-package androidx.window.extensions.area {
-
-  public interface WindowAreaComponent {
-    method public void addRearDisplayStatusListener(androidx.window.extensions.core.util.function.Consumer<java.lang.Integer!>);
-    method public void endRearDisplaySession();
-    method public void removeRearDisplayStatusListener(androidx.window.extensions.core.util.function.Consumer<java.lang.Integer!>);
-    method public void startRearDisplaySession(android.app.Activity, androidx.window.extensions.core.util.function.Consumer<java.lang.Integer!>);
-    field public static final int SESSION_STATE_ACTIVE = 1; // 0x1
-    field public static final int SESSION_STATE_INACTIVE = 0; // 0x0
-    field public static final int STATUS_AVAILABLE = 2; // 0x2
-    field public static final int STATUS_UNAVAILABLE = 1; // 0x1
-    field public static final int STATUS_UNSUPPORTED = 0; // 0x0
-  }
-
-}
-
-package androidx.window.extensions.embedding {
-
-  public interface ActivityEmbeddingComponent {
-    method public void clearSplitAttributesCalculator();
-    method public void clearSplitInfoCallback();
-    method public boolean isActivityEmbedded(android.app.Activity);
-    method public void setEmbeddingRules(java.util.Set<androidx.window.extensions.embedding.EmbeddingRule!>);
-    method public void setSplitAttributesCalculator(androidx.window.extensions.core.util.function.Function<androidx.window.extensions.embedding.SplitAttributesCalculatorParams!,androidx.window.extensions.embedding.SplitAttributes!>);
-    method public default void setSplitInfoCallback(androidx.window.extensions.core.util.function.Consumer<java.util.List<androidx.window.extensions.embedding.SplitInfo!>!>);
-    method @Deprecated public void setSplitInfoCallback(java.util.function.Consumer<java.util.List<androidx.window.extensions.embedding.SplitInfo!>!>);
-  }
-
-  public class ActivityRule extends androidx.window.extensions.embedding.EmbeddingRule {
-    method @RequiresApi(api=android.os.Build.VERSION_CODES.N) public boolean matchesActivity(android.app.Activity);
-    method @RequiresApi(api=android.os.Build.VERSION_CODES.N) public boolean matchesIntent(android.content.Intent);
-    method public boolean shouldAlwaysExpand();
-  }
-
-  public static final class ActivityRule.Builder {
-    ctor public ActivityRule.Builder(androidx.window.extensions.core.util.function.Predicate<android.app.Activity!>, androidx.window.extensions.core.util.function.Predicate<android.content.Intent!>);
-    ctor @Deprecated @RequiresApi(android.os.Build.VERSION_CODES.N) public ActivityRule.Builder(java.util.function.Predicate<android.app.Activity!>, java.util.function.Predicate<android.content.Intent!>);
-    method public androidx.window.extensions.embedding.ActivityRule build();
-    method public androidx.window.extensions.embedding.ActivityRule.Builder setShouldAlwaysExpand(boolean);
-    method public androidx.window.extensions.embedding.ActivityRule.Builder setTag(String);
-  }
-
-  public class ActivityStack {
-    method public java.util.List<android.app.Activity!> getActivities();
-    method public boolean isEmpty();
-  }
-
-  public abstract class EmbeddingRule {
-    method public String? getTag();
-  }
-
-  public class SplitAttributes {
-    method public int getLayoutDirection();
-    method public androidx.window.extensions.embedding.SplitAttributes.SplitType getSplitType();
-  }
-
-  public static final class SplitAttributes.Builder {
-    ctor public SplitAttributes.Builder();
-    method public androidx.window.extensions.embedding.SplitAttributes build();
-    method public androidx.window.extensions.embedding.SplitAttributes.Builder setLayoutDirection(int);
-    method public androidx.window.extensions.embedding.SplitAttributes.Builder setSplitType(androidx.window.extensions.embedding.SplitAttributes.SplitType);
-  }
-
-  public static final class SplitAttributes.LayoutDirection {
-    field public static final int BOTTOM_TO_TOP = 5; // 0x5
-    field public static final int LEFT_TO_RIGHT = 0; // 0x0
-    field public static final int LOCALE = 3; // 0x3
-    field public static final int RIGHT_TO_LEFT = 1; // 0x1
-    field public static final int TOP_TO_BOTTOM = 4; // 0x4
-  }
-
-  public static class SplitAttributes.SplitType {
-  }
-
-  public static final class SplitAttributes.SplitType.ExpandContainersSplitType extends androidx.window.extensions.embedding.SplitAttributes.SplitType {
-    ctor public SplitAttributes.SplitType.ExpandContainersSplitType();
-  }
-
-  public static final class SplitAttributes.SplitType.HingeSplitType extends androidx.window.extensions.embedding.SplitAttributes.SplitType {
-    ctor public SplitAttributes.SplitType.HingeSplitType(androidx.window.extensions.embedding.SplitAttributes.SplitType);
-    method public androidx.window.extensions.embedding.SplitAttributes.SplitType getFallbackSplitType();
-  }
-
-  public static final class SplitAttributes.SplitType.RatioSplitType extends androidx.window.extensions.embedding.SplitAttributes.SplitType {
-    ctor public SplitAttributes.SplitType.RatioSplitType(@FloatRange(from=0.0, to=1.0, fromInclusive=false, toInclusive=false) float);
-    method @FloatRange(from=0.0, to=1.0, fromInclusive=false, toInclusive=false) public float getRatio();
-    method public static androidx.window.extensions.embedding.SplitAttributes.SplitType.RatioSplitType splitEqually();
-  }
-
-  public class SplitAttributesCalculatorParams {
-    method public boolean areDefaultConstraintsSatisfied();
-    method public androidx.window.extensions.embedding.SplitAttributes getDefaultSplitAttributes();
-    method public android.content.res.Configuration getParentConfiguration();
-    method public androidx.window.extensions.layout.WindowLayoutInfo getParentWindowLayoutInfo();
-    method public android.view.WindowMetrics getParentWindowMetrics();
-    method public String? getSplitRuleTag();
-  }
-
-  public class SplitInfo {
-    method public androidx.window.extensions.embedding.ActivityStack getPrimaryActivityStack();
-    method public androidx.window.extensions.embedding.ActivityStack getSecondaryActivityStack();
-    method public androidx.window.extensions.embedding.SplitAttributes getSplitAttributes();
-    method @Deprecated public float getSplitRatio();
-  }
-
-  public class SplitPairRule extends androidx.window.extensions.embedding.SplitRule {
-    method public int getFinishPrimaryWithSecondary();
-    method public int getFinishSecondaryWithPrimary();
-    method @RequiresApi(api=android.os.Build.VERSION_CODES.N) public boolean matchesActivityIntentPair(android.app.Activity, android.content.Intent);
-    method @RequiresApi(api=android.os.Build.VERSION_CODES.N) public boolean matchesActivityPair(android.app.Activity, android.app.Activity);
-    method public boolean shouldClearTop();
-  }
-
-  public static final class SplitPairRule.Builder {
-    ctor public SplitPairRule.Builder(androidx.window.extensions.core.util.function.Predicate<android.util.Pair<android.app.Activity!,android.app.Activity!>!>, androidx.window.extensions.core.util.function.Predicate<android.util.Pair<android.app.Activity!,android.content.Intent!>!>, androidx.window.extensions.core.util.function.Predicate<android.view.WindowMetrics!>);
-    ctor @Deprecated @RequiresApi(android.os.Build.VERSION_CODES.N) public SplitPairRule.Builder(java.util.function.Predicate<android.util.Pair<android.app.Activity!,android.app.Activity!>!>, java.util.function.Predicate<android.util.Pair<android.app.Activity!,android.content.Intent!>!>, java.util.function.Predicate<android.view.WindowMetrics!>);
-    method public androidx.window.extensions.embedding.SplitPairRule build();
-    method public androidx.window.extensions.embedding.SplitPairRule.Builder setDefaultSplitAttributes(androidx.window.extensions.embedding.SplitAttributes);
-    method public androidx.window.extensions.embedding.SplitPairRule.Builder setFinishPrimaryWithSecondary(int);
-    method public androidx.window.extensions.embedding.SplitPairRule.Builder setFinishSecondaryWithPrimary(int);
-    method @Deprecated public androidx.window.extensions.embedding.SplitPairRule.Builder setLayoutDirection(int);
-    method public androidx.window.extensions.embedding.SplitPairRule.Builder setShouldClearTop(boolean);
-    method @Deprecated public androidx.window.extensions.embedding.SplitPairRule.Builder setShouldFinishPrimaryWithSecondary(boolean);
-    method @Deprecated public androidx.window.extensions.embedding.SplitPairRule.Builder setShouldFinishSecondaryWithPrimary(boolean);
-    method @Deprecated public androidx.window.extensions.embedding.SplitPairRule.Builder setSplitRatio(@FloatRange(from=0.0, to=1.0) float);
-    method public androidx.window.extensions.embedding.SplitPairRule.Builder setTag(String);
-  }
-
-  public class SplitPlaceholderRule extends androidx.window.extensions.embedding.SplitRule {
-    method public int getFinishPrimaryWithPlaceholder();
-    method @Deprecated public int getFinishPrimaryWithSecondary();
-    method public android.content.Intent getPlaceholderIntent();
-    method public boolean isSticky();
-    method @RequiresApi(api=android.os.Build.VERSION_CODES.N) public boolean matchesActivity(android.app.Activity);
-    method @RequiresApi(api=android.os.Build.VERSION_CODES.N) public boolean matchesIntent(android.content.Intent);
-  }
-
-  public static final class SplitPlaceholderRule.Builder {
-    ctor public SplitPlaceholderRule.Builder(android.content.Intent, androidx.window.extensions.core.util.function.Predicate<android.app.Activity!>, androidx.window.extensions.core.util.function.Predicate<android.content.Intent!>, androidx.window.extensions.core.util.function.Predicate<android.view.WindowMetrics!>);
-    ctor @Deprecated @RequiresApi(android.os.Build.VERSION_CODES.N) public SplitPlaceholderRule.Builder(android.content.Intent, java.util.function.Predicate<android.app.Activity!>, java.util.function.Predicate<android.content.Intent!>, java.util.function.Predicate<android.view.WindowMetrics!>);
-    method public androidx.window.extensions.embedding.SplitPlaceholderRule build();
-    method public androidx.window.extensions.embedding.SplitPlaceholderRule.Builder setDefaultSplitAttributes(androidx.window.extensions.embedding.SplitAttributes);
-    method public androidx.window.extensions.embedding.SplitPlaceholderRule.Builder setFinishPrimaryWithPlaceholder(int);
-    method @Deprecated public androidx.window.extensions.embedding.SplitPlaceholderRule.Builder setFinishPrimaryWithSecondary(int);
-    method @Deprecated public androidx.window.extensions.embedding.SplitPlaceholderRule.Builder setLayoutDirection(int);
-    method @Deprecated public androidx.window.extensions.embedding.SplitPlaceholderRule.Builder setSplitRatio(@FloatRange(from=0.0, to=1.0) float);
-    method public androidx.window.extensions.embedding.SplitPlaceholderRule.Builder setSticky(boolean);
-    method public androidx.window.extensions.embedding.SplitPlaceholderRule.Builder setTag(String);
-  }
-
-  public abstract class SplitRule extends androidx.window.extensions.embedding.EmbeddingRule {
-    method @RequiresApi(api=android.os.Build.VERSION_CODES.N) public boolean checkParentMetrics(android.view.WindowMetrics);
-    method public androidx.window.extensions.embedding.SplitAttributes getDefaultSplitAttributes();
-    method @Deprecated public int getLayoutDirection();
-    method @Deprecated public float getSplitRatio();
-    field public static final int FINISH_ADJACENT = 2; // 0x2
-    field public static final int FINISH_ALWAYS = 1; // 0x1
-    field public static final int FINISH_NEVER = 0; // 0x0
-  }
-
-}
-
-package androidx.window.extensions.layout {
-
-  public interface DisplayFeature {
-    method public android.graphics.Rect getBounds();
-  }
-
-  public class FoldingFeature implements androidx.window.extensions.layout.DisplayFeature {
-    ctor public FoldingFeature(android.graphics.Rect, int, int);
-    method public android.graphics.Rect getBounds();
-    method public int getState();
-    method public int getType();
-    field public static final int STATE_FLAT = 1; // 0x1
-    field public static final int STATE_HALF_OPENED = 2; // 0x2
-    field public static final int TYPE_FOLD = 1; // 0x1
-    field public static final int TYPE_HINGE = 2; // 0x2
-  }
-
-  public interface WindowLayoutComponent {
-    method @Deprecated public void addWindowLayoutInfoListener(android.app.Activity, java.util.function.Consumer<androidx.window.extensions.layout.WindowLayoutInfo!>);
-    method public default void addWindowLayoutInfoListener(@UiContext android.content.Context, androidx.window.extensions.core.util.function.Consumer<androidx.window.extensions.layout.WindowLayoutInfo!>);
-    method public default void removeWindowLayoutInfoListener(androidx.window.extensions.core.util.function.Consumer<androidx.window.extensions.layout.WindowLayoutInfo!>);
-    method @Deprecated public void removeWindowLayoutInfoListener(java.util.function.Consumer<androidx.window.extensions.layout.WindowLayoutInfo!>);
-  }
-
-  public class WindowLayoutInfo {
-    ctor public WindowLayoutInfo(java.util.List<androidx.window.extensions.layout.DisplayFeature!>);
-    method public java.util.List<androidx.window.extensions.layout.DisplayFeature!> getDisplayFeatures();
-  }
-
-}
-
diff --git a/window/extensions/extensions/api/restricted_current.txt b/window/extensions/extensions/api/restricted_current.txt
index 490edb0..20f4ee8 100644
--- a/window/extensions/extensions/api/restricted_current.txt
+++ b/window/extensions/extensions/api/restricted_current.txt
@@ -16,13 +16,31 @@
 
 package androidx.window.extensions.area {
 
+  public interface ExtensionWindowAreaPresentation {
+    method public android.content.Context getPresentationContext();
+    method public void setPresentationView(android.view.View);
+  }
+
+  public interface ExtensionWindowAreaStatus {
+    method public android.util.DisplayMetrics getWindowAreaDisplayMetrics();
+    method public int getWindowAreaStatus();
+  }
+
   public interface WindowAreaComponent {
+    method public default void addRearDisplayPresentationStatusListener(androidx.window.extensions.core.util.function.Consumer<androidx.window.extensions.area.ExtensionWindowAreaStatus!>);
     method public void addRearDisplayStatusListener(androidx.window.extensions.core.util.function.Consumer<java.lang.Integer!>);
+    method public default void endRearDisplayPresentationSession();
     method public void endRearDisplaySession();
+    method public default android.util.DisplayMetrics getRearDisplayMetrics();
+    method public default androidx.window.extensions.area.ExtensionWindowAreaPresentation? getRearDisplayPresentation();
+    method public default void removeRearDisplayPresentationStatusListener(androidx.window.extensions.core.util.function.Consumer<androidx.window.extensions.area.ExtensionWindowAreaStatus!>);
     method public void removeRearDisplayStatusListener(androidx.window.extensions.core.util.function.Consumer<java.lang.Integer!>);
+    method public default void startRearDisplayPresentationSession(android.app.Activity, androidx.window.extensions.core.util.function.Consumer<java.lang.Integer!>);
     method public void startRearDisplaySession(android.app.Activity, androidx.window.extensions.core.util.function.Consumer<java.lang.Integer!>);
     field public static final int SESSION_STATE_ACTIVE = 1; // 0x1
+    field public static final int SESSION_STATE_CONTENT_VISIBLE = 2; // 0x2
     field public static final int SESSION_STATE_INACTIVE = 0; // 0x0
+    field public static final int STATUS_ACTIVE = 3; // 0x3
     field public static final int STATUS_AVAILABLE = 2; // 0x2
     field public static final int STATUS_UNAVAILABLE = 1; // 0x1
     field public static final int STATUS_UNSUPPORTED = 0; // 0x0
diff --git a/window/extensions/extensions/src/main/java/androidx/window/extensions/area/ExtensionWindowAreaPresentation.java b/window/extensions/extensions/src/main/java/androidx/window/extensions/area/ExtensionWindowAreaPresentation.java
new file mode 100644
index 0000000..ddb8e8a
--- /dev/null
+++ b/window/extensions/extensions/src/main/java/androidx/window/extensions/area/ExtensionWindowAreaPresentation.java
@@ -0,0 +1,44 @@
+/*
+ * Copyright 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package androidx.window.extensions.area;
+
+import android.content.Context;
+import android.view.View;
+
+import androidx.annotation.NonNull;
+
+/**
+ * An interface representing a container in an extension window area in which app content can be
+ * shown.
+ *
+ * @since {@link androidx.window.extensions.WindowExtensions#VENDOR_API_LEVEL_3}
+ * @see WindowAreaComponent#getRearDisplayPresentation()
+ */
+public interface ExtensionWindowAreaPresentation {
+
+    /**
+     * Returns the {@link Context} for the window that is being used
+     * to display the additional content provided from the application.
+     */
+    @NonNull
+    Context getPresentationContext();
+
+    /**
+     * Sets the {@link View} that the application wants to display in the extension window area.
+     */
+    void setPresentationView(@NonNull View view);
+}
diff --git a/window/extensions/extensions/src/main/java/androidx/window/extensions/area/ExtensionWindowAreaStatus.java b/window/extensions/extensions/src/main/java/androidx/window/extensions/area/ExtensionWindowAreaStatus.java
new file mode 100644
index 0000000..2f521bc
--- /dev/null
+++ b/window/extensions/extensions/src/main/java/androidx/window/extensions/area/ExtensionWindowAreaStatus.java
@@ -0,0 +1,44 @@
+/*
+ * Copyright 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package androidx.window.extensions.area;
+
+import android.util.DisplayMetrics;
+
+import androidx.annotation.NonNull;
+
+/**
+ * Interface to provide information around the current status of a window area feature.
+ *
+ * @since {@link androidx.window.extensions.WindowExtensions#VENDOR_API_LEVEL_3}
+ * @see WindowAreaComponent#addRearDisplayPresentationStatusListener
+ */
+public interface ExtensionWindowAreaStatus {
+
+    /**
+     * Returns the {@link androidx.window.extensions.area.WindowAreaComponent.WindowAreaStatus}
+     * value that relates to the current status of a feature.
+     */
+    @WindowAreaComponent.WindowAreaStatus
+    int getWindowAreaStatus();
+
+    /**
+     * Returns the {@link DisplayMetrics} that corresponds to the window area that a feature
+     * interacts with. This is converted to size class information provided to developers.
+     */
+    @NonNull
+    DisplayMetrics getWindowAreaDisplayMetrics();
+}
diff --git a/window/extensions/extensions/src/main/java/androidx/window/extensions/area/WindowAreaComponent.java b/window/extensions/extensions/src/main/java/androidx/window/extensions/area/WindowAreaComponent.java
index 21d5a95..e20584c 100644
--- a/window/extensions/extensions/src/main/java/androidx/window/extensions/area/WindowAreaComponent.java
+++ b/window/extensions/extensions/src/main/java/androidx/window/extensions/area/WindowAreaComponent.java
@@ -17,9 +17,11 @@
 package androidx.window.extensions.area;
 
 import android.app.Activity;
+import android.util.DisplayMetrics;
 
 import androidx.annotation.IntDef;
 import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
 import androidx.annotation.RestrictTo;
 import androidx.window.extensions.WindowExtensions;
 import androidx.window.extensions.core.util.function.Consumer;
@@ -40,11 +42,12 @@
  * @see WindowExtensions#getWindowLayoutComponent()
  */
 public interface WindowAreaComponent {
-
     /**
      * WindowArea status constant to signify that the feature is
      * unsupported on this device. Could be due to the device not supporting that
      * specific feature.
+     *
+     * Since {@link WindowExtensions#VENDOR_API_LEVEL_2}
      */
     int STATUS_UNSUPPORTED = 0;
 
@@ -53,22 +56,35 @@
      * currently unavailable but is supported on this device. This value could signify
      * that the current device state does not support the specific feature or another
      * process is currently enabled in that feature.
+     *
+     * Since {@link WindowExtensions#VENDOR_API_LEVEL_2}
      */
     int STATUS_UNAVAILABLE = 1;
 
     /**
      * WindowArea status constant to signify that the feature is
      * available to be entered or enabled.
+     *
+     * Since {@link WindowExtensions#VENDOR_API_LEVEL_2}
      */
     int STATUS_AVAILABLE = 2;
 
+    /**
+     * WindowArea status constant to signify that the feature is
+     * already enabled.
+     *
+     * Since {@link WindowExtensions#VENDOR_API_LEVEL_3}
+     */
+    int STATUS_ACTIVE = 3;
+
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     @Retention(RetentionPolicy.SOURCE)
     @Target({ElementType.TYPE_PARAMETER, ElementType.TYPE_USE})
     @IntDef({
             STATUS_UNSUPPORTED,
             STATUS_UNAVAILABLE,
-            STATUS_AVAILABLE
+            STATUS_AVAILABLE,
+            STATUS_ACTIVE
     })
     @interface WindowAreaStatus {}
 
@@ -80,19 +96,27 @@
     int SESSION_STATE_INACTIVE = 0;
 
     /**
-     * Session state constant to represent that there is an
-     * active session currently in progress. Used by the library to
-     * know when to return the session object to the developer when the
-     * session is created and active.
+     * Session state constant to represent that there is currently an active session. The library
+     * uses this state to know when a session is created and active. Note that this state is
+     * different from SESSION_STATE_CONTENT_VISIBLE, because the presentation content in this state
+     * is not visible.
      */
     int SESSION_STATE_ACTIVE = 1;
 
+    /**
+     * Session state constant to represent that there is an
+     * active presentation session currently in progress, and the content provided by the
+     * application is visible.
+     */
+    int SESSION_STATE_CONTENT_VISIBLE = 2;
+
     @RestrictTo(RestrictTo.Scope.LIBRARY)
     @Retention(RetentionPolicy.SOURCE)
     @Target({ElementType.TYPE_PARAMETER, ElementType.TYPE_USE})
     @IntDef({
             SESSION_STATE_ACTIVE,
-            SESSION_STATE_INACTIVE
+            SESSION_STATE_INACTIVE,
+            SESSION_STATE_CONTENT_VISIBLE
     })
     @interface WindowAreaSessionState {}
 
@@ -106,21 +130,22 @@
      * correspond to the [WindowAreaStatus] value that aligns with the current status
      * of the rear display.
      * @param consumer interested in receiving updates to WindowAreaStatus.
+     * Since {@link WindowExtensions#VENDOR_API_LEVEL_2}
      */
-    void addRearDisplayStatusListener(@NonNull Consumer<@WindowAreaStatus Integer> consumer);
+    void addRearDisplayStatusListener(@NonNull Consumer<Integer> consumer);
 
     /**
      * Removes a listener no longer interested in receiving updates.
      * @param consumer no longer interested in receiving updates to WindowAreaStatus
+     * Since {@link WindowExtensions#VENDOR_API_LEVEL_2}
      */
-    void removeRearDisplayStatusListener(@NonNull Consumer<@WindowAreaStatus Integer> consumer);
+    void removeRearDisplayStatusListener(@NonNull Consumer<Integer> consumer);
 
     /**
      * Creates and starts a rear display session and sends state updates to the
      * consumer provided. This consumer will receive a constant represented by
      * [WindowAreaSessionState] to represent the state of the current rear display
-     * session. We will translate the values from the {@link Consumer} to a developer-friendly
-     * interface in the developer facing API.
+     * session. We will translate to a more friendly interface in the library.
      *
      * Because this is being called from the OEM provided extensions, the library
      * will post the result of the listener on the executor provided by the developer.
@@ -133,7 +158,9 @@
      * @throws UnsupportedOperationException if this method is called when RearDisplay
      * mode is not available. This could be to an incompatible device state or when
      * another process is currently in this mode.
+     * Since {@link WindowExtensions#VENDOR_API_LEVEL_2}
      */
+    @SuppressWarnings("ExecutorRegistration") // Jetpack will post it on the app-provided executor.
     void startRearDisplaySession(@NonNull Activity activity,
             @NonNull Consumer<@WindowAreaSessionState Integer> consumer);
 
@@ -141,6 +168,109 @@
      * Ends a RearDisplaySession and sends [STATE_INACTIVE] to the consumer
      * provided in the {@code startRearDisplaySession} method. This method is only
      * called through the {@code RearDisplaySession} provided to the developer.
+     * Since {@link WindowExtensions#VENDOR_API_LEVEL_2}
      */
     void endRearDisplaySession();
+
+    /**
+     * Adds a listener interested in receiving updates on the rear display presentation status
+     * of the device. Because this is being called from the OEM provided
+     * extensions, the library will post the result of the listener on the executor
+     * provided by the developer.
+     *
+     * The listener provided will receive {@link ExtensionWindowAreaStatus} values that
+     * correspond to the current status of the feature.
+     *
+     * @param consumer interested in receiving updates to {@link ExtensionWindowAreaStatus}.
+     * Since {@link WindowExtensions#VENDOR_API_LEVEL_3}
+     */
+    default void addRearDisplayPresentationStatusListener(
+            @NonNull Consumer<ExtensionWindowAreaStatus> consumer) {
+        throw new UnsupportedOperationException("This method must not be called unless there is a"
+                + " corresponding override implementation on the device.");
+    }
+
+    /**
+     * Removes a listener no longer interested in receiving updates.
+     *
+     * @param consumer no longer interested in receiving updates to WindowAreaStatus
+     * Since {@link WindowExtensions#VENDOR_API_LEVEL_3}
+     */
+    default void removeRearDisplayPresentationStatusListener(
+            @NonNull Consumer<ExtensionWindowAreaStatus> consumer) {
+        throw new UnsupportedOperationException("This method must not be called unless there is a"
+                + " corresponding override implementation on the device.");
+    }
+
+    /**
+     * Creates and starts a rear display presentation session and sends state updates to the
+     * consumer provided. This consumer will receive a constant represented by
+     * {@link WindowAreaSessionState} to represent the state of the current rear display
+     * session. We will translate to a more friendly interface in the library.
+     *
+     * Because this is being called from the OEM provided extensions, the library
+     * will post the result of the listener on the executor provided by the developer.
+     *
+     * Rear display presentation mode refers to a feature where an {@link Activity} can present
+     * additional content on a device with a second display that is facing the same direction
+     * as the rear camera (i.e. the cover display on a fold-in style device). The calling
+     * {@link Activity} stays on the user-facing display.
+     *
+     * @param activity that the OEM implementation will use as a base
+     * context and to identify the source display area of the request.
+     * The reference to the activity instance must not be stored in the OEM
+     * implementation to prevent memory leaks.
+     * @param consumer to provide updates to the client on the status of the session
+     * @throws UnsupportedOperationException if this method is called when rear display presentation
+     * mode is not available. This could be to an incompatible device state or when
+     * another process is currently in this mode.
+     * Since {@link WindowExtensions#VENDOR_API_LEVEL_3}
+     */
+    default void startRearDisplayPresentationSession(@NonNull Activity activity,
+            @NonNull Consumer<@WindowAreaSessionState Integer> consumer) {
+        throw new UnsupportedOperationException("This method must not be called unless there is a"
+                + " corresponding override implementation on the device.");
+    }
+
+    /**
+     * Ends the current rear display presentation session and provides updates to the
+     * callback provided. When this is ended, the presented content from the calling
+     * {@link Activity} will also be removed from the rear facing display.
+     * Because this is being called from the OEM provided extensions, the result of the listener
+     * will be posted on the executor provided by the developer at the initial call site.
+     *
+     * Since {@link WindowExtensions#VENDOR_API_LEVEL_3}
+     */
+    default void endRearDisplayPresentationSession() {
+        throw new UnsupportedOperationException("This method must not be called unless there is a"
+                + " corresponding override implementation on the device.");
+    }
+
+    /**
+     * Returns the {@link ExtensionWindowAreaPresentation} connected to the active
+     * rear display presentation session. If there is no session currently active, then it will
+     * return null.
+     *
+     * Since {@link WindowExtensions#VENDOR_API_LEVEL_3}
+     */
+    @Nullable
+    default ExtensionWindowAreaPresentation getRearDisplayPresentation() {
+        throw new UnsupportedOperationException("This method must not be called unless there is a"
+                + " corresponding override implementation on the device.");
+    }
+
+    /**
+     * Returns the {@link android.util.DisplayMetrics} associated with the rear facing display. If
+     * there is no rear facing display available on the device, returns an empty
+     * {@link android.util.DisplayMetrics} object.
+     *
+     * Since {@link WindowExtensions#VENDOR_API_LEVEL_3}
+     */
+    // TODO(b/273807238): Investigate how we can provide a listener to get runtime changes in
+    //  rear display metrics to better support other form-factors in the future.
+    @NonNull
+    default DisplayMetrics getRearDisplayMetrics() {
+        throw new UnsupportedOperationException("This method must not be called unless there is a"
+                + " corresponding override implementation on the device.");
+    }
 }
diff --git a/window/window-java/api/current.txt b/window/window-java/api/current.txt
index 39c35ac..d621966 100644
--- a/window/window-java/api/current.txt
+++ b/window/window-java/api/current.txt
@@ -1,4 +1,14 @@
 // Signature format: 4.0
+package androidx.window.java.embedding {
+
+  @androidx.window.core.ExperimentalWindowApi public final class SplitControllerCallbackAdapter {
+    ctor public SplitControllerCallbackAdapter(androidx.window.embedding.SplitController controller);
+    method public void addSplitListener(android.app.Activity activity, java.util.concurrent.Executor executor, androidx.core.util.Consumer<java.util.List<androidx.window.embedding.SplitInfo>> consumer);
+    method public void removeSplitListener(androidx.core.util.Consumer<java.util.List<androidx.window.embedding.SplitInfo>> consumer);
+  }
+
+}
+
 package androidx.window.java.layout {
 
   public final class WindowInfoTrackerCallbackAdapter implements androidx.window.layout.WindowInfoTracker {
diff --git a/window/window-java/api/public_plus_experimental_current.txt b/window/window-java/api/public_plus_experimental_current.txt
deleted file mode 100644
index d621966..0000000
--- a/window/window-java/api/public_plus_experimental_current.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-// Signature format: 4.0
-package androidx.window.java.embedding {
-
-  @androidx.window.core.ExperimentalWindowApi public final class SplitControllerCallbackAdapter {
-    ctor public SplitControllerCallbackAdapter(androidx.window.embedding.SplitController controller);
-    method public void addSplitListener(android.app.Activity activity, java.util.concurrent.Executor executor, androidx.core.util.Consumer<java.util.List<androidx.window.embedding.SplitInfo>> consumer);
-    method public void removeSplitListener(androidx.core.util.Consumer<java.util.List<androidx.window.embedding.SplitInfo>> consumer);
-  }
-
-}
-
-package androidx.window.java.layout {
-
-  public final class WindowInfoTrackerCallbackAdapter implements androidx.window.layout.WindowInfoTracker {
-    ctor public WindowInfoTrackerCallbackAdapter(androidx.window.layout.WindowInfoTracker tracker);
-    method public void addWindowLayoutInfoListener(android.app.Activity activity, java.util.concurrent.Executor executor, androidx.core.util.Consumer<androidx.window.layout.WindowLayoutInfo> consumer);
-    method public void addWindowLayoutInfoListener(@UiContext android.content.Context context, java.util.concurrent.Executor executor, androidx.core.util.Consumer<androidx.window.layout.WindowLayoutInfo> consumer);
-    method public void removeWindowLayoutInfoListener(androidx.core.util.Consumer<androidx.window.layout.WindowLayoutInfo> consumer);
-  }
-
-}
-
diff --git a/window/window-java/api/restricted_current.txt b/window/window-java/api/restricted_current.txt
index 39c35ac..d621966 100644
--- a/window/window-java/api/restricted_current.txt
+++ b/window/window-java/api/restricted_current.txt
@@ -1,4 +1,14 @@
 // Signature format: 4.0
+package androidx.window.java.embedding {
+
+  @androidx.window.core.ExperimentalWindowApi public final class SplitControllerCallbackAdapter {
+    ctor public SplitControllerCallbackAdapter(androidx.window.embedding.SplitController controller);
+    method public void addSplitListener(android.app.Activity activity, java.util.concurrent.Executor executor, androidx.core.util.Consumer<java.util.List<androidx.window.embedding.SplitInfo>> consumer);
+    method public void removeSplitListener(androidx.core.util.Consumer<java.util.List<androidx.window.embedding.SplitInfo>> consumer);
+  }
+
+}
+
 package androidx.window.java.layout {
 
   public final class WindowInfoTrackerCallbackAdapter implements androidx.window.layout.WindowInfoTracker {
diff --git a/window/window/api/current.txt b/window/window/api/current.txt
index ff8eb13..412af2b 100644
--- a/window/window/api/current.txt
+++ b/window/window/api/current.txt
@@ -9,6 +9,13 @@
 
 }
 
+package androidx.window.core {
+
+  @kotlin.RequiresOptIn(level=kotlin.RequiresOptIn.Level.WARNING) @kotlin.annotation.MustBeDocumented @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface ExperimentalWindowApi {
+  }
+
+}
+
 package androidx.window.embedding {
 
   public final class ActivityEmbeddingController {
@@ -125,9 +132,30 @@
     method public androidx.window.embedding.SplitAttributes.SplitType ratio(@FloatRange(from=0.0, to=1.0, fromInclusive=false, toInclusive=false) float ratio);
   }
 
+  @androidx.window.core.ExperimentalWindowApi public final class SplitAttributesCalculatorParams {
+    method public boolean getAreDefaultConstraintsSatisfied();
+    method public androidx.window.embedding.SplitAttributes getDefaultSplitAttributes();
+    method public android.content.res.Configuration getParentConfiguration();
+    method public androidx.window.layout.WindowLayoutInfo getParentWindowLayoutInfo();
+    method public androidx.window.layout.WindowMetrics getParentWindowMetrics();
+    method public String? getSplitRuleTag();
+    property public final boolean areDefaultConstraintsSatisfied;
+    property public final androidx.window.embedding.SplitAttributes defaultSplitAttributes;
+    property public final android.content.res.Configuration parentConfiguration;
+    property public final androidx.window.layout.WindowLayoutInfo parentWindowLayoutInfo;
+    property public final androidx.window.layout.WindowMetrics parentWindowMetrics;
+    property public final String? splitRuleTag;
+  }
+
   public final class SplitController {
+    method @Deprecated @androidx.window.core.ExperimentalWindowApi public void addSplitListener(android.app.Activity activity, java.util.concurrent.Executor executor, androidx.core.util.Consumer<java.util.List<androidx.window.embedding.SplitInfo>> consumer);
+    method @androidx.window.core.ExperimentalWindowApi public void clearSplitAttributesCalculator();
     method public static androidx.window.embedding.SplitController getInstance(android.content.Context context);
     method public androidx.window.embedding.SplitController.SplitSupportStatus getSplitSupportStatus();
+    method @androidx.window.core.ExperimentalWindowApi public boolean isSplitAttributesCalculatorSupported();
+    method @Deprecated @androidx.window.core.ExperimentalWindowApi public boolean isSplitSupported();
+    method @Deprecated @androidx.window.core.ExperimentalWindowApi public void removeSplitListener(androidx.core.util.Consumer<java.util.List<androidx.window.embedding.SplitInfo>> consumer);
+    method @androidx.window.core.ExperimentalWindowApi public void setSplitAttributesCalculator(kotlin.jvm.functions.Function1<? super androidx.window.embedding.SplitAttributesCalculatorParams,androidx.window.embedding.SplitAttributes> calculator);
     method public kotlinx.coroutines.flow.Flow<java.util.List<androidx.window.embedding.SplitInfo>> splitInfoList(android.app.Activity activity);
     property public final androidx.window.embedding.SplitController.SplitSupportStatus splitSupportStatus;
     field public static final androidx.window.embedding.SplitController.Companion Companion;
@@ -318,6 +346,7 @@
 
   public final class WindowMetrics {
     method public android.graphics.Rect getBounds();
+    method @RequiresApi(android.os.Build.VERSION_CODES.R) @androidx.window.core.ExperimentalWindowApi public androidx.core.view.WindowInsetsCompat getWindowInsets();
     property public final android.graphics.Rect bounds;
   }
 
diff --git a/window/window/api/public_plus_experimental_current.txt b/window/window/api/public_plus_experimental_current.txt
deleted file mode 100644
index 412af2b..0000000
--- a/window/window/api/public_plus_experimental_current.txt
+++ /dev/null
@@ -1,367 +0,0 @@
-// Signature format: 4.0
-package androidx.window {
-
-  public final class WindowProperties {
-    field public static final androidx.window.WindowProperties INSTANCE;
-    field public static final String PROPERTY_ACTIVITY_EMBEDDING_ALLOW_SYSTEM_OVERRIDE = "android.window.PROPERTY_ACTIVITY_EMBEDDING_ALLOW_SYSTEM_OVERRIDE";
-    field public static final String PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED = "android.window.PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED";
-  }
-
-}
-
-package androidx.window.core {
-
-  @kotlin.RequiresOptIn(level=kotlin.RequiresOptIn.Level.WARNING) @kotlin.annotation.MustBeDocumented @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface ExperimentalWindowApi {
-  }
-
-}
-
-package androidx.window.embedding {
-
-  public final class ActivityEmbeddingController {
-    method public static androidx.window.embedding.ActivityEmbeddingController getInstance(android.content.Context context);
-    method public boolean isActivityEmbedded(android.app.Activity activity);
-    field public static final androidx.window.embedding.ActivityEmbeddingController.Companion Companion;
-  }
-
-  public static final class ActivityEmbeddingController.Companion {
-    method public androidx.window.embedding.ActivityEmbeddingController getInstance(android.content.Context context);
-  }
-
-  public final class ActivityFilter {
-    ctor public ActivityFilter(android.content.ComponentName componentName, String? intentAction);
-    method public android.content.ComponentName getComponentName();
-    method public String? getIntentAction();
-    method public boolean matchesActivity(android.app.Activity activity);
-    method public boolean matchesIntent(android.content.Intent intent);
-    property public final android.content.ComponentName componentName;
-    property public final String? intentAction;
-  }
-
-  public final class ActivityRule extends androidx.window.embedding.EmbeddingRule {
-    method public boolean getAlwaysExpand();
-    method public java.util.Set<androidx.window.embedding.ActivityFilter> getFilters();
-    property public final boolean alwaysExpand;
-    property public final java.util.Set<androidx.window.embedding.ActivityFilter> filters;
-  }
-
-  public static final class ActivityRule.Builder {
-    ctor public ActivityRule.Builder(java.util.Set<androidx.window.embedding.ActivityFilter> filters);
-    method public androidx.window.embedding.ActivityRule build();
-    method public androidx.window.embedding.ActivityRule.Builder setAlwaysExpand(boolean alwaysExpand);
-    method public androidx.window.embedding.ActivityRule.Builder setTag(String? tag);
-  }
-
-  public final class ActivityStack {
-    method public operator boolean contains(android.app.Activity activity);
-    method public boolean isEmpty();
-    property public final boolean isEmpty;
-  }
-
-  public final class EmbeddingAspectRatio {
-    method public static androidx.window.embedding.EmbeddingAspectRatio ratio(@FloatRange(from=1.0, fromInclusive=false) float ratio);
-    field public static final androidx.window.embedding.EmbeddingAspectRatio ALWAYS_ALLOW;
-    field public static final androidx.window.embedding.EmbeddingAspectRatio ALWAYS_DISALLOW;
-    field public static final androidx.window.embedding.EmbeddingAspectRatio.Companion Companion;
-  }
-
-  public static final class EmbeddingAspectRatio.Companion {
-    method public androidx.window.embedding.EmbeddingAspectRatio ratio(@FloatRange(from=1.0, fromInclusive=false) float ratio);
-  }
-
-  public abstract class EmbeddingRule {
-    method public final String? getTag();
-    property public final String? tag;
-  }
-
-  public final class RuleController {
-    method public void addRule(androidx.window.embedding.EmbeddingRule rule);
-    method public void clearRules();
-    method public static androidx.window.embedding.RuleController getInstance(android.content.Context context);
-    method public java.util.Set<androidx.window.embedding.EmbeddingRule> getRules();
-    method public static java.util.Set<androidx.window.embedding.EmbeddingRule> parseRules(android.content.Context context, @XmlRes int staticRuleResourceId);
-    method public void removeRule(androidx.window.embedding.EmbeddingRule rule);
-    method public void setRules(java.util.Set<? extends androidx.window.embedding.EmbeddingRule> rules);
-    field public static final androidx.window.embedding.RuleController.Companion Companion;
-  }
-
-  public static final class RuleController.Companion {
-    method public androidx.window.embedding.RuleController getInstance(android.content.Context context);
-    method public java.util.Set<androidx.window.embedding.EmbeddingRule> parseRules(android.content.Context context, @XmlRes int staticRuleResourceId);
-  }
-
-  public final class SplitAttributes {
-    method public androidx.window.embedding.SplitAttributes.LayoutDirection getLayoutDirection();
-    method public androidx.window.embedding.SplitAttributes.SplitType getSplitType();
-    property public final androidx.window.embedding.SplitAttributes.LayoutDirection layoutDirection;
-    property public final androidx.window.embedding.SplitAttributes.SplitType splitType;
-    field public static final androidx.window.embedding.SplitAttributes.Companion Companion;
-  }
-
-  public static final class SplitAttributes.Builder {
-    ctor public SplitAttributes.Builder();
-    method public androidx.window.embedding.SplitAttributes build();
-    method public androidx.window.embedding.SplitAttributes.Builder setLayoutDirection(androidx.window.embedding.SplitAttributes.LayoutDirection layoutDirection);
-    method public androidx.window.embedding.SplitAttributes.Builder setSplitType(androidx.window.embedding.SplitAttributes.SplitType type);
-  }
-
-  public static final class SplitAttributes.Companion {
-  }
-
-  public static final class SplitAttributes.LayoutDirection {
-    field public static final androidx.window.embedding.SplitAttributes.LayoutDirection BOTTOM_TO_TOP;
-    field public static final androidx.window.embedding.SplitAttributes.LayoutDirection.Companion Companion;
-    field public static final androidx.window.embedding.SplitAttributes.LayoutDirection LEFT_TO_RIGHT;
-    field public static final androidx.window.embedding.SplitAttributes.LayoutDirection LOCALE;
-    field public static final androidx.window.embedding.SplitAttributes.LayoutDirection RIGHT_TO_LEFT;
-    field public static final androidx.window.embedding.SplitAttributes.LayoutDirection TOP_TO_BOTTOM;
-  }
-
-  public static final class SplitAttributes.LayoutDirection.Companion {
-  }
-
-  public static final class SplitAttributes.SplitType {
-    method public static androidx.window.embedding.SplitAttributes.SplitType ratio(@FloatRange(from=0.0, to=1.0, fromInclusive=false, toInclusive=false) float ratio);
-    field public static final androidx.window.embedding.SplitAttributes.SplitType.Companion Companion;
-    field public static final androidx.window.embedding.SplitAttributes.SplitType SPLIT_TYPE_EQUAL;
-    field public static final androidx.window.embedding.SplitAttributes.SplitType SPLIT_TYPE_EXPAND;
-    field public static final androidx.window.embedding.SplitAttributes.SplitType SPLIT_TYPE_HINGE;
-  }
-
-  public static final class SplitAttributes.SplitType.Companion {
-    method public androidx.window.embedding.SplitAttributes.SplitType ratio(@FloatRange(from=0.0, to=1.0, fromInclusive=false, toInclusive=false) float ratio);
-  }
-
-  @androidx.window.core.ExperimentalWindowApi public final class SplitAttributesCalculatorParams {
-    method public boolean getAreDefaultConstraintsSatisfied();
-    method public androidx.window.embedding.SplitAttributes getDefaultSplitAttributes();
-    method public android.content.res.Configuration getParentConfiguration();
-    method public androidx.window.layout.WindowLayoutInfo getParentWindowLayoutInfo();
-    method public androidx.window.layout.WindowMetrics getParentWindowMetrics();
-    method public String? getSplitRuleTag();
-    property public final boolean areDefaultConstraintsSatisfied;
-    property public final androidx.window.embedding.SplitAttributes defaultSplitAttributes;
-    property public final android.content.res.Configuration parentConfiguration;
-    property public final androidx.window.layout.WindowLayoutInfo parentWindowLayoutInfo;
-    property public final androidx.window.layout.WindowMetrics parentWindowMetrics;
-    property public final String? splitRuleTag;
-  }
-
-  public final class SplitController {
-    method @Deprecated @androidx.window.core.ExperimentalWindowApi public void addSplitListener(android.app.Activity activity, java.util.concurrent.Executor executor, androidx.core.util.Consumer<java.util.List<androidx.window.embedding.SplitInfo>> consumer);
-    method @androidx.window.core.ExperimentalWindowApi public void clearSplitAttributesCalculator();
-    method public static androidx.window.embedding.SplitController getInstance(android.content.Context context);
-    method public androidx.window.embedding.SplitController.SplitSupportStatus getSplitSupportStatus();
-    method @androidx.window.core.ExperimentalWindowApi public boolean isSplitAttributesCalculatorSupported();
-    method @Deprecated @androidx.window.core.ExperimentalWindowApi public boolean isSplitSupported();
-    method @Deprecated @androidx.window.core.ExperimentalWindowApi public void removeSplitListener(androidx.core.util.Consumer<java.util.List<androidx.window.embedding.SplitInfo>> consumer);
-    method @androidx.window.core.ExperimentalWindowApi public void setSplitAttributesCalculator(kotlin.jvm.functions.Function1<? super androidx.window.embedding.SplitAttributesCalculatorParams,androidx.window.embedding.SplitAttributes> calculator);
-    method public kotlinx.coroutines.flow.Flow<java.util.List<androidx.window.embedding.SplitInfo>> splitInfoList(android.app.Activity activity);
-    property public final androidx.window.embedding.SplitController.SplitSupportStatus splitSupportStatus;
-    field public static final androidx.window.embedding.SplitController.Companion Companion;
-  }
-
-  public static final class SplitController.Companion {
-    method public androidx.window.embedding.SplitController getInstance(android.content.Context context);
-  }
-
-  public static final class SplitController.SplitSupportStatus {
-    field public static final androidx.window.embedding.SplitController.SplitSupportStatus.Companion Companion;
-    field public static final androidx.window.embedding.SplitController.SplitSupportStatus SPLIT_AVAILABLE;
-    field public static final androidx.window.embedding.SplitController.SplitSupportStatus SPLIT_ERROR_PROPERTY_NOT_DECLARED;
-    field public static final androidx.window.embedding.SplitController.SplitSupportStatus SPLIT_UNAVAILABLE;
-  }
-
-  public static final class SplitController.SplitSupportStatus.Companion {
-  }
-
-  public final class SplitInfo {
-    method public operator boolean contains(android.app.Activity activity);
-    method public androidx.window.embedding.ActivityStack getPrimaryActivityStack();
-    method public androidx.window.embedding.ActivityStack getSecondaryActivityStack();
-    method public androidx.window.embedding.SplitAttributes getSplitAttributes();
-    property public final androidx.window.embedding.ActivityStack primaryActivityStack;
-    property public final androidx.window.embedding.ActivityStack secondaryActivityStack;
-    property public final androidx.window.embedding.SplitAttributes splitAttributes;
-  }
-
-  public final class SplitPairFilter {
-    ctor public SplitPairFilter(android.content.ComponentName primaryActivityName, android.content.ComponentName secondaryActivityName, String? secondaryActivityIntentAction);
-    method public android.content.ComponentName getPrimaryActivityName();
-    method public String? getSecondaryActivityIntentAction();
-    method public android.content.ComponentName getSecondaryActivityName();
-    method public boolean matchesActivityIntentPair(android.app.Activity primaryActivity, android.content.Intent secondaryActivityIntent);
-    method public boolean matchesActivityPair(android.app.Activity primaryActivity, android.app.Activity secondaryActivity);
-    property public final android.content.ComponentName primaryActivityName;
-    property public final String? secondaryActivityIntentAction;
-    property public final android.content.ComponentName secondaryActivityName;
-  }
-
-  public final class SplitPairRule extends androidx.window.embedding.SplitRule {
-    method public boolean getClearTop();
-    method public java.util.Set<androidx.window.embedding.SplitPairFilter> getFilters();
-    method public androidx.window.embedding.SplitRule.FinishBehavior getFinishPrimaryWithSecondary();
-    method public androidx.window.embedding.SplitRule.FinishBehavior getFinishSecondaryWithPrimary();
-    property public final boolean clearTop;
-    property public final java.util.Set<androidx.window.embedding.SplitPairFilter> filters;
-    property public final androidx.window.embedding.SplitRule.FinishBehavior finishPrimaryWithSecondary;
-    property public final androidx.window.embedding.SplitRule.FinishBehavior finishSecondaryWithPrimary;
-  }
-
-  public static final class SplitPairRule.Builder {
-    ctor public SplitPairRule.Builder(java.util.Set<androidx.window.embedding.SplitPairFilter> filters);
-    method public androidx.window.embedding.SplitPairRule build();
-    method public androidx.window.embedding.SplitPairRule.Builder setClearTop(boolean clearTop);
-    method public androidx.window.embedding.SplitPairRule.Builder setDefaultSplitAttributes(androidx.window.embedding.SplitAttributes defaultSplitAttributes);
-    method public androidx.window.embedding.SplitPairRule.Builder setFinishPrimaryWithSecondary(androidx.window.embedding.SplitRule.FinishBehavior finishPrimaryWithSecondary);
-    method public androidx.window.embedding.SplitPairRule.Builder setFinishSecondaryWithPrimary(androidx.window.embedding.SplitRule.FinishBehavior finishSecondaryWithPrimary);
-    method public androidx.window.embedding.SplitPairRule.Builder setMaxAspectRatioInLandscape(androidx.window.embedding.EmbeddingAspectRatio aspectRatio);
-    method public androidx.window.embedding.SplitPairRule.Builder setMaxAspectRatioInPortrait(androidx.window.embedding.EmbeddingAspectRatio aspectRatio);
-    method public androidx.window.embedding.SplitPairRule.Builder setMinHeightDp(@IntRange(from=0L) int minHeightDp);
-    method public androidx.window.embedding.SplitPairRule.Builder setMinSmallestWidthDp(@IntRange(from=0L) int minSmallestWidthDp);
-    method public androidx.window.embedding.SplitPairRule.Builder setMinWidthDp(@IntRange(from=0L) int minWidthDp);
-    method public androidx.window.embedding.SplitPairRule.Builder setTag(String? tag);
-  }
-
-  public final class SplitPlaceholderRule extends androidx.window.embedding.SplitRule {
-    method public java.util.Set<androidx.window.embedding.ActivityFilter> getFilters();
-    method public androidx.window.embedding.SplitRule.FinishBehavior getFinishPrimaryWithPlaceholder();
-    method public android.content.Intent getPlaceholderIntent();
-    method public boolean isSticky();
-    property public final java.util.Set<androidx.window.embedding.ActivityFilter> filters;
-    property public final androidx.window.embedding.SplitRule.FinishBehavior finishPrimaryWithPlaceholder;
-    property public final boolean isSticky;
-    property public final android.content.Intent placeholderIntent;
-  }
-
-  public static final class SplitPlaceholderRule.Builder {
-    ctor public SplitPlaceholderRule.Builder(java.util.Set<androidx.window.embedding.ActivityFilter> filters, android.content.Intent placeholderIntent);
-    method public androidx.window.embedding.SplitPlaceholderRule build();
-    method public androidx.window.embedding.SplitPlaceholderRule.Builder setDefaultSplitAttributes(androidx.window.embedding.SplitAttributes defaultSplitAttributes);
-    method public androidx.window.embedding.SplitPlaceholderRule.Builder setFinishPrimaryWithPlaceholder(androidx.window.embedding.SplitRule.FinishBehavior finishPrimaryWithPlaceholder);
-    method public androidx.window.embedding.SplitPlaceholderRule.Builder setMaxAspectRatioInLandscape(androidx.window.embedding.EmbeddingAspectRatio aspectRatio);
-    method public androidx.window.embedding.SplitPlaceholderRule.Builder setMaxAspectRatioInPortrait(androidx.window.embedding.EmbeddingAspectRatio aspectRatio);
-    method public androidx.window.embedding.SplitPlaceholderRule.Builder setMinHeightDp(@IntRange(from=0L) int minHeightDp);
-    method public androidx.window.embedding.SplitPlaceholderRule.Builder setMinSmallestWidthDp(@IntRange(from=0L) int minSmallestWidthDp);
-    method public androidx.window.embedding.SplitPlaceholderRule.Builder setMinWidthDp(@IntRange(from=0L) int minWidthDp);
-    method public androidx.window.embedding.SplitPlaceholderRule.Builder setSticky(boolean isSticky);
-    method public androidx.window.embedding.SplitPlaceholderRule.Builder setTag(String? tag);
-  }
-
-  public class SplitRule extends androidx.window.embedding.EmbeddingRule {
-    method public final androidx.window.embedding.SplitAttributes getDefaultSplitAttributes();
-    method public final androidx.window.embedding.EmbeddingAspectRatio getMaxAspectRatioInLandscape();
-    method public final androidx.window.embedding.EmbeddingAspectRatio getMaxAspectRatioInPortrait();
-    method public final int getMinHeightDp();
-    method public final int getMinSmallestWidthDp();
-    method public final int getMinWidthDp();
-    property public final androidx.window.embedding.SplitAttributes defaultSplitAttributes;
-    property public final androidx.window.embedding.EmbeddingAspectRatio maxAspectRatioInLandscape;
-    property public final androidx.window.embedding.EmbeddingAspectRatio maxAspectRatioInPortrait;
-    property public final int minHeightDp;
-    property public final int minSmallestWidthDp;
-    property public final int minWidthDp;
-    field public static final androidx.window.embedding.SplitRule.Companion Companion;
-    field public static final androidx.window.embedding.EmbeddingAspectRatio SPLIT_MAX_ASPECT_RATIO_LANDSCAPE_DEFAULT;
-    field public static final androidx.window.embedding.EmbeddingAspectRatio SPLIT_MAX_ASPECT_RATIO_PORTRAIT_DEFAULT;
-    field public static final int SPLIT_MIN_DIMENSION_ALWAYS_ALLOW = 0; // 0x0
-    field public static final int SPLIT_MIN_DIMENSION_DP_DEFAULT = 600; // 0x258
-  }
-
-  public static final class SplitRule.Companion {
-  }
-
-  public static final class SplitRule.FinishBehavior {
-    field public static final androidx.window.embedding.SplitRule.FinishBehavior ADJACENT;
-    field public static final androidx.window.embedding.SplitRule.FinishBehavior ALWAYS;
-    field public static final androidx.window.embedding.SplitRule.FinishBehavior.Companion Companion;
-    field public static final androidx.window.embedding.SplitRule.FinishBehavior NEVER;
-  }
-
-  public static final class SplitRule.FinishBehavior.Companion {
-  }
-
-}
-
-package androidx.window.layout {
-
-  public interface DisplayFeature {
-    method public android.graphics.Rect getBounds();
-    property public abstract android.graphics.Rect bounds;
-  }
-
-  public interface FoldingFeature extends androidx.window.layout.DisplayFeature {
-    method public androidx.window.layout.FoldingFeature.OcclusionType getOcclusionType();
-    method public androidx.window.layout.FoldingFeature.Orientation getOrientation();
-    method public androidx.window.layout.FoldingFeature.State getState();
-    method public boolean isSeparating();
-    property public abstract boolean isSeparating;
-    property public abstract androidx.window.layout.FoldingFeature.OcclusionType occlusionType;
-    property public abstract androidx.window.layout.FoldingFeature.Orientation orientation;
-    property public abstract androidx.window.layout.FoldingFeature.State state;
-  }
-
-  public static final class FoldingFeature.OcclusionType {
-    field public static final androidx.window.layout.FoldingFeature.OcclusionType.Companion Companion;
-    field public static final androidx.window.layout.FoldingFeature.OcclusionType FULL;
-    field public static final androidx.window.layout.FoldingFeature.OcclusionType NONE;
-  }
-
-  public static final class FoldingFeature.OcclusionType.Companion {
-  }
-
-  public static final class FoldingFeature.Orientation {
-    field public static final androidx.window.layout.FoldingFeature.Orientation.Companion Companion;
-    field public static final androidx.window.layout.FoldingFeature.Orientation HORIZONTAL;
-    field public static final androidx.window.layout.FoldingFeature.Orientation VERTICAL;
-  }
-
-  public static final class FoldingFeature.Orientation.Companion {
-  }
-
-  public static final class FoldingFeature.State {
-    field public static final androidx.window.layout.FoldingFeature.State.Companion Companion;
-    field public static final androidx.window.layout.FoldingFeature.State FLAT;
-    field public static final androidx.window.layout.FoldingFeature.State HALF_OPENED;
-  }
-
-  public static final class FoldingFeature.State.Companion {
-  }
-
-  public interface WindowInfoTracker {
-    method public default static androidx.window.layout.WindowInfoTracker getOrCreate(android.content.Context context);
-    method public kotlinx.coroutines.flow.Flow<androidx.window.layout.WindowLayoutInfo> windowLayoutInfo(android.app.Activity activity);
-    method public default kotlinx.coroutines.flow.Flow<androidx.window.layout.WindowLayoutInfo> windowLayoutInfo(@UiContext android.content.Context context);
-    field public static final androidx.window.layout.WindowInfoTracker.Companion Companion;
-  }
-
-  public static final class WindowInfoTracker.Companion {
-    method public androidx.window.layout.WindowInfoTracker getOrCreate(android.content.Context context);
-  }
-
-  public final class WindowLayoutInfo {
-    method public java.util.List<androidx.window.layout.DisplayFeature> getDisplayFeatures();
-    property public final java.util.List<androidx.window.layout.DisplayFeature> displayFeatures;
-  }
-
-  public final class WindowMetrics {
-    method public android.graphics.Rect getBounds();
-    method @RequiresApi(android.os.Build.VERSION_CODES.R) @androidx.window.core.ExperimentalWindowApi public androidx.core.view.WindowInsetsCompat getWindowInsets();
-    property public final android.graphics.Rect bounds;
-  }
-
-  public interface WindowMetricsCalculator {
-    method public androidx.window.layout.WindowMetrics computeCurrentWindowMetrics(android.app.Activity activity);
-    method public default androidx.window.layout.WindowMetrics computeCurrentWindowMetrics(@UiContext android.content.Context context);
-    method public androidx.window.layout.WindowMetrics computeMaximumWindowMetrics(android.app.Activity activity);
-    method public default androidx.window.layout.WindowMetrics computeMaximumWindowMetrics(@UiContext android.content.Context context);
-    method public default static androidx.window.layout.WindowMetricsCalculator getOrCreate();
-    field public static final androidx.window.layout.WindowMetricsCalculator.Companion Companion;
-  }
-
-  public static final class WindowMetricsCalculator.Companion {
-    method public androidx.window.layout.WindowMetricsCalculator getOrCreate();
-  }
-
-}
-
diff --git a/window/window/api/restricted_current.txt b/window/window/api/restricted_current.txt
index ff8eb13..412af2b 100644
--- a/window/window/api/restricted_current.txt
+++ b/window/window/api/restricted_current.txt
@@ -9,6 +9,13 @@
 
 }
 
+package androidx.window.core {
+
+  @kotlin.RequiresOptIn(level=kotlin.RequiresOptIn.Level.WARNING) @kotlin.annotation.MustBeDocumented @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface ExperimentalWindowApi {
+  }
+
+}
+
 package androidx.window.embedding {
 
   public final class ActivityEmbeddingController {
@@ -125,9 +132,30 @@
     method public androidx.window.embedding.SplitAttributes.SplitType ratio(@FloatRange(from=0.0, to=1.0, fromInclusive=false, toInclusive=false) float ratio);
   }
 
+  @androidx.window.core.ExperimentalWindowApi public final class SplitAttributesCalculatorParams {
+    method public boolean getAreDefaultConstraintsSatisfied();
+    method public androidx.window.embedding.SplitAttributes getDefaultSplitAttributes();
+    method public android.content.res.Configuration getParentConfiguration();
+    method public androidx.window.layout.WindowLayoutInfo getParentWindowLayoutInfo();
+    method public androidx.window.layout.WindowMetrics getParentWindowMetrics();
+    method public String? getSplitRuleTag();
+    property public final boolean areDefaultConstraintsSatisfied;
+    property public final androidx.window.embedding.SplitAttributes defaultSplitAttributes;
+    property public final android.content.res.Configuration parentConfiguration;
+    property public final androidx.window.layout.WindowLayoutInfo parentWindowLayoutInfo;
+    property public final androidx.window.layout.WindowMetrics parentWindowMetrics;
+    property public final String? splitRuleTag;
+  }
+
   public final class SplitController {
+    method @Deprecated @androidx.window.core.ExperimentalWindowApi public void addSplitListener(android.app.Activity activity, java.util.concurrent.Executor executor, androidx.core.util.Consumer<java.util.List<androidx.window.embedding.SplitInfo>> consumer);
+    method @androidx.window.core.ExperimentalWindowApi public void clearSplitAttributesCalculator();
     method public static androidx.window.embedding.SplitController getInstance(android.content.Context context);
     method public androidx.window.embedding.SplitController.SplitSupportStatus getSplitSupportStatus();
+    method @androidx.window.core.ExperimentalWindowApi public boolean isSplitAttributesCalculatorSupported();
+    method @Deprecated @androidx.window.core.ExperimentalWindowApi public boolean isSplitSupported();
+    method @Deprecated @androidx.window.core.ExperimentalWindowApi public void removeSplitListener(androidx.core.util.Consumer<java.util.List<androidx.window.embedding.SplitInfo>> consumer);
+    method @androidx.window.core.ExperimentalWindowApi public void setSplitAttributesCalculator(kotlin.jvm.functions.Function1<? super androidx.window.embedding.SplitAttributesCalculatorParams,androidx.window.embedding.SplitAttributes> calculator);
     method public kotlinx.coroutines.flow.Flow<java.util.List<androidx.window.embedding.SplitInfo>> splitInfoList(android.app.Activity activity);
     property public final androidx.window.embedding.SplitController.SplitSupportStatus splitSupportStatus;
     field public static final androidx.window.embedding.SplitController.Companion Companion;
@@ -318,6 +346,7 @@
 
   public final class WindowMetrics {
     method public android.graphics.Rect getBounds();
+    method @RequiresApi(android.os.Build.VERSION_CODES.R) @androidx.window.core.ExperimentalWindowApi public androidx.core.view.WindowInsetsCompat getWindowInsets();
     property public final android.graphics.Rect bounds;
   }
 
diff --git a/work/work-runtime-ktx/src/androidTest/java/androidx/work/PeriodicWorkRequestTest.kt b/work/work-runtime-ktx/src/androidTest/java/androidx/work/PeriodicWorkRequestTest.kt
index c20e521..685151b 100644
--- a/work/work-runtime-ktx/src/androidTest/java/androidx/work/PeriodicWorkRequestTest.kt
+++ b/work/work-runtime-ktx/src/androidTest/java/androidx/work/PeriodicWorkRequestTest.kt
@@ -22,7 +22,10 @@
 import androidx.work.workers.TestWorker
 import java.time.Duration
 import java.util.concurrent.TimeUnit
+import java.util.concurrent.TimeUnit.HOURS
 import org.junit.Assert.assertEquals
+import org.junit.Assert.assertNotEquals
+import org.junit.Assert.assertThrows
 import org.junit.Test
 import org.junit.runner.RunWith
 
@@ -83,4 +86,50 @@
         assertEquals(workRequest.workSpec.intervalDuration, repeatInterval.toMillis())
         assertEquals(workRequest.workSpec.flexDuration, flexInterval.toMillis())
     }
+
+    @Test
+    fun testPeriodicWorkRequestBuilder_noNextScheduleTimeOverride_noGeneration() {
+        val builder = PeriodicWorkRequestBuilder<TestWorker>(
+            HOURS.toMillis(15L), HOURS
+        )
+        assertEquals(builder.build().workSpec.nextScheduleTimeOverride, Long.MAX_VALUE)
+        assertEquals(builder.build().workSpec.nextScheduleTimeOverrideGeneration, 0)
+    }
+
+    @Test
+    fun testPeriodicWorkRequestBuilder_nextScheduleTimeOverride_setsGeneration() {
+        val builder = PeriodicWorkRequestBuilder<TestWorker>(
+            HOURS.toMillis(15L), HOURS
+        )
+        builder.setNextScheduleTimeOverride(123456)
+        assertEquals(builder.build().workSpec.nextScheduleTimeOverride, 123456L)
+        assertEquals(builder.build().workSpec.nextScheduleTimeOverrideGeneration, 1)
+    }
+
+    @Test
+    fun testPeriodicWorkRequestBuilder_nextScheduleTimeOverride_maxLongNotAllowed() {
+        val builder = PeriodicWorkRequestBuilder<TestWorker>(
+            HOURS.toMillis(15L), HOURS
+        )
+        assertThrows(IllegalArgumentException::class.java) {
+            builder.setNextScheduleTimeOverride(Long.MAX_VALUE)
+        }
+    }
+
+    @Test
+    fun testPeriodicWorkRequest_clearNextScheduleTimeOverride_setsGeneration() {
+        val plainRequest = PeriodicWorkRequestBuilder<TestWorker>(
+            HOURS.toMillis(15L), HOURS
+        ).build()
+
+        val clearedRequest = PeriodicWorkRequestBuilder<TestWorker>(
+            HOURS.toMillis(15L), HOURS
+        )
+            .setNextScheduleTimeOverride(123456)
+            .clearNextScheduleTimeOverride().build()
+
+        // The generation should stay incremented, since the request still has to clear any override
+        // that has been already set in the database.
+        assertNotEquals(plainRequest, clearedRequest)
+    }
 }
diff --git a/work/work-runtime/api/current.txt b/work/work-runtime/api/current.txt
index 9b9bf58..2986124 100644
--- a/work/work-runtime/api/current.txt
+++ b/work/work-runtime/api/current.txt
@@ -304,6 +304,8 @@
     ctor @RequiresApi(26) public PeriodicWorkRequest.Builder(Class<? extends androidx.work.ListenableWorker> workerClass, java.time.Duration repeatInterval, java.time.Duration flexInterval);
     ctor public PeriodicWorkRequest.Builder(Class<? extends androidx.work.ListenableWorker> workerClass, long repeatInterval, java.util.concurrent.TimeUnit repeatIntervalTimeUnit);
     ctor public PeriodicWorkRequest.Builder(Class<? extends androidx.work.ListenableWorker> workerClass, long repeatInterval, java.util.concurrent.TimeUnit repeatIntervalTimeUnit, long flexInterval, java.util.concurrent.TimeUnit flexIntervalTimeUnit);
+    method public androidx.work.PeriodicWorkRequest.Builder clearNextScheduleTimeOverride();
+    method public androidx.work.PeriodicWorkRequest.Builder setNextScheduleTimeOverride(long nextScheduleTimeOverrideMillis);
   }
 
   public static final class PeriodicWorkRequest.Companion {
diff --git a/work/work-runtime/api/restricted_current.txt b/work/work-runtime/api/restricted_current.txt
index 9b9bf58..2986124 100644
--- a/work/work-runtime/api/restricted_current.txt
+++ b/work/work-runtime/api/restricted_current.txt
@@ -304,6 +304,8 @@
     ctor @RequiresApi(26) public PeriodicWorkRequest.Builder(Class<? extends androidx.work.ListenableWorker> workerClass, java.time.Duration repeatInterval, java.time.Duration flexInterval);
     ctor public PeriodicWorkRequest.Builder(Class<? extends androidx.work.ListenableWorker> workerClass, long repeatInterval, java.util.concurrent.TimeUnit repeatIntervalTimeUnit);
     ctor public PeriodicWorkRequest.Builder(Class<? extends androidx.work.ListenableWorker> workerClass, long repeatInterval, java.util.concurrent.TimeUnit repeatIntervalTimeUnit, long flexInterval, java.util.concurrent.TimeUnit flexIntervalTimeUnit);
+    method public androidx.work.PeriodicWorkRequest.Builder clearNextScheduleTimeOverride();
+    method public androidx.work.PeriodicWorkRequest.Builder setNextScheduleTimeOverride(long nextScheduleTimeOverrideMillis);
   }
 
   public static final class PeriodicWorkRequest.Companion {
diff --git a/work/work-runtime/src/androidTest/java/androidx/work/WorkSpecTest.java b/work/work-runtime/src/androidTest/java/androidx/work/WorkSpecTest.java
index ed0bb5f..ac9fe8b 100644
--- a/work/work-runtime/src/androidTest/java/androidx/work/WorkSpecTest.java
+++ b/work/work-runtime/src/androidTest/java/androidx/work/WorkSpecTest.java
@@ -20,6 +20,8 @@
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.Matchers.greaterThan;
 
+import static java.util.concurrent.TimeUnit.MILLISECONDS;
+
 import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
 import androidx.work.impl.model.WorkSpec;
@@ -28,27 +30,30 @@
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
-import java.util.concurrent.TimeUnit;
-
 @RunWith(AndroidJUnit4.class)
 public class WorkSpecTest extends WorkManagerTest {
     private static final long DEFAULT_INITIAL_DELAY_TIME_MS = 5000L;
-    private static final long DEFAULT_BACKOFF_DELAY_TIME_MS = 5000L;
-    private static final long DEFAULT_PERIOD_START_TIME = 10000L;
+    private static final long DEFAULT_BACKOFF_DELAY_TIME_MS =
+            WorkRequest.MIN_BACKOFF_MILLIS + 2000L;
+    private static final long DEFAULT_LAST_ENQUEUE_TIME_MS = 10000L;
     private static final long DEFAULT_FLEX_TIME_MS =
             PeriodicWorkRequest.MIN_PERIODIC_FLEX_MILLIS + 5000L;
     private static final long DEFAULT_INTERVAL_TIME_MS =
             PeriodicWorkRequest.MIN_PERIODIC_INTERVAL_MILLIS + 5000L;
+    private static final long DEFAULT_OVERRIDE_TIME_MS =
+            DEFAULT_LAST_ENQUEUE_TIME_MS + PeriodicWorkRequest.MIN_PERIODIC_INTERVAL_MILLIS + 6000L;
+    private static final long DEFAULT_OVERRIDE_TIME_SOONER_MS =
+            DEFAULT_LAST_ENQUEUE_TIME_MS + DEFAULT_INTERVAL_TIME_MS - 2000L;
 
     @Test
     @SmallTest
     public void testCalculateNextRunTime_firstRunAttempt_oneOff() {
         OneTimeWorkRequest work = new OneTimeWorkRequest.Builder(InfiniteTestWorker.class)
-                .setInitialDelay(DEFAULT_INITIAL_DELAY_TIME_MS, TimeUnit.MILLISECONDS)
-                .setLastEnqueueTime(DEFAULT_PERIOD_START_TIME, TimeUnit.MILLISECONDS)
+                .setInitialDelay(DEFAULT_INITIAL_DELAY_TIME_MS, MILLISECONDS)
+                .setLastEnqueueTime(DEFAULT_LAST_ENQUEUE_TIME_MS, MILLISECONDS)
                 .build();
         long actualDelay = work.getWorkSpec().calculateNextRunTime();
-        assertThat(actualDelay, is(DEFAULT_PERIOD_START_TIME + DEFAULT_INITIAL_DELAY_TIME_MS));
+        assertThat(actualDelay, is(DEFAULT_LAST_ENQUEUE_TIME_MS + DEFAULT_INITIAL_DELAY_TIME_MS));
     }
 
     @Test
@@ -57,15 +62,15 @@
         PeriodicWorkRequest periodicWork = new PeriodicWorkRequest.Builder(
                 InfiniteTestWorker.class,
                 DEFAULT_INTERVAL_TIME_MS,
-                TimeUnit.MILLISECONDS,
+                MILLISECONDS,
                 DEFAULT_FLEX_TIME_MS,
-                TimeUnit.MILLISECONDS)
-                .setLastEnqueueTime(DEFAULT_PERIOD_START_TIME, TimeUnit.MILLISECONDS)
+                MILLISECONDS)
+                .setLastEnqueueTime(DEFAULT_LAST_ENQUEUE_TIME_MS, MILLISECONDS)
                 .build();
 
         WorkSpec workSpec = periodicWork.getWorkSpec();
         long nextRunTime = workSpec.calculateNextRunTime();
-        assertThat(nextRunTime, is(DEFAULT_PERIOD_START_TIME
+        assertThat(nextRunTime, is(DEFAULT_LAST_ENQUEUE_TIME_MS
                 + DEFAULT_INTERVAL_TIME_MS - DEFAULT_FLEX_TIME_MS));
     }
 
@@ -75,16 +80,16 @@
         PeriodicWorkRequest periodicWork = new PeriodicWorkRequest.Builder(
                 InfiniteTestWorker.class,
                 DEFAULT_INTERVAL_TIME_MS,
-                TimeUnit.MILLISECONDS,
+                MILLISECONDS,
                 DEFAULT_INTERVAL_TIME_MS,
-                TimeUnit.MILLISECONDS)
-                .setLastEnqueueTime(DEFAULT_PERIOD_START_TIME, TimeUnit.MILLISECONDS)
+                MILLISECONDS)
+                .setLastEnqueueTime(DEFAULT_LAST_ENQUEUE_TIME_MS, MILLISECONDS)
                 .build();
 
         WorkSpec workSpec = periodicWork.getWorkSpec();
         long nextRunTime = workSpec.calculateNextRunTime();
         assertThat(nextRunTime,
-                is(DEFAULT_PERIOD_START_TIME));
+                is(DEFAULT_LAST_ENQUEUE_TIME_MS));
     }
 
     @Test
@@ -92,16 +97,16 @@
     public void testCalculateNextRunTime_nextRun_periodic_withFlexApplicable() {
         PeriodicWorkRequest periodicWork = new PeriodicWorkRequest.Builder(
                 InfiniteTestWorker.class,
-                DEFAULT_INTERVAL_TIME_MS, TimeUnit.MILLISECONDS,
-                DEFAULT_FLEX_TIME_MS, TimeUnit.MILLISECONDS)
-                .setLastEnqueueTime(DEFAULT_PERIOD_START_TIME, TimeUnit.MILLISECONDS)
+                DEFAULT_INTERVAL_TIME_MS, MILLISECONDS,
+                DEFAULT_FLEX_TIME_MS, MILLISECONDS)
+                .setLastEnqueueTime(DEFAULT_LAST_ENQUEUE_TIME_MS, MILLISECONDS)
                 .build();
 
         WorkSpec workSpec = periodicWork.getWorkSpec();
         workSpec.setPeriodCount(1);
         long nextRunTime = workSpec.calculateNextRunTime();
         assertThat(nextRunTime,
-                is(DEFAULT_PERIOD_START_TIME + DEFAULT_INTERVAL_TIME_MS));
+                is(DEFAULT_LAST_ENQUEUE_TIME_MS + DEFAULT_INTERVAL_TIME_MS));
     }
 
     @Test
@@ -110,16 +115,16 @@
         PeriodicWorkRequest periodicWork = new PeriodicWorkRequest.Builder(
                 InfiniteTestWorker.class,
                 DEFAULT_INTERVAL_TIME_MS,
-                TimeUnit.MILLISECONDS,
+                MILLISECONDS,
                 DEFAULT_INTERVAL_TIME_MS,
-                TimeUnit.MILLISECONDS)
-                .setLastEnqueueTime(DEFAULT_PERIOD_START_TIME, TimeUnit.MILLISECONDS)
+                MILLISECONDS)
+                .setLastEnqueueTime(DEFAULT_LAST_ENQUEUE_TIME_MS, MILLISECONDS)
                 .build();
 
         WorkSpec workSpec = periodicWork.getWorkSpec();
         workSpec.setPeriodCount(1);
         long nextRunTime = workSpec.calculateNextRunTime();
-        assertThat(nextRunTime, is(DEFAULT_PERIOD_START_TIME + DEFAULT_INTERVAL_TIME_MS));
+        assertThat(nextRunTime, is(DEFAULT_LAST_ENQUEUE_TIME_MS + DEFAULT_INTERVAL_TIME_MS));
     }
 
     @Test
@@ -128,15 +133,15 @@
         long delay = 10000L;
         PeriodicWorkRequest periodicWork = new PeriodicWorkRequest.Builder(
                 InfiniteTestWorker.class,
-                DEFAULT_INTERVAL_TIME_MS, TimeUnit.MILLISECONDS,
-                DEFAULT_INTERVAL_TIME_MS, TimeUnit.MILLISECONDS)
-                .setInitialDelay(delay, TimeUnit.MILLISECONDS)
-                .setLastEnqueueTime(DEFAULT_PERIOD_START_TIME, TimeUnit.MILLISECONDS)
+                DEFAULT_INTERVAL_TIME_MS, MILLISECONDS,
+                DEFAULT_INTERVAL_TIME_MS, MILLISECONDS)
+                .setInitialDelay(delay, MILLISECONDS)
+                .setLastEnqueueTime(DEFAULT_LAST_ENQUEUE_TIME_MS, MILLISECONDS)
                 .build();
 
         WorkSpec workSpec = periodicWork.getWorkSpec();
         long nextRunTime = workSpec.calculateNextRunTime();
-        assertThat(nextRunTime, is(DEFAULT_PERIOD_START_TIME + delay));
+        assertThat(nextRunTime, is(DEFAULT_LAST_ENQUEUE_TIME_MS + delay));
     }
 
     @Test
@@ -145,15 +150,15 @@
         long delay = 10000L;
         PeriodicWorkRequest periodicWork = new PeriodicWorkRequest.Builder(
                 InfiniteTestWorker.class,
-                DEFAULT_INTERVAL_TIME_MS, TimeUnit.MILLISECONDS,
-                DEFAULT_FLEX_TIME_MS, TimeUnit.MILLISECONDS)
-                .setInitialDelay(delay, TimeUnit.MILLISECONDS)
-                .setLastEnqueueTime(DEFAULT_PERIOD_START_TIME, TimeUnit.MILLISECONDS)
+                DEFAULT_INTERVAL_TIME_MS, MILLISECONDS,
+                DEFAULT_FLEX_TIME_MS, MILLISECONDS)
+                .setInitialDelay(delay, MILLISECONDS)
+                .setLastEnqueueTime(DEFAULT_LAST_ENQUEUE_TIME_MS, MILLISECONDS)
                 .build();
 
         WorkSpec workSpec = periodicWork.getWorkSpec();
         long nextRunTime = workSpec.calculateNextRunTime();
-        assertThat(nextRunTime, is(DEFAULT_PERIOD_START_TIME
+        assertThat(nextRunTime, is(DEFAULT_LAST_ENQUEUE_TIME_MS
                 + delay + DEFAULT_INTERVAL_TIME_MS - DEFAULT_FLEX_TIME_MS));
     }
 
@@ -164,25 +169,25 @@
                 .setBackoffCriteria(
                         BackoffPolicy.EXPONENTIAL,
                         DEFAULT_BACKOFF_DELAY_TIME_MS,
-                        TimeUnit.MILLISECONDS)
+                        MILLISECONDS)
                 .setInitialRunAttemptCount(1)
-                .setLastEnqueueTime(DEFAULT_PERIOD_START_TIME, TimeUnit.MILLISECONDS)
+                .setLastEnqueueTime(DEFAULT_LAST_ENQUEUE_TIME_MS, MILLISECONDS)
                 .build();
         OneTimeWorkRequest work2 = new OneTimeWorkRequest.Builder(InfiniteTestWorker.class)
                 .setBackoffCriteria(
                         BackoffPolicy.EXPONENTIAL,
                         DEFAULT_BACKOFF_DELAY_TIME_MS,
-                        TimeUnit.MILLISECONDS)
+                        MILLISECONDS)
                 .setInitialRunAttemptCount(2)
-                .setLastEnqueueTime(DEFAULT_PERIOD_START_TIME, TimeUnit.MILLISECONDS)
+                .setLastEnqueueTime(DEFAULT_LAST_ENQUEUE_TIME_MS, MILLISECONDS)
                 .build();
         OneTimeWorkRequest work3 = new OneTimeWorkRequest.Builder(InfiniteTestWorker.class)
                 .setBackoffCriteria(
                         BackoffPolicy.EXPONENTIAL,
                         DEFAULT_BACKOFF_DELAY_TIME_MS,
-                        TimeUnit.MILLISECONDS)
+                        MILLISECONDS)
                 .setInitialRunAttemptCount(3)
-                .setLastEnqueueTime(DEFAULT_PERIOD_START_TIME, TimeUnit.MILLISECONDS)
+                .setLastEnqueueTime(DEFAULT_LAST_ENQUEUE_TIME_MS, MILLISECONDS)
                 .build();
 
         long nextRunTime1 = work1.getWorkSpec().calculateNextRunTime();
@@ -203,25 +208,25 @@
                 .setBackoffCriteria(
                         BackoffPolicy.LINEAR,
                         DEFAULT_BACKOFF_DELAY_TIME_MS,
-                        TimeUnit.MILLISECONDS)
+                        MILLISECONDS)
                 .setInitialRunAttemptCount(1)
-                .setLastEnqueueTime(DEFAULT_PERIOD_START_TIME, TimeUnit.MILLISECONDS)
+                .setLastEnqueueTime(DEFAULT_LAST_ENQUEUE_TIME_MS, MILLISECONDS)
                 .build();
         OneTimeWorkRequest work2 = new OneTimeWorkRequest.Builder(InfiniteTestWorker.class)
                 .setBackoffCriteria(
                         BackoffPolicy.LINEAR,
                         DEFAULT_BACKOFF_DELAY_TIME_MS,
-                        TimeUnit.MILLISECONDS)
+                        MILLISECONDS)
                 .setInitialRunAttemptCount(2)
-                .setLastEnqueueTime(DEFAULT_PERIOD_START_TIME, TimeUnit.MILLISECONDS)
+                .setLastEnqueueTime(DEFAULT_LAST_ENQUEUE_TIME_MS, MILLISECONDS)
                 .build();
         OneTimeWorkRequest work3 = new OneTimeWorkRequest.Builder(InfiniteTestWorker.class)
                 .setBackoffCriteria(
                         BackoffPolicy.LINEAR,
                         DEFAULT_BACKOFF_DELAY_TIME_MS,
-                        TimeUnit.MILLISECONDS)
+                        MILLISECONDS)
                 .setInitialRunAttemptCount(3)
-                .setLastEnqueueTime(DEFAULT_PERIOD_START_TIME, TimeUnit.MILLISECONDS)
+                .setLastEnqueueTime(DEFAULT_LAST_ENQUEUE_TIME_MS, MILLISECONDS)
                 .build();
 
         long nextRunTime1 = work1.getWorkSpec().calculateNextRunTime();
@@ -241,12 +246,12 @@
                 .setBackoffCriteria(
                         BackoffPolicy.LINEAR,
                         WorkRequest.MAX_BACKOFF_MILLIS + 1,
-                        TimeUnit.MILLISECONDS)
+                        MILLISECONDS)
                 .setInitialRunAttemptCount(1)
-                .setLastEnqueueTime(DEFAULT_PERIOD_START_TIME, TimeUnit.MILLISECONDS)
+                .setLastEnqueueTime(DEFAULT_LAST_ENQUEUE_TIME_MS, MILLISECONDS)
                 .build();
         assertThat(work.getWorkSpec().calculateNextRunTime(),
-                is(DEFAULT_PERIOD_START_TIME + WorkRequest.MAX_BACKOFF_MILLIS));
+                is(DEFAULT_LAST_ENQUEUE_TIME_MS + WorkRequest.MAX_BACKOFF_MILLIS));
     }
 
     @Test
@@ -256,12 +261,185 @@
                 .setBackoffCriteria(
                         BackoffPolicy.EXPONENTIAL,
                         WorkRequest.MAX_BACKOFF_MILLIS + 1,
-                        TimeUnit.MILLISECONDS)
+                        MILLISECONDS)
                 .setInitialRunAttemptCount(1)
-                .setLastEnqueueTime(DEFAULT_PERIOD_START_TIME, TimeUnit.MILLISECONDS)
+                .setLastEnqueueTime(DEFAULT_LAST_ENQUEUE_TIME_MS, MILLISECONDS)
                 .build();
 
         assertThat(work.getWorkSpec().calculateNextRunTime(),
-                is(DEFAULT_PERIOD_START_TIME + WorkRequest.MAX_BACKOFF_MILLIS));
+                is(DEFAULT_LAST_ENQUEUE_TIME_MS + WorkRequest.MAX_BACKOFF_MILLIS));
+    }
+
+    @Test
+    @SmallTest
+    public void testNextScheduleTimeOverride_doesntChangeLastEnqueueTime() {
+        PeriodicWorkRequest periodicWork = new PeriodicWorkRequest.Builder(
+                InfiniteTestWorker.class,
+                DEFAULT_INTERVAL_TIME_MS, MILLISECONDS,
+                DEFAULT_FLEX_TIME_MS, MILLISECONDS)
+                .setLastEnqueueTime(DEFAULT_LAST_ENQUEUE_TIME_MS, MILLISECONDS)
+                .setNextScheduleTimeOverride(DEFAULT_OVERRIDE_TIME_SOONER_MS)
+                .build();
+
+        WorkSpec workSpec = periodicWork.getWorkSpec();
+        workSpec.setPeriodCount(0);
+        long lastEnqueueTime = workSpec.lastEnqueueTime;
+        assertThat(lastEnqueueTime,
+                is(DEFAULT_LAST_ENQUEUE_TIME_MS));
+    }
+
+    @Test
+    @SmallTest
+    public void testNextScheduleTimeOverride_doesntRespectFlex() {
+        PeriodicWorkRequest periodicWork = new PeriodicWorkRequest.Builder(
+                InfiniteTestWorker.class,
+                DEFAULT_INTERVAL_TIME_MS, MILLISECONDS,
+                12345, MILLISECONDS)
+                .setLastEnqueueTime(DEFAULT_LAST_ENQUEUE_TIME_MS, MILLISECONDS)
+                .setNextScheduleTimeOverride(DEFAULT_OVERRIDE_TIME_SOONER_MS)
+                .build();
+
+        WorkSpec workSpec = periodicWork.getWorkSpec();
+        workSpec.setPeriodCount(0);
+
+        assertThat(workSpec.calculateNextRunTime(),
+                // Flex doesn't adjust the schedule; we run at the override time
+                is(DEFAULT_OVERRIDE_TIME_SOONER_MS));
+    }
+
+    @Test
+    @SmallTest
+    public void testNextScheduleTimeOverride_firstRun() {
+        PeriodicWorkRequest periodicWork = new PeriodicWorkRequest.Builder(
+                InfiniteTestWorker.class,
+                DEFAULT_INTERVAL_TIME_MS, MILLISECONDS,
+                DEFAULT_FLEX_TIME_MS, MILLISECONDS)
+                .setLastEnqueueTime(DEFAULT_LAST_ENQUEUE_TIME_MS, MILLISECONDS)
+                .setNextScheduleTimeOverride(DEFAULT_OVERRIDE_TIME_SOONER_MS)
+                .build();
+
+        WorkSpec workSpec = periodicWork.getWorkSpec();
+        workSpec.setPeriodCount(0);
+        long nextRunTime = workSpec.calculateNextRunTime();
+        assertThat(nextRunTime,
+                is(DEFAULT_OVERRIDE_TIME_SOONER_MS));
+    }
+
+    @Test
+    @SmallTest
+    public void testNextScheduleTimeOverride_firstRun_allowsImmediateExecution() {
+        PeriodicWorkRequest periodicWork = new PeriodicWorkRequest.Builder(
+                InfiniteTestWorker.class,
+                DEFAULT_INTERVAL_TIME_MS, MILLISECONDS,
+                DEFAULT_FLEX_TIME_MS, MILLISECONDS)
+                .setLastEnqueueTime(DEFAULT_LAST_ENQUEUE_TIME_MS, MILLISECONDS)
+                .setNextScheduleTimeOverride(DEFAULT_LAST_ENQUEUE_TIME_MS)
+                .build();
+
+        WorkSpec workSpec = periodicWork.getWorkSpec();
+        workSpec.setPeriodCount(0); // Only for the first run may minimum period be ignored.
+        long nextRunTime = workSpec.calculateNextRunTime();
+        assertThat(nextRunTime,
+                is(DEFAULT_LAST_ENQUEUE_TIME_MS));
+    }
+
+    @Test
+    @SmallTest
+    public void testNextScheduleTimeOverride_firstRun_allowsScheduleInPast() {
+        PeriodicWorkRequest periodicWork = new PeriodicWorkRequest.Builder(
+                InfiniteTestWorker.class,
+                DEFAULT_INTERVAL_TIME_MS, MILLISECONDS,
+                DEFAULT_FLEX_TIME_MS, MILLISECONDS)
+                .setLastEnqueueTime(DEFAULT_LAST_ENQUEUE_TIME_MS, MILLISECONDS)
+                .setNextScheduleTimeOverride(DEFAULT_LAST_ENQUEUE_TIME_MS - 2000L)
+                .build();
+
+        WorkSpec workSpec = periodicWork.getWorkSpec();
+        workSpec.setPeriodCount(0); // Only for the first run may minimum period be ignored.
+        long nextRunTime = workSpec.calculateNextRunTime();
+
+        // The override may be in the past. This would result in immediate execution.
+        assertThat(nextRunTime,
+                is(DEFAULT_LAST_ENQUEUE_TIME_MS - 2000L));
+    }
+
+    @Test
+    @SmallTest
+    public void testCalculateNextRunTime_nextRun_minimumDelay_met() {
+        PeriodicWorkRequest periodicWork = new PeriodicWorkRequest.Builder(
+                InfiniteTestWorker.class,
+                DEFAULT_INTERVAL_TIME_MS, MILLISECONDS,
+                DEFAULT_FLEX_TIME_MS, MILLISECONDS)
+                .setLastEnqueueTime(DEFAULT_LAST_ENQUEUE_TIME_MS, MILLISECONDS)
+                .setNextScheduleTimeOverride(DEFAULT_OVERRIDE_TIME_SOONER_MS)
+                .build();
+
+        WorkSpec workSpec = periodicWork.getWorkSpec();
+        workSpec.setPeriodCount(1);
+
+        long nextRunTime = workSpec.calculateNextRunTime();
+        assertThat(nextRunTime,
+                // Rescheduling for a sooner-than-period time is ok, as long as it's later than the
+                // global minimum period.
+                is(DEFAULT_OVERRIDE_TIME_SOONER_MS));
+    }
+
+    @Test
+    @SmallTest
+    public void testCalculateNextRunTime_nextRun_minimumDelay_clamped() {
+        PeriodicWorkRequest periodicWork = new PeriodicWorkRequest.Builder(
+                InfiniteTestWorker.class,
+                DEFAULT_INTERVAL_TIME_MS, MILLISECONDS,
+                DEFAULT_FLEX_TIME_MS, MILLISECONDS)
+                .setLastEnqueueTime(DEFAULT_LAST_ENQUEUE_TIME_MS, MILLISECONDS)
+                .setNextScheduleTimeOverride(DEFAULT_LAST_ENQUEUE_TIME_MS)
+                .build();
+
+        WorkSpec workSpec = periodicWork.getWorkSpec();
+        workSpec.setPeriodCount(1);
+
+        long nextRunTime = workSpec.calculateNextRunTime();
+        assertThat(nextRunTime,
+                // For subsequent runs, the minimum period interval is enforced.
+                is(DEFAULT_LAST_ENQUEUE_TIME_MS
+                        + PeriodicWorkRequest.MIN_PERIODIC_INTERVAL_MILLIS));
+    }
+
+    @Test
+    @SmallTest
+    public void testCalculateNextRunTime_oneTimeWork_nextScheduleTimeOverride_doesNothing() {
+        OneTimeWorkRequest work = new OneTimeWorkRequest.Builder(InfiniteTestWorker.class)
+                .setInitialDelay(DEFAULT_INITIAL_DELAY_TIME_MS, MILLISECONDS)
+                .setLastEnqueueTime(DEFAULT_LAST_ENQUEUE_TIME_MS, MILLISECONDS)
+                .build();
+        // Directly set somehow. Still shouldn't work.
+        work.getWorkSpec().setNextScheduleTimeOverride(DEFAULT_OVERRIDE_TIME_MS);
+
+        assertThat(work.getWorkSpec().calculateNextRunTime(),
+                is(DEFAULT_LAST_ENQUEUE_TIME_MS + DEFAULT_INITIAL_DELAY_TIME_MS));
+    }
+
+    @Test
+    @SmallTest
+    public void testCalculateNextRunTime_backOffSet_overrideTakesPriority() {
+        PeriodicWorkRequest work = new PeriodicWorkRequest.Builder(
+                InfiniteTestWorker.class, DEFAULT_INTERVAL_TIME_MS, MILLISECONDS)
+                .setBackoffCriteria(
+                        BackoffPolicy.LINEAR,
+                        DEFAULT_BACKOFF_DELAY_TIME_MS,
+                        MILLISECONDS)
+                .setLastEnqueueTime(DEFAULT_LAST_ENQUEUE_TIME_MS, MILLISECONDS)
+                .build();
+        work.getWorkSpec().setPeriodCount(2);
+        work.getWorkSpec().runAttemptCount = 1;
+        // During the run of a worker, if override is set, then the Worker returns Result.retry().
+        // The override must take priority, but the runAttemptCount must be maintained, so if
+        // clearOverride() is later called, the original backoff would be respected.
+        work.getWorkSpec().setNextScheduleTimeOverride(DEFAULT_OVERRIDE_TIME_MS);
+
+        // The override should be respected, while the runCount value is preserved but ignored.
+        assertThat(work.getWorkSpec().calculateNextRunTime(),
+                is(DEFAULT_OVERRIDE_TIME_MS));
+        assertThat(work.getWorkSpec().runAttemptCount, is(1));
     }
 }
diff --git a/work/work-runtime/src/androidTest/java/androidx/work/WorkUpdateTest.kt b/work/work-runtime/src/androidTest/java/androidx/work/WorkUpdateTest.kt
index ddc15f0..1eacdd5 100644
--- a/work/work-runtime/src/androidTest/java/androidx/work/WorkUpdateTest.kt
+++ b/work/work-runtime/src/androidTest/java/androidx/work/WorkUpdateTest.kt
@@ -23,6 +23,7 @@
 import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.filters.MediumTest
 import androidx.test.filters.SdkSuppress
+import androidx.test.filters.SmallTest
 import androidx.work.WorkInfo.State
 import androidx.work.WorkManager.UpdateResult.APPLIED_FOR_NEXT_RUN
 import androidx.work.WorkManager.UpdateResult.APPLIED_IMMEDIATELY
@@ -35,6 +36,7 @@
 import androidx.work.impl.constraints.ConstraintsState.ConstraintsMet
 import androidx.work.impl.constraints.trackers.Trackers
 import androidx.work.impl.testutils.TestConstraintTracker
+import androidx.work.impl.testutils.TestOverrideClock
 import androidx.work.impl.testutils.TrackingWorkerFactory
 import androidx.work.impl.utils.taskexecutor.TaskExecutor
 import androidx.work.impl.utils.taskexecutor.WorkManagerTaskExecutor
@@ -49,6 +51,8 @@
 import java.util.concurrent.ExecutionException
 import java.util.concurrent.Executors
 import java.util.concurrent.TimeUnit
+import java.util.concurrent.TimeUnit.DAYS
+import java.util.concurrent.TimeUnit.HOURS
 import org.junit.After
 import org.junit.Test
 import org.junit.runner.RunWith
@@ -57,7 +61,9 @@
 class WorkUpdateTest {
     val context = ApplicationProvider.getApplicationContext<Context>()
     val workerFactory = TrackingWorkerFactory()
-    val configuration = Configuration.Builder().setWorkerFactory(workerFactory).build()
+    val testClock = TestOverrideClock()
+    val configuration =
+        Configuration.Builder().setClock(testClock).setWorkerFactory(workerFactory).build()
     val executor = Executors.newSingleThreadExecutor()
     val taskExecutor = WorkManagerTaskExecutor(executor)
     val fakeChargingTracker = TestConstraintTracker(false, context, taskExecutor)
@@ -148,13 +154,13 @@
     @MediumTest
     fun updateTags() {
         val oneTimeWorkRequest = OneTimeWorkRequest.Builder(TestWorker::class.java)
-            .setInitialDelay(10, TimeUnit.DAYS)
+            .setInitialDelay(10, DAYS)
             .addTag("previous")
             .build()
         workManager.enqueue(oneTimeWorkRequest).result.get()
 
         val updatedWorkRequest = OneTimeWorkRequest.Builder(TestWorker::class.java)
-            .setInitialDelay(10, TimeUnit.DAYS)
+            .setInitialDelay(10, DAYS)
             .setId(oneTimeWorkRequest.id)
             .addTag("test")
             .build()
@@ -336,7 +342,7 @@
             .setConstraints(Constraints(requiresCharging = true)).build()
         workManager.enqueue(request).result.get()
         val updatedRequest =
-            PeriodicWorkRequest.Builder(TestWorker::class.java, 1, TimeUnit.DAYS)
+            PeriodicWorkRequest.Builder(TestWorker::class.java, 1, DAYS)
                 .build()
         try {
             workManager.updateWork(updatedRequest).get()
@@ -350,7 +356,7 @@
     @MediumTest
     fun periodicWorkToOneTime() {
         // requiresCharging constraint is faked, so it will never be satisfied
-        val request = PeriodicWorkRequest.Builder(TestWorker::class.java, 1, TimeUnit.DAYS)
+        val request = PeriodicWorkRequest.Builder(TestWorker::class.java, 1, DAYS)
             .setConstraints(Constraints(requiresCharging = true))
             .build()
         workManager.enqueue(request).result.get()
@@ -366,11 +372,11 @@
     @Test
     @MediumTest
     fun updateRunningPeriodicWorkRequest() {
-        val request = PeriodicWorkRequest.Builder(LatchWorker::class.java, 1, TimeUnit.DAYS)
+        val request = PeriodicWorkRequest.Builder(LatchWorker::class.java, 1, DAYS)
             .addTag("original").build()
         workManager.enqueue(request).result.get()
         val updatedRequest =
-            PeriodicWorkRequest.Builder(LatchWorker::class.java, 1, TimeUnit.DAYS)
+            PeriodicWorkRequest.Builder(LatchWorker::class.java, 1, DAYS)
                 .setId(request.id).addTag("updated").build()
         val worker = workerFactory.awaitWorker(request.id) as LatchWorker
         assertThat(workManager.updateWork(updatedRequest).get()).isEqualTo(APPLIED_FOR_NEXT_RUN)
@@ -400,7 +406,7 @@
     @MediumTest
     @Test
     fun updatePeriodicWorkAfterFirstPeriod() {
-        val request = PeriodicWorkRequest.Builder(TestWorker::class.java, 1, TimeUnit.DAYS)
+        val request = PeriodicWorkRequest.Builder(TestWorker::class.java, 1, DAYS)
             .addTag("original").build()
         val onExecutedLatch = CountDownLatch(1)
         processor.addExecutionListener { id, _ ->
@@ -411,7 +417,7 @@
         workManager.awaitReenqueued(request.id)
 
         val updatedRequest =
-            PeriodicWorkRequest.Builder(TestWorker::class.java, 1, TimeUnit.DAYS)
+            PeriodicWorkRequest.Builder(TestWorker::class.java, 1, DAYS)
                 // requiresCharging constraint is faked, so it will never be satisfied
                 .setConstraints(Constraints(requiresCharging = true))
                 .setId(request.id).addTag("updated").build()
@@ -429,7 +435,7 @@
     @Test
     fun updateRetryingOneTimeWork() {
         val request = OneTimeWorkRequest.Builder(RetryWorker::class.java)
-            .setBackoffCriteria(BackoffPolicy.LINEAR, 10, TimeUnit.DAYS)
+            .setBackoffCriteria(BackoffPolicy.LINEAR, 10, DAYS)
             .build()
         workManager.enqueue(request)
         // await worker to be created
@@ -445,7 +451,7 @@
             spec.lastEnqueueTime - delta
         )
         val updated = OneTimeWorkRequest.Builder(TestWorker::class.java).setId(request.id)
-            .setBackoffCriteria(BackoffPolicy.LINEAR, 10, TimeUnit.DAYS)
+            .setBackoffCriteria(BackoffPolicy.LINEAR, 10, DAYS)
             .build()
         workManager.updateWork(updated).get()
         workManager.awaitSuccess(request.id)
@@ -482,10 +488,10 @@
     @SdkSuppress(minSdkVersion = 23, maxSdkVersion = 25)
     fun testUpdatePeriodicWorker_preservesConstraintTrackingWorker() {
         val originRequest = OneTimeWorkRequest.Builder(TestWorker::class.java)
-            .setInitialDelay(10, TimeUnit.HOURS).build()
+            .setInitialDelay(10, HOURS).build()
         workManager.enqueue(originRequest).result.get()
         val updateRequest = OneTimeWorkRequest.Builder(RetryWorker::class.java)
-            .setId(originRequest.id).setInitialDelay(10, TimeUnit.HOURS)
+            .setId(originRequest.id).setInitialDelay(10, HOURS)
             .setConstraints(Constraints(requiresBatteryNotLow = true))
             .build()
         workManager.updateWork(updateRequest).get()
@@ -499,7 +505,7 @@
     @MediumTest
     fun updateWorkerGeneration() {
         val oneTimeWorkRequest = OneTimeWorkRequest.Builder(WorkerWithParam::class.java)
-            .setInitialDelay(10, TimeUnit.DAYS)
+            .setInitialDelay(10, DAYS)
             .build()
         workManager.enqueue(oneTimeWorkRequest).result.get()
 
@@ -514,6 +520,152 @@
         assertThat(workInfo.generation).isEqualTo(1)
     }
 
+    @Test
+    @SmallTest
+    fun updateNextScheduleTimeOverride() {
+        testClock.currentTimeMillis = HOURS.toMillis(5)
+        val nextRunTimeMillis = HOURS.toMillis(10)
+
+        val request = PeriodicWorkRequest.Builder(
+            TestWorker::class.java, 1, DAYS
+        ).setInitialDelay(2, DAYS).build()
+        workManager.enqueue(request).result.get()
+
+        workManager.updateWork(
+            PeriodicWorkRequest.Builder(
+                TestWorker::class.java, 1, DAYS
+            ).setId(request.id)
+                .setNextScheduleTimeOverride(nextRunTimeMillis)
+                .build()
+        ).get()
+
+        val workInfo = workManager.getWorkInfoById(request.id).get()
+        assertThat(workInfo.nextScheduleTimeMillis).isEqualTo(nextRunTimeMillis)
+    }
+
+    @Test
+    @SmallTest
+    fun updateNextScheduleTimeOverride_multipleGenerations() {
+        testClock.currentTimeMillis = HOURS.toMillis(5)
+        val overrideScheduleTimeMillis = HOURS.toMillis(10)
+        val overrideScheduleTimeMillis2 = HOURS.toMillis(12)
+
+        val request = PeriodicWorkRequest.Builder(
+            TestWorker::class.java, 1, DAYS
+        ).setInitialDelay(2, DAYS).build()
+        workManager.enqueue(request).result.get()
+
+        workManager.updateWork(
+            PeriodicWorkRequest.Builder(
+                TestWorker::class.java, 1, DAYS
+            ).setId(request.id)
+                .setNextScheduleTimeOverride(overrideScheduleTimeMillis)
+                .build()
+        ).get()
+        val workInfo = workManager.getWorkInfoById(request.id).get()
+        assertThat(workInfo.nextScheduleTimeMillis).isEqualTo(overrideScheduleTimeMillis)
+
+        workManager.updateWork(
+            PeriodicWorkRequest.Builder(
+                TestWorker::class.java, 1, DAYS
+            ).setId(request.id)
+                .setNextScheduleTimeOverride(overrideScheduleTimeMillis2)
+                .build()
+        ).get()
+
+        val workInfo2 = workManager.getWorkInfoById(request.id).get()
+        assertThat(workInfo2.nextScheduleTimeMillis).isEqualTo(overrideScheduleTimeMillis2)
+    }
+
+    @Test
+    @SmallTest
+    fun updateNextScheduleTimeOverride_overridesBackoff() {
+        testClock.currentTimeMillis = HOURS.toMillis(5)
+        val overrideScheduleTimeMillis = HOURS.toMillis(10)
+
+        val request = PeriodicWorkRequest.Builder(
+            TestWorker::class.java, 1, DAYS
+        ).setBackoffCriteria(BackoffPolicy.LINEAR, HOURS.toMillis(1), HOURS)
+            .setInitialDelay(2, DAYS)
+            .build()
+        request.workSpec.runAttemptCount = 1
+        workManager.enqueue(request).result.get()
+
+        workManager.updateWork(
+            PeriodicWorkRequest.Builder(
+                TestWorker::class.java, 1, DAYS
+            ).setId(request.id)
+                .setNextScheduleTimeOverride(overrideScheduleTimeMillis)
+                .build()
+        ).get()
+
+        val workInfo = workManager.getWorkInfoById(request.id).get()
+        assertThat(workInfo.nextScheduleTimeMillis).isEqualTo(overrideScheduleTimeMillis)
+        val workSpec = db.workSpecDao().getWorkSpec(request.stringId)!!
+        // attemptCount is still kept, just not used in the schedule time calculation.
+        assertThat(workSpec.runAttemptCount).isEqualTo(1)
+    }
+
+    @Test
+    @SmallTest
+    fun clearNextScheduleTimeOverride_incrementGeneration() {
+        testClock.currentTimeMillis = HOURS.toMillis(5)
+        val overrideScheduleTimeMillis = HOURS.toMillis(10)
+
+        val request = PeriodicWorkRequest.Builder(
+            TestWorker::class.java, 1, DAYS
+        ).setInitialDelay(2, DAYS)
+            .setNextScheduleTimeOverride(overrideScheduleTimeMillis)
+            .build()
+        workManager.enqueue(request).result.get()
+
+        workManager.updateWork(
+            PeriodicWorkRequest.Builder(
+                TestWorker::class.java, 1, DAYS
+            ).setId(request.id)
+                .clearNextScheduleTimeOverride()
+                .setInitialDelay(2, DAYS)
+                .build()
+        ).get()
+
+        val workInfo = workManager.getWorkInfoById(request.id).get()
+        assertThat(workInfo.nextScheduleTimeMillis).isEqualTo(
+            testClock.currentTimeMillis + DAYS.toMillis(2)
+        )
+
+        val workSpec = db.workSpecDao().getWorkSpec(request.stringId)!!
+        assertThat(workSpec.nextScheduleTimeOverride).isEqualTo(Long.MAX_VALUE)
+        // Still needs to increment the generation to propagate the new cleared value.
+        assertThat(workSpec.nextScheduleTimeOverrideGeneration).isEqualTo(2)
+    }
+
+    @Test
+    @SmallTest
+    fun clearNextScheduleTimeOverride_noExistingOverride_incrementGenerationAnyway() {
+        testClock.currentTimeMillis = HOURS.toMillis(5)
+
+        val request = PeriodicWorkRequest.Builder(
+            TestWorker::class.java, 1, DAYS
+        ).setInitialDelay(2, DAYS).build()
+        workManager.enqueue(request).result.get()
+
+        workManager.updateWork(
+            PeriodicWorkRequest.Builder(
+                TestWorker::class.java, 1, DAYS
+            ).setId(request.id)
+                .clearNextScheduleTimeOverride()
+                .build()
+        ).get()
+
+        val workSpec = db.workSpecDao().getWorkSpec(request.stringId)!!
+        assertThat(workSpec.nextScheduleTimeOverride).isEqualTo(Long.MAX_VALUE)
+
+        // Technically I believe any 'clear' call could leave the generation the same, since it's
+        // only being checked to see if WorkerWrapper should _clear_ it after running. But this is
+        // a simpler implementation, so verify it anyway.
+        assertThat(workSpec.nextScheduleTimeOverrideGeneration).isEqualTo(1)
+    }
+
     @After
     fun tearDown() {
         workManager.cancelAllWork()
diff --git a/work/work-runtime/src/androidTest/java/androidx/work/impl/WorkManagerImplTest.java b/work/work-runtime/src/androidTest/java/androidx/work/impl/WorkManagerImplTest.java
index 351af86..e522280 100644
--- a/work/work-runtime/src/androidTest/java/androidx/work/impl/WorkManagerImplTest.java
+++ b/work/work-runtime/src/androidTest/java/androidx/work/impl/WorkManagerImplTest.java
@@ -48,6 +48,7 @@
 import static org.hamcrest.Matchers.greaterThanOrEqualTo;
 import static org.hamcrest.Matchers.isIn;
 import static org.hamcrest.Matchers.isOneOf;
+import static org.junit.Assert.assertThrows;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.atLeastOnce;
@@ -60,6 +61,9 @@
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+import static java.util.concurrent.TimeUnit.MILLISECONDS;
+import static java.util.concurrent.TimeUnit.MINUTES;
+
 import android.content.ComponentName;
 import android.content.Context;
 import android.content.ContextWrapper;
@@ -85,18 +89,19 @@
 import androidx.test.filters.SmallTest;
 import androidx.testutils.RepeatRule;
 import androidx.work.BackoffPolicy;
-import androidx.work.Clock;
 import androidx.work.Configuration;
 import androidx.work.Constraints;
 import androidx.work.Constraints.ContentUriTrigger;
 import androidx.work.Data;
 import androidx.work.ExistingPeriodicWorkPolicy;
+import androidx.work.ListenableWorker;
 import androidx.work.OneTimeWorkRequest;
 import androidx.work.PeriodicWorkRequest;
 import androidx.work.WorkContinuation;
 import androidx.work.WorkInfo;
 import androidx.work.WorkManager;
 import androidx.work.WorkRequest;
+import androidx.work.WorkerFactory;
 import androidx.work.impl.background.greedy.GreedyScheduler;
 import androidx.work.impl.background.systemalarm.RescheduleReceiver;
 import androidx.work.impl.constraints.trackers.Trackers;
@@ -107,9 +112,11 @@
 import androidx.work.impl.model.WorkSpecDao;
 import androidx.work.impl.model.WorkTag;
 import androidx.work.impl.model.WorkTagDao;
+import androidx.work.impl.testutils.TestOverrideClock;
 import androidx.work.impl.utils.CancelWorkRunnable;
 import androidx.work.impl.utils.ForceStopRunnable;
 import androidx.work.impl.utils.PreferenceUtils;
+import androidx.work.impl.utils.SynchronousExecutor;
 import androidx.work.impl.utils.taskexecutor.InstantWorkTaskExecutor;
 import androidx.work.impl.workers.ConstraintTrackingWorker;
 import androidx.work.impl.workers.ConstraintTrackingWorkerKt;
@@ -117,6 +124,8 @@
 import androidx.work.worker.StopAwareWorker;
 import androidx.work.worker.TestWorker;
 
+import com.google.common.util.concurrent.Futures;
+
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Rule;
@@ -124,7 +133,6 @@
 import org.junit.runner.RunWith;
 import org.mockito.ArgumentCaptor;
 
-import java.time.Duration;
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.HashSet;
@@ -142,7 +150,7 @@
 
     private Context mContext;
     private Configuration mConfiguration;
-    private OverrideClock mClock = new OverrideClock();
+    private TestOverrideClock mClock = new TestOverrideClock();
     private WorkDatabase mDatabase;
     private Scheduler mScheduler;
     private WorkManagerImpl mWorkManagerImpl;
@@ -173,6 +181,7 @@
                 .setExecutor(Executors.newSingleThreadExecutor())
                 .setClock(mClock)
                 .setMinimumLoggingLevel(Log.DEBUG)
+                .setWorkerFactory(spy(WorkerFactory.class))
                 .build();
         InstantWorkTaskExecutor workTaskExecutor = new InstantWorkTaskExecutor();
         mWorkManagerImpl = spy(createWorkManager(mContext, mConfiguration, workTaskExecutor));
@@ -436,9 +445,9 @@
     public void testEnqueue_insertWorkInitialDelay()
             throws ExecutionException, InterruptedException {
 
-        final long expectedInitialDelay = 5000L;
+        final long expectedInitialDelayMillis = 5000L;
         OneTimeWorkRequest work0 = new OneTimeWorkRequest.Builder(TestWorker.class)
-                .setInitialDelay(expectedInitialDelay, TimeUnit.MILLISECONDS)
+                .setInitialDelay(expectedInitialDelayMillis, MILLISECONDS)
                 .build();
         OneTimeWorkRequest work1 = new OneTimeWorkRequest.Builder(TestWorker.class).build();
         mWorkManagerImpl.beginWith(work0).then(work1).enqueue().getResult().get();
@@ -446,7 +455,7 @@
         WorkSpec workSpec0 = mDatabase.workSpecDao().getWorkSpec(work0.getStringId());
         WorkSpec workSpec1 = mDatabase.workSpecDao().getWorkSpec(work1.getStringId());
 
-        assertThat(workSpec0.initialDelay, is(expectedInitialDelay));
+        assertThat(workSpec0.initialDelay, is(expectedInitialDelayMillis));
         assertThat(workSpec1.initialDelay, is(0L));
     }
 
@@ -456,7 +465,7 @@
             throws ExecutionException, InterruptedException {
 
         OneTimeWorkRequest work0 = new OneTimeWorkRequest.Builder(TestWorker.class)
-                .setBackoffCriteria(BackoffPolicy.LINEAR, 50000, TimeUnit.MILLISECONDS)
+                .setBackoffCriteria(BackoffPolicy.LINEAR, 50000, MILLISECONDS)
                 .build();
         OneTimeWorkRequest work1 = new OneTimeWorkRequest.Builder(TestWorker.class).build();
         mWorkManagerImpl.beginWith(work0).then(work1).enqueue().getResult().get();
@@ -503,7 +512,7 @@
         PeriodicWorkRequest periodicWork = new PeriodicWorkRequest.Builder(
                 TestWorker.class,
                 PeriodicWorkRequest.MIN_PERIODIC_INTERVAL_MILLIS,
-                TimeUnit.MILLISECONDS)
+                MILLISECONDS)
                 .build();
 
         mWorkManagerImpl.enqueue(Collections.singletonList(periodicWork))
@@ -538,7 +547,7 @@
         PeriodicWorkRequest periodicWork = new PeriodicWorkRequest.Builder(
                 TestWorker.class,
                 PeriodicWorkRequest.MIN_PERIODIC_INTERVAL_MILLIS,
-                TimeUnit.MILLISECONDS)
+                MILLISECONDS)
                 .build();
         assertThat(periodicWork.getWorkSpec().lastEnqueueTime, is(0L));
         // Disable the greedy scheduler in this test. This is because sometimes the Worker
@@ -583,7 +592,7 @@
         PeriodicWorkRequest periodicWork = new PeriodicWorkRequest.Builder(
                 TestWorker.class,
                 15L,
-                TimeUnit.MINUTES)
+                MINUTES)
                 .build();
         mWorkManagerImpl.enqueueUniquePeriodicWork(
                 uniqueName,
@@ -638,7 +647,7 @@
         PeriodicWorkRequest originalWork = new PeriodicWorkRequest.Builder(
                 InfiniteTestWorker.class,
                 15L,
-                TimeUnit.MINUTES)
+                MINUTES)
                 .build();
         insertNamedWorks(uniqueName, originalWork);
 
@@ -648,7 +657,7 @@
         PeriodicWorkRequest replacementWork = new PeriodicWorkRequest.Builder(
                 TestWorker.class,
                 30L,
-                TimeUnit.MINUTES)
+                MINUTES)
                 .build();
         mWorkManagerImpl.enqueueUniquePeriodicWork(
                 uniqueName,
@@ -707,7 +716,7 @@
         PeriodicWorkRequest originalWork = new PeriodicWorkRequest.Builder(
                 InfiniteTestWorker.class,
                 15L,
-                TimeUnit.MINUTES)
+                MINUTES)
                 .build();
         insertNamedWorks(uniqueName, originalWork);
 
@@ -717,7 +726,7 @@
         PeriodicWorkRequest replacementWork = new PeriodicWorkRequest.Builder(
                 TestWorker.class,
                 30L,
-                TimeUnit.MINUTES)
+                MINUTES)
                 .build();
         mWorkManagerImpl.enqueueUniquePeriodicWork(
                 uniqueName,
@@ -776,7 +785,7 @@
         PeriodicWorkRequest originalWork = new PeriodicWorkRequest.Builder(
                 InfiniteTestWorker.class,
                 15L,
-                TimeUnit.MINUTES)
+                MINUTES)
                 .setInitialState(SUCCEEDED)
                 .build();
         insertNamedWorks(uniqueName, originalWork);
@@ -787,7 +796,7 @@
         PeriodicWorkRequest replacementWork = new PeriodicWorkRequest.Builder(
                 TestWorker.class,
                 30L,
-                TimeUnit.MINUTES)
+                MINUTES)
                 .build();
         mWorkManagerImpl.enqueueUniquePeriodicWork(
                 uniqueName,
@@ -811,8 +820,8 @@
         PeriodicWorkRequest originalWork = new PeriodicWorkRequest.Builder(
                 InfiniteTestWorker.class,
                 15L,
-                TimeUnit.MINUTES)
-                .setLastEnqueueTime(enqueueTime, TimeUnit.MILLISECONDS)
+                MINUTES)
+                .setLastEnqueueTime(enqueueTime, MILLISECONDS)
                 .setInitialState(ENQUEUED)
                 .build();
         insertNamedWorks(uniqueName, originalWork);
@@ -823,7 +832,7 @@
         PeriodicWorkRequest replacementWork = new PeriodicWorkRequest.Builder(
                 TestWorker.class,
                 30L,
-                TimeUnit.MINUTES)
+                MINUTES)
                 .build();
         mWorkManagerImpl.enqueueUniquePeriodicWork(
                 uniqueName,
@@ -836,7 +845,7 @@
         WorkSpecDao workSpecDao = mDatabase.workSpecDao();
         WorkSpec workSpec = workSpecDao.getWorkSpec(originalWork.getStringId());
         assertThat(workSpec.lastEnqueueTime, is(enqueueTime));
-        assertThat(workSpec.intervalDuration, is(TimeUnit.MINUTES.toMillis(30)));
+        assertThat(workSpec.intervalDuration, is(MINUTES.toMillis(30)));
     }
 
     @Test
@@ -847,7 +856,7 @@
         PeriodicWorkRequest originalWork = new PeriodicWorkRequest.Builder(
                 InfiniteTestWorker.class,
                 15L,
-                TimeUnit.MINUTES)
+                MINUTES)
                 .setInitialState(CANCELLED)
                 .build();
         insertNamedWorks(uniqueName, originalWork);
@@ -858,7 +867,7 @@
         PeriodicWorkRequest replacementWork = new PeriodicWorkRequest.Builder(
                 TestWorker.class,
                 30L,
-                TimeUnit.MINUTES)
+                MINUTES)
                 .build();
         mWorkManagerImpl.enqueueUniquePeriodicWork(
                 uniqueName,
@@ -876,7 +885,7 @@
         PeriodicWorkRequest replacementWork = new PeriodicWorkRequest.Builder(
                 TestWorker.class,
                 30L,
-                TimeUnit.MINUTES)
+                MINUTES)
                 .build();
         mWorkManagerImpl.enqueueUniquePeriodicWork(
                 uniqueName,
@@ -897,7 +906,7 @@
         PeriodicWorkRequest replacementWork = new PeriodicWorkRequest.Builder(
                 TestWorker.class,
                 30L,
-                TimeUnit.MINUTES)
+                MINUTES)
                 .build();
         try {
             mWorkManagerImpl.enqueueUniquePeriodicWork(uniqueName,
@@ -909,6 +918,172 @@
     }
 
     @Test
+    @SmallTest
+    public void testOverrideNextSchedule_selfRescheduleWorker_update()
+            throws ExecutionException, InterruptedException {
+        final String uniqueName = "TestWorker";
+        ListenableWorker testWorker = mock(ListenableWorker.class);
+        setupTestOverrideScheduleWorker(uniqueName, testWorker,
+                ExistingPeriodicWorkPolicy.UPDATE);
+
+        when(mWorkManagerImpl.getSchedulers()).thenReturn(Collections.singletonList(mScheduler));
+        when(mConfiguration.getWorkerFactory().createWorker(any(),
+                eq(ListenableWorker.class.getName()), any())).thenReturn(testWorker);
+        mClock.currentTimeMillis = TimeUnit.HOURS.toMillis(1);
+
+        PeriodicWorkRequest periodicWorkRequest =
+                new PeriodicWorkRequest.Builder(ListenableWorker.class, 1, TimeUnit.HOURS)
+                        .build();
+
+        // Runs immediately (periodic worker first run is instant)
+        mWorkManagerImpl.enqueueUniquePeriodicWork(uniqueName,
+                ExistingPeriodicWorkPolicy.UPDATE, periodicWorkRequest).getResult().get();
+
+        // Next run should be scheduled for T=10 hours, according to the Worker's override.
+        // Uses the same Id as before.
+        WorkInfo workInfo = mWorkManagerImpl
+                .getWorkInfoById(periodicWorkRequest.getId()).get();
+        assertThat(
+                workInfo.getNextScheduleTimeMillis(),
+                equalTo(TimeUnit.HOURS.toMillis(10)));
+
+        // Previous run completed successfully.
+        assertThat(
+                workInfo.getRunAttemptCount(),
+                equalTo(0));
+    }
+
+    @Test
+    @SmallTest
+    public void testOverrideNextSchedule_cancelAndReenqueue_fails()
+            throws ExecutionException, InterruptedException {
+        final String uniqueName = "TestWorker";
+        ListenableWorker testWorker = mock(ListenableWorker.class);
+
+        when(mWorkManagerImpl.getSchedulers()).thenReturn(Collections.singletonList(mScheduler));
+        when(mConfiguration.getWorkerFactory().createWorker(any(),
+                eq(ListenableWorker.class.getName()), any())).thenReturn(testWorker);
+        mClock.currentTimeMillis = TimeUnit.HOURS.toMillis(1);
+
+        PeriodicWorkRequest periodicWorkRequest =
+                new PeriodicWorkRequest.Builder(ListenableWorker.class, 1, TimeUnit.HOURS)
+                        .setNextScheduleTimeOverride(123456)
+                        .build();
+
+        assertThrows(IllegalArgumentException.class, () ->
+                mWorkManagerImpl.enqueueUniquePeriodicWork(uniqueName,
+                        ExistingPeriodicWorkPolicy.CANCEL_AND_REENQUEUE,
+                        periodicWorkRequest).getResult().get());
+
+        assertThrows(IllegalArgumentException.class, () ->
+                mWorkManagerImpl.enqueueUniquePeriodicWork(uniqueName,
+                        ExistingPeriodicWorkPolicy.REPLACE,
+                        periodicWorkRequest).getResult().get());
+    }
+    @Test
+    @SmallTest
+    public void testOverrideNextSchedule_update_allowed()
+            throws ExecutionException, InterruptedException {
+        final String uniqueName = "TestWorker";
+        ListenableWorker testWorker = mock(ListenableWorker.class);
+
+        when(mWorkManagerImpl.getSchedulers()).thenReturn(Collections.singletonList(mScheduler));
+        when(mConfiguration.getWorkerFactory().createWorker(any(),
+                eq(ListenableWorker.class.getName()), any())).thenReturn(testWorker);
+        mClock.currentTimeMillis = TimeUnit.HOURS.toMillis(1);
+
+        PeriodicWorkRequest periodicWorkRequest =
+                new PeriodicWorkRequest.Builder(ListenableWorker.class, 1, TimeUnit.HOURS)
+                        .setNextScheduleTimeOverride(123456)
+                        .build();
+
+        mWorkManagerImpl.enqueueUniquePeriodicWork(uniqueName,
+                ExistingPeriodicWorkPolicy.UPDATE,
+                periodicWorkRequest).getResult().get();
+    }
+
+    @Test
+    @SmallTest
+    public void testOverrideNextSchedule_keep_allowed()
+            throws ExecutionException, InterruptedException {
+        final String uniqueName = "TestWorker";
+        ListenableWorker testWorker = mock(ListenableWorker.class);
+
+        when(mWorkManagerImpl.getSchedulers()).thenReturn(Collections.singletonList(mScheduler));
+        when(mConfiguration.getWorkerFactory().createWorker(any(),
+                eq(ListenableWorker.class.getName()), any())).thenReturn(testWorker);
+        mClock.currentTimeMillis = TimeUnit.HOURS.toMillis(1);
+
+        PeriodicWorkRequest periodicWorkRequest =
+                new PeriodicWorkRequest.Builder(ListenableWorker.class, 1, TimeUnit.HOURS)
+                        .setNextScheduleTimeOverride(123456)
+                        .build();
+
+        // KEEP isn't very useful, but it works.
+        mWorkManagerImpl.enqueueUniquePeriodicWork(uniqueName,
+                ExistingPeriodicWorkPolicy.KEEP,
+                periodicWorkRequest).getResult().get();
+    }
+
+    @Test
+    @SmallTest
+    public void testOverrideNextSchedule_selfRescheduleWorker_keep()
+            throws ExecutionException, InterruptedException {
+        final String uniqueName = "TestWorker";
+        ListenableWorker testWorker = mock(ListenableWorker.class);
+        setupTestOverrideScheduleWorker(uniqueName, testWorker,
+                ExistingPeriodicWorkPolicy.KEEP);
+
+        when(mWorkManagerImpl.getSchedulers()).thenReturn(Collections.singletonList(mScheduler));
+        when(mConfiguration.getWorkerFactory().createWorker(any(),
+                eq(ListenableWorker.class.getName()), any())).thenReturn(testWorker);
+        mClock.currentTimeMillis = TimeUnit.HOURS.toMillis(1);
+
+        PeriodicWorkRequest periodicWorkRequest =
+                new PeriodicWorkRequest.Builder(ListenableWorker.class, 1, TimeUnit.HOURS)
+                        .build();
+
+        // Runs immediately (periodic worker first run is instant)
+        mWorkManagerImpl.enqueueUniquePeriodicWork(uniqueName,
+                ExistingPeriodicWorkPolicy.UPDATE, periodicWorkRequest).getResult().get();
+
+        // KEEP meant that the override wasn't changed. It was cleared when the Worker finished.
+        WorkInfo workInfo = mWorkManagerImpl
+                .getWorkInfoById(periodicWorkRequest.getId()).get();
+        assertThat(
+                workInfo.getNextScheduleTimeMillis(),
+                equalTo(TimeUnit.HOURS.toMillis(2)));
+
+        // Previous run completed successfully.
+        assertThat(
+                workInfo.getRunAttemptCount(),
+                equalTo(0));
+    }
+
+    private void setupTestOverrideScheduleWorker(String uniqueName, ListenableWorker testWorker,
+            ExistingPeriodicWorkPolicy existingPolicy) {
+        when(testWorker.startWork()).thenAnswer(
+                invocation -> {
+                    PeriodicWorkRequest request =
+                            new PeriodicWorkRequest.Builder(
+                                    ListenableWorker.class, 1, TimeUnit.HOURS)
+                                    .setNextScheduleTimeOverride(
+                                            TimeUnit.HOURS.toMillis(10)).build();
+                    return Futures.transform(
+                            WorkManager.getInstance(mContext)
+                                    .enqueueUniquePeriodicWork(
+                                            uniqueName,
+                                            existingPolicy,
+                                            request
+                                    ).getResult(),
+                            (input) -> ListenableWorker.Result.Success.success(),
+                            new SynchronousExecutor()
+                    );
+                }
+        );
+    }
+
+    @Test
     @MediumTest
     public void testBeginUniqueWork_appendsExistingWorkOnAppend()
             throws ExecutionException, InterruptedException {
@@ -1204,7 +1379,7 @@
     public void testGetWorkInfoByIdSync_oneTime_schedules() throws Exception {
         OneTimeWorkRequest work = new OneTimeWorkRequest.Builder(TestWorker.class)
                 .setInitialState(SUCCEEDED)
-                .setInitialDelay(1234, TimeUnit.MILLISECONDS)
+                .setInitialDelay(1234, MILLISECONDS)
                 .build();
         insertWorkSpecAndTags(work);
 
@@ -1216,15 +1391,16 @@
 
     @Test
     @MediumTest
-    @SdkSuppress(minSdkVersion = 26)
     public void testGetWorkInfoByIdSync_periodic_schedules() throws Exception {
-        Duration repeatInterval = Duration.ofMinutes(60);
-        Duration flexInterval = Duration.ofMinutes(30);
+        long repeatIntervalMillis = MINUTES.toMillis(60);
+        long flexIntervalMillis = MINUTES.toMillis(30);
 
         PeriodicWorkRequest work =
-                new PeriodicWorkRequest.Builder(TestWorker.class, repeatInterval, flexInterval)
+                new PeriodicWorkRequest.Builder(TestWorker.class,
+                        repeatIntervalMillis, MILLISECONDS,
+                        flexIntervalMillis, MILLISECONDS)
                         .setInitialState(SUCCEEDED)
-                        .setInitialDelay(1234, TimeUnit.MILLISECONDS)
+                        .setInitialDelay(1234, MILLISECONDS)
                         .build();
         insertWorkSpecAndTags(work);
 
@@ -1232,9 +1408,9 @@
         assertThat(workInfo.getId().toString(), is(work.getStringId()));
         assertThat(workInfo.getInitialDelayMillis(), equalTo(1234L));
         assertThat(workInfo.getPeriodicityInfo().getRepeatIntervalMillis(), equalTo(
-                repeatInterval.toMillis()));
+                repeatIntervalMillis));
         assertThat(workInfo.getPeriodicityInfo().getFlexIntervalMillis(), equalTo(
-                flexInterval.toMillis()));
+                flexIntervalMillis));
     }
 
     @Test
@@ -1338,11 +1514,10 @@
 
     @Test
     @SmallTest
-    @SdkSuppress(minSdkVersion = 26)
     public void testGetWorkInfoById_nextScheduleTime_onetime_initialDelay()
             throws ExecutionException, InterruptedException {
         OneTimeWorkRequest work = new OneTimeWorkRequest.Builder(TestWorker.class).setInitialDelay(
-                Duration.ofMillis(2000)).build();
+                2000, MILLISECONDS).build();
         work.getWorkSpec().lastEnqueueTime = 1000L;
         insertWorkSpecAndTags(work);
 
@@ -1355,19 +1530,18 @@
 
     @Test
     @SmallTest
-    @SdkSuppress(minSdkVersion = 26)
     public void testGetWorkInfoById_nextScheduleTime_periodic_period()
             throws ExecutionException, InterruptedException {
-        Duration period = Duration.ofMinutes(15);
-        Duration initialDelay = Duration.ofMillis(2000);
-        Duration lastEnqueueTime = Duration.ofMillis(1000L);
+        long periodMillis = MINUTES.toMillis(15);
+        long initialDelayMillis = 2000L;
+        long lastEnqueueTimeMillis = 1000L;
 
         PeriodicWorkRequest work0 = new PeriodicWorkRequest.Builder(
-                TestWorker.class, period)
-                .setInitialDelay(initialDelay)
+                TestWorker.class, periodMillis, MILLISECONDS)
+                .setInitialDelay(initialDelayMillis, MILLISECONDS)
                 .build();
 
-        work0.getWorkSpec().lastEnqueueTime = lastEnqueueTime.toMillis();
+        work0.getWorkSpec().lastEnqueueTime = lastEnqueueTimeMillis;
         work0.getWorkSpec().setPeriodCount(3);
         insertWorkSpecAndTags(work0);
 
@@ -1375,8 +1549,8 @@
 
         assertThat(info.getState(), equalTo(ENQUEUED));
         assertThat(info.getNextScheduleTimeMillis(),
-                equalTo(lastEnqueueTime.plus(period).toMillis()));
-        assertThat(info.getInitialDelayMillis(), equalTo(initialDelay.toMillis()));
+                equalTo(lastEnqueueTimeMillis + periodMillis));
+        assertThat(info.getInitialDelayMillis(), equalTo(initialDelayMillis));
     }
 
     @Test
@@ -1841,16 +2015,16 @@
     @MediumTest
     public void testGenerateCleanupCallback_deletesOldFinishedWork() {
         long nowMillis = TimeUnit.DAYS.toMillis(30);
-        mClock.mOverrideTimeMillis = nowMillis;
+        mClock.currentTimeMillis = nowMillis;
 
         OneTimeWorkRequest work1 = new OneTimeWorkRequest.Builder(TestWorker.class)
                 .setInitialState(SUCCEEDED)
                 .setLastEnqueueTime(nowMillis - WorkDatabaseKt.PRUNE_THRESHOLD_MILLIS - 1L,
-                        TimeUnit.MILLISECONDS)
+                        MILLISECONDS)
                 .build();
         OneTimeWorkRequest work2 = new OneTimeWorkRequest.Builder(TestWorker.class)
                 .setLastEnqueueTime(nowMillis - WorkDatabaseKt.PRUNE_THRESHOLD_MILLIS + 1L,
-                        TimeUnit.MILLISECONDS)
+                        MILLISECONDS)
                 .build();
 
         insertWorkSpecAndTags(work1);
@@ -1870,22 +2044,22 @@
     @MediumTest
     public void testGenerateCleanupCallback_doesNotDeleteOldFinishedWorkWithActiveDependents() {
         long nowMillis = TimeUnit.DAYS.toMillis(30);
-        mClock.mOverrideTimeMillis = nowMillis;
+        mClock.currentTimeMillis = nowMillis;
 
         OneTimeWorkRequest work0 = new OneTimeWorkRequest.Builder(TestWorker.class)
                 .setInitialState(SUCCEEDED)
                 .setLastEnqueueTime(nowMillis - WorkDatabaseKt.PRUNE_THRESHOLD_MILLIS - 1L,
-                        TimeUnit.MILLISECONDS)
+                        MILLISECONDS)
                 .build();
         OneTimeWorkRequest work1 = new OneTimeWorkRequest.Builder(TestWorker.class)
                 .setInitialState(SUCCEEDED)
                 .setLastEnqueueTime(nowMillis - WorkDatabaseKt.PRUNE_THRESHOLD_MILLIS - 1L,
-                        TimeUnit.MILLISECONDS)
+                        MILLISECONDS)
                 .build();
         OneTimeWorkRequest work2 = new OneTimeWorkRequest.Builder(TestWorker.class)
                 .setInitialState(ENQUEUED)
                 .setLastEnqueueTime(nowMillis - WorkDatabaseKt.PRUNE_THRESHOLD_MILLIS - 1L,
-                        TimeUnit.MILLISECONDS)
+                        MILLISECONDS)
                 .build();
 
         insertWorkSpecAndTags(work0);
@@ -2159,14 +2333,4 @@
                 Long.MAX_VALUE // Documented error value.
         );
     }
-
-    private class OverrideClock implements Clock {
-        long mOverrideTimeMillis = Long.MAX_VALUE;
-
-        @Override
-        public long currentTimeMillis() {
-            return mOverrideTimeMillis == Long.MAX_VALUE ? System.currentTimeMillis()
-                    : mOverrideTimeMillis;
-        }
-    }
 }
diff --git a/work/work-runtime/src/androidTest/java/androidx/work/impl/WorkerWrapperTest.java b/work/work-runtime/src/androidTest/java/androidx/work/impl/WorkerWrapperTest.java
index 0e16ded..6188a28 100644
--- a/work/work-runtime/src/androidTest/java/androidx/work/impl/WorkerWrapperTest.java
+++ b/work/work-runtime/src/androidTest/java/androidx/work/impl/WorkerWrapperTest.java
@@ -36,6 +36,9 @@
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
 
+import static java.util.concurrent.TimeUnit.HOURS;
+import static java.util.concurrent.TimeUnit.MINUTES;
+
 import android.content.Context;
 import android.net.Uri;
 import android.util.Log;
@@ -50,6 +53,7 @@
 import androidx.test.filters.SmallTest;
 import androidx.testutils.RepeatRule;
 import androidx.work.ArrayCreatingInputMerger;
+import androidx.work.BackoffPolicy;
 import androidx.work.Configuration;
 import androidx.work.Data;
 import androidx.work.DatabaseTest;
@@ -58,6 +62,8 @@
 import androidx.work.OneTimeWorkRequest;
 import androidx.work.PeriodicWorkRequest;
 import androidx.work.ProgressUpdater;
+import androidx.work.WorkRequest;
+import androidx.work.Worker;
 import androidx.work.WorkerFactory;
 import androidx.work.WorkerParameters;
 import androidx.work.impl.foreground.ForegroundProcessor;
@@ -65,6 +71,7 @@
 import androidx.work.impl.model.DependencyDao;
 import androidx.work.impl.model.WorkSpec;
 import androidx.work.impl.model.WorkSpecDao;
+import androidx.work.impl.testutils.TestOverrideClock;
 import androidx.work.impl.utils.SynchronousExecutor;
 import androidx.work.impl.utils.taskexecutor.InstantWorkTaskExecutor;
 import androidx.work.impl.utils.taskexecutor.TaskExecutor;
@@ -107,6 +114,7 @@
     private WorkSpecDao mWorkSpecDao;
     private DependencyDao mDependencyDao;
     private Context mContext;
+    private TestOverrideClock mTestClock = new TestOverrideClock();
     private ForegroundProcessor mMockForegroundProcessor;
     private ProgressUpdater mMockProgressUpdater;
     private ForegroundUpdater mMockForegroundUpdater;
@@ -119,6 +127,7 @@
         mConfiguration = new Configuration.Builder()
                 .setExecutor(new SynchronousExecutor())
                 .setMinimumLoggingLevel(Log.VERBOSE)
+                .setClock(mTestClock)
                 .build();
         mWorkTaskExecutor = new InstantWorkTaskExecutor();
         mWorkSpecDao = mDatabase.workSpecDao();
@@ -516,7 +525,7 @@
         OneTimeWorkRequest retryWork =
                 new OneTimeWorkRequest.Builder(RetryWorker.class).build();
 
-        long future = System.currentTimeMillis() + TimeUnit.HOURS.toMillis(1);
+        long future = System.currentTimeMillis() + HOURS.toMillis(1);
         mDatabase.beginTransaction();
         try {
             mWorkSpecDao.insertWorkSpec(retryWork.getWorkSpec());
@@ -539,13 +548,13 @@
     @Test
     @SmallTest
     public void testRun_periodicWork_success_updatesPeriodStartTime() {
-        long intervalDuration = PeriodicWorkRequest.MIN_PERIODIC_INTERVAL_MILLIS;
-        long periodStartTime = System.currentTimeMillis();
+        long intervalDurationMillis = PeriodicWorkRequest.MIN_PERIODIC_INTERVAL_MILLIS;
+        long periodStartTimeMillis = System.currentTimeMillis();
 
         PeriodicWorkRequest periodicWork = new PeriodicWorkRequest.Builder(
-                TestWorker.class, intervalDuration, TimeUnit.MILLISECONDS).build();
+                TestWorker.class, intervalDurationMillis, TimeUnit.MILLISECONDS).build();
 
-        periodicWork.getWorkSpec().lastEnqueueTime = periodStartTime;
+        periodicWork.getWorkSpec().lastEnqueueTime = periodStartTimeMillis;
         insertWork(periodicWork);
 
         createBuilder(periodicWork.getStringId())
@@ -553,19 +562,19 @@
                 .run();
 
         WorkSpec updatedWorkSpec = mWorkSpecDao.getWorkSpec(periodicWork.getStringId());
-        assertThat(updatedWorkSpec.calculateNextRunTime(), greaterThan(periodStartTime));
+        assertThat(updatedWorkSpec.calculateNextRunTime(), greaterThan(periodStartTimeMillis));
     }
 
     @Test
     @SmallTest
     public void testRun_periodicWork_failure_updatesPeriodStartTime() {
-        long intervalDuration = PeriodicWorkRequest.MIN_PERIODIC_INTERVAL_MILLIS;
-        long periodStartTime = System.currentTimeMillis();
+        long intervalDurationMillis = PeriodicWorkRequest.MIN_PERIODIC_INTERVAL_MILLIS;
+        long periodStartTimeMillis = System.currentTimeMillis();
 
         PeriodicWorkRequest periodicWork = new PeriodicWorkRequest.Builder(
-                FailureWorker.class, intervalDuration, TimeUnit.MILLISECONDS).build();
+                FailureWorker.class, intervalDurationMillis, TimeUnit.MILLISECONDS).build();
 
-        periodicWork.getWorkSpec().lastEnqueueTime = periodStartTime;
+        periodicWork.getWorkSpec().lastEnqueueTime = periodStartTimeMillis;
         insertWork(periodicWork);
 
         createBuilder(periodicWork.getStringId())
@@ -573,7 +582,7 @@
                 .run();
 
         WorkSpec updatedWorkSpec = mWorkSpecDao.getWorkSpec(periodicWork.getStringId());
-        assertThat(updatedWorkSpec.calculateNextRunTime(), greaterThan(periodStartTime));
+        assertThat(updatedWorkSpec.calculateNextRunTime(), greaterThan(periodStartTimeMillis));
     }
 
     @Test
@@ -686,6 +695,293 @@
 
     @Test
     @SmallTest
+    public void testNextScheduleTimeOverride_delayNormalNextSchedule() {
+        mTestClock.currentTimeMillis = HOURS.toMillis(5);
+        long lastEnqueueTimeMillis = HOURS.toMillis(4);
+        long intervalDurationMillis = HOURS.toMillis(1);
+        // Delay the next run
+        long nextScheduleTimeOverrideMillis = lastEnqueueTimeMillis + HOURS.toMillis(10);
+
+        PeriodicWorkRequest periodicWork = new PeriodicWorkRequest.Builder(
+                TestWorker.class, intervalDurationMillis, TimeUnit.MILLISECONDS)
+                .setNextScheduleTimeOverride(nextScheduleTimeOverrideMillis)
+                .build();
+
+        periodicWork.getWorkSpec().lastEnqueueTime = lastEnqueueTimeMillis;
+        insertWork(periodicWork);
+
+        // Try to run when the normal period would have happened
+        mTestClock.currentTimeMillis = lastEnqueueTimeMillis + intervalDurationMillis + 1;
+        createBuilder(periodicWork.getStringId()).build().run();
+
+        // Didn't actually run or do anything, since it's too soon to run
+        WorkSpec firstTryWorkSpec = mWorkSpecDao.getWorkSpec(periodicWork.getStringId());
+        assertThat(firstTryWorkSpec.getNextScheduleTimeOverride(),
+                equalTo(nextScheduleTimeOverrideMillis));
+        assertThat(firstTryWorkSpec.getPeriodCount(), equalTo(0));
+        assertThat(firstTryWorkSpec.calculateNextRunTime(),
+                equalTo(nextScheduleTimeOverrideMillis));
+
+        // Try again at the override time
+        long actualWorkRunTime = nextScheduleTimeOverrideMillis;
+        mTestClock.currentTimeMillis = actualWorkRunTime;
+        createBuilder(periodicWork.getStringId()).build().run();
+
+        // Override is cleared and we're scheduled for now + period
+        WorkSpec afterRunWorkSpec = mWorkSpecDao.getWorkSpec(periodicWork.getStringId());
+        assertThat(afterRunWorkSpec.getNextScheduleTimeOverride(), equalTo(Long.MAX_VALUE));
+        assertThat(afterRunWorkSpec.getPeriodCount(), equalTo(1));
+        assertThat(afterRunWorkSpec.calculateNextRunTime(),
+                equalTo(actualWorkRunTime + intervalDurationMillis));
+    }
+
+    @Test
+    @SmallTest
+    public void testNextScheduleTimeOverride_backsOffNextTimeAfterRetry() {
+        mTestClock.currentTimeMillis = HOURS.toMillis(5);
+        long lastEnqueueTimeMillis = HOURS.toMillis(4);
+        long intervalDurationMillis = HOURS.toMillis(100);
+        long nextScheduleTimeOverrideMillis = lastEnqueueTimeMillis + HOURS.toMillis(10);
+        long backoffLinearDurationMillis = MINUTES.toMillis(30);
+
+        PeriodicWorkRequest periodicWork = new PeriodicWorkRequest.Builder(
+                // RetryWorker always returns Result.Retry
+                RetryWorker.class, intervalDurationMillis, TimeUnit.MILLISECONDS)
+                .setBackoffCriteria(BackoffPolicy.LINEAR, backoffLinearDurationMillis,
+                        TimeUnit.MILLISECONDS)
+                .setNextScheduleTimeOverride(nextScheduleTimeOverrideMillis)
+                .build();
+
+        periodicWork.getWorkSpec().lastEnqueueTime = lastEnqueueTimeMillis;
+        mTestClock.currentTimeMillis = nextScheduleTimeOverrideMillis;
+        insertWork(periodicWork);
+
+        createBuilder(periodicWork.getStringId()).build().run();
+
+        // Override is cleared and we're rescheduled according to the backoff policy
+        WorkSpec afterRunWorkSpec = mWorkSpecDao.getWorkSpec(periodicWork.getStringId());
+        assertThat(afterRunWorkSpec.getPeriodCount(), equalTo(0));
+        assertThat(afterRunWorkSpec.runAttemptCount, equalTo(1));
+        assertThat(afterRunWorkSpec.state, is(ENQUEUED));
+        assertThat(afterRunWorkSpec.getNextScheduleTimeOverride(), equalTo(Long.MAX_VALUE));
+        // Should be scheduled again for now + one backoff.
+        assertThat(afterRunWorkSpec.calculateNextRunTime(),
+                equalTo(nextScheduleTimeOverrideMillis + backoffLinearDurationMillis));
+    }
+
+    @Test
+    @SmallTest
+    public void testNextScheduleTimeOverride_whileWorkerIsRunning_appliesToNextRun()
+            throws ExecutionException, InterruptedException {
+        mTestClock.currentTimeMillis = HOURS.toMillis(5);
+        long lastEnqueueTimeMillis = HOURS.toMillis(4);
+        long intervalDurationMillis = HOURS.toMillis(100);
+
+        long firstOverride = lastEnqueueTimeMillis + HOURS.toMillis(10);
+        long secondOverride = firstOverride + HOURS.toMillis(20);
+        long backoffLinearDurationMillis = MINUTES.toMillis(30);
+
+        PeriodicWorkRequest periodicWork = new PeriodicWorkRequest.Builder(
+                LatchWorker.class, intervalDurationMillis, TimeUnit.MILLISECONDS)
+                .setBackoffCriteria(BackoffPolicy.LINEAR, backoffLinearDurationMillis,
+                        TimeUnit.MILLISECONDS)
+                .build();
+
+        periodicWork.getWorkSpec().lastEnqueueTime = lastEnqueueTimeMillis;
+        mTestClock.currentTimeMillis = firstOverride;
+        insertWork(periodicWork);
+
+        LatchWorker latchWorker = getLatchWorker(periodicWork, mExecutorService);
+        FutureListener listener = runWorker(periodicWork, latchWorker);
+
+        // Wait for the worker to start, to verify WorkerWrapper got through its initialization
+        latchWorker.mEntrySignal.await();
+
+        // Update the work with a new 'next' runtime while it's already running.
+        WorkSpec inflightWorkSpec = mWorkSpecDao.getWorkSpec(periodicWork.getStringId());
+        inflightWorkSpec.setNextScheduleTimeOverride(secondOverride);
+        inflightWorkSpec.setNextScheduleTimeOverrideGeneration(3);
+        mDatabase.workSpecDao().delete(inflightWorkSpec.id);
+        mDatabase.workSpecDao().insertWorkSpec(inflightWorkSpec);
+
+        // Finish the Worker so WorkerWrapper can clean up....
+        latchWorker.mLatch.countDown();
+        listener.mFuture.get();
+
+        // We should still be overridden, even though the worker finished after the override
+        WorkSpec afterRunWorkSpec = mWorkSpecDao.getWorkSpec(periodicWork.getStringId());
+        assertThat(afterRunWorkSpec.getPeriodCount(), equalTo(1));
+        assertThat(afterRunWorkSpec.runAttemptCount, equalTo(0));
+        assertThat(afterRunWorkSpec.state, is(ENQUEUED));
+        assertThat(afterRunWorkSpec.getNextScheduleTimeOverrideGeneration(), equalTo(3));
+        assertThat(afterRunWorkSpec.getNextScheduleTimeOverride(), equalTo(secondOverride));
+        assertThat(afterRunWorkSpec.calculateNextRunTime(),
+                equalTo(secondOverride));
+    }
+
+    @Test
+    @SmallTest
+    public void testNextScheduleTimeOverride_whileWorkerIsRunning_returnsRetry_usesOverride()
+            throws ExecutionException, InterruptedException {
+        mTestClock.currentTimeMillis = HOURS.toMillis(5);
+        long lastEnqueueTimeMillis = HOURS.toMillis(4);
+        long intervalDurationMillis = HOURS.toMillis(100);
+
+        long firstOverrideMillis = lastEnqueueTimeMillis + HOURS.toMillis(10);
+        long secondOverrideMillis = firstOverrideMillis + HOURS.toMillis(20);
+        long backoffLinearDurationMillis = MINUTES.toMillis(30);
+
+        PeriodicWorkRequest periodicWork = new PeriodicWorkRequest.Builder(
+                LatchWorker.class, intervalDurationMillis, TimeUnit.MILLISECONDS)
+                .setBackoffCriteria(BackoffPolicy.LINEAR, backoffLinearDurationMillis,
+                        TimeUnit.MILLISECONDS)
+                .build();
+
+        periodicWork.getWorkSpec().lastEnqueueTime = lastEnqueueTimeMillis;
+        mTestClock.currentTimeMillis = firstOverrideMillis;
+        insertWork(periodicWork);
+
+        // Start the worker running
+        LatchWorker latchWorker = getLatchWorker(periodicWork, mExecutorService);
+        latchWorker.returnResult = ListenableWorker.Result.retry();
+        FutureListener listener = runWorker(periodicWork, latchWorker);
+
+        // Wait for the worker to start, to verify WorkerWrapper got through its initialization
+        latchWorker.mEntrySignal.await();
+
+        // Update the work with a new 'next' runtime while it's already running.
+        WorkSpec inflightWorkSpec = mWorkSpecDao.getWorkSpec(periodicWork.getStringId());
+        inflightWorkSpec.setNextScheduleTimeOverride(secondOverrideMillis);
+        inflightWorkSpec.setNextScheduleTimeOverrideGeneration(3);
+        mDatabase.workSpecDao().delete(inflightWorkSpec.id);
+        mDatabase.workSpecDao().insertWorkSpec(inflightWorkSpec);
+
+        // Allow the worker to finish
+        latchWorker.mLatch.countDown();
+        listener.mFuture.get();
+
+        // We should still be overridden, even though the worker finished after the override
+        WorkSpec afterRunWorkSpec = mWorkSpecDao.getWorkSpec(periodicWork.getStringId());
+        assertThat(afterRunWorkSpec.getPeriodCount(), equalTo(0));
+        // We still write runAttemptCount, etc, so if the override is cleared the 'correct' retry
+        // time is applied based on the actual previous run time.
+        assertThat(afterRunWorkSpec.runAttemptCount, equalTo(1));
+        assertThat(afterRunWorkSpec.state, is(ENQUEUED));
+        assertThat(afterRunWorkSpec.getNextScheduleTimeOverrideGeneration(), equalTo(3));
+        assertThat(afterRunWorkSpec.getNextScheduleTimeOverride(), equalTo(secondOverrideMillis));
+        assertThat(afterRunWorkSpec.calculateNextRunTime(),
+                equalTo(secondOverrideMillis));
+    }
+
+    @Test
+    @SmallTest
+    public void testClearNextScheduleTimeOverride_whileWorkerIsRunning_schedulesNextBasedOnEnqueue()
+            throws InterruptedException, ExecutionException {
+        long lastEnqueueTimeMillis = HOURS.toMillis(4);
+        long intervalDurationMillis = HOURS.toMillis(100);
+        long nextScheduleTimeOverrideMillis = lastEnqueueTimeMillis + HOURS.toMillis(10);
+        mTestClock.currentTimeMillis = nextScheduleTimeOverrideMillis;
+
+        PeriodicWorkRequest periodicWork = new PeriodicWorkRequest.Builder(
+                LatchWorker.class, intervalDurationMillis, TimeUnit.MILLISECONDS)
+                .build();
+        periodicWork.getWorkSpec().lastEnqueueTime = lastEnqueueTimeMillis;
+        insertWork(periodicWork);
+
+        // Start the worker running
+        LatchWorker latchWorker = getLatchWorker(periodicWork, mExecutorService);
+        latchWorker.returnResult = ListenableWorker.Result.success();
+        FutureListener listener = runWorker(periodicWork, latchWorker);
+
+        // Wait for the worker to start, to verify WorkerWrapper got through its initialization
+        latchWorker.mEntrySignal.await();
+
+        // Update the override generation, but leave the override time to MAX_LONG.
+        // This replicates calling .override(), then .clearOverride() to return /back/ to normal.
+        WorkSpec inflightWorkSpec = mWorkSpecDao.getWorkSpec(periodicWork.getStringId());
+        inflightWorkSpec.setNextScheduleTimeOverride(Long.MAX_VALUE);
+        inflightWorkSpec.setNextScheduleTimeOverrideGeneration(5);
+        mDatabase.workSpecDao().delete(inflightWorkSpec.id);
+        mDatabase.workSpecDao().insertWorkSpec(inflightWorkSpec);
+
+        // Allow the worker to finish
+        latchWorker.mLatch.countDown();
+        listener.mFuture.get();
+
+        // We should be scheduled for a "normal" next time, even though overrideGen was changed.
+        WorkSpec afterRunWorkSpec = mWorkSpecDao.getWorkSpec(periodicWork.getStringId());
+        assertThat(afterRunWorkSpec.getPeriodCount(), equalTo(1));
+        assertThat(afterRunWorkSpec.runAttemptCount, equalTo(0));
+        assertThat(afterRunWorkSpec.state, is(ENQUEUED));
+        assertThat(afterRunWorkSpec.getNextScheduleTimeOverrideGeneration(), equalTo(5));
+        assertThat(afterRunWorkSpec.getNextScheduleTimeOverride(), equalTo(Long.MAX_VALUE));
+        // Normal next period is scheduled.
+        assertThat(afterRunWorkSpec.calculateNextRunTime(),
+                equalTo(mTestClock.currentTimeMillis + intervalDurationMillis));
+    }
+
+
+    @Test
+    @SmallTest
+    public void testClearNextScheduleTimeOverride_whileWorkerIsRunning_schedulesNextBasedOnBackoff()
+            throws InterruptedException, ExecutionException {
+        long lastEnqueueTimeMillis = HOURS.toMillis(4);
+        long intervalDurationMillis = HOURS.toMillis(10);
+        long backoffLinearDurationMillis = HOURS.toMillis(1);
+        long nextScheduleTimeOverrideMillis = lastEnqueueTimeMillis + HOURS.toMillis(2);
+        mTestClock.currentTimeMillis = nextScheduleTimeOverrideMillis;
+
+        PeriodicWorkRequest periodicWork = new PeriodicWorkRequest.Builder(
+                LatchWorker.class, intervalDurationMillis, TimeUnit.MILLISECONDS)
+                .setBackoffCriteria(BackoffPolicy.LINEAR, backoffLinearDurationMillis,
+                        TimeUnit.MILLISECONDS)
+                .build();
+        periodicWork.getWorkSpec().lastEnqueueTime = lastEnqueueTimeMillis;
+        insertWork(periodicWork);
+
+        // Start the worker running
+        LatchWorker latchWorker = getLatchWorker(periodicWork, mExecutorService);
+        latchWorker.returnResult = ListenableWorker.Result.retry();
+        FutureListener listener = runWorker(periodicWork, latchWorker);
+
+        // Wait for the worker to start, to verify WorkerWrapper got through its initialization
+        latchWorker.mEntrySignal.await();
+
+        // Update the override generation, but leave the override time to MAX_LONG.
+        // This replicates calling .override(), then .clearOverride() to return /back/ to normal.
+        WorkSpec inflightWorkSpec = mWorkSpecDao.getWorkSpec(periodicWork.getStringId());
+        inflightWorkSpec.setNextScheduleTimeOverride(Long.MAX_VALUE);
+        inflightWorkSpec.setNextScheduleTimeOverrideGeneration(5);
+        mDatabase.workSpecDao().delete(inflightWorkSpec.id);
+        mDatabase.workSpecDao().insertWorkSpec(inflightWorkSpec);
+
+        // Allow the worker to finish
+        latchWorker.mLatch.countDown();
+        listener.mFuture.get();
+
+        // We should be scheduled for a normal backoff, even though overrideGen was changed.
+        WorkSpec afterRunWorkSpec = mWorkSpecDao.getWorkSpec(periodicWork.getStringId());
+        assertThat(afterRunWorkSpec.getPeriodCount(), equalTo(0));
+        assertThat(afterRunWorkSpec.runAttemptCount, equalTo(1));
+        assertThat(afterRunWorkSpec.state, is(ENQUEUED));
+        assertThat(afterRunWorkSpec.getNextScheduleTimeOverrideGeneration(), equalTo(5));
+        assertThat(afterRunWorkSpec.getNextScheduleTimeOverride(), equalTo(Long.MAX_VALUE));
+        // Backoff timing is respected
+        assertThat(afterRunWorkSpec.calculateNextRunTime(),
+                equalTo(mTestClock.currentTimeMillis + backoffLinearDurationMillis));
+    }
+
+    @NonNull
+    private FutureListener runWorker(PeriodicWorkRequest periodicWork, Worker worker) {
+        WorkerWrapper workerWrapper =
+                createBuilder(periodicWork.getStringId()).withWorker(worker).build();
+        FutureListener listener = createAndAddFutureListener(workerWrapper);
+        mExecutorService.submit(workerWrapper);
+        return listener;
+    }
+
+    @Test
+    @SmallTest
     public void testFromWorkSpec_hasAppContext() {
         OneTimeWorkRequest work = new OneTimeWorkRequest.Builder(TestWorker.class).build();
         ListenableWorker worker = mConfiguration.getWorkerFactory().createWorkerWithDefaultFallback(
@@ -857,22 +1153,7 @@
         insertWork(work);
 
         ExecutorService backgroundExecutor = Executors.newSingleThreadExecutor();
-        LatchWorker latchWorker =
-                (LatchWorker) mConfiguration.getWorkerFactory().createWorkerWithDefaultFallback(
-                        mContext.getApplicationContext(),
-                        LatchWorker.class.getName(),
-                        new WorkerParameters(
-                                work.getId(),
-                                Data.EMPTY,
-                                work.getTags(),
-                                new WorkerParameters.RuntimeExtras(),
-                                1,
-                                0,
-                                backgroundExecutor,
-                                mWorkTaskExecutor,
-                                mConfiguration.getWorkerFactory(),
-                                mMockProgressUpdater,
-                                mMockForegroundUpdater));
+        LatchWorker latchWorker = getLatchWorker(work, backgroundExecutor);
 
         WorkerWrapper workerWrapper =
                 createBuilder(work.getStringId()).withWorker(latchWorker).build();
@@ -1116,7 +1397,7 @@
                 mDatabase,
                 mWorkSpecDao.getWorkSpec(work.getStringId()),
                 mDatabase.workTagDao().getWorkSpecIdsWithTag(work.getStringId())
-                ).build();
+        ).build();
 
         workerWrapper.interrupt();
         workerWrapper.run();
@@ -1148,6 +1429,30 @@
         );
     }
 
+    @Nullable
+    private LatchWorker getLatchWorker(WorkRequest work) {
+        return getLatchWorker(work, mExecutorService);
+    }
+
+    @Nullable
+    private LatchWorker getLatchWorker(WorkRequest work, ExecutorService executorService) {
+        return (LatchWorker) mConfiguration.getWorkerFactory().createWorkerWithDefaultFallback(
+                mContext.getApplicationContext(),
+                LatchWorker.class.getName(),
+                new WorkerParameters(
+                        work.getId(),
+                        Data.EMPTY,
+                        work.getTags(),
+                        new WorkerParameters.RuntimeExtras(),
+                        1,
+                        0,
+                        executorService,
+                        mWorkTaskExecutor,
+                        mConfiguration.getWorkerFactory(),
+                        mMockProgressUpdater,
+                        mMockForegroundUpdater));
+    }
+
     private FutureListener createAndAddFutureListener(WorkerWrapper workerWrapper) {
         ListenableFuture<Boolean> future = workerWrapper.getFuture();
         FutureListener listener = new FutureListener(future);
diff --git a/work/work-runtime/src/androidTest/java/androidx/work/impl/testutils/TestOverrideClock.kt b/work/work-runtime/src/androidTest/java/androidx/work/impl/testutils/TestOverrideClock.kt
new file mode 100644
index 0000000..5a43269
--- /dev/null
+++ b/work/work-runtime/src/androidTest/java/androidx/work/impl/testutils/TestOverrideClock.kt
@@ -0,0 +1,33 @@
+/*
+ * Copyright 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package androidx.work.impl.testutils
+
+import androidx.work.Clock
+
+/**
+ * A test implementation of Clock that defaults to the system clock for compatibility with existing
+ * tests, but allows an override to be set.
+ */
+class TestOverrideClock : Clock {
+    @JvmField
+    var currentTimeMillis: Long = Long.MAX_VALUE
+
+    override fun currentTimeMillis(): Long {
+        return if (currentTimeMillis == Long.MAX_VALUE) System.currentTimeMillis()
+        else currentTimeMillis
+    }
+}
\ No newline at end of file
diff --git a/work/work-runtime/src/androidTest/java/androidx/work/worker/LatchWorker.java b/work/work-runtime/src/androidTest/java/androidx/work/worker/LatchWorker.java
index f52cde1..547a7f8 100644
--- a/work/work-runtime/src/androidTest/java/androidx/work/worker/LatchWorker.java
+++ b/work/work-runtime/src/androidTest/java/androidx/work/worker/LatchWorker.java
@@ -27,6 +27,8 @@
 public class LatchWorker extends Worker {
 
     public CountDownLatch mLatch = new CountDownLatch(1);
+    public CountDownLatch mEntrySignal = new CountDownLatch(1);
+    public Result returnResult = Result.success();
 
     public LatchWorker(@NonNull Context context, @NonNull WorkerParameters workerParams) {
         super(context, workerParams);
@@ -36,10 +38,11 @@
     @Override
     public Result doWork() {
         try {
+            mEntrySignal.countDown();
             mLatch.await();
         } catch (InterruptedException e) {
             return Result.failure();
         }
-        return Result.success();
+        return returnResult;
     }
 }
diff --git a/work/work-runtime/src/main/java/androidx/work/PeriodicWorkRequest.kt b/work/work-runtime/src/main/java/androidx/work/PeriodicWorkRequest.kt
index f007495..6fa29f7 100644
--- a/work/work-runtime/src/main/java/androidx/work/PeriodicWorkRequest.kt
+++ b/work/work-runtime/src/main/java/androidx/work/PeriodicWorkRequest.kt
@@ -52,10 +52,12 @@
 class PeriodicWorkRequest internal constructor(
     builder: Builder
 ) : WorkRequest(builder.id, builder.workSpec, builder.tags) {
+
     /**
      * Builder for [PeriodicWorkRequest]s.
      */
     class Builder : WorkRequest.Builder<Builder, PeriodicWorkRequest> {
+
         /**
          * Creates a [PeriodicWorkRequest] to run periodically once every interval period. The
          * [PeriodicWorkRequest] is guaranteed to run exactly one time during this interval
@@ -162,6 +164,73 @@
             workSpec.setPeriodic(repeatInterval.toMillisCompat(), flexInterval.toMillisCompat())
         }
 
+        /**
+         * Overrides the next time this work is scheduled to run.
+         *
+         * Calling this method sets a specific time at which the work will be scheduled to run next,
+         * overriding the normal interval, flex, initial delay, and backoff.
+         *
+         * This allows dynamic calculation of the next Periodic work schedule, which can be used
+         * to implement advanced features like adaptive refresh times, custom retry behavior, or
+         * making a newsfeed worker run before the user wakes up every morning without drift.
+         * [ExistingPeriodicWorkPolicy.UPDATE] should be used with these techniques to avoid
+         * cancelling a currently-running worker while scheduling the next one.
+         *
+         * This method only sets the single next Work schedule. After that Work finishes,
+         * the override will be cleared and the Work will be scheduled normally according to the
+         * interval or backoff. The override can be cleared by setting
+         * [clearNextScheduleTimeOverride] on a work update request. Otherwise, the override time
+         * will persist after unrelated invocations of [WorkManager.updateWork].
+         *
+         * This method can be used from outside or inside a [Worker.startWork] method.
+         * If the Worker is currently running, then it will override the next time the Work starts,
+         * even if the current Worker returns [ListenableWorker.Result.Retry]. This behavior can be
+         * used to customize the backoff behavior of a Worker by catching Exceptions in startWork
+         * and using this method to schedule a retry.
+         *
+         * [MIN_PERIODIC_INTERVAL_MILLIS] is enforced on this method to prevent infinite loops. If
+         * a previous run time occurred less than the minimum period before the override time, then
+         * the override schedule will be delayed to preserve the minimum spacing. This restriction
+         * does not apply to the very first run of periodic work, which may be instant.
+         *
+         * Work will almost never run at this exact time in the real world. This method assigns the
+         * scheduled run time accurately, but cannot guarantee an actual run time. Actual Work
+         * run times are dependent on many factors like the underlying system scheduler, doze and
+         * power saving modes of the OS, and meeting any configured constraints. This is expected
+         * and is not considered a bug.
+         *
+         * @param nextScheduleTimeOverrideMillis The time, in [System.currentTimeMillis] time, to
+         * schedule this work next. If this is in the past, work may run immediately.
+         */
+        fun setNextScheduleTimeOverride(nextScheduleTimeOverrideMillis: Long): Builder {
+            require(nextScheduleTimeOverrideMillis != Long.MAX_VALUE) {
+                "Cannot set Long.MAX_VALUE as the schedule override time"
+            }
+
+            workSpec.nextScheduleTimeOverride = nextScheduleTimeOverrideMillis
+            workSpec.nextScheduleTimeOverrideGeneration = 1
+            return this
+        }
+
+        /**
+         * Clears any override set by [setNextScheduleTimeOverride].
+         *
+         * When an override is cleared, the next schedule is based on the previous enqueue time or
+         * run time of the Work and the result of that previous run. Eg. if the previous run
+         * returned [ListenableWorker.Result.Retry] at some time=T, and the next run was set by
+         * override, then clearing that override will return the schedule to `T+backoffInterval` if
+         * using linear backoff.
+         *
+         * Override may be cleared while a Worker is running. The worker will schedule the next run
+         * based on its result type and interval.
+         */
+        fun clearNextScheduleTimeOverride(): Builder {
+            workSpec.nextScheduleTimeOverride = Long.MAX_VALUE
+            // Clearing an override increments the generation.
+            workSpec.nextScheduleTimeOverrideGeneration = 1
+            return this
+        }
+
         override fun buildInternal(): PeriodicWorkRequest {
             require(
                 !(backoffCriteriaSet && Build.VERSION.SDK_INT >= 23 &&
@@ -251,4 +320,4 @@
     flexTimeInterval: Duration
 ): PeriodicWorkRequest.Builder {
     return PeriodicWorkRequest.Builder(W::class.java, repeatInterval, flexTimeInterval)
-}
\ No newline at end of file
+}
diff --git a/work/work-runtime/src/main/java/androidx/work/impl/WorkContinuationImpl.java b/work/work-runtime/src/main/java/androidx/work/impl/WorkContinuationImpl.java
index c3d86e9..481f2a4 100644
--- a/work/work-runtime/src/main/java/androidx/work/impl/WorkContinuationImpl.java
+++ b/work/work-runtime/src/main/java/androidx/work/impl/WorkContinuationImpl.java
@@ -145,6 +145,14 @@
             }
         }
         for (int i = 0; i < work.size(); i++) {
+            if (existingWorkPolicy == ExistingWorkPolicy.REPLACE
+                    && work.get(i).getWorkSpec().getNextScheduleTimeOverride() != Long.MAX_VALUE) {
+                // We can't enforce a minimum period on non-first overrides if REPLACE is used,
+                // since it gives us a new WorkSpec every time.
+                throw new IllegalArgumentException(
+                        "Next Schedule Time Override must be used with ExistingPeriodicWorkPolicy"
+                                + "UPDATE (preferably) or KEEP");
+            }
             String id = work.get(i).getStringId();
             mIds.add(id);
             mAllIds.add(id);
diff --git a/work/work-runtime/src/main/java/androidx/work/impl/WorkDatabase.kt b/work/work-runtime/src/main/java/androidx/work/impl/WorkDatabase.kt
index 3cff9d7..c9e02ad 100644
--- a/work/work-runtime/src/main/java/androidx/work/impl/WorkDatabase.kt
+++ b/work/work-runtime/src/main/java/androidx/work/impl/WorkDatabase.kt
@@ -65,8 +65,9 @@
         AutoMigration(from = 13, to = 14),
         AutoMigration(from = 14, to = 15, spec = AutoMigration_14_15::class),
         AutoMigration(from = 16, to = 17),
+        AutoMigration(from = 17, to = 18)
     ],
-    version = 17
+    version = 18
 )
 @TypeConverters(value = [Data::class, WorkTypeConverters::class])
 abstract class WorkDatabase : RoomDatabase() {
diff --git a/work/work-runtime/src/main/java/androidx/work/impl/WorkerUpdater.kt b/work/work-runtime/src/main/java/androidx/work/impl/WorkerUpdater.kt
index 113a35a..0461ddb 100644
--- a/work/work-runtime/src/main/java/androidx/work/impl/WorkerUpdater.kt
+++ b/work/work-runtime/src/main/java/androidx/work/impl/WorkerUpdater.kt
@@ -58,14 +58,22 @@
         val workTagDao = workDatabase.workTagDao()
 
         // should keep state BLOCKING, preserving the chain, or possibly RUNNING
-        // preserving run attempt count, to calculate back off correctly
+        // preserving run attempt count, to calculate back off correctly, and enqueue/override time
         val updatedSpec = newWorkSpec.copy(
             state = oldWorkSpec.state,
             runAttemptCount = oldWorkSpec.runAttemptCount,
             lastEnqueueTime = oldWorkSpec.lastEnqueueTime,
             generation = oldWorkSpec.generation + 1,
-            periodCount = oldWorkSpec.periodCount
-        )
+            periodCount = oldWorkSpec.periodCount,
+            nextScheduleTimeOverride = oldWorkSpec.nextScheduleTimeOverride,
+            nextScheduleTimeOverrideGeneration = oldWorkSpec.nextScheduleTimeOverrideGeneration
+        ).apply {
+            if (newWorkSpec.nextScheduleTimeOverrideGeneration == 1) {
+                nextScheduleTimeOverride = newWorkSpec.nextScheduleTimeOverride
+                nextScheduleTimeOverrideGeneration += 1
+                // Other fields are left unchanged, so they can be used after override is cleared.
+            }
+        }
 
         workSpecDao.updateWorkSpec(wrapInConstraintTrackingWorkerIfNeeded(schedulers, updatedSpec))
         workTagDao.deleteByWorkSpecId(workSpecId)
@@ -100,7 +108,6 @@
 
 /**
  * Enqueue or update the work.
- *
  */
 @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)
 fun WorkManagerImpl.enqueueUniquelyNamedPeriodic(
diff --git a/work/work-runtime/src/main/java/androidx/work/impl/WorkerWrapper.java b/work/work-runtime/src/main/java/androidx/work/impl/WorkerWrapper.java
index 3d131f87..6f4ab68 100644
--- a/work/work-runtime/src/main/java/androidx/work/impl/WorkerWrapper.java
+++ b/work/work-runtime/src/main/java/androidx/work/impl/WorkerWrapper.java
@@ -69,7 +69,6 @@
 /**
  * A runnable that looks up the {@link WorkSpec} from the database for a given id, instantiates
  * its Worker, and then calls it.
- *
  */
 @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)
 public class WorkerWrapper implements Runnable {
@@ -106,8 +105,7 @@
 
     // Package-private for synthetic accessor.
     @NonNull
-    final SettableFuture<ListenableWorker.Result> mWorkerResultFuture =
-            SettableFuture.create();
+    final SettableFuture<ListenableWorker.Result> mWorkerResultFuture = SettableFuture.create();
 
     private volatile boolean mInterrupted;
 
@@ -134,7 +132,8 @@
         return generationalId(mWorkSpec);
     }
 
-    public @NonNull ListenableFuture<Boolean> getFuture() {
+    @NonNull
+    public ListenableFuture<Boolean> getFuture() {
         return mFuture;
     }
 
@@ -214,7 +213,8 @@
             InputMerger inputMerger =
                     inputMergerFactory.createInputMergerWithDefaultFallback(inputMergerClassName);
             if (inputMerger == null) {
-                Logger.get().error(TAG, "Could not create Input Merger " + mWorkSpec.inputMergerClassName);
+                Logger.get().error(TAG,
+                        "Could not create Input Merger " + mWorkSpec.inputMergerClassName);
                 setFailedAndResolve();
                 return;
             }
@@ -298,7 +298,7 @@
                         runExpedited.get();
                         Logger.get().debug(TAG,
                                 "Starting work for " + mWorkSpec.workerClassName);
-                         // Call mWorker.startWork() on the main thread.
+                        // Call mWorker.startWork() on the main thread.
                         mWorkerResultFuture.setFuture(mWorker.startWork());
                     } catch (Throwable e) {
                         mWorkerResultFuture.setException(e);
@@ -368,6 +368,7 @@
     }
 
     /**
+     *
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)
     public void interrupt() {
@@ -438,9 +439,9 @@
             }
             if (needsReschedule) {
                 // Set state to ENQUEUED again.
-                // Reset scheduled state so its picked up by background schedulers again.
+                // Reset scheduled state so it's picked up by background schedulers again.
                 // We want to preserve time when work was enqueued so just explicitly set enqueued
-                // instead using markEnqueuedState
+                // instead using markEnqueuedState. Similarly, don't change any override time.
                 mWorkSpecDao.setState(ENQUEUED, mWorkSpecId);
                 mWorkSpecDao.markWorkSpecScheduled(mWorkSpecId, SCHEDULE_NOT_REQUESTED_YET);
             }
@@ -510,6 +511,8 @@
             ListenableWorker.Result.Failure failure = (ListenableWorker.Result.Failure) mResult;
             // Update Data as necessary.
             Data output = failure.getOutputData();
+            mWorkSpecDao.resetWorkSpecNextScheduleTimeOverride(mWorkSpecId,
+                    mWorkSpec.getNextScheduleTimeOverrideGeneration());
             mWorkSpecDao.setOutput(mWorkSpecId, output);
             mWorkDatabase.setTransactionSuccessful();
         } finally {
@@ -537,6 +540,8 @@
         try {
             mWorkSpecDao.setState(ENQUEUED, mWorkSpecId);
             mWorkSpecDao.setLastEnqueueTime(mWorkSpecId, mClock.currentTimeMillis());
+            mWorkSpecDao.resetWorkSpecNextScheduleTimeOverride(mWorkSpecId,
+                    mWorkSpec.getNextScheduleTimeOverrideGeneration());
             mWorkSpecDao.markWorkSpecScheduled(mWorkSpecId, SCHEDULE_NOT_REQUESTED_YET);
             mWorkDatabase.setTransactionSuccessful();
         } finally {
@@ -555,6 +560,8 @@
             mWorkSpecDao.setLastEnqueueTime(mWorkSpecId, mClock.currentTimeMillis());
             mWorkSpecDao.setState(ENQUEUED, mWorkSpecId);
             mWorkSpecDao.resetWorkSpecRunAttemptCount(mWorkSpecId);
+            mWorkSpecDao.resetWorkSpecNextScheduleTimeOverride(mWorkSpecId,
+                    mWorkSpec.getNextScheduleTimeOverrideGeneration());
             mWorkSpecDao.incrementPeriodCount(mWorkSpecId);
             mWorkSpecDao.markWorkSpecScheduled(mWorkSpecId, SCHEDULE_NOT_REQUESTED_YET);
             mWorkDatabase.setTransactionSuccessful();
@@ -619,8 +626,7 @@
     public static class Builder {
 
         @NonNull Context mAppContext;
-        @Nullable
-        ListenableWorker mWorker;
+        @Nullable ListenableWorker mWorker;
         @NonNull ForegroundProcessor mForegroundProcessor;
         @NonNull TaskExecutor mWorkTaskExecutor;
         @NonNull Configuration mConfiguration;
@@ -663,7 +669,7 @@
 
         /**
          * @param worker The instance of {@link ListenableWorker} to be executed by
-         * {@link WorkerWrapper}. Useful in the context of testing.
+         *               {@link WorkerWrapper}. Useful in the context of testing.
          * @return The instance of {@link Builder} for chaining.
          */
         @NonNull
diff --git a/work/work-runtime/src/main/java/androidx/work/impl/model/WorkSpec.kt b/work/work-runtime/src/main/java/androidx/work/impl/model/WorkSpec.kt
index c1c136f..e7545ef 100644
--- a/work/work-runtime/src/main/java/androidx/work/impl/model/WorkSpec.kt
+++ b/work/work-runtime/src/main/java/androidx/work/impl/model/WorkSpec.kt
@@ -146,6 +146,40 @@
 
     @ColumnInfo(defaultValue = "0")
     val generation: Int = 0,
+
+    /**
+     * If not Long.MAX_VALUE, this will be the next schedule time, regardless of configured delay.
+     * Only valid for periodic workers
+     */
+    @ColumnInfo(
+        name = "next_schedule_time_override",
+        defaultValue = Long.MAX_VALUE.toString()
+    )
+    var nextScheduleTimeOverride: Long = Long.MAX_VALUE,
+
+    /**
+     * Generation counter that tracks only the nextScheduleTimeOverride version, which allows the
+     * overall generation to be incremented without clearing the nextScheduleTimeOverride. Eg.
+     * while an override is set, a WorkSpec's constraints are changed using UPDATE,
+     * but the override time is neither set nor cleared.
+     *
+     * We could implicitly cancel the nextScheduleTimeOverride since it was not specified in the
+     * update. However, this would require every caller to know that there is an override,
+     * and what the value of that time was, in order to make unrelated changes.
+     *
+     * Instead, we keep track of a separate override schedule generation, so only updates that
+     * change or cancel the nextScheduleTimeOverride will affect the override generation.
+     *
+     * This allows WorkSpec changes to be made mid-worker run, and WorkerWrapper can still
+     * correctly clear a previous nextScheduleTimeOverride upon conclusion by consulting the
+     * overrideGeneration instead of the overall generation.
+     */
+    @ColumnInfo(
+        name = "next_schedule_time_override_generation",
+        defaultValue = "0"
+    )
+    // If reset every min interval, would last 500 years.
+    var nextScheduleTimeOverrideGeneration: Int = 0
 ) {
     constructor(
         id: String,
@@ -172,6 +206,8 @@
         expedited = other.expedited,
         outOfQuotaPolicy = other.outOfQuotaPolicy,
         periodCount = other.periodCount,
+        nextScheduleTimeOverride = other.nextScheduleTimeOverride,
+        nextScheduleTimeOverrideGeneration = other.nextScheduleTimeOverrideGeneration,
     )
 
     /**
@@ -282,7 +318,8 @@
             isPeriodic = isPeriodic,
             initialDelay = initialDelay,
             flexDuration = flexDuration,
-            intervalDuration = intervalDuration
+            intervalDuration = intervalDuration,
+            nextScheduleTimeOverride = nextScheduleTimeOverride
         )
     }
 
@@ -352,6 +389,9 @@
         @ColumnInfo(name = "generation")
         val generation: Int,
 
+        @ColumnInfo(name = "next_schedule_time_override")
+        val nextScheduleTimeOverride: Long,
+
         @Relation(
             parentColumn = "id",
             entityColumn = "work_spec_id",
@@ -415,7 +455,8 @@
                     isPeriodic = isPeriodic,
                     initialDelay = initialDelay,
                     flexDuration = flexDuration,
-                    intervalDuration = intervalDuration
+                    intervalDuration = intervalDuration,
+                    nextScheduleTimeOverride = nextScheduleTimeOverride
                 )
             else Long.MAX_VALUE
         }
@@ -440,9 +481,15 @@
             isPeriodic: Boolean,
             initialDelay: Long,
             flexDuration: Long,
-            intervalDuration: Long
+            intervalDuration: Long,
+            nextScheduleTimeOverride: Long,
         ): Long {
-            return if (isBackedOff) {
+            // Override takes priority over backoff, but only applies to periodic work.
+            return if (nextScheduleTimeOverride != Long.MAX_VALUE && isPeriodic) {
+                return if (periodCount == 0) nextScheduleTimeOverride else
+                    nextScheduleTimeOverride.coerceAtLeast(
+                        lastEnqueueTime + MIN_PERIODIC_INTERVAL_MILLIS)
+            } else if (isBackedOff) {
                 val isLinearBackoff = backoffPolicy == BackoffPolicy.LINEAR
                 val delay =
                     if (isLinearBackoff) backoffDelayDuration * runAttemptCount else Math.scalb(
diff --git a/work/work-runtime/src/main/java/androidx/work/impl/model/WorkSpecDao.kt b/work/work-runtime/src/main/java/androidx/work/impl/model/WorkSpecDao.kt
index 6f440fe..425b19e 100644
--- a/work/work-runtime/src/main/java/androidx/work/impl/model/WorkSpecDao.kt
+++ b/work/work-runtime/src/main/java/androidx/work/impl/model/WorkSpecDao.kt
@@ -141,6 +141,16 @@
     fun resetWorkSpecRunAttemptCount(id: String): Int
 
     /**
+     * Resets the next schedule time override of a [WorkSpec] if the override generation has not
+     * changed.
+     *
+     * @param id The identifier for the [WorkSpec]
+     */
+    @Query("UPDATE workspec SET next_schedule_time_override=${Long.MAX_VALUE} WHERE " +
+        "(id=:id AND next_schedule_time_override_generation=:overrideGeneration)")
+    fun resetWorkSpecNextScheduleTimeOverride(id: String, overrideGeneration: Int)
+
+    /**
      * Retrieves the state of a [WorkSpec].
      *
      * @param id The identifier for the [WorkSpec]
@@ -464,7 +474,7 @@
 
 private const val WORK_INFO_COLUMNS = "id, state, output, run_attempt_count, generation" +
     ", $CONSTRAINTS_COLUMNS, initial_delay, interval_duration, flex_duration, backoff_policy" +
-    ", backoff_delay_duration, last_enqueue_time, period_count"
+    ", backoff_delay_duration, last_enqueue_time, period_count, next_schedule_time_override"
 
 @Language("sql")
 private const val WORK_INFO_BY_IDS = "SELECT $WORK_INFO_COLUMNS FROM workspec WHERE id IN (:ids)"
diff --git a/work/work-runtime/src/schemas/androidx.work.impl.WorkDatabase/18.json b/work/work-runtime/src/schemas/androidx.work.impl.WorkDatabase/18.json
new file mode 100644
index 0000000..84a84bd
--- /dev/null
+++ b/work/work-runtime/src/schemas/androidx.work.impl.WorkDatabase/18.json
@@ -0,0 +1,502 @@
+{
+  "formatVersion": 1,
+  "database": {
+    "version": 18,
+    "identityHash": "682ed85299b53f31ab155d1b8216c06e",
+    "entities": [
+      {
+        "tableName": "Dependency",
+        "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`work_spec_id` TEXT NOT NULL, `prerequisite_id` TEXT NOT NULL, PRIMARY KEY(`work_spec_id`, `prerequisite_id`), FOREIGN KEY(`work_spec_id`) REFERENCES `WorkSpec`(`id`) ON UPDATE CASCADE ON DELETE CASCADE , FOREIGN KEY(`prerequisite_id`) REFERENCES `WorkSpec`(`id`) ON UPDATE CASCADE ON DELETE CASCADE )",
+        "fields": [
+          {
+            "fieldPath": "workSpecId",
+            "columnName": "work_spec_id",
+            "affinity": "TEXT",
+            "notNull": true
+          },
+          {
+            "fieldPath": "prerequisiteId",
+            "columnName": "prerequisite_id",
+            "affinity": "TEXT",
+            "notNull": true
+          }
+        ],
+        "primaryKey": {
+          "autoGenerate": false,
+          "columnNames": [
+            "work_spec_id",
+            "prerequisite_id"
+          ]
+        },
+        "indices": [
+          {
+            "name": "index_Dependency_work_spec_id",
+            "unique": false,
+            "columnNames": [
+              "work_spec_id"
+            ],
+            "orders": [],
+            "createSql": "CREATE INDEX IF NOT EXISTS `index_Dependency_work_spec_id` ON `${TABLE_NAME}` (`work_spec_id`)"
+          },
+          {
+            "name": "index_Dependency_prerequisite_id",
+            "unique": false,
+            "columnNames": [
+              "prerequisite_id"
+            ],
+            "orders": [],
+            "createSql": "CREATE INDEX IF NOT EXISTS `index_Dependency_prerequisite_id` ON `${TABLE_NAME}` (`prerequisite_id`)"
+          }
+        ],
+        "foreignKeys": [
+          {
+            "table": "WorkSpec",
+            "onDelete": "CASCADE",
+            "onUpdate": "CASCADE",
+            "columns": [
+              "work_spec_id"
+            ],
+            "referencedColumns": [
+              "id"
+            ]
+          },
+          {
+            "table": "WorkSpec",
+            "onDelete": "CASCADE",
+            "onUpdate": "CASCADE",
+            "columns": [
+              "prerequisite_id"
+            ],
+            "referencedColumns": [
+              "id"
+            ]
+          }
+        ]
+      },
+      {
+        "tableName": "WorkSpec",
+        "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `state` INTEGER NOT NULL, `worker_class_name` TEXT NOT NULL, `input_merger_class_name` TEXT NOT NULL, `input` BLOB NOT NULL, `output` BLOB NOT NULL, `initial_delay` INTEGER NOT NULL, `interval_duration` INTEGER NOT NULL, `flex_duration` INTEGER NOT NULL, `run_attempt_count` INTEGER NOT NULL, `backoff_policy` INTEGER NOT NULL, `backoff_delay_duration` INTEGER NOT NULL, `last_enqueue_time` INTEGER NOT NULL, `minimum_retention_duration` INTEGER NOT NULL, `schedule_requested_at` INTEGER NOT NULL, `run_in_foreground` INTEGER NOT NULL, `out_of_quota_policy` INTEGER NOT NULL, `period_count` INTEGER NOT NULL DEFAULT 0, `generation` INTEGER NOT NULL DEFAULT 0, `next_schedule_time_override` INTEGER NOT NULL DEFAULT 9223372036854775807, `next_schedule_time_override_generation` INTEGER NOT NULL DEFAULT 0, `required_network_type` INTEGER NOT NULL, `requires_charging` INTEGER NOT NULL, `requires_device_idle` INTEGER NOT NULL, `requires_battery_not_low` INTEGER NOT NULL, `requires_storage_not_low` INTEGER NOT NULL, `trigger_content_update_delay` INTEGER NOT NULL, `trigger_max_content_delay` INTEGER NOT NULL, `content_uri_triggers` BLOB NOT NULL, PRIMARY KEY(`id`))",
+        "fields": [
+          {
+            "fieldPath": "id",
+            "columnName": "id",
+            "affinity": "TEXT",
+            "notNull": true
+          },
+          {
+            "fieldPath": "state",
+            "columnName": "state",
+            "affinity": "INTEGER",
+            "notNull": true
+          },
+          {
+            "fieldPath": "workerClassName",
+            "columnName": "worker_class_name",
+            "affinity": "TEXT",
+            "notNull": true
+          },
+          {
+            "fieldPath": "inputMergerClassName",
+            "columnName": "input_merger_class_name",
+            "affinity": "TEXT",
+            "notNull": true
+          },
+          {
+            "fieldPath": "input",
+            "columnName": "input",
+            "affinity": "BLOB",
+            "notNull": true
+          },
+          {
+            "fieldPath": "output",
+            "columnName": "output",
+            "affinity": "BLOB",
+            "notNull": true
+          },
+          {
+            "fieldPath": "initialDelay",
+            "columnName": "initial_delay",
+            "affinity": "INTEGER",
+            "notNull": true
+          },
+          {
+            "fieldPath": "intervalDuration",
+            "columnName": "interval_duration",
+            "affinity": "INTEGER",
+            "notNull": true
+          },
+          {
+            "fieldPath": "flexDuration",
+            "columnName": "flex_duration",
+            "affinity": "INTEGER",
+            "notNull": true
+          },
+          {
+            "fieldPath": "runAttemptCount",
+            "columnName": "run_attempt_count",
+            "affinity": "INTEGER",
+            "notNull": true
+          },
+          {
+            "fieldPath": "backoffPolicy",
+            "columnName": "backoff_policy",
+            "affinity": "INTEGER",
+            "notNull": true
+          },
+          {
+            "fieldPath": "backoffDelayDuration",
+            "columnName": "backoff_delay_duration",
+            "affinity": "INTEGER",
+            "notNull": true
+          },
+          {
+            "fieldPath": "lastEnqueueTime",
+            "columnName": "last_enqueue_time",
+            "affinity": "INTEGER",
+            "notNull": true
+          },
+          {
+            "fieldPath": "minimumRetentionDuration",
+            "columnName": "minimum_retention_duration",
+            "affinity": "INTEGER",
+            "notNull": true
+          },
+          {
+            "fieldPath": "scheduleRequestedAt",
+            "columnName": "schedule_requested_at",
+            "affinity": "INTEGER",
+            "notNull": true
+          },
+          {
+            "fieldPath": "expedited",
+            "columnName": "run_in_foreground",
+            "affinity": "INTEGER",
+            "notNull": true
+          },
+          {
+            "fieldPath": "outOfQuotaPolicy",
+            "columnName": "out_of_quota_policy",
+            "affinity": "INTEGER",
+            "notNull": true
+          },
+          {
+            "fieldPath": "periodCount",
+            "columnName": "period_count",
+            "affinity": "INTEGER",
+            "notNull": true,
+            "defaultValue": "0"
+          },
+          {
+            "fieldPath": "generation",
+            "columnName": "generation",
+            "affinity": "INTEGER",
+            "notNull": true,
+            "defaultValue": "0"
+          },
+          {
+            "fieldPath": "nextScheduleTimeOverride",
+            "columnName": "next_schedule_time_override",
+            "affinity": "INTEGER",
+            "notNull": true,
+            "defaultValue": "9223372036854775807"
+          },
+          {
+            "fieldPath": "nextScheduleTimeOverrideGeneration",
+            "columnName": "next_schedule_time_override_generation",
+            "affinity": "INTEGER",
+            "notNull": true,
+            "defaultValue": "0"
+          },
+          {
+            "fieldPath": "constraints.requiredNetworkType",
+            "columnName": "required_network_type",
+            "affinity": "INTEGER",
+            "notNull": true
+          },
+          {
+            "fieldPath": "constraints.requiresCharging",
+            "columnName": "requires_charging",
+            "affinity": "INTEGER",
+            "notNull": true
+          },
+          {
+            "fieldPath": "constraints.requiresDeviceIdle",
+            "columnName": "requires_device_idle",
+            "affinity": "INTEGER",
+            "notNull": true
+          },
+          {
+            "fieldPath": "constraints.requiresBatteryNotLow",
+            "columnName": "requires_battery_not_low",
+            "affinity": "INTEGER",
+            "notNull": true
+          },
+          {
+            "fieldPath": "constraints.requiresStorageNotLow",
+            "columnName": "requires_storage_not_low",
+            "affinity": "INTEGER",
+            "notNull": true
+          },
+          {
+            "fieldPath": "constraints.contentTriggerUpdateDelayMillis",
+            "columnName": "trigger_content_update_delay",
+            "affinity": "INTEGER",
+            "notNull": true
+          },
+          {
+            "fieldPath": "constraints.contentTriggerMaxDelayMillis",
+            "columnName": "trigger_max_content_delay",
+            "affinity": "INTEGER",
+            "notNull": true
+          },
+          {
+            "fieldPath": "constraints.contentUriTriggers",
+            "columnName": "content_uri_triggers",
+            "affinity": "BLOB",
+            "notNull": true
+          }
+        ],
+        "primaryKey": {
+          "autoGenerate": false,
+          "columnNames": [
+            "id"
+          ]
+        },
+        "indices": [
+          {
+            "name": "index_WorkSpec_schedule_requested_at",
+            "unique": false,
+            "columnNames": [
+              "schedule_requested_at"
+            ],
+            "orders": [],
+            "createSql": "CREATE INDEX IF NOT EXISTS `index_WorkSpec_schedule_requested_at` ON `${TABLE_NAME}` (`schedule_requested_at`)"
+          },
+          {
+            "name": "index_WorkSpec_last_enqueue_time",
+            "unique": false,
+            "columnNames": [
+              "last_enqueue_time"
+            ],
+            "orders": [],
+            "createSql": "CREATE INDEX IF NOT EXISTS `index_WorkSpec_last_enqueue_time` ON `${TABLE_NAME}` (`last_enqueue_time`)"
+          }
+        ],
+        "foreignKeys": []
+      },
+      {
+        "tableName": "WorkTag",
+        "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`tag` TEXT NOT NULL, `work_spec_id` TEXT NOT NULL, PRIMARY KEY(`tag`, `work_spec_id`), FOREIGN KEY(`work_spec_id`) REFERENCES `WorkSpec`(`id`) ON UPDATE CASCADE ON DELETE CASCADE )",
+        "fields": [
+          {
+            "fieldPath": "tag",
+            "columnName": "tag",
+            "affinity": "TEXT",
+            "notNull": true
+          },
+          {
+            "fieldPath": "workSpecId",
+            "columnName": "work_spec_id",
+            "affinity": "TEXT",
+            "notNull": true
+          }
+        ],
+        "primaryKey": {
+          "autoGenerate": false,
+          "columnNames": [
+            "tag",
+            "work_spec_id"
+          ]
+        },
+        "indices": [
+          {
+            "name": "index_WorkTag_work_spec_id",
+            "unique": false,
+            "columnNames": [
+              "work_spec_id"
+            ],
+            "orders": [],
+            "createSql": "CREATE INDEX IF NOT EXISTS `index_WorkTag_work_spec_id` ON `${TABLE_NAME}` (`work_spec_id`)"
+          }
+        ],
+        "foreignKeys": [
+          {
+            "table": "WorkSpec",
+            "onDelete": "CASCADE",
+            "onUpdate": "CASCADE",
+            "columns": [
+              "work_spec_id"
+            ],
+            "referencedColumns": [
+              "id"
+            ]
+          }
+        ]
+      },
+      {
+        "tableName": "SystemIdInfo",
+        "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`work_spec_id` TEXT NOT NULL, `generation` INTEGER NOT NULL DEFAULT 0, `system_id` INTEGER NOT NULL, PRIMARY KEY(`work_spec_id`, `generation`), FOREIGN KEY(`work_spec_id`) REFERENCES `WorkSpec`(`id`) ON UPDATE CASCADE ON DELETE CASCADE )",
+        "fields": [
+          {
+            "fieldPath": "workSpecId",
+            "columnName": "work_spec_id",
+            "affinity": "TEXT",
+            "notNull": true
+          },
+          {
+            "fieldPath": "generation",
+            "columnName": "generation",
+            "affinity": "INTEGER",
+            "notNull": true,
+            "defaultValue": "0"
+          },
+          {
+            "fieldPath": "systemId",
+            "columnName": "system_id",
+            "affinity": "INTEGER",
+            "notNull": true
+          }
+        ],
+        "primaryKey": {
+          "autoGenerate": false,
+          "columnNames": [
+            "work_spec_id",
+            "generation"
+          ]
+        },
+        "indices": [],
+        "foreignKeys": [
+          {
+            "table": "WorkSpec",
+            "onDelete": "CASCADE",
+            "onUpdate": "CASCADE",
+            "columns": [
+              "work_spec_id"
+            ],
+            "referencedColumns": [
+              "id"
+            ]
+          }
+        ]
+      },
+      {
+        "tableName": "WorkName",
+        "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`name` TEXT NOT NULL, `work_spec_id` TEXT NOT NULL, PRIMARY KEY(`name`, `work_spec_id`), FOREIGN KEY(`work_spec_id`) REFERENCES `WorkSpec`(`id`) ON UPDATE CASCADE ON DELETE CASCADE )",
+        "fields": [
+          {
+            "fieldPath": "name",
+            "columnName": "name",
+            "affinity": "TEXT",
+            "notNull": true
+          },
+          {
+            "fieldPath": "workSpecId",
+            "columnName": "work_spec_id",
+            "affinity": "TEXT",
+            "notNull": true
+          }
+        ],
+        "primaryKey": {
+          "autoGenerate": false,
+          "columnNames": [
+            "name",
+            "work_spec_id"
+          ]
+        },
+        "indices": [
+          {
+            "name": "index_WorkName_work_spec_id",
+            "unique": false,
+            "columnNames": [
+              "work_spec_id"
+            ],
+            "orders": [],
+            "createSql": "CREATE INDEX IF NOT EXISTS `index_WorkName_work_spec_id` ON `${TABLE_NAME}` (`work_spec_id`)"
+          }
+        ],
+        "foreignKeys": [
+          {
+            "table": "WorkSpec",
+            "onDelete": "CASCADE",
+            "onUpdate": "CASCADE",
+            "columns": [
+              "work_spec_id"
+            ],
+            "referencedColumns": [
+              "id"
+            ]
+          }
+        ]
+      },
+      {
+        "tableName": "WorkProgress",
+        "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`work_spec_id` TEXT NOT NULL, `progress` BLOB NOT NULL, PRIMARY KEY(`work_spec_id`), FOREIGN KEY(`work_spec_id`) REFERENCES `WorkSpec`(`id`) ON UPDATE CASCADE ON DELETE CASCADE )",
+        "fields": [
+          {
+            "fieldPath": "workSpecId",
+            "columnName": "work_spec_id",
+            "affinity": "TEXT",
+            "notNull": true
+          },
+          {
+            "fieldPath": "progress",
+            "columnName": "progress",
+            "affinity": "BLOB",
+            "notNull": true
+          }
+        ],
+        "primaryKey": {
+          "autoGenerate": false,
+          "columnNames": [
+            "work_spec_id"
+          ]
+        },
+        "indices": [],
+        "foreignKeys": [
+          {
+            "table": "WorkSpec",
+            "onDelete": "CASCADE",
+            "onUpdate": "CASCADE",
+            "columns": [
+              "work_spec_id"
+            ],
+            "referencedColumns": [
+              "id"
+            ]
+          }
+        ]
+      },
+      {
+        "tableName": "Preference",
+        "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`key` TEXT NOT NULL, `long_value` INTEGER, PRIMARY KEY(`key`))",
+        "fields": [
+          {
+            "fieldPath": "key",
+            "columnName": "key",
+            "affinity": "TEXT",
+            "notNull": true
+          },
+          {
+            "fieldPath": "value",
+            "columnName": "long_value",
+            "affinity": "INTEGER",
+            "notNull": false
+          }
+        ],
+        "primaryKey": {
+          "autoGenerate": false,
+          "columnNames": [
+            "key"
+          ]
+        },
+        "indices": [],
+        "foreignKeys": []
+      }
+    ],
+    "views": [],
+    "setupQueries": [
+      "CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)",
+      "INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, '682ed85299b53f31ab155d1b8216c06e')"
+    ]
+  }
+}
\ No newline at end of file
diff --git a/work/work-testing/api/current.txt b/work/work-testing/api/current.txt
index e6473bb..fda4ffa 100644
--- a/work/work-testing/api/current.txt
+++ b/work/work-testing/api/current.txt
@@ -46,8 +46,13 @@
     method public static androidx.work.testing.TestDriver? getTestDriver(android.content.Context);
     method public static void initializeTestWorkManager(android.content.Context);
     method public static void initializeTestWorkManager(android.content.Context, androidx.work.Configuration);
-    method public static void initializeTestWorkManagerWithRealExecutors(android.content.Context);
-    method public static void initializeTestWorkManagerWithRealExecutors(android.content.Context, androidx.work.Configuration);
+    method public static void initializeTestWorkManager(android.content.Context, androidx.work.Configuration, androidx.work.testing.WorkManagerTestInitHelper.ExecutorsMode);
+    method public static void initializeTestWorkManager(android.content.Context, androidx.work.testing.WorkManagerTestInitHelper.ExecutorsMode);
+  }
+
+  public enum WorkManagerTestInitHelper.ExecutorsMode {
+    enum_constant public static final androidx.work.testing.WorkManagerTestInitHelper.ExecutorsMode LEGACY_OVERRIDE_WITH_SYNCHRONOUS_EXECUTORS;
+    enum_constant public static final androidx.work.testing.WorkManagerTestInitHelper.ExecutorsMode PRESERVE_EXECUTORS;
   }
 
 }
diff --git a/work/work-testing/api/restricted_current.txt b/work/work-testing/api/restricted_current.txt
index e6473bb..fda4ffa 100644
--- a/work/work-testing/api/restricted_current.txt
+++ b/work/work-testing/api/restricted_current.txt
@@ -46,8 +46,13 @@
     method public static androidx.work.testing.TestDriver? getTestDriver(android.content.Context);
     method public static void initializeTestWorkManager(android.content.Context);
     method public static void initializeTestWorkManager(android.content.Context, androidx.work.Configuration);
-    method public static void initializeTestWorkManagerWithRealExecutors(android.content.Context);
-    method public static void initializeTestWorkManagerWithRealExecutors(android.content.Context, androidx.work.Configuration);
+    method public static void initializeTestWorkManager(android.content.Context, androidx.work.Configuration, androidx.work.testing.WorkManagerTestInitHelper.ExecutorsMode);
+    method public static void initializeTestWorkManager(android.content.Context, androidx.work.testing.WorkManagerTestInitHelper.ExecutorsMode);
+  }
+
+  public enum WorkManagerTestInitHelper.ExecutorsMode {
+    enum_constant public static final androidx.work.testing.WorkManagerTestInitHelper.ExecutorsMode LEGACY_OVERRIDE_WITH_SYNCHRONOUS_EXECUTORS;
+    enum_constant public static final androidx.work.testing.WorkManagerTestInitHelper.ExecutorsMode PRESERVE_EXECUTORS;
   }
 
 }
diff --git a/work/work-testing/src/androidTest/java/androidx/work/testing/TestSchedulerRealExecutorTest.kt b/work/work-testing/src/androidTest/java/androidx/work/testing/TestSchedulerRealExecutorTest.kt
index 78b5732..db35c0e 100644
--- a/work/work-testing/src/androidTest/java/androidx/work/testing/TestSchedulerRealExecutorTest.kt
+++ b/work/work-testing/src/androidTest/java/androidx/work/testing/TestSchedulerRealExecutorTest.kt
@@ -33,6 +33,7 @@
 import androidx.work.impl.WorkManagerImpl
 import androidx.work.impl.model.WorkSpec
 import androidx.work.impl.utils.taskexecutor.SerialExecutor
+import androidx.work.testing.WorkManagerTestInitHelper.ExecutorsMode.PRESERVE_EXECUTORS
 import androidx.work.testing.workers.CountingTestWorker
 import androidx.work.testing.workers.RetryWorker
 import androidx.work.testing.workers.TestWorker
@@ -49,7 +50,7 @@
     val context = ApplicationProvider.getApplicationContext<Context>()
 
     init {
-        WorkManagerTestInitHelper.initializeTestWorkManagerWithRealExecutors(context)
+        WorkManagerTestInitHelper.initializeTestWorkManager(context, PRESERVE_EXECUTORS)
         CountingTestWorker.COUNT.set(0)
     }
 
diff --git a/work/work-testing/src/main/java/androidx/work/testing/WorkManagerTestInitHelper.java b/work/work-testing/src/main/java/androidx/work/testing/WorkManagerTestInitHelper.java
index 22155ed..8abaefb 100644
--- a/work/work-testing/src/main/java/androidx/work/testing/WorkManagerTestInitHelper.java
+++ b/work/work-testing/src/main/java/androidx/work/testing/WorkManagerTestInitHelper.java
@@ -17,6 +17,7 @@
 package androidx.work.testing;
 
 import static androidx.work.testing.TestWorkManagerImplKt.createTestWorkManagerImpl;
+import static androidx.work.testing.WorkManagerTestInitHelper.ExecutorsMode.LEGACY_OVERRIDE_WITH_SYNCHRONOUS_EXECUTORS;
 
 import android.content.Context;
 
@@ -57,48 +58,82 @@
     public static void initializeTestWorkManager(
             @NonNull Context context,
             @NonNull Configuration configuration) {
+        initializeTestWorkManager(context, configuration,
+                LEGACY_OVERRIDE_WITH_SYNCHRONOUS_EXECUTORS);
+    }
 
-        // Check if the configuration being used has overridden the task executor. If not,
-        // swap to SynchronousExecutor. This is to preserve existing behavior.
-        SerialExecutor serialExecutor;
-        if (configuration.isUsingDefaultTaskExecutor()) {
-            Configuration.Builder builder = new Configuration.Builder(configuration)
-                    .setTaskExecutor(new SynchronousExecutor());
-            configuration = builder.build();
-            serialExecutor = new SynchronousSerialExecutor();
+    /**
+     * Modes that control which executors are used in tests.
+     */
+    public enum ExecutorsMode {
+        /**
+         * Use executors as they are configured in passed {@link Configuration} and preserving
+         * real main thread.
+         */
+        PRESERVE_EXECUTORS,
+
+        /**
+         * Preserve old behavior of {@link #initializeTestWorkManager(Context)} and
+         * {@link #initializeTestWorkManager(Context, Configuration)}.
+         *
+         * <p> In this mode {@link SynchronousExecutor} is used instead of main thread. Similarly,
+         * {@link SynchronousExecutor} is used as {@link Configuration#getTaskExecutor()}, unless
+         * {@link Configuration#getTaskExecutor()} was explicitly set in {@code configuration}
+         * passed in {@link #initializeTestWorkManager(Context, Configuration, ExecutorsMode)}
+         */
+        LEGACY_OVERRIDE_WITH_SYNCHRONOUS_EXECUTORS
+    }
+
+    /**
+     * Initializes a test {@link androidx.work.WorkManager} that can be controlled via {@link
+     * TestDriver}.
+     *
+     * @param context The application {@link Context}
+     * @param configuration test configuration of WorkManager
+     * @param executorsMode mode controlling executors used by WorkManager in tests. See
+     *                      documentation of modes in {@link ExecutorsMode}
+     */
+    public static void initializeTestWorkManager(@NonNull Context context,
+            @NonNull Configuration configuration, @NonNull ExecutorsMode executorsMode) {
+        WorkManagerImpl workManager;
+        if (executorsMode == LEGACY_OVERRIDE_WITH_SYNCHRONOUS_EXECUTORS) {
+            SerialExecutor serialExecutor;
+            if (configuration.isUsingDefaultTaskExecutor()) {
+                Configuration.Builder builder = new Configuration.Builder(configuration)
+                        .setTaskExecutor(new SynchronousExecutor());
+                configuration = builder.build();
+                serialExecutor = new SynchronousSerialExecutor();
+            } else {
+                serialExecutor = new SerialExecutorImpl(configuration.getTaskExecutor());
+            }
+            workManager = createTestWorkManagerImpl(context, configuration, serialExecutor);
         } else {
-            serialExecutor = new SerialExecutorImpl(configuration.getTaskExecutor());
+            workManager = createTestWorkManagerImpl(context, configuration);
         }
-
-        WorkManagerImpl.setDelegate(
-                createTestWorkManagerImpl(context, configuration, serialExecutor)
-        );
+        WorkManagerImpl.setDelegate(workManager);
     }
 
     /**
-     * Initializes a test {@link androidx.work.WorkManager} with a default configuration and
-     * real threading unlike {@link #initializeTestWorkManager(Context)} that uses a
-     * {@link SynchronousExecutor} as main thread and both executors
-     * (see {@link Configuration#getTaskExecutor()} and {@link Configuration#getExecutor()}).
+     * Initializes a test {@link androidx.work.WorkManager} that can be controlled via {@link
+     * TestDriver}.
      *
      * @param context The application {@link Context}
+     * @param executorsMode mode controlling executors used by WorkManager in tests. See
+     *                      documentation of modes in {@link ExecutorsMode}
      */
-    public static void initializeTestWorkManagerWithRealExecutors(@NonNull Context context) {
-        Configuration configuration = new Configuration.Builder().build();
-        WorkManagerImpl.setDelegate(createTestWorkManagerImpl(context, configuration));
-    }
-
-    /**
-     * Initializes a test {@link androidx.work.WorkManager} with a default configuration and
-     * real threading unlike {@link #initializeTestWorkManager(Context, Configuration)} that uses a
-     * {@link SynchronousExecutor} as main thread.
-     *
-     * @param context The application {@link Context}
-     * @param configuration The {@link androidx.work.Configuration}
-     */
-    public static void initializeTestWorkManagerWithRealExecutors(
-            @NonNull Context context, @NonNull Configuration configuration) {
-        WorkManagerImpl.setDelegate(createTestWorkManagerImpl(context, configuration));
+    public static void initializeTestWorkManager(@NonNull Context context,
+            @NonNull ExecutorsMode executorsMode) {
+        Configuration configuration;
+        if (executorsMode == LEGACY_OVERRIDE_WITH_SYNCHRONOUS_EXECUTORS) {
+            SynchronousExecutor synchronousExecutor = new SynchronousExecutor();
+            configuration = new Configuration.Builder()
+                    .setExecutor(synchronousExecutor)
+                    .setTaskExecutor(synchronousExecutor)
+                    .build();
+        } else {
+            configuration = new Configuration.Builder().build();
+        }
+        initializeTestWorkManager(context, configuration, executorsMode);
     }
 
     /**