Merge "fix confusing sentence https://memegen.googleplex.com/5524829602054144" into lmp-dev
diff --git a/core/java/android/os/INetworkManagementService.aidl b/core/java/android/os/INetworkManagementService.aidl
index fca15ac..16250c7 100644
--- a/core/java/android/os/INetworkManagementService.aidl
+++ b/core/java/android/os/INetworkManagementService.aidl
@@ -395,7 +395,7 @@
     void setDefaultNetId(int netId);
     void clearDefaultNetId();
 
-    void setPermission(boolean internal, boolean changeNetState, in int[] uids);
+    void setPermission(String permission, in int[] uids);
     void clearPermission(in int[] uids);
 
     /**
diff --git a/core/java/android/transition/ChangeTransform.java b/core/java/android/transition/ChangeTransform.java
index 1b8d57c..3fd28a6 100644
--- a/core/java/android/transition/ChangeTransform.java
+++ b/core/java/android/transition/ChangeTransform.java
@@ -228,7 +228,8 @@
         }
 
         // Next handle the normal matrix transform:
-        ObjectAnimator transformAnimator = createTransformAnimator(startValues, endValues);
+        ObjectAnimator transformAnimator = createTransformAnimator(startValues, endValues,
+                handleParentChange);
 
         if (handleParentChange && transformAnimator != null && mUseOverlay) {
             createGhostView(sceneRoot, startValues, endValues);
@@ -238,7 +239,7 @@
     }
 
     private ObjectAnimator createTransformAnimator(TransitionValues startValues,
-            TransitionValues endValues) {
+            TransitionValues endValues, final boolean handleParentChange) {
         Matrix startMatrix = (Matrix) startValues.values.get(PROPNAME_MATRIX);
         Matrix endMatrix = (Matrix) endValues.values.get(PROPNAME_MATRIX);
 
@@ -277,7 +278,12 @@
             @Override
             public void onAnimationEnd(Animator animation) {
                 if (!mIsCanceled) {
-                    setCurrentMatrix(finalEndMatrix);
+                    if (handleParentChange && mUseOverlay) {
+                        setCurrentMatrix(finalEndMatrix);
+                    } else {
+                        view.setTagInternal(R.id.transitionTransform, null);
+                        view.setTagInternal(R.id.parentMatrix, null);
+                    }
                 }
                 ANIMATION_MATRIX_PROPERTY.set(view, null);
                 transforms.restore(view);
diff --git a/preloaded-classes b/preloaded-classes
index 649255f..b3fc517 100644
--- a/preloaded-classes
+++ b/preloaded-classes
@@ -2,183 +2,29 @@
 # Automatically generated by frameworks/base/tools/preload/WritePreloadedClassFile.java.
 # MIN_LOAD_TIME_MICROS=1250
 # MIN_PROCESSES=10
-[B
-[C
-[D
-[F
-[I
-[J
-[Landroid.accounts.Account;
-[Landroid.animation.Animator;
-[Landroid.animation.Keyframe$FloatKeyframe;
-[Landroid.animation.Keyframe$IntKeyframe;
-[Landroid.animation.PropertyValuesHolder;
-[Landroid.app.FragmentState;
-[Landroid.app.LoaderManagerImpl;
-[Landroid.content.ContentProviderResult;
-[Landroid.content.ContentValues;
-[Landroid.content.Intent;
-[Landroid.content.pm.ActivityInfo;
-[Landroid.content.pm.ConfigurationInfo;
-[Landroid.content.pm.FeatureGroupInfo;
-[Landroid.content.pm.FeatureInfo;
-[Landroid.content.pm.InstrumentationInfo;
-[Landroid.content.pm.PathPermission;
-[Landroid.content.pm.PermissionInfo;
-[Landroid.content.pm.ProviderInfo;
-[Landroid.content.pm.ServiceInfo;
-[Landroid.content.pm.Signature;
-[Landroid.content.res.StringBlock;
-[Landroid.content.res.XmlBlock;
-[Landroid.database.sqlite.SQLiteConnection$Operation;
-[Landroid.database.sqlite.SQLiteConnectionPool$AcquiredConnectionStatus;
-[Landroid.graphics.Bitmap$CompressFormat;
-[Landroid.graphics.Bitmap$Config;
-[Landroid.graphics.Canvas$EdgeType;
-[Landroid.graphics.FontFamily;
-[Landroid.graphics.Interpolator$Result;
-[Landroid.graphics.Matrix$ScaleToFit;
-[Landroid.graphics.Paint$Align;
-[Landroid.graphics.Paint$Cap;
-[Landroid.graphics.Paint$Join;
-[Landroid.graphics.Paint$Style;
-[Landroid.graphics.Path$Direction;
-[Landroid.graphics.Path$FillType;
-[Landroid.graphics.PorterDuff$Mode;
-[Landroid.graphics.Region$Op;
-[Landroid.graphics.Shader$TileMode;
-[Landroid.graphics.Typeface;
-[Landroid.graphics.drawable.Drawable;
-[Landroid.graphics.drawable.GradientDrawable$Orientation;
-[Landroid.graphics.drawable.LayerDrawable$ChildDrawable;
-[Landroid.graphics.drawable.Ripple;
-[Landroid.hardware.soundtrigger.SoundTrigger$ConfidenceLevel;
-[Landroid.hardware.soundtrigger.SoundTrigger$Keyphrase;
-[Landroid.hardware.soundtrigger.SoundTrigger$KeyphraseRecognitionExtra;
-[Landroid.media.AudioGain;
-[Landroid.net.NetworkInfo$DetailedState;
-[Landroid.net.NetworkInfo$State;
-[Landroid.os.AsyncTask$Status;
-[Landroid.os.MessageQueue$IdleHandler;
-[Landroid.os.Parcel;
-[Landroid.os.Parcelable;
-[Landroid.os.PatternMatcher;
-[Landroid.os.storage.StorageVolume;
-[Landroid.system.StructPollfd;
-[Landroid.text.DynamicLayout$ChangeWatcher;
-[Landroid.text.InputFilter;
-[Landroid.text.Layout$Alignment;
-[Landroid.text.Layout$Directions;
-[Landroid.text.MeasuredText;
-[Landroid.text.SpanWatcher;
-[Landroid.text.TextLine;
-[Landroid.text.TextUtils$TruncateAt;
-[Landroid.text.TextWatcher;
-[Landroid.text.method.TextKeyListener$Capitalize;
-[Landroid.text.method.TextKeyListener;
-[Landroid.text.style.AlignmentSpan;
-[Landroid.text.style.CharacterStyle;
-[Landroid.text.style.LeadingMarginSpan;
-[Landroid.text.style.LineBackgroundSpan;
-[Landroid.text.style.LineHeightSpan;
-[Landroid.text.style.MetricAffectingSpan;
-[Landroid.text.style.ParagraphStyle;
-[Landroid.text.style.ReplacementSpan;
-[Landroid.text.style.SpellCheckSpan;
-[Landroid.text.style.SuggestionSpan;
-[Landroid.text.style.WrapTogetherSpan;
-[Landroid.util.LongSparseArray;
-[Landroid.util.PathParser$PathDataNode;
-[Landroid.view.Choreographer$CallbackQueue;
-[Landroid.view.View;
-[Landroid.widget.Editor$TextDisplayList;
-[Landroid.widget.Editor$TextViewPositionListener;
-[Landroid.widget.ImageView$ScaleType;
-[Landroid.widget.TextView$BufferType;
-[Landroid.widget.TextView$ChangeWatcher;
-[Lcom.android.dex.TableOfContents$Section;
-[Lcom.android.internal.policy.impl.PhoneWindow$PanelFeatureState;
-[Lcom.android.internal.telephony.PhoneConstants$State;
-[Lcom.android.okhttp.Protocol;
-[Lcom.android.okhttp.ResponseSource;
-[Lcom.android.okhttp.internal.http.HttpURLConnectionImpl$Retry;
-[Lcom.android.org.bouncycastle.asn1.ASN1ObjectIdentifier;
-[Lcom.android.org.bouncycastle.asn1.x509.GeneralName;
-[Lcom.android.org.conscrypt.OpenSSLX509CertPath$Encoding;
-[Lcom.android.org.conscrypt.OpenSSLX509Certificate;
-[Ljava.io.FileDescriptor;
-[Ljava.lang.CharSequence;
-[Ljava.lang.Class;
-[Ljava.lang.Integer;
-[Ljava.lang.Object;
-[Ljava.lang.Runnable;
-[Ljava.lang.String;
-[Ljava.lang.Void;
-[Ljava.math.BigDecimal;
-[Ljava.math.BigInteger;
-[Ljava.math.RoundingMode;
-[Ljava.net.InetAddress;
-[Ljava.net.Proxy$Type;
-[Ljava.security.cert.X509Certificate;
-[Ljava.text.Format$Field;
-[Ljava.util.ArrayList;
-[Ljava.util.Map$Entry;
-[Ljava.util.TimerTask;
-[Ljava.util.TreeMap$Relation;
-[Ljava.util.concurrent.ConcurrentHashMap$Node;
-[Ljava.util.concurrent.ConcurrentHashMap$Segment;
-[Ljava.util.concurrent.TimeUnit;
-[Ljava.util.logging.Handler;
-[Ljavax.net.ssl.KeyManager;
-[Ljavax.net.ssl.TrustManager;
-[Llibcore.reflect.AnnotationMember$DefaultValues;
-[Llibcore.reflect.AnnotationMember;
-[Lorg.apache.harmony.security.asn1.ASN1Type;
-[Lorg.apache.harmony.security.utils.ObjectIdentifier;
-[Lorg.apache.http.Header;
-[Lorg.apache.http.HeaderElement;
-[Lorg.apache.http.NameValuePair;
-[Lorg.apache.http.conn.routing.RouteInfo$LayerType;
-[Lorg.apache.http.conn.routing.RouteInfo$TunnelType;
-[Lorg.json.JSONStringer$Scope;
-[Lorg.kxml2.io.KXmlParser$ValueContext;
-[Z
-[[B
-[[I
-[[Lcom.android.org.bouncycastle.asn1.ASN1ObjectIdentifier;
-[[Ljava.lang.Object;
-[[Ljava.lang.String;
-[[Lorg.apache.harmony.security.utils.ObjectIdentifier;
-[[[B
 android.R$styleable
 android.accounts.Account
 android.accounts.Account$1
 android.accounts.AccountManager
-android.accounts.AccountManager$16
-android.accounts.AccountManager$8
+android.accounts.AccountManager$12
+android.accounts.AccountManager$13
+android.accounts.AccountManager$6
 android.accounts.AccountManager$AmsTask
 android.accounts.AccountManager$AmsTask$1
 android.accounts.AccountManager$AmsTask$Response
-android.accounts.AccountManagerCallback
 android.accounts.AccountManagerFuture
-android.accounts.AccountsException
-android.accounts.AuthenticatorException
 android.accounts.IAccountManager
 android.accounts.IAccountManager$Stub
 android.accounts.IAccountManager$Stub$Proxy
 android.accounts.IAccountManagerResponse
 android.accounts.IAccountManagerResponse$Stub
 android.accounts.OnAccountsUpdateListener
-android.accounts.OperationCanceledException
 android.animation.Animator
 android.animation.Animator$AnimatorListener
-android.animation.Animator$AnimatorPauseListener
-android.animation.AnimatorInflater
 android.animation.AnimatorListenerAdapter
 android.animation.AnimatorSet
 android.animation.AnimatorSet$AnimatorSetListener
 android.animation.AnimatorSet$Builder
-android.animation.AnimatorSet$Dependency
 android.animation.AnimatorSet$DependencyListener
 android.animation.AnimatorSet$Node
 android.animation.FloatEvaluator
@@ -189,40 +35,30 @@
 android.animation.Keyframe$FloatKeyframe
 android.animation.Keyframe$IntKeyframe
 android.animation.KeyframeSet
-android.animation.Keyframes
-android.animation.Keyframes$FloatKeyframes
-android.animation.Keyframes$IntKeyframes
-android.animation.LayoutTransition
 android.animation.LayoutTransition$TransitionListener
 android.animation.ObjectAnimator
 android.animation.PropertyValuesHolder
 android.animation.PropertyValuesHolder$FloatPropertyValuesHolder
 android.animation.PropertyValuesHolder$IntPropertyValuesHolder
-android.animation.RectEvaluator
-android.animation.StateListAnimator
-android.animation.StateListAnimator$1
-android.animation.StateListAnimator$Tuple
 android.animation.TimeInterpolator
 android.animation.TypeEvaluator
 android.animation.ValueAnimator
 android.animation.ValueAnimator$AnimationHandler
-android.animation.ValueAnimator$AnimatorUpdateListener
 android.app.ActionBar
 android.app.ActionBar$LayoutParams
 android.app.Activity
 android.app.Activity$1
 android.app.ActivityManager
+android.app.ActivityManager$MemoryInfo
+android.app.ActivityManager$MemoryInfo$1
 android.app.ActivityManager$RunningAppProcessInfo
 android.app.ActivityManager$RunningAppProcessInfo$1
-android.app.ActivityManager$TaskDescription
-android.app.ActivityManager$TaskDescription$1
 android.app.ActivityManagerNative
 android.app.ActivityManagerNative$1
 android.app.ActivityManagerProxy
 android.app.ActivityThread
 android.app.ActivityThread$1
 android.app.ActivityThread$2
-android.app.ActivityThread$3
 android.app.ActivityThread$ActivityClientRecord
 android.app.ActivityThread$AppBindData
 android.app.ActivityThread$ApplicationThread
@@ -230,6 +66,7 @@
 android.app.ActivityThread$ContextCleanupInfo
 android.app.ActivityThread$CreateServiceData
 android.app.ActivityThread$DropBoxReporter
+android.app.ActivityThread$DumpComponentInfo
 android.app.ActivityThread$EventLoggingReporter
 android.app.ActivityThread$GcIdler
 android.app.ActivityThread$H
@@ -242,10 +79,9 @@
 android.app.ActivityThread$ResultData
 android.app.ActivityThread$ServiceArgsData
 android.app.ActivityThread$StopInfo
-android.app.ActivityTransitionState
 android.app.AlertDialog
+android.app.AlertDialog$Builder
 android.app.AppGlobals
-android.app.AppOpsManager
 android.app.Application
 android.app.Application$ActivityLifecycleCallbacks
 android.app.ApplicationErrorReport$CrashInfo
@@ -255,7 +91,6 @@
 android.app.ApplicationThreadNative
 android.app.BackStackRecord
 android.app.BackStackRecord$Op
-android.app.BackStackRecord$TransitionState
 android.app.ContextImpl
 android.app.ContextImpl$1
 android.app.ContextImpl$10
@@ -292,30 +127,8 @@
 android.app.ContextImpl$39
 android.app.ContextImpl$4
 android.app.ContextImpl$40
-android.app.ContextImpl$41
-android.app.ContextImpl$42
-android.app.ContextImpl$43
-android.app.ContextImpl$44
-android.app.ContextImpl$45
-android.app.ContextImpl$46
-android.app.ContextImpl$47
-android.app.ContextImpl$48
-android.app.ContextImpl$49
 android.app.ContextImpl$5
-android.app.ContextImpl$50
-android.app.ContextImpl$51
-android.app.ContextImpl$52
-android.app.ContextImpl$53
-android.app.ContextImpl$54
-android.app.ContextImpl$55
-android.app.ContextImpl$56
-android.app.ContextImpl$57
-android.app.ContextImpl$58
-android.app.ContextImpl$59
 android.app.ContextImpl$6
-android.app.ContextImpl$60
-android.app.ContextImpl$61
-android.app.ContextImpl$62
 android.app.ContextImpl$7
 android.app.ContextImpl$8
 android.app.ContextImpl$9
@@ -325,23 +138,16 @@
 android.app.Dialog
 android.app.Dialog$1
 android.app.Dialog$ListenersHandler
-android.app.DialogFragment
 android.app.Fragment
-android.app.Fragment$1
 android.app.FragmentBreadCrumbs
+android.app.FragmentBreadCrumbs$1
 android.app.FragmentContainer
 android.app.FragmentManager
 android.app.FragmentManager$BackStackEntry
+android.app.FragmentManager$OnBackStackChangedListener
 android.app.FragmentManagerImpl
 android.app.FragmentManagerImpl$1
-android.app.FragmentManagerState
-android.app.FragmentManagerState$1
-android.app.FragmentState
-android.app.FragmentState$1
 android.app.FragmentTransaction
-android.app.IActivityContainer
-android.app.IActivityContainer$Stub
-android.app.IActivityContainer$Stub$Proxy
 android.app.IActivityManager
 android.app.IActivityManager$ContentProviderHolder
 android.app.IActivityManager$ContentProviderHolder$1
@@ -354,8 +160,13 @@
 android.app.INotificationManager
 android.app.INotificationManager$Stub
 android.app.INotificationManager$Stub$Proxy
+android.app.ISearchManager
+android.app.ISearchManager$Stub
+android.app.ISearchManager$Stub$Proxy
 android.app.IServiceConnection
 android.app.IServiceConnection$Stub
+android.app.ITransientNotification
+android.app.ITransientNotification$Stub
 android.app.IUiAutomationConnection
 android.app.IUiAutomationConnection$Stub
 android.app.Instrumentation
@@ -363,6 +174,8 @@
 android.app.IntentService
 android.app.IntentService$ServiceHandler
 android.app.ListActivity
+android.app.ListActivity$1
+android.app.ListActivity$2
 android.app.LoadedApk
 android.app.LoadedApk$ReceiverDispatcher
 android.app.LoadedApk$ReceiverDispatcher$Args
@@ -379,22 +192,16 @@
 android.app.Notification
 android.app.Notification$1
 android.app.Notification$Builder
-android.app.Notification$BuilderRemoteViews
 android.app.NotificationManager
 android.app.OnActivityPausedListener
 android.app.PendingIntent
 android.app.PendingIntent$1
-android.app.PendingIntent$CanceledException
-android.app.ProgressDialog
 android.app.QueuedWork
 android.app.ReceiverRestrictedContext
-android.app.ResourcesManager
 android.app.ResultInfo
 android.app.ResultInfo$1
 android.app.Service
 android.app.ServiceConnectionLeaked
-android.app.SharedElementCallback
-android.app.SharedElementCallback$1
 android.app.SharedPreferencesImpl
 android.app.SharedPreferencesImpl$1
 android.app.SharedPreferencesImpl$2
@@ -402,9 +209,6 @@
 android.app.SharedPreferencesImpl$EditorImpl$1
 android.app.SharedPreferencesImpl$EditorImpl$2
 android.app.SharedPreferencesImpl$MemoryCommitResult
-android.app.admin.DevicePolicyManager
-android.app.admin.IDevicePolicyManager$Stub
-android.app.admin.IDevicePolicyManager$Stub$Proxy
 android.app.backup.BackupDataInput
 android.app.backup.BackupDataInput$EntityHeader
 android.app.backup.BackupDataOutput
@@ -412,15 +216,12 @@
 android.app.backup.BackupHelperDispatcher$Header
 android.app.backup.FileBackupHelperBase
 android.app.backup.FullBackup
-android.appwidget.AppWidgetHostView
 android.appwidget.AppWidgetManager
 android.appwidget.AppWidgetProvider
-android.bluetooth.BluetoothDevice
 android.bluetooth.BluetoothUuid
 android.content.AbstractThreadedSyncAdapter
 android.content.AbstractThreadedSyncAdapter$ISyncAdapterImpl
 android.content.AbstractThreadedSyncAdapter$SyncThread
-android.content.ActivityNotFoundException
 android.content.BroadcastReceiver
 android.content.BroadcastReceiver$PendingResult
 android.content.ComponentCallbacks
@@ -431,11 +232,8 @@
 android.content.ContentProvider$Transport
 android.content.ContentProviderClient
 android.content.ContentProviderNative
-android.content.ContentProviderOperation
-android.content.ContentProviderOperation$1
 android.content.ContentProviderProxy
 android.content.ContentProviderResult
-android.content.ContentProviderResult$1
 android.content.ContentResolver
 android.content.ContentResolver$CursorWrapperInner
 android.content.ContentResolver$ParcelFileDescriptorInner
@@ -466,17 +264,11 @@
 android.content.Intent$1
 android.content.IntentFilter
 android.content.IntentFilter$1
-android.content.IntentFilter$MalformedMimeTypeException
-android.content.IntentSender$SendIntentException
-android.content.OperationApplicationException
 android.content.ServiceConnection
 android.content.SharedPreferences
 android.content.SharedPreferences$Editor
 android.content.SharedPreferences$OnSharedPreferenceChangeListener
 android.content.SyncContext
-android.content.SyncRequest
-android.content.SyncRequest$1
-android.content.SyncRequest$Builder
 android.content.SyncResult
 android.content.SyncResult$1
 android.content.SyncStats
@@ -489,8 +281,6 @@
 android.content.pm.ComponentInfo
 android.content.pm.ConfigurationInfo
 android.content.pm.ConfigurationInfo$1
-android.content.pm.FeatureGroupInfo
-android.content.pm.FeatureGroupInfo$1
 android.content.pm.FeatureInfo
 android.content.pm.FeatureInfo$1
 android.content.pm.IPackageManager
@@ -503,7 +293,6 @@
 android.content.pm.PackageItemInfo
 android.content.pm.PackageManager
 android.content.pm.PackageManager$NameNotFoundException
-android.content.pm.PackageParser$PackageParserException
 android.content.pm.PathPermission
 android.content.pm.PathPermission$1
 android.content.pm.PermissionInfo
@@ -533,10 +322,9 @@
 android.content.res.ObbInfo$1
 android.content.res.ObbScanner
 android.content.res.Resources
-android.content.res.Resources$NotFoundException
 android.content.res.Resources$Theme
-android.content.res.ResourcesKey
 android.content.res.StringBlock
+android.content.res.StringBlock$StyleIDs
 android.content.res.TypedArray
 android.content.res.XmlBlock
 android.content.res.XmlBlock$Parser
@@ -573,7 +361,6 @@
 android.database.IContentObserver$Stub$Proxy
 android.database.MatrixCursor
 android.database.Observable
-android.database.SQLException
 android.database.sqlite.DatabaseObjectNotClosedException
 android.database.sqlite.SQLiteClosable
 android.database.sqlite.SQLiteConnection
@@ -589,13 +376,12 @@
 android.database.sqlite.SQLiteCustomFunction
 android.database.sqlite.SQLiteDatabase
 android.database.sqlite.SQLiteDatabase$1
+android.database.sqlite.SQLiteDatabase$2
 android.database.sqlite.SQLiteDatabaseConfiguration
-android.database.sqlite.SQLiteDatabaseCorruptException
-android.database.sqlite.SQLiteDatabaseLockedException
 android.database.sqlite.SQLiteDebug
+android.database.sqlite.SQLiteDebug$DbStats
 android.database.sqlite.SQLiteDebug$PagerStats
 android.database.sqlite.SQLiteDirectCursorDriver
-android.database.sqlite.SQLiteException
 android.database.sqlite.SQLiteGlobal
 android.database.sqlite.SQLiteOpenHelper
 android.database.sqlite.SQLiteProgram
@@ -614,13 +400,13 @@
 android.ddm.DdmHandleThread
 android.ddm.DdmHandleViewDebug
 android.ddm.DdmRegister
+android.drm.DrmManagerClient
 android.emoji.EmojiFactory
 android.graphics.AvoidXfermode
 android.graphics.Bitmap
 android.graphics.Bitmap$1
 android.graphics.Bitmap$2
 android.graphics.Bitmap$BitmapFinalizer
-android.graphics.Bitmap$CompressFormat
 android.graphics.Bitmap$Config
 android.graphics.BitmapFactory
 android.graphics.BitmapFactory$Options
@@ -631,7 +417,6 @@
 android.graphics.Canvas
 android.graphics.Canvas$CanvasFinalizer
 android.graphics.Canvas$EdgeType
-android.graphics.CanvasProperty
 android.graphics.Color
 android.graphics.ColorFilter
 android.graphics.ColorMatrixColorFilter
@@ -642,12 +427,6 @@
 android.graphics.DiscretePathEffect
 android.graphics.DrawFilter
 android.graphics.EmbossMaskFilter
-android.graphics.FontFamily
-android.graphics.FontListParser
-android.graphics.FontListParser$Alias
-android.graphics.FontListParser$Config
-android.graphics.FontListParser$Family
-android.graphics.FontListParser$Font
 android.graphics.Insets
 android.graphics.Interpolator
 android.graphics.Interpolator$Result
@@ -660,8 +439,6 @@
 android.graphics.Matrix$ScaleToFit
 android.graphics.Movie
 android.graphics.NinePatch
-android.graphics.NinePatch$InsetStruct
-android.graphics.Outline
 android.graphics.Paint
 android.graphics.Paint$Align
 android.graphics.Paint$Cap
@@ -708,17 +485,12 @@
 android.graphics.Xfermode
 android.graphics.YuvImage
 android.graphics.drawable.Animatable
-android.graphics.drawable.AnimatedStateListDrawable
-android.graphics.drawable.AnimatedStateListDrawable$AnimatedStateListState
-android.graphics.drawable.AnimatedStateListDrawable$AnimationDrawableTransition
-android.graphics.drawable.AnimatedStateListDrawable$FrameInterpolator
-android.graphics.drawable.AnimatedStateListDrawable$Transition
-android.graphics.drawable.AnimatedVectorDrawable
-android.graphics.drawable.AnimatedVectorDrawable$AnimatedVectorDrawableState
 android.graphics.drawable.AnimationDrawable
 android.graphics.drawable.AnimationDrawable$AnimationState
 android.graphics.drawable.BitmapDrawable
 android.graphics.drawable.BitmapDrawable$BitmapState
+android.graphics.drawable.ClipDrawable
+android.graphics.drawable.ClipDrawable$ClipState
 android.graphics.drawable.ColorDrawable
 android.graphics.drawable.ColorDrawable$ColorState
 android.graphics.drawable.Drawable
@@ -726,26 +498,15 @@
 android.graphics.drawable.Drawable$ConstantState
 android.graphics.drawable.DrawableContainer
 android.graphics.drawable.DrawableContainer$DrawableContainerState
-android.graphics.drawable.DrawableContainer$DrawableContainerState$ConstantStateFuture
 android.graphics.drawable.GradientDrawable
 android.graphics.drawable.GradientDrawable$1
 android.graphics.drawable.GradientDrawable$GradientState
 android.graphics.drawable.GradientDrawable$Orientation
-android.graphics.drawable.InsetDrawable
-android.graphics.drawable.InsetDrawable$InsetState
 android.graphics.drawable.LayerDrawable
 android.graphics.drawable.LayerDrawable$ChildDrawable
 android.graphics.drawable.LayerDrawable$LayerState
 android.graphics.drawable.NinePatchDrawable
 android.graphics.drawable.NinePatchDrawable$NinePatchState
-android.graphics.drawable.Ripple
-android.graphics.drawable.Ripple$1
-android.graphics.drawable.Ripple$LogInterpolator
-android.graphics.drawable.RippleBackground
-android.graphics.drawable.RippleBackground$1
-android.graphics.drawable.RippleBackground$2
-android.graphics.drawable.RippleDrawable
-android.graphics.drawable.RippleDrawable$RippleState
 android.graphics.drawable.RotateDrawable
 android.graphics.drawable.RotateDrawable$RotateState
 android.graphics.drawable.ScaleDrawable
@@ -756,39 +517,21 @@
 android.graphics.drawable.StateListDrawable$StateListState
 android.graphics.drawable.TransitionDrawable
 android.graphics.drawable.TransitionDrawable$TransitionState
-android.graphics.drawable.VectorDrawable
-android.graphics.drawable.VectorDrawable$VFullPath
-android.graphics.drawable.VectorDrawable$VGroup
-android.graphics.drawable.VectorDrawable$VPath
-android.graphics.drawable.VectorDrawable$VPathRenderer
-android.graphics.drawable.VectorDrawable$VectorDrawableState
 android.graphics.drawable.shapes.RectShape
+android.graphics.drawable.shapes.RoundRectShape
 android.graphics.drawable.shapes.Shape
-android.graphics.pdf.PdfDocument
-android.graphics.pdf.PdfEditor
-android.graphics.pdf.PdfRenderer
 android.hardware.Camera
 android.hardware.Camera$CameraInfo
 android.hardware.Camera$Face
-android.hardware.Camera$Parameters
-android.hardware.Camera$PreviewCallback
 android.hardware.Sensor
+android.hardware.SensorEvent
 android.hardware.SensorEventListener
 android.hardware.SensorManager
 android.hardware.SerialPort
 android.hardware.SystemSensorManager
 android.hardware.SystemSensorManager$BaseEventQueue
-android.hardware.camera2.CameraCharacteristics
-android.hardware.camera2.CaptureRequest
-android.hardware.camera2.CaptureResult
-android.hardware.camera2.DngCreator
-android.hardware.camera2.impl.CameraMetadataNative
-android.hardware.camera2.legacy.LegacyCameraDevice
-android.hardware.camera2.legacy.PerfMeasurement
 android.hardware.display.DisplayManager
-android.hardware.display.DisplayManager$DisplayListener
 android.hardware.display.DisplayManagerGlobal
-android.hardware.display.DisplayManagerGlobal$DisplayListenerDelegate
 android.hardware.display.DisplayManagerGlobal$DisplayManagerCallback
 android.hardware.display.IDisplayManager
 android.hardware.display.IDisplayManager$Stub
@@ -800,62 +543,30 @@
 android.hardware.input.IInputManager
 android.hardware.input.IInputManager$Stub
 android.hardware.input.IInputManager$Stub$Proxy
-android.hardware.input.InputDeviceIdentifier
-android.hardware.input.InputDeviceIdentifier$1
 android.hardware.input.InputManager
 android.hardware.input.InputManager$InputDevicesChangedListener
-android.hardware.location.ActivityRecognitionHardware
-android.hardware.location.IActivityRecognitionHardware
-android.hardware.location.IActivityRecognitionHardware$Stub
-android.hardware.soundtrigger.SoundTrigger
-android.hardware.soundtrigger.SoundTrigger$ConfidenceLevel
-android.hardware.soundtrigger.SoundTrigger$ConfidenceLevel$1
-android.hardware.soundtrigger.SoundTrigger$Keyphrase
-android.hardware.soundtrigger.SoundTrigger$Keyphrase$1
-android.hardware.soundtrigger.SoundTrigger$KeyphraseRecognitionEvent
-android.hardware.soundtrigger.SoundTrigger$KeyphraseRecognitionEvent$1
-android.hardware.soundtrigger.SoundTrigger$KeyphraseRecognitionExtra
-android.hardware.soundtrigger.SoundTrigger$KeyphraseRecognitionExtra$1
-android.hardware.soundtrigger.SoundTrigger$KeyphraseSoundModel
-android.hardware.soundtrigger.SoundTrigger$KeyphraseSoundModel$1
-android.hardware.soundtrigger.SoundTrigger$ModuleProperties
-android.hardware.soundtrigger.SoundTrigger$ModuleProperties$1
-android.hardware.soundtrigger.SoundTrigger$RecognitionConfig
-android.hardware.soundtrigger.SoundTrigger$RecognitionConfig$1
-android.hardware.soundtrigger.SoundTrigger$RecognitionEvent
-android.hardware.soundtrigger.SoundTrigger$RecognitionEvent$1
-android.hardware.soundtrigger.SoundTrigger$SoundModel
-android.hardware.soundtrigger.SoundTrigger$SoundModelEvent
-android.hardware.soundtrigger.SoundTrigger$SoundModelEvent$1
-android.hardware.soundtrigger.SoundTriggerModule
 android.hardware.usb.UsbDevice
 android.hardware.usb.UsbDeviceConnection
 android.hardware.usb.UsbRequest
 android.inputmethodservice.ExtractEditText
+android.location.GpsSatellite
+android.location.GpsStatus
+android.location.GpsStatus$1
+android.location.ILocationManager
+android.location.ILocationManager$Stub
+android.location.ILocationManager$Stub$Proxy
 android.location.Location
 android.location.Location$1
+android.location.LocationManager
+android.location.LocationRequest
+android.location.LocationRequest$1
 android.media.AmrInputStream
-android.media.AudioAttributes
-android.media.AudioAttributes$1
-android.media.AudioAttributes$Builder
-android.media.AudioDevicePort
-android.media.AudioDevicePortConfig
 android.media.AudioFormat
-android.media.AudioGain
-android.media.AudioGainConfig
-android.media.AudioHandle
 android.media.AudioManager
 android.media.AudioManager$1
 android.media.AudioManager$FocusEventHandlerDelegate
 android.media.AudioManager$FocusEventHandlerDelegate$1
 android.media.AudioManager$OnAudioFocusChangeListener
-android.media.AudioMixPort
-android.media.AudioMixPortConfig
-android.media.AudioPatch
-android.media.AudioPort
-android.media.AudioPortConfig
-android.media.AudioPortEventHandler
-android.media.AudioPortEventHandler$1
 android.media.AudioRecord
 android.media.AudioSystem
 android.media.AudioTrack
@@ -863,43 +574,33 @@
 android.media.CameraProfile
 android.media.DecoderCapabilities
 android.media.EncoderCapabilities
+android.media.ExifInterface
 android.media.IAudioFocusDispatcher
 android.media.IAudioFocusDispatcher$Stub
 android.media.IAudioService
 android.media.IAudioService$Stub
 android.media.IAudioService$Stub$Proxy
-android.media.IMediaHTTPConnection
-android.media.IMediaHTTPConnection$Stub
-android.media.Image
-android.media.ImageReader
-android.media.ImageReader$SurfaceImage
 android.media.JetPlayer
 android.media.MediaCodec
 android.media.MediaCodecList
 android.media.MediaCrypto
 android.media.MediaDrm
 android.media.MediaExtractor
-android.media.MediaFormat
-android.media.MediaHTTPConnection
-android.media.MediaMetadata
 android.media.MediaMetadataRetriever
 android.media.MediaMuxer
 android.media.MediaPlayer
 android.media.MediaPlayer$OnBufferingUpdateListener
 android.media.MediaPlayer$OnCompletionListener
 android.media.MediaPlayer$OnErrorListener
+android.media.MediaPlayer$OnInfoListener
 android.media.MediaPlayer$OnPreparedListener
 android.media.MediaPlayer$OnSeekCompleteListener
-android.media.MediaPlayer$OnVideoSizeChangedListener
 android.media.MediaRecorder
 android.media.MediaScanner
 android.media.RemoteDisplay
 android.media.ResampleInputStream
-android.media.SoundPool$SoundPoolImpl
-android.media.SubtitleController$Listener
+android.media.SoundPool
 android.media.ToneGenerator
-android.media.audiofx.AudioEffect
-android.media.audiofx.LoudnessEnhancer
 android.mtp.MtpDatabase
 android.mtp.MtpDevice
 android.mtp.MtpDeviceInfo
@@ -929,12 +630,9 @@
 android.net.NetworkStats$1
 android.net.NetworkUtils
 android.net.Proxy
-android.net.ProxyInfo
 android.net.SSLCertificateSocketFactory
 android.net.SSLCertificateSocketFactory$1
 android.net.SSLSessionCache
-android.net.StaticIpConfiguration
-android.net.StaticIpConfiguration$1
 android.net.TrafficStats
 android.net.Uri
 android.net.Uri$1
@@ -953,46 +651,35 @@
 android.net.http.AndroidHttpClient
 android.net.http.AndroidHttpClient$1
 android.net.http.AndroidHttpClient$2
+android.net.http.AndroidHttpClient$CurlLogger
+android.net.http.CertificateChainValidator
 android.net.wifi.IWifiManager
 android.net.wifi.IWifiManager$Stub
 android.net.wifi.IWifiManager$Stub$Proxy
-android.net.wifi.WifiInfo
 android.net.wifi.WifiManager
-android.net.wifi.WifiManager$WifiLock
+android.net.wifi.WifiManager$ServiceHandler
 android.nfc.IAppCallback
 android.nfc.IAppCallback$Stub
 android.nfc.INfcAdapter
 android.nfc.INfcAdapter$Stub
 android.nfc.INfcAdapter$Stub$Proxy
-android.nfc.INfcCardEmulation
-android.nfc.INfcCardEmulation$Stub
-android.nfc.INfcCardEmulation$Stub$Proxy
 android.nfc.INfcTag
 android.nfc.INfcTag$Stub
 android.nfc.INfcTag$Stub$Proxy
-android.nfc.NdefRecord
 android.nfc.NfcActivityManager
 android.nfc.NfcAdapter
 android.nfc.NfcAdapter$1
 android.nfc.NfcEvent
 android.nfc.NfcManager
 android.opengl.EGL14
-android.opengl.EGLConfig
-android.opengl.EGLContext
-android.opengl.EGLDisplay
-android.opengl.EGLExt
-android.opengl.EGLObjectHandle
-android.opengl.EGLSurface
 android.opengl.ETC1
 android.opengl.GLES10
 android.opengl.GLES10Ext
 android.opengl.GLES11
 android.opengl.GLES11Ext
 android.opengl.GLES20
-android.opengl.GLES30
-android.opengl.GLES31
-android.opengl.GLES31Ext
-android.opengl.GLSurfaceView
+android.opengl.GLUtils
+android.opengl.ManagedEGLContext
 android.opengl.Matrix
 android.opengl.Visibility
 android.os.AsyncTask$1
@@ -1004,9 +691,6 @@
 android.os.AsyncTask$SerialExecutor$1
 android.os.AsyncTask$Status
 android.os.AsyncTask$WorkerRunnable
-android.os.BadParcelableException
-android.os.BaseBundle
-android.os.BatteryStats
 android.os.Binder
 android.os.BinderProxy
 android.os.Build
@@ -1015,9 +699,6 @@
 android.os.Bundle$1
 android.os.CancellationSignal
 android.os.CancellationSignal$OnCancelListener
-android.os.CancellationSignal$Transport
-android.os.ConditionVariable
-android.os.DeadObjectException
 android.os.Debug
 android.os.Debug$MemoryInfo
 android.os.Debug$MemoryInfo$1
@@ -1037,15 +718,11 @@
 android.os.IInterface
 android.os.IMessenger
 android.os.IMessenger$Stub
-android.os.INetworkManagementService$Stub
-android.os.INetworkManagementService$Stub$Proxy
+android.os.IMessenger$Stub$Proxy
 android.os.IPowerManager
 android.os.IPowerManager$Stub
 android.os.IPowerManager$Stub$Proxy
 android.os.IServiceManager
-android.os.IUserManager
-android.os.IUserManager$Stub
-android.os.IUserManager$Stub$Proxy
 android.os.Looper
 android.os.MemoryFile
 android.os.Message
@@ -1083,7 +760,6 @@
 android.os.StrictMode$6
 android.os.StrictMode$7
 android.os.StrictMode$8
-android.os.StrictMode$9
 android.os.StrictMode$AndroidBlockGuardPolicy
 android.os.StrictMode$AndroidBlockGuardPolicy$1
 android.os.StrictMode$AndroidCloseGuardReporter
@@ -1106,80 +782,48 @@
 android.os.UEventObserver
 android.os.UserHandle
 android.os.UserHandle$1
-android.os.UserManager
-android.os.ZygoteStartFailedEx
 android.os.storage.IMountService
 android.os.storage.IMountService$Stub
 android.os.storage.IMountService$Stub$Proxy
+android.os.storage.StorageManager
 android.os.storage.StorageVolume
 android.os.storage.StorageVolume$1
-android.preference.ListPreference
+android.preference.CheckBoxPreference
+android.preference.GenericInflater
+android.preference.GenericInflater$Parent
+android.preference.Preference
+android.preference.Preference$OnPreferenceChangeInternalListener
+android.preference.Preference$OnPreferenceChangeListener
 android.preference.PreferenceActivity
+android.preference.PreferenceActivity$1
+android.preference.PreferenceFragment
 android.preference.PreferenceFragment$OnPreferenceStartFragmentCallback
 android.preference.PreferenceFrameLayout
 android.preference.PreferenceGroup
+android.preference.PreferenceGroupAdapter
+android.preference.PreferenceGroupAdapter$1
+android.preference.PreferenceGroupAdapter$PreferenceLayout
+android.preference.PreferenceInflater
 android.preference.PreferenceManager
 android.preference.PreferenceManager$OnPreferenceTreeClickListener
 android.preference.PreferenceScreen
+android.preference.TwoStatePreference
 android.provider.BaseColumns
-android.provider.CallLog$Calls
 android.provider.ContactsContract
-android.provider.ContactsContract$CommonDataKinds$Phone
-android.provider.ContactsContract$ContactCounts
-android.provider.ContactsContract$ContactNameColumns
-android.provider.ContactsContract$ContactOptionsColumns
-android.provider.ContactsContract$ContactStatusColumns
-android.provider.ContactsContract$ContactsColumns
-android.provider.ContactsContract$Data
-android.provider.ContactsContract$DataColumns
-android.provider.ContactsContract$DataColumnsWithJoins
-android.provider.ContactsContract$DataUsageStatColumns
-android.provider.ContactsContract$PhoneLookup
-android.provider.ContactsContract$RawContactsColumns
-android.provider.ContactsContract$StatusColumns
-android.provider.DocumentsProvider
-android.provider.Downloads$Impl
-android.provider.SearchIndexablesContract
-android.provider.Settings
 android.provider.Settings$Global
 android.provider.Settings$NameValueCache
 android.provider.Settings$NameValueTable
 android.provider.Settings$Secure
 android.provider.Settings$SettingNotFoundException
 android.provider.Settings$System
-android.provider.Telephony$Mms
 android.renderscript.RenderScript
 android.security.AndroidKeyPairGenerator
 android.security.AndroidKeyStore
 android.security.AndroidKeyStoreProvider
-android.speech.tts.TextToSpeechService
-android.speech.tts.TextToSpeechService$SpeechItemV1
-android.speech.tts.TextToSpeechService$SynthesisSpeechItemV1
-android.speech.tts.TextToSpeechService$SynthesisToFileOutputStreamSpeechItemV1
-android.speech.tts.TextToSpeechService$UtteranceSpeechItem
-android.speech.tts.TtsEngines
-android.system.GaiException
-android.system.Os
-android.system.OsConstants
-android.system.StructAddrinfo
-android.system.StructFlock
-android.system.StructGroupReq
-android.system.StructGroupSourceReq
-android.system.StructLinger
-android.system.StructPasswd
-android.system.StructPollfd
-android.system.StructStatVfs
-android.system.StructTimeval
-android.system.StructUcred
-android.system.StructUtsname
-android.telecom.InCallService
-android.telephony.PhoneNumberUtils
 android.telephony.Rlog
-android.telephony.SubscriptionManager
 android.telephony.TelephonyManager
 android.text.AndroidBidi
 android.text.AndroidCharacter
-android.text.BidiFormatter$DirectionalityEstimator
 android.text.BoringLayout
 android.text.BoringLayout$Metrics
 android.text.DynamicLayout
@@ -1188,10 +832,13 @@
 android.text.Editable$Factory
 android.text.GetChars
 android.text.GraphicsOperations
+android.text.Html
 android.text.Html$HtmlParser
+android.text.HtmlToSpannedConverter
 android.text.InputFilter
 android.text.InputType
 android.text.Layout
+android.text.Layout$1
 android.text.Layout$Alignment
 android.text.Layout$Directions
 android.text.Layout$Ellipsizer
@@ -1230,20 +877,21 @@
 android.text.TextUtils$TruncateAt
 android.text.TextWatcher
 android.text.format.DateFormat
+android.text.format.DateUtils
 android.text.format.Time
-android.text.format.Time$TimeCalculator
 android.text.method.AllCapsTransformationMethod
 android.text.method.ArrowKeyMovementMethod
 android.text.method.BaseKeyListener
 android.text.method.BaseMovementMethod
 android.text.method.KeyListener
+android.text.method.LinkMovementMethod
 android.text.method.MetaKeyKeyListener
 android.text.method.MovementMethod
 android.text.method.PasswordTransformationMethod
-android.text.method.QwertyKeyListener
 android.text.method.ReplacementTransformationMethod
 android.text.method.ReplacementTransformationMethod$ReplacementCharSequence
 android.text.method.ReplacementTransformationMethod$SpannedReplacementCharSequence
+android.text.method.ScrollingMovementMethod
 android.text.method.SingleLineTransformationMethod
 android.text.method.TextKeyListener
 android.text.method.TextKeyListener$Capitalize
@@ -1252,7 +900,9 @@
 android.text.style.AlignmentSpan
 android.text.style.CharacterStyle
 android.text.style.ClickableSpan
+android.text.style.DynamicDrawableSpan
 android.text.style.EasyEditSpan
+android.text.style.ImageSpan
 android.text.style.LeadingMarginSpan
 android.text.style.LineBackgroundSpan
 android.text.style.LineHeightSpan
@@ -1263,64 +913,35 @@
 android.text.style.StyleSpan
 android.text.style.SuggestionSpan
 android.text.style.URLSpan
+android.text.style.UnderlineSpan
 android.text.style.UpdateAppearance
 android.text.style.UpdateLayout
 android.text.style.WrapTogetherSpan
-android.transition.AutoTransition
-android.transition.ChangeBounds
-android.transition.ChangeBounds$1
-android.transition.ChangeClipBounds
-android.transition.ChangeImageTransform
-android.transition.ChangeImageTransform$1
-android.transition.ChangeImageTransform$2
-android.transition.ChangeTransform
-android.transition.ChangeTransform$1
-android.transition.Fade
-android.transition.PathMotion
-android.transition.Transition
-android.transition.Transition$1
-android.transition.TransitionInflater
-android.transition.TransitionManager
-android.transition.TransitionSet
-android.transition.TransitionValuesMaps
-android.transition.Visibility
 android.util.AndroidException
 android.util.AndroidRuntimeException
-android.util.ArrayMap
-android.util.ArrayMap$1
-android.util.ArraySet
 android.util.AttributeSet
 android.util.Base64
 android.util.Base64$Coder
 android.util.Base64$Decoder
 android.util.Base64$Encoder
-android.util.ContainerHelpers
 android.util.DisplayMetrics
 android.util.EventLog
 android.util.EventLog$Event
 android.util.FloatMath
 android.util.FloatProperty
-android.util.IntProperty
 android.util.Log
 android.util.Log$1
 android.util.Log$TerribleFailureHandler
 android.util.LongSparseArray
-android.util.LongSparseLongArray
 android.util.LruCache
-android.util.MapCollections
-android.util.MapCollections$ArrayIterator
-android.util.MapCollections$KeySet
-android.util.MathUtils
-android.util.MutableInt
-android.util.MutableLong
 android.util.Pair
-android.util.PathParser
-android.util.PathParser$ExtractFloatResult
-android.util.PathParser$PathDataNode
 android.util.Patterns
 android.util.Pools$Pool
 android.util.Pools$SimplePool
 android.util.Pools$SynchronizedPool
+android.util.PrefixPrinter
+android.util.PrintWriterPrinter
+android.util.Printer
 android.util.Property
 android.util.Singleton
 android.util.Slog
@@ -1328,7 +949,6 @@
 android.util.SparseBooleanArray
 android.util.SparseIntArray
 android.util.StateSet
-android.util.SuperNotCalledException
 android.util.TypedValue
 android.util.Xml
 android.view.AbsSavedState
@@ -1344,19 +964,20 @@
 android.view.Choreographer$CallbackRecord
 android.view.Choreographer$FrameDisplayEventReceiver
 android.view.Choreographer$FrameHandler
+android.view.CollapsibleActionView
 android.view.ContextMenu
 android.view.ContextMenu$ContextMenuInfo
 android.view.ContextThemeWrapper
 android.view.Display
-android.view.DisplayAdjustments
 android.view.DisplayEventReceiver
 android.view.DisplayInfo
 android.view.DisplayInfo$1
+android.view.DisplayList
+android.view.DisplayList$DisplayListFinalizer
 android.view.FallbackEventHandler
 android.view.FocusFinder
 android.view.FocusFinder$1
 android.view.FocusFinder$SequentialFocusComparator
-android.view.FrameStats
 android.view.GLES20Canvas
 android.view.GLES20Canvas$CanvasFinalizer
 android.view.GLES20RecordingCanvas
@@ -1365,16 +986,11 @@
 android.view.GestureDetector$OnDoubleTapListener
 android.view.GestureDetector$OnGestureListener
 android.view.GestureDetector$SimpleOnGestureListener
-android.view.GraphicBuffer
-android.view.GraphicBuffer$1
 android.view.Gravity
 android.view.HardwareCanvas
 android.view.HardwareLayer
 android.view.HardwareRenderer
 android.view.HardwareRenderer$HardwareDrawCallbacks
-android.view.IAssetAtlas
-android.view.IAssetAtlas$Stub
-android.view.IAssetAtlas$Stub$Proxy
 android.view.IRotationWatcher
 android.view.IRotationWatcher$Stub
 android.view.IWindow
@@ -1385,9 +1001,6 @@
 android.view.IWindowSession
 android.view.IWindowSession$Stub
 android.view.IWindowSession$Stub$Proxy
-android.view.IWindowSessionCallback
-android.view.IWindowSessionCallback$Stub
-android.view.InflateException
 android.view.InputChannel
 android.view.InputChannel$1
 android.view.InputDevice
@@ -1410,44 +1023,42 @@
 android.view.LayoutInflater
 android.view.LayoutInflater$Factory
 android.view.LayoutInflater$Factory2
-android.view.LayoutInflater$FactoryMerger
 android.view.LayoutInflater$Filter
 android.view.Menu
 android.view.MenuInflater
 android.view.MenuInflater$MenuState
 android.view.MenuItem
-android.view.MenuItem$OnActionExpandListener
+android.view.MenuItem$OnMenuItemClickListener
 android.view.MotionEvent
 android.view.MotionEvent$1
 android.view.MotionEvent$PointerCoords
 android.view.MotionEvent$PointerProperties
 android.view.PointerIcon
 android.view.PointerIcon$1
-android.view.RenderNode
-android.view.RenderNodeAnimator
-android.view.RenderNodeAnimator$1
 android.view.SubMenu
 android.view.Surface
 android.view.Surface$1
 android.view.Surface$CompatibleCanvas
-android.view.Surface$OutOfResourcesException
 android.view.SurfaceControl
 android.view.SurfaceControl$PhysicalDisplayInfo
+android.view.SurfaceHolder
 android.view.SurfaceHolder$Callback
 android.view.SurfaceHolder$Callback2
 android.view.SurfaceSession
 android.view.SurfaceView
+android.view.SurfaceView$1
+android.view.SurfaceView$2
+android.view.SurfaceView$3
+android.view.SurfaceView$4
+android.view.SurfaceView$MyWindow
 android.view.TextureView
-android.view.ThreadedRenderer
-android.view.ThreadedRenderer$AtlasInitializer
 android.view.VelocityTracker
 android.view.VelocityTracker$Estimator
 android.view.View
+android.view.View$1
 android.view.View$10
 android.view.View$11
 android.view.View$12
-android.view.View$13
-android.view.View$14
 android.view.View$3
 android.view.View$4
 android.view.View$5
@@ -1460,6 +1071,7 @@
 android.view.View$AttachInfo$Callbacks
 android.view.View$BaseSavedState
 android.view.View$BaseSavedState$1
+android.view.View$CheckForLongPress
 android.view.View$CheckForTap
 android.view.View$ListenerInfo
 android.view.View$MeasureSpec
@@ -1476,6 +1088,8 @@
 android.view.View$TransformationInfo
 android.view.View$UnsetPressedState
 android.view.ViewConfiguration
+android.view.ViewDebug
+android.view.ViewDebug$HierarchyHandler
 android.view.ViewGroup
 android.view.ViewGroup$3
 android.view.ViewGroup$LayoutParams
@@ -1483,21 +1097,13 @@
 android.view.ViewGroup$OnHierarchyChangeListener
 android.view.ViewGroup$TouchTarget
 android.view.ViewManager
-android.view.ViewOutlineProvider
-android.view.ViewOutlineProvider$1
-android.view.ViewOutlineProvider$2
-android.view.ViewOutlineProvider$3
-android.view.ViewOverlay$OverlayViewGroup
 android.view.ViewParent
 android.view.ViewRootImpl
-android.view.ViewRootImpl$1
-android.view.ViewRootImpl$4
+android.view.ViewRootImpl$3
 android.view.ViewRootImpl$AccessibilityInteractionConnectionManager
 android.view.ViewRootImpl$AsyncInputStage
-android.view.ViewRootImpl$ConsumeBatchedInputImmediatelyRunnable
 android.view.ViewRootImpl$ConsumeBatchedInputRunnable
 android.view.ViewRootImpl$EarlyPostImeInputStage
-android.view.ViewRootImpl$HighContrastTextManager
 android.view.ViewRootImpl$ImeInputStage
 android.view.ViewRootImpl$InputStage
 android.view.ViewRootImpl$InvalidateOnAnimationRunnable
@@ -1508,7 +1114,6 @@
 android.view.ViewRootImpl$RunQueue$HandlerAction
 android.view.ViewRootImpl$SyntheticInputStage
 android.view.ViewRootImpl$SyntheticJoystickHandler
-android.view.ViewRootImpl$SyntheticKeyboardHandler
 android.view.ViewRootImpl$SyntheticTouchNavigationHandler
 android.view.ViewRootImpl$SyntheticTouchNavigationHandler$1
 android.view.ViewRootImpl$SyntheticTrackballHandler
@@ -1524,29 +1129,25 @@
 android.view.ViewTreeObserver$CopyOnWriteArray
 android.view.ViewTreeObserver$CopyOnWriteArray$Access
 android.view.ViewTreeObserver$InternalInsetsInfo
+android.view.ViewTreeObserver$OnGlobalFocusChangeListener
 android.view.ViewTreeObserver$OnGlobalLayoutListener
 android.view.ViewTreeObserver$OnPreDrawListener
 android.view.ViewTreeObserver$OnScrollChangedListener
 android.view.ViewTreeObserver$OnTouchModeChangeListener
 android.view.Window
 android.view.Window$Callback
-android.view.Window$OnWindowDismissedCallback
-android.view.WindowAnimationFrameStats
-android.view.WindowContentFrameStats$1
-android.view.WindowInsets
 android.view.WindowLeaked
 android.view.WindowManager
 android.view.WindowManager$LayoutParams
 android.view.WindowManager$LayoutParams$1
 android.view.WindowManagerGlobal
 android.view.WindowManagerGlobal$1
-android.view.WindowManagerGlobal$2
 android.view.WindowManagerImpl
 android.view.accessibility.AccessibilityEvent
+android.view.accessibility.AccessibilityEventSource
 android.view.accessibility.AccessibilityManager
 android.view.accessibility.AccessibilityManager$1
 android.view.accessibility.AccessibilityManager$AccessibilityStateChangeListener
-android.view.accessibility.AccessibilityManager$HighTextContrastChangeListener
 android.view.accessibility.AccessibilityManager$MyHandler
 android.view.accessibility.AccessibilityNodeInfo
 android.view.accessibility.AccessibilityNodeProvider
@@ -1558,19 +1159,20 @@
 android.view.accessibility.IAccessibilityManagerClient$Stub
 android.view.animation.AccelerateDecelerateInterpolator
 android.view.animation.AccelerateInterpolator
+android.view.animation.AlphaAnimation
 android.view.animation.Animation
+android.view.animation.Animation$1
+android.view.animation.Animation$2
+android.view.animation.Animation$3
 android.view.animation.Animation$AnimationListener
+android.view.animation.AnimationSet
 android.view.animation.AnimationUtils
 android.view.animation.DecelerateInterpolator
 android.view.animation.Interpolator
 android.view.animation.LinearInterpolator
-android.view.animation.PathInterpolator
 android.view.animation.Transformation
 android.view.inputmethod.BaseInputConnection
 android.view.inputmethod.ComposingText
-android.view.inputmethod.CursorAnchorInfo
-android.view.inputmethod.CursorAnchorInfo$1
-android.view.inputmethod.CursorAnchorInfo$Builder
 android.view.inputmethod.EditorInfo
 android.view.inputmethod.EditorInfo$1
 android.view.inputmethod.ExtractedText
@@ -1583,53 +1185,80 @@
 android.view.inputmethod.InputMethodManager$H
 android.view.inputmethod.InputMethodManager$ImeInputEventSender
 android.view.inputmethod.InputMethodManager$PendingEvent
+android.view.textservice.SpellCheckerSubtype
+android.view.textservice.SpellCheckerSubtype$1
+android.webkit.CookieManager
+android.webkit.CookieSyncManager
+android.webkit.GeolocationPermissions
+android.webkit.JavascriptInterface
+android.webkit.URLUtil
+android.webkit.WebBackForwardList
+android.webkit.WebHistoryItem
+android.webkit.WebIconDatabase
+android.webkit.WebSettings
+android.webkit.WebSettings$LayoutAlgorithm
+android.webkit.WebSettings$PluginState
+android.webkit.WebSettings$RenderPriority
+android.webkit.WebSettings$ZoomDensity
+android.webkit.WebStorage
+android.webkit.WebSyncManager
+android.webkit.WebSyncManager$SyncHandler
+android.webkit.WebView
+android.webkit.WebView$PrivateAccess
+android.webkit.WebViewClient
+android.webkit.WebViewDatabase
 android.webkit.WebViewFactory
+android.webkit.WebViewFactoryProvider
+android.webkit.WebViewFactoryProvider$Statics
+android.webkit.WebViewProvider
+android.webkit.WebViewProvider$ScrollDelegate
+android.webkit.WebViewProvider$ViewDelegate
 android.widget.AbsListView
+android.widget.AbsListView$1
 android.widget.AbsListView$AdapterDataSetObserver
 android.widget.AbsListView$CheckForTap
 android.widget.AbsListView$LayoutParams
 android.widget.AbsListView$OnScrollListener
+android.widget.AbsListView$PerformClick
 android.widget.AbsListView$RecycleBin
 android.widget.AbsListView$SavedState
 android.widget.AbsListView$SavedState$1
+android.widget.AbsListView$SelectionBoundsAdjuster
+android.widget.AbsListView$WindowRunnnable
 android.widget.AbsSeekBar
 android.widget.AbsSpinner
+android.widget.AbsSpinner$RecycleBin
 android.widget.AbsoluteLayout
-android.widget.ActionMenuPresenter
-android.widget.ActionMenuPresenter$OverflowMenuButton
-android.widget.ActionMenuPresenter$OverflowMenuButton$1
-android.widget.ActionMenuPresenter$PopupPresenterCallback
-android.widget.ActionMenuView
-android.widget.ActionMenuView$ActionMenuChildView
-android.widget.ActionMenuView$OnMenuItemClickListener
 android.widget.Adapter
 android.widget.AdapterView
 android.widget.AdapterView$AdapterDataSetObserver
 android.widget.AdapterView$OnItemClickListener
+android.widget.AdapterView$OnItemLongClickListener
 android.widget.AdapterView$OnItemSelectedListener
+android.widget.AdapterView$SelectionNotifier
+android.widget.AdapterViewAnimator
 android.widget.ArrayAdapter
 android.widget.AutoCompleteTextView
+android.widget.AutoCompleteTextView$DropDownItemClickListener
+android.widget.AutoCompleteTextView$MyWatcher
+android.widget.AutoCompleteTextView$PassThroughClickListener
 android.widget.BaseAdapter
 android.widget.Button
 android.widget.CheckBox
 android.widget.Checkable
-android.widget.CheckedTextView
 android.widget.CompoundButton
 android.widget.CompoundButton$OnCheckedChangeListener
-android.widget.DatePicker
+android.widget.CursorAdapter
+android.widget.CursorAdapter$ChangeObserver
+android.widget.CursorAdapter$MyDataSetObserver
+android.widget.CursorFilter$CursorFilterClient
 android.widget.EdgeEffect
 android.widget.EditText
 android.widget.Editor
-android.widget.Editor$CursorAnchorInfoNotifier
-android.widget.Editor$HandleView
+android.widget.Editor$Blink
 android.widget.Editor$InputContentType
 android.widget.Editor$InputMethodState
-android.widget.Editor$InsertionHandleView
-android.widget.Editor$PositionListener
-android.widget.Editor$SpanController
-android.widget.Editor$TextDisplayList
-android.widget.Editor$TextViewPositionListener
-android.widget.FastScroller
+android.widget.ExpandableListView
 android.widget.Filter
 android.widget.Filter$FilterListener
 android.widget.Filterable
@@ -1637,18 +1266,16 @@
 android.widget.FrameLayout$LayoutParams
 android.widget.GridLayout
 android.widget.GridView
-android.widget.HeaderViewListAdapter
-android.widget.HorizontalScrollView
 android.widget.ImageButton
-android.widget.ImageSwitcher
 android.widget.ImageView
 android.widget.ImageView$ScaleType
 android.widget.LinearLayout
 android.widget.LinearLayout$LayoutParams
 android.widget.ListAdapter
 android.widget.ListPopupWindow
+android.widget.ListPopupWindow$1
+android.widget.ListPopupWindow$2
 android.widget.ListPopupWindow$DropDownListView
-android.widget.ListPopupWindow$ForwardingListener
 android.widget.ListPopupWindow$ListSelectorHider
 android.widget.ListPopupWindow$PopupDataSetObserver
 android.widget.ListPopupWindow$PopupScrollListener
@@ -1656,47 +1283,57 @@
 android.widget.ListPopupWindow$ResizePopupRunnable
 android.widget.ListView
 android.widget.ListView$ArrowScrollFocusResult
-android.widget.MediaController
-android.widget.MultiAutoCompleteTextView
 android.widget.OverScroller
 android.widget.OverScroller$SplineOverScroller
 android.widget.PopupWindow
 android.widget.PopupWindow$1
+android.widget.PopupWindow$OnDismissListener
 android.widget.PopupWindow$PopupViewContainer
 android.widget.ProgressBar
 android.widget.ProgressBar$SavedState
 android.widget.ProgressBar$SavedState$1
-android.widget.QuickContactBadge
-android.widget.RatingBar
 android.widget.RelativeLayout
 android.widget.RelativeLayout$DependencyGraph
 android.widget.RelativeLayout$DependencyGraph$Node
 android.widget.RelativeLayout$LayoutParams
 android.widget.RemoteViews
 android.widget.RemoteViews$1
-android.widget.RemoteViews$3
 android.widget.RemoteViews$Action
-android.widget.RemoteViews$ActionException
 android.widget.RemoteViews$BitmapCache
 android.widget.RemoteViews$MemoryUsageCounter
-android.widget.RemoteViews$MutablePair
 android.widget.RemoteViews$OnClickHandler
 android.widget.RemoteViews$ReflectionAction
-android.widget.RemoteViews$SetDrawableParameters
-android.widget.RemoteViews$TextViewSizeAction
 android.widget.RemoteViewsAdapter$RemoteAdapterConnectionCallback
-android.widget.RtlSpacingHelper
 android.widget.ScrollBarDrawable
 android.widget.ScrollView
 android.widget.Scroller
-android.widget.Scroller$ViscousFluidInterpolator
-android.widget.SectionIndexer
-android.widget.SeekBar
-android.widget.SimpleCursorAdapter
+android.widget.SearchView
+android.widget.SearchView$1
+android.widget.SearchView$10
+android.widget.SearchView$11
+android.widget.SearchView$2
+android.widget.SearchView$3
+android.widget.SearchView$4
+android.widget.SearchView$5
+android.widget.SearchView$6
+android.widget.SearchView$7
+android.widget.SearchView$8
+android.widget.SearchView$9
+android.widget.SearchView$SearchAutoComplete
+android.widget.Spinner
+android.widget.Spinner$DropDownAdapter
+android.widget.Spinner$DropdownPopup
+android.widget.Spinner$DropdownPopup$1
+android.widget.Spinner$SpinnerPopup
 android.widget.SpinnerAdapter
-android.widget.Switch
 android.widget.TableLayout
+android.widget.TableLayout$LayoutParams
+android.widget.TableLayout$PassThroughHierarchyChangeListener
+android.widget.TableRow
+android.widget.TableRow$ChildrenTracker
+android.widget.TableRow$LayoutParams
 android.widget.TextView
+android.widget.TextView$2
 android.widget.TextView$4
 android.widget.TextView$BufferType
 android.widget.TextView$ChangeWatcher
@@ -1705,41 +1342,20 @@
 android.widget.TextView$OnEditorActionListener
 android.widget.TextView$SavedState
 android.widget.TextView$SavedState$1
-android.widget.TimePicker
-android.widget.ToggleButton
-android.widget.Toolbar
-android.widget.Toolbar$1
-android.widget.Toolbar$2
-android.widget.Toolbar$ExpandedActionViewMenuPresenter
-android.widget.Toolbar$LayoutParams
-android.widget.ViewAnimator
-android.widget.ViewFlipper
-android.widget.ViewSwitcher
-android.widget.WrapperListAdapter
-com.android.dex.Annotation
-com.android.dex.DexFormat
-com.android.dex.EncodedValue
-com.android.dex.EncodedValueCodec
-com.android.dex.EncodedValueReader
-com.android.dex.Leb128
-com.android.dex.Mutf8
-com.android.dex.util.ByteArrayByteInput
-com.android.i18n.phonenumbers.AsYouTypeFormatter
+android.widget.Toast
+android.widget.Toast$TN
+android.widget.Toast$TN$1
+android.widget.Toast$TN$2
 com.android.i18n.phonenumbers.PhoneNumberMatcher
 com.android.i18n.phonenumbers.PhoneNumberUtil
-com.android.i18n.phonenumbers.Phonemetadata$PhoneMetadata
 com.android.internal.R$styleable
-com.android.internal.app.IAppOpsService
-com.android.internal.app.IAppOpsService$Stub
-com.android.internal.app.IAppOpsService$Stub$Proxy
-com.android.internal.app.IBatteryStats$Stub
-com.android.internal.app.IVoiceInteractor
-com.android.internal.app.IVoiceInteractor$Stub
-com.android.internal.app.ResolverActivity$ResolveListAdapter
-com.android.internal.app.WindowDecorActionBar
-com.android.internal.app.WindowDecorActionBar$1
-com.android.internal.app.WindowDecorActionBar$2
-com.android.internal.app.WindowDecorActionBar$3
+com.android.internal.app.ActionBarImpl
+com.android.internal.app.ActionBarImpl$1
+com.android.internal.app.ActionBarImpl$2
+com.android.internal.app.AlertController
+com.android.internal.app.AlertController$1
+com.android.internal.app.AlertController$AlertParams
+com.android.internal.app.AlertController$ButtonHandler
 com.android.internal.appwidget.IAppWidgetService
 com.android.internal.appwidget.IAppWidgetService$Stub
 com.android.internal.appwidget.IAppWidgetService$Stub$Proxy
@@ -1749,8 +1365,6 @@
 com.android.internal.logging.AndroidHandler$1
 com.android.internal.net.NetworkStatsFactory
 com.android.internal.os.AndroidPrintStream
-com.android.internal.os.BatteryStatsImpl
-com.android.internal.os.BatteryStatsImpl$Uid
 com.android.internal.os.BinderInternal
 com.android.internal.os.BinderInternal$GcWatcher
 com.android.internal.os.IDropBoxManagerService
@@ -1764,18 +1378,17 @@
 com.android.internal.os.RuntimeInit$UncaughtHandler
 com.android.internal.os.SamplingProfilerIntegration
 com.android.internal.os.SomeArgs
-com.android.internal.os.Zygote
 com.android.internal.os.ZygoteConnection
 com.android.internal.os.ZygoteConnection$Arguments
 com.android.internal.os.ZygoteInit
 com.android.internal.os.ZygoteInit$MethodAndArgsCaller
-com.android.internal.os.ZygoteSecurityException
 com.android.internal.policy.IPolicy
 com.android.internal.policy.PolicyManager
 com.android.internal.policy.impl.PhoneFallbackEventHandler
 com.android.internal.policy.impl.PhoneLayoutInflater
 com.android.internal.policy.impl.PhoneWindow
 com.android.internal.policy.impl.PhoneWindow$1
+com.android.internal.policy.impl.PhoneWindow$2
 com.android.internal.policy.impl.PhoneWindow$ActionMenuPresenterCallback
 com.android.internal.policy.impl.PhoneWindow$DecorView
 com.android.internal.policy.impl.PhoneWindow$DialogMenuCallback
@@ -1785,9 +1398,6 @@
 com.android.internal.policy.impl.PhoneWindow$RotationWatcher
 com.android.internal.policy.impl.PhoneWindow$RotationWatcher$1
 com.android.internal.policy.impl.Policy
-com.android.internal.telephony.ISub
-com.android.internal.telephony.ISub$Stub
-com.android.internal.telephony.ISub$Stub$Proxy
 com.android.internal.telephony.ITelephony
 com.android.internal.telephony.ITelephony$Stub
 com.android.internal.telephony.ITelephony$Stub$Proxy
@@ -1795,16 +1405,17 @@
 com.android.internal.telephony.ITelephonyRegistry$Stub
 com.android.internal.telephony.ITelephonyRegistry$Stub$Proxy
 com.android.internal.telephony.PhoneConstants$State
-com.android.internal.transition.ActionBarTransition
+com.android.internal.textservice.ITextServicesManager
+com.android.internal.textservice.ITextServicesManager$Stub
 com.android.internal.util.ArrayUtils
-com.android.internal.util.FastPrintWriter
-com.android.internal.util.FastPrintWriter$1
+com.android.internal.util.AsyncChannel
+com.android.internal.util.AsyncChannel$DeathMonitor
 com.android.internal.util.FastXmlSerializer
-com.android.internal.util.GrowingArrayUtils
+com.android.internal.util.MemInfoReader
 com.android.internal.util.Preconditions
-com.android.internal.util.VirtualRefBasePtr
 com.android.internal.util.XmlUtils
 com.android.internal.view.ActionBarPolicy
+com.android.internal.view.BaseIWindow
 com.android.internal.view.IInputConnectionWrapper
 com.android.internal.view.IInputConnectionWrapper$MyHandler
 com.android.internal.view.IInputConnectionWrapper$SomeArgs
@@ -1824,115 +1435,37 @@
 com.android.internal.view.InputBindResult
 com.android.internal.view.InputBindResult$1
 com.android.internal.view.RootViewSurfaceTaker
-com.android.internal.view.animation.FallbackLUTInterpolator
-com.android.internal.view.animation.HasNativeInterpolator
-com.android.internal.view.animation.NativeInterpolatorFactory
-com.android.internal.view.animation.NativeInterpolatorFactoryHelper
 com.android.internal.view.menu.ActionMenuItem
+com.android.internal.view.menu.ActionMenuItemView
 com.android.internal.view.menu.BaseMenuPresenter
+com.android.internal.view.menu.ListMenuItemView
 com.android.internal.view.menu.MenuBuilder
 com.android.internal.view.menu.MenuBuilder$Callback
 com.android.internal.view.menu.MenuBuilder$ItemInvoker
 com.android.internal.view.menu.MenuItemImpl
+com.android.internal.view.menu.MenuPopupHelper
+com.android.internal.view.menu.MenuPopupHelper$MenuAdapter
 com.android.internal.view.menu.MenuPresenter
 com.android.internal.view.menu.MenuPresenter$Callback
 com.android.internal.view.menu.MenuView
+com.android.internal.view.menu.MenuView$ItemView
+com.android.internal.view.menu.SubMenuBuilder
 com.android.internal.widget.AbsActionBarView
 com.android.internal.widget.AbsActionBarView$VisibilityAnimListener
 com.android.internal.widget.ActionBarContainer
-com.android.internal.widget.ActionBarContainer$ActionBarBackgroundDrawable
 com.android.internal.widget.ActionBarContextView
 com.android.internal.widget.ActionBarOverlayLayout
-com.android.internal.widget.ActionBarOverlayLayout$1
-com.android.internal.widget.ActionBarOverlayLayout$2
-com.android.internal.widget.ActionBarOverlayLayout$3
-com.android.internal.widget.ActionBarOverlayLayout$4
-com.android.internal.widget.ActionBarOverlayLayout$5
-com.android.internal.widget.ActionBarOverlayLayout$ActionBarVisibilityCallback
 com.android.internal.widget.ActionBarOverlayLayout$LayoutParams
-com.android.internal.widget.BackgroundFallback
-com.android.internal.widget.DecorContentParent
-com.android.internal.widget.DecorToolbar
+com.android.internal.widget.ActionBarView
+com.android.internal.widget.ActionBarView$1
+com.android.internal.widget.ActionBarView$2
+com.android.internal.widget.ActionBarView$3
+com.android.internal.widget.ActionBarView$ExpandedActionViewMenuPresenter
+com.android.internal.widget.ActionBarView$HomeView
+com.android.internal.widget.ActionBarView$SavedState
+com.android.internal.widget.ActionBarView$SavedState$1
+com.android.internal.widget.DialogTitle
 com.android.internal.widget.EditableInputConnection
-com.android.internal.widget.LockPatternUtils
-com.android.internal.widget.ScrollingTabContainerView
-com.android.internal.widget.ScrollingTabContainerView$TabView
-com.android.internal.widget.ToolbarWidgetWrapper
-com.android.internal.widget.ToolbarWidgetWrapper$1
-com.android.okhttp.Address
-com.android.okhttp.CacheControl
-com.android.okhttp.ConfigAwareConnectionPool
-com.android.okhttp.ConfigAwareConnectionPool$1
-com.android.okhttp.Connection
-com.android.okhttp.ConnectionPool
-com.android.okhttp.ConnectionPool$1
-com.android.okhttp.Dispatcher
-com.android.okhttp.Handshake
-com.android.okhttp.Headers
-com.android.okhttp.Headers$Builder
-com.android.okhttp.HostResolver
-com.android.okhttp.HostResolver$1
-com.android.okhttp.HttpHandler
-com.android.okhttp.HttpsHandler
-com.android.okhttp.OkAuthenticator
-com.android.okhttp.OkHttpClient
-com.android.okhttp.OkResponseCache
-com.android.okhttp.Protocol
-com.android.okhttp.Request
-com.android.okhttp.Request$Builder
-com.android.okhttp.Request$ParsedHeaders
-com.android.okhttp.Response
-com.android.okhttp.Response$Body
-com.android.okhttp.Response$Builder
-com.android.okhttp.ResponseSource
-com.android.okhttp.Route
-com.android.okhttp.RouteDatabase
-com.android.okhttp.TunnelRequest
-com.android.okhttp.internal.Platform
-com.android.okhttp.internal.Util
-com.android.okhttp.internal.Util$1
-com.android.okhttp.internal.http.CacheStrategy
-com.android.okhttp.internal.http.CacheStrategy$1
-com.android.okhttp.internal.http.CacheStrategy$Factory
-com.android.okhttp.internal.http.DelegatingHttpsURLConnection
-com.android.okhttp.internal.http.HttpAuthenticator
-com.android.okhttp.internal.http.HttpAuthenticator$1
-com.android.okhttp.internal.http.HttpConnection
-com.android.okhttp.internal.http.HttpConnection$AbstractSource
-com.android.okhttp.internal.http.HttpConnection$ChunkedSource
-com.android.okhttp.internal.http.HttpConnection$FixedLengthSource
-com.android.okhttp.internal.http.HttpEngine
-com.android.okhttp.internal.http.HttpMethod
-com.android.okhttp.internal.http.HttpTransport
-com.android.okhttp.internal.http.HttpURLConnectionImpl
-com.android.okhttp.internal.http.HttpURLConnectionImpl$Retry
-com.android.okhttp.internal.http.HttpsURLConnectionImpl
-com.android.okhttp.internal.http.OkHeaders
-com.android.okhttp.internal.http.OkHeaders$1
-com.android.okhttp.internal.http.RequestLine
-com.android.okhttp.internal.http.RetryableSink
-com.android.okhttp.internal.http.RouteSelector
-com.android.okhttp.internal.http.StatusLine
-com.android.okhttp.internal.http.Transport
-com.android.okhttp.internal.tls.OkHostnameVerifier
-com.android.okio.BufferedSink
-com.android.okio.BufferedSource
-com.android.okio.ByteString
-com.android.okio.Deadline
-com.android.okio.Deadline$1
-com.android.okio.OkBuffer
-com.android.okio.Okio
-com.android.okio.Okio$1
-com.android.okio.Okio$2
-com.android.okio.RealBufferedSink
-com.android.okio.RealBufferedSink$1
-com.android.okio.RealBufferedSource
-com.android.okio.RealBufferedSource$1
-com.android.okio.Segment
-com.android.okio.SegmentPool
-com.android.okio.Sink
-com.android.okio.Source
-com.android.okio.Util
 com.android.org.bouncycastle.asn1.ASN1Boolean
 com.android.org.bouncycastle.asn1.ASN1Choice
 com.android.org.bouncycastle.asn1.ASN1Encodable
@@ -1963,8 +1496,8 @@
 com.android.org.bouncycastle.asn1.DERPrintableString
 com.android.org.bouncycastle.asn1.DERSequence
 com.android.org.bouncycastle.asn1.DERSet
+com.android.org.bouncycastle.asn1.DERT61String
 com.android.org.bouncycastle.asn1.DERTaggedObject
-com.android.org.bouncycastle.asn1.DERUTF8String
 com.android.org.bouncycastle.asn1.DERUniversalString
 com.android.org.bouncycastle.asn1.DLSequence
 com.android.org.bouncycastle.asn1.DLSet
@@ -1983,12 +1516,12 @@
 com.android.org.bouncycastle.asn1.x509.Extension
 com.android.org.bouncycastle.asn1.x509.GeneralName
 com.android.org.bouncycastle.asn1.x509.GeneralNames
-com.android.org.bouncycastle.asn1.x509.PolicyInformation
 com.android.org.bouncycastle.asn1.x509.SubjectPublicKeyInfo
 com.android.org.bouncycastle.asn1.x509.X509Extension
 com.android.org.bouncycastle.asn1.x509.X509Extensions
 com.android.org.bouncycastle.asn1.x509.X509Name
 com.android.org.bouncycastle.asn1.x509.X509ObjectIdentifiers
+com.android.org.bouncycastle.asn1.x9.X962NamedCurves
 com.android.org.bouncycastle.asn1.x9.X9ObjectIdentifiers
 com.android.org.bouncycastle.crypto.Digest
 com.android.org.bouncycastle.crypto.ExtendedDigest
@@ -2002,7 +1535,6 @@
 com.android.org.bouncycastle.jcajce.provider.asymmetric.EC$Mappings
 com.android.org.bouncycastle.jcajce.provider.asymmetric.RSA$Mappings
 com.android.org.bouncycastle.jcajce.provider.asymmetric.X509$Mappings
-com.android.org.bouncycastle.jcajce.provider.asymmetric.dh.KeyFactorySpi
 com.android.org.bouncycastle.jcajce.provider.asymmetric.dsa.DSAUtil
 com.android.org.bouncycastle.jcajce.provider.asymmetric.dsa.KeyFactorySpi
 com.android.org.bouncycastle.jcajce.provider.asymmetric.ec.KeyFactorySpi
@@ -2017,20 +1549,13 @@
 com.android.org.bouncycastle.jcajce.provider.digest.MD5$Mappings
 com.android.org.bouncycastle.jcajce.provider.digest.SHA1
 com.android.org.bouncycastle.jcajce.provider.digest.SHA1$Mappings
-com.android.org.bouncycastle.jcajce.provider.digest.SHA224
-com.android.org.bouncycastle.jcajce.provider.digest.SHA224$Mappings
 com.android.org.bouncycastle.jcajce.provider.digest.SHA256
 com.android.org.bouncycastle.jcajce.provider.digest.SHA256$Mappings
 com.android.org.bouncycastle.jcajce.provider.digest.SHA384
 com.android.org.bouncycastle.jcajce.provider.digest.SHA384$Mappings
 com.android.org.bouncycastle.jcajce.provider.digest.SHA512
 com.android.org.bouncycastle.jcajce.provider.digest.SHA512$Mappings
-com.android.org.bouncycastle.jcajce.provider.keystore.BC$Mappings
-com.android.org.bouncycastle.jcajce.provider.keystore.PKCS12$Mappings
-com.android.org.bouncycastle.jcajce.provider.keystore.bc.BcKeyStoreSpi
-com.android.org.bouncycastle.jcajce.provider.keystore.bc.BcKeyStoreSpi$Std
 com.android.org.bouncycastle.jcajce.provider.symmetric.AES
-com.android.org.bouncycastle.jcajce.provider.symmetric.AES$ECB
 com.android.org.bouncycastle.jcajce.provider.symmetric.AES$Mappings
 com.android.org.bouncycastle.jcajce.provider.symmetric.ARC4
 com.android.org.bouncycastle.jcajce.provider.symmetric.ARC4$Mappings
@@ -2040,19 +1565,10 @@
 com.android.org.bouncycastle.jcajce.provider.symmetric.DES$Mappings
 com.android.org.bouncycastle.jcajce.provider.symmetric.DESede
 com.android.org.bouncycastle.jcajce.provider.symmetric.DESede$Mappings
-com.android.org.bouncycastle.jcajce.provider.symmetric.PBEPKCS12
-com.android.org.bouncycastle.jcajce.provider.symmetric.PBEPKCS12$Mappings
-com.android.org.bouncycastle.jcajce.provider.symmetric.RC2
-com.android.org.bouncycastle.jcajce.provider.symmetric.RC2$Mappings
-com.android.org.bouncycastle.jcajce.provider.symmetric.SymmetricAlgorithmProvider
-com.android.org.bouncycastle.jcajce.provider.symmetric.Twofish
-com.android.org.bouncycastle.jcajce.provider.symmetric.Twofish$Mappings
 com.android.org.bouncycastle.jcajce.provider.util.AlgorithmProvider
 com.android.org.bouncycastle.jcajce.provider.util.AsymmetricAlgorithmProvider
 com.android.org.bouncycastle.jcajce.provider.util.AsymmetricKeyInfoConverter
-com.android.org.bouncycastle.jce.exception.ExtException
 com.android.org.bouncycastle.jce.interfaces.BCKeyStore
-com.android.org.bouncycastle.jce.provider.AnnotatedException
 com.android.org.bouncycastle.jce.provider.BouncyCastleProvider
 com.android.org.bouncycastle.jce.provider.BouncyCastleProvider$1
 com.android.org.bouncycastle.jce.provider.BouncyCastleProviderConfiguration
@@ -2061,7 +1577,6 @@
 com.android.org.bouncycastle.jce.provider.PKIXCRLUtil
 com.android.org.bouncycastle.jce.provider.PKIXCertPathValidatorSpi
 com.android.org.bouncycastle.jce.provider.PKIXNameConstraintValidator
-com.android.org.bouncycastle.jce.provider.PKIXNameConstraintValidatorException
 com.android.org.bouncycastle.jce.provider.PKIXPolicyNode
 com.android.org.bouncycastle.jce.provider.RFC3280CertPathUtilities
 com.android.org.bouncycastle.util.Arrays
@@ -2078,7 +1593,7 @@
 com.android.org.conscrypt.ChainStrengthAnalyzer
 com.android.org.conscrypt.ClientSessionContext
 com.android.org.conscrypt.ClientSessionContext$HostAndPort
-com.android.org.conscrypt.CryptoUpcalls
+com.android.org.conscrypt.DefaultSSLContextImpl
 com.android.org.conscrypt.FileClientSessionCache
 com.android.org.conscrypt.FileClientSessionCache$Impl
 com.android.org.conscrypt.JSSEProvider
@@ -2087,20 +1602,67 @@
 com.android.org.conscrypt.NativeCrypto
 com.android.org.conscrypt.NativeCrypto$SSLHandshakeCallbacks
 com.android.org.conscrypt.OpenSSLBIOInputStream
+com.android.org.conscrypt.OpenSSLCipher
+com.android.org.conscrypt.OpenSSLCipher$AES
+com.android.org.conscrypt.OpenSSLCipher$AES$CBC
+com.android.org.conscrypt.OpenSSLCipher$AES$CBC$NoPadding
 com.android.org.conscrypt.OpenSSLCipher$AES$CBC$PKCS5Padding
+com.android.org.conscrypt.OpenSSLCipher$AES$CFB
+com.android.org.conscrypt.OpenSSLCipher$AES$CTR
+com.android.org.conscrypt.OpenSSLCipher$AES$ECB
+com.android.org.conscrypt.OpenSSLCipher$AES$ECB$NoPadding
+com.android.org.conscrypt.OpenSSLCipher$AES$ECB$PKCS5Padding
+com.android.org.conscrypt.OpenSSLCipher$AES$OFB
+com.android.org.conscrypt.OpenSSLCipher$ARC4
+com.android.org.conscrypt.OpenSSLCipher$DESEDE
+com.android.org.conscrypt.OpenSSLCipher$DESEDE$CBC
+com.android.org.conscrypt.OpenSSLCipher$DESEDE$CBC$NoPadding
+com.android.org.conscrypt.OpenSSLCipher$DESEDE$CBC$PKCS5Padding
+com.android.org.conscrypt.OpenSSLCipher$DESEDE$CFB
+com.android.org.conscrypt.OpenSSLCipher$DESEDE$ECB
+com.android.org.conscrypt.OpenSSLCipher$DESEDE$ECB$NoPadding
+com.android.org.conscrypt.OpenSSLCipher$DESEDE$ECB$PKCS5Padding
+com.android.org.conscrypt.OpenSSLCipher$DESEDE$OFB
+com.android.org.conscrypt.OpenSSLCipherRSA
+com.android.org.conscrypt.OpenSSLCipherRSA$PKCS1
+com.android.org.conscrypt.OpenSSLCipherRSA$Raw
 com.android.org.conscrypt.OpenSSLContextImpl
-com.android.org.conscrypt.OpenSSLDigestContext
+com.android.org.conscrypt.OpenSSLDSAKeyFactory
+com.android.org.conscrypt.OpenSSLDSAKeyPairGenerator
+com.android.org.conscrypt.OpenSSLECDHKeyAgreement
+com.android.org.conscrypt.OpenSSLECKeyFactory
+com.android.org.conscrypt.OpenSSLECKeyPairGenerator
 com.android.org.conscrypt.OpenSSLKey
 com.android.org.conscrypt.OpenSSLKeyHolder
+com.android.org.conscrypt.OpenSSLMac
+com.android.org.conscrypt.OpenSSLMac$HmacMD5
+com.android.org.conscrypt.OpenSSLMac$HmacSHA1
+com.android.org.conscrypt.OpenSSLMac$HmacSHA256
+com.android.org.conscrypt.OpenSSLMac$HmacSHA384
+com.android.org.conscrypt.OpenSSLMac$HmacSHA512
 com.android.org.conscrypt.OpenSSLMessageDigestJDK
 com.android.org.conscrypt.OpenSSLMessageDigestJDK$MD5
 com.android.org.conscrypt.OpenSSLMessageDigestJDK$SHA1
-com.android.org.conscrypt.OpenSSLMessageDigestJDK$SHA512
-com.android.org.conscrypt.OpenSSLNativeReference
 com.android.org.conscrypt.OpenSSLProvider
+com.android.org.conscrypt.OpenSSLRSAKeyFactory
+com.android.org.conscrypt.OpenSSLRSAKeyPairGenerator
 com.android.org.conscrypt.OpenSSLRSAPublicKey
 com.android.org.conscrypt.OpenSSLRandom
 com.android.org.conscrypt.OpenSSLSessionImpl
+com.android.org.conscrypt.OpenSSLSignature
+com.android.org.conscrypt.OpenSSLSignature$1
+com.android.org.conscrypt.OpenSSLSignature$EngineType
+com.android.org.conscrypt.OpenSSLSignature$MD5RSA
+com.android.org.conscrypt.OpenSSLSignature$SHA1DSA
+com.android.org.conscrypt.OpenSSLSignature$SHA1ECDSA
+com.android.org.conscrypt.OpenSSLSignature$SHA1RSA
+com.android.org.conscrypt.OpenSSLSignature$SHA256ECDSA
+com.android.org.conscrypt.OpenSSLSignature$SHA256RSA
+com.android.org.conscrypt.OpenSSLSignature$SHA384ECDSA
+com.android.org.conscrypt.OpenSSLSignature$SHA384RSA
+com.android.org.conscrypt.OpenSSLSignature$SHA512ECDSA
+com.android.org.conscrypt.OpenSSLSignature$SHA512RSA
+com.android.org.conscrypt.OpenSSLSignatureRawRSA
 com.android.org.conscrypt.OpenSSLSocketFactoryImpl
 com.android.org.conscrypt.OpenSSLSocketImpl
 com.android.org.conscrypt.OpenSSLSocketImpl$SSLInputStream
@@ -2113,16 +1675,9 @@
 com.android.org.conscrypt.OpenSSLX509CertificateFactory$1
 com.android.org.conscrypt.OpenSSLX509CertificateFactory$2
 com.android.org.conscrypt.OpenSSLX509CertificateFactory$Parser
-com.android.org.conscrypt.OpenSSLX509CertificateFactory$ParsingException
-com.android.org.conscrypt.PinEntryException
-com.android.org.conscrypt.PinListEntry
-com.android.org.conscrypt.PinManagerException
-com.android.org.conscrypt.Platform
-com.android.org.conscrypt.Platform$OpenSSLMapper
+com.android.org.conscrypt.ProtocolVersion
 com.android.org.conscrypt.SSLClientSessionCache
 com.android.org.conscrypt.SSLParametersImpl
-com.android.org.conscrypt.SSLParametersImpl$AliasChooser
-com.android.org.conscrypt.SSLParametersImpl$PSKCallbacks
 com.android.org.conscrypt.ServerSessionContext
 com.android.org.conscrypt.TrustManagerFactoryImpl
 com.android.org.conscrypt.TrustManagerImpl
@@ -2132,27 +1687,43 @@
 com.android.org.conscrypt.TrustedCertificateStore
 com.android.org.conscrypt.TrustedCertificateStore$1
 com.android.org.conscrypt.TrustedCertificateStore$2
+com.android.org.conscrypt.TrustedCertificateStore$3
 com.android.org.conscrypt.TrustedCertificateStore$CertSelector
-com.android.org.conscrypt.util.Arrays
 com.android.server.NetworkManagementSocketTagger
 com.android.server.NetworkManagementSocketTagger$1
 com.android.server.NetworkManagementSocketTagger$SocketTags
+com.android.server.Watchdog
 com.google.android.collect.Lists
 com.google.android.collect.Maps
+com.google.android.gles_jni.EGLConfigImpl
+com.google.android.gles_jni.EGLContextImpl
+com.google.android.gles_jni.EGLDisplayImpl
 com.google.android.gles_jni.EGLImpl
+com.google.android.gles_jni.EGLSurfaceImpl
 com.google.android.gles_jni.GLImpl
+dalvik.system.BaseDexClassLoader
 dalvik.system.BlockGuard
 dalvik.system.BlockGuard$1
 dalvik.system.BlockGuard$2
 dalvik.system.BlockGuard$BlockGuardPolicyException
 dalvik.system.BlockGuard$Policy
+dalvik.system.CloseGuard
+dalvik.system.CloseGuard$DefaultReporter
+dalvik.system.CloseGuard$Reporter
 dalvik.system.DalvikLogHandler
 dalvik.system.DalvikLogging
+dalvik.system.DexFile
+dalvik.system.DexPathList
+dalvik.system.DexPathList$Element
+dalvik.system.NativeStart
+dalvik.system.PathClassLoader
 dalvik.system.SocketTagger
 dalvik.system.SocketTagger$1
+dalvik.system.StaleDexCacheError
 dalvik.system.VMDebug
 dalvik.system.VMRuntime
-dalvik.system.ZygoteHooks
+dalvik.system.VMStack
+dalvik.system.Zygote
 java.beans.PropertyChangeEvent
 java.beans.PropertyChangeSupport
 java.io.BufferedInputStream
@@ -2160,68 +1731,100 @@
 java.io.BufferedReader
 java.io.BufferedWriter
 java.io.ByteArrayInputStream
+java.io.ByteArrayOutputStream
 java.io.Closeable
+java.io.Console
+java.io.DataInput
 java.io.DataInputStream
-java.io.EOFException
+java.io.DataOutput
+java.io.DataOutputStream
 java.io.Externalizable
 java.io.File
 java.io.FileDescriptor
+java.io.FileFilter
 java.io.FileInputStream
 java.io.FileNotFoundException
 java.io.FileOutputStream
 java.io.FileReader
 java.io.FilterInputStream
+java.io.FilterOutputStream
+java.io.FilterReader
+java.io.Flushable
 java.io.IOException
 java.io.InputStream
 java.io.InputStreamReader
-java.io.InterruptedIOException
+java.io.ObjectInput
 java.io.ObjectInputStream
 java.io.ObjectStreamClass
+java.io.ObjectStreamConstants
+java.io.ObjectStreamField
 java.io.OutputStream
 java.io.OutputStreamWriter
+java.io.PrintStream
 java.io.PrintWriter
 java.io.PushbackInputStream
+java.io.PushbackReader
 java.io.RandomAccessFile
 java.io.Reader
 java.io.Serializable
 java.io.StringReader
 java.io.StringWriter
-java.io.UnsupportedEncodingException
+java.io.Writer
 java.lang.AbstractMethodError
+java.lang.AbstractStringBuilder
+java.lang.Appendable
+java.lang.ArithmeticException
 java.lang.ArrayIndexOutOfBoundsException
+java.lang.ArrayStoreException
+java.lang.AutoCloseable
 java.lang.Boolean
+java.lang.BootClassLoader
 java.lang.Byte
+java.lang.CaseMapper
 java.lang.CharSequence
 java.lang.Character
+java.lang.Character$UnicodeBlock
 java.lang.Class
 java.lang.ClassCastException
+java.lang.ClassCircularityError
+java.lang.ClassFormatError
 java.lang.ClassLoader
 java.lang.ClassLoader$SystemClassLoader
 java.lang.ClassNotFoundException
-java.lang.CloneNotSupportedException
 java.lang.Cloneable
 java.lang.Comparable
 java.lang.Daemons
 java.lang.Daemons$Daemon
 java.lang.Daemons$FinalizerDaemon
 java.lang.Daemons$FinalizerWatchdogDaemon
-java.lang.Daemons$GCDaemon
-java.lang.Daemons$HeapTrimmerDaemon
 java.lang.Daemons$ReferenceQueueDaemon
 java.lang.Double
 java.lang.Enum
+java.lang.Enum$1
 java.lang.Error
 java.lang.Exception
+java.lang.ExceptionInInitializerError
 java.lang.Float
+java.lang.IllegalAccessError
 java.lang.IllegalAccessException
 java.lang.IllegalArgumentException
+java.lang.IllegalMonitorStateException
 java.lang.IllegalStateException
+java.lang.IllegalThreadStateException
+java.lang.IncompatibleClassChangeError
+java.lang.IndexOutOfBoundsException
+java.lang.InstantiationError
 java.lang.InstantiationException
 java.lang.Integer
+java.lang.IntegralToString
+java.lang.IntegralToString$1
+java.lang.InternalError
 java.lang.InterruptedException
 java.lang.Iterable
+java.lang.LinkageError
 java.lang.Long
 java.lang.Math
+java.lang.NegativeArraySizeException
 java.lang.NoClassDefFoundError
 java.lang.NoSuchFieldError
 java.lang.NoSuchFieldException
@@ -2232,47 +1835,69 @@
 java.lang.NumberFormatException
 java.lang.Object
 java.lang.OutOfMemoryError
+java.lang.Readable
+java.lang.RealToString
+java.lang.RealToString$1
 java.lang.Runnable
 java.lang.Runtime
 java.lang.RuntimeException
 java.lang.RuntimePermission
 java.lang.SecurityException
 java.lang.Short
+java.lang.StackOverflowError
+java.lang.StackTraceElement
 java.lang.StrictMath
 java.lang.String
+java.lang.String$CaseInsensitiveComparator
+java.lang.StringBuffer
 java.lang.StringBuilder
+java.lang.StringIndexOutOfBoundsException
+java.lang.StringToReal
 java.lang.StringToReal$StringExponentPair
 java.lang.System
-java.lang.System$PropertiesWithNonOverrideableDefaults
 java.lang.Thread
+java.lang.Thread$State
 java.lang.Thread$UncaughtExceptionHandler
+java.lang.ThreadGroup
 java.lang.ThreadLocal
+java.lang.ThreadLocal$Values
 java.lang.Throwable
+java.lang.TypeNotPresentException
 java.lang.UnsatisfiedLinkError
 java.lang.UnsupportedOperationException
+java.lang.VMClassLoader
+java.lang.VerifyError
+java.lang.VirtualMachineError
 java.lang.Void
 java.lang.annotation.Annotation
-java.lang.annotation.Inherited
+java.lang.ref.FinalizerReference
+java.lang.ref.FinalizerReference$Sentinel
+java.lang.ref.Reference
+java.lang.ref.ReferenceQueue
 java.lang.ref.SoftReference
 java.lang.ref.WeakReference
+java.lang.reflect.AccessibleObject
+java.lang.reflect.AnnotatedElement
+java.lang.reflect.Array
+java.lang.reflect.Constructor
 java.lang.reflect.Field
-java.lang.reflect.GenericArrayType
-java.lang.reflect.InvocationTargetException
+java.lang.reflect.Field$1
+java.lang.reflect.GenericDeclaration
+java.lang.reflect.InvocationHandler
+java.lang.reflect.Member
 java.lang.reflect.Method
-java.lang.reflect.ParameterizedType
+java.lang.reflect.Method$1
+java.lang.reflect.Modifier
+java.lang.reflect.Proxy
 java.lang.reflect.Type
-java.lang.reflect.WildcardType
 java.math.BigDecimal
 java.math.BigInt
 java.math.BigInteger
-java.math.Conversion
-java.math.Multiplication
 java.math.NativeBN
 java.math.RoundingMode
 java.net.AddressCache
 java.net.AddressCache$AddressCacheEntry
-java.net.AddressCache$AddressCacheKey
-java.net.ConnectException
+java.net.CacheResponse
 java.net.ContentHandler
 java.net.CookieHandler
 java.net.HttpURLConnection
@@ -2282,8 +1907,9 @@
 java.net.InetSocketAddress
 java.net.InetUnixAddress
 java.net.JarURLConnection
-java.net.MalformedURLException
 java.net.PlainSocketImpl
+java.net.PlainSocketImpl$PlainSocketInputStream
+java.net.PlainSocketImpl$PlainSocketOutputStream
 java.net.Proxy
 java.net.Proxy$Type
 java.net.ProxySelector
@@ -2291,30 +1917,35 @@
 java.net.ResponseCache
 java.net.Socket
 java.net.SocketAddress
-java.net.SocketException
 java.net.SocketImpl
 java.net.SocketOptions
-java.net.SocketTimeoutException
-java.net.URISyntaxException
+java.net.URI
+java.net.URI$1
+java.net.URI$PartEncoder
+java.net.URL
 java.net.URLConnection
 java.net.URLConnection$DefaultContentHandler
 java.net.URLEncoder
 java.net.URLEncoder$1
 java.net.URLStreamHandler
-java.net.URLStreamHandlerFactory
 java.net.UnknownHostException
+java.nio.Buffer
+java.nio.ByteArrayBuffer
+java.nio.ByteBuffer
 java.nio.ByteOrder
 java.nio.CharArrayBuffer
+java.nio.CharBuffer
 java.nio.CharSequenceAdapter
+java.nio.DirectByteBuffer
 java.nio.FileChannelImpl
 java.nio.FileChannelImpl$1
-java.nio.MemoryBlock$UnmanagedBlock
+java.nio.MappedByteBuffer
+java.nio.MemoryBlock
+java.nio.MemoryBlock$NonMovableHeapBlock
 java.nio.NIOAccess
-java.nio.channels.AsynchronousCloseException
+java.nio.NioUtils
 java.nio.channels.ByteChannel
 java.nio.channels.Channel
-java.nio.channels.ClosedByInterruptException
-java.nio.channels.ClosedChannelException
 java.nio.channels.FileChannel
 java.nio.channels.GatheringByteChannel
 java.nio.channels.InterruptibleChannel
@@ -2325,29 +1956,27 @@
 java.nio.channels.spi.AbstractInterruptibleChannel$1
 java.nio.charset.Charset
 java.nio.charset.CharsetDecoder
+java.nio.charset.CharsetDecoderICU
 java.nio.charset.CharsetEncoder
 java.nio.charset.CharsetEncoderICU
 java.nio.charset.CharsetICU
+java.nio.charset.Charsets
 java.nio.charset.CoderResult
+java.nio.charset.CodingErrorAction
 java.nio.charset.ModifiedUtf8
-java.nio.charset.StandardCharsets
 java.security.AccessController
-java.security.DigestException
-java.security.GeneralSecurityException
-java.security.InvalidAlgorithmParameterException
-java.security.InvalidKeyException
+java.security.BasicPermission
+java.security.Guard
 java.security.Key
-java.security.KeyException
+java.security.KeyFactory
 java.security.KeyFactorySpi
-java.security.KeyManagementException
+java.security.KeyPairGenerator
 java.security.KeyPairGeneratorSpi
 java.security.KeyStore
-java.security.KeyStoreException
 java.security.KeyStoreSpi
 java.security.MessageDigest
-java.security.MessageDigest$MessageDigestImpl
-java.security.NoSuchAlgorithmException
-java.security.NoSuchProviderException
+java.security.MessageDigestSpi
+java.security.Permission
 java.security.Principal
 java.security.PrivilegedAction
 java.security.Provider
@@ -2357,27 +1986,18 @@
 java.security.SecureRandomSpi
 java.security.Security
 java.security.Security$SecurityDoor
-java.security.UnrecoverableEntryException
-java.security.UnrecoverableKeyException
-java.security.cert.CRLException
+java.security.Signature
+java.security.SignatureSpi
 java.security.cert.CertPath
-java.security.cert.CertPathBuilderException
 java.security.cert.CertPathParameters
 java.security.cert.CertPathValidator
-java.security.cert.CertPathValidatorException
 java.security.cert.CertPathValidatorResult
 java.security.cert.CertPathValidatorSpi
 java.security.cert.CertSelector
-java.security.cert.CertStoreException
-java.security.cert.CertStoreParameters
 java.security.cert.Certificate
-java.security.cert.CertificateEncodingException
-java.security.cert.CertificateException
-java.security.cert.CertificateExpiredException
 java.security.cert.CertificateFactory
 java.security.cert.CertificateFactorySpi
-java.security.cert.CertificateNotYetValidException
-java.security.cert.CertificateParsingException
+java.security.cert.CertStoreParameters
 java.security.cert.PKIXCertPathChecker
 java.security.cert.PKIXCertPathValidatorResult
 java.security.cert.PKIXParameters
@@ -2391,10 +2011,15 @@
 java.security.interfaces.RSAKey
 java.security.interfaces.RSAPublicKey
 java.security.spec.AlgorithmParameterSpec
-java.security.spec.InvalidKeySpecException
+java.security.spec.EncodedKeySpec
+java.security.spec.KeySpec
+java.security.spec.RSAPublicKeySpec
+java.security.spec.X509EncodedKeySpec
+java.sql.Date
 java.text.AttributedCharacterIterator$Attribute
 java.text.Bidi
 java.text.Bidi$Run
+java.text.Collator
 java.text.DateFormat
 java.text.DateFormat$Field
 java.text.DateFormatSymbols
@@ -2405,49 +2030,87 @@
 java.text.Format$Field
 java.text.NumberFormat
 java.text.NumberFormat$Field
-java.text.ParseException
 java.text.ParsePosition
+java.text.RuleBasedCollator
 java.text.SimpleDateFormat
 java.util.AbstractCollection
+java.util.AbstractList
+java.util.AbstractList$FullListIterator
+java.util.AbstractList$SimpleListIterator
+java.util.AbstractList$SubAbstractList
+java.util.AbstractList$SubAbstractList$SubAbstractListIterator
+java.util.AbstractList$SubAbstractListRandomAccess
 java.util.AbstractMap
+java.util.AbstractQueue
 java.util.AbstractSequentialList
 java.util.AbstractSet
 java.util.ArrayDeque
 java.util.ArrayList
+java.util.ArrayList$ArrayListIterator
 java.util.Arrays
 java.util.Arrays$ArrayList
 java.util.BitSet
 java.util.Calendar
 java.util.Collection
 java.util.Collections
-java.util.Collections$SingletonSet$1
+java.util.Collections$1
+java.util.Collections$2
+java.util.Collections$EmptyList
+java.util.Collections$EmptyMap
+java.util.Collections$EmptySet
+java.util.Collections$SingletonList
+java.util.Collections$SynchronizedCollection
+java.util.Collections$SynchronizedMap
+java.util.Collections$SynchronizedSet
+java.util.Collections$UnmodifiableCollection
 java.util.Collections$UnmodifiableCollection$1
+java.util.Collections$UnmodifiableList
+java.util.Collections$UnmodifiableMap
 java.util.Collections$UnmodifiableMap$UnmodifiableEntrySet
 java.util.Collections$UnmodifiableMap$UnmodifiableEntrySet$1
 java.util.Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableMapEntry
+java.util.Collections$UnmodifiableRandomAccessList
+java.util.Collections$UnmodifiableSet
 java.util.ComparableTimSort
 java.util.Comparator
 java.util.Currency
 java.util.Date
-java.util.DualPivotQuicksort
+java.util.Deque
+java.util.Dictionary
 java.util.EnumMap
 java.util.EnumSet
+java.util.Enumeration
 java.util.EventObject
 java.util.Formattable
+java.util.Formatter
+java.util.Formatter$1
+java.util.Formatter$CachedDecimalFormat
 java.util.Formatter$FormatSpecifierParser
 java.util.Formatter$FormatToken
 java.util.GregorianCalendar
 java.util.HashMap
+java.util.HashMap$EntryIterator
+java.util.HashMap$EntrySet
+java.util.HashMap$HashIterator
+java.util.HashMap$HashMapEntry
+java.util.HashMap$KeyIterator
+java.util.HashMap$KeySet
+java.util.HashMap$ValueIterator
+java.util.HashMap$Values
 java.util.HashSet
+java.util.Hashtable
+java.util.Hashtable$EntryIterator
+java.util.Hashtable$EntrySet
 java.util.Hashtable$HashIterator
+java.util.Hashtable$HashtableEntry
 java.util.Hashtable$KeyEnumeration
 java.util.Hashtable$ValueIterator
 java.util.Hashtable$Values
-java.util.IdentityHashMap
 java.util.Iterator
 java.util.LinkedHashMap
 java.util.LinkedHashMap$EntryIterator
 java.util.LinkedHashMap$KeyIterator
+java.util.LinkedHashMap$LinkedEntry
 java.util.LinkedHashMap$LinkedHashIterator
 java.util.LinkedHashMap$ValueIterator
 java.util.LinkedHashSet
@@ -2457,24 +2120,15 @@
 java.util.List
 java.util.ListIterator
 java.util.Locale
-java.util.Locale$Builder
 java.util.Map
 java.util.Map$Entry
-java.util.MapEntry
-java.util.MapEntry$Type
 java.util.MiniEnumSet
-java.util.MiniEnumSet$MiniEnumSetIterator
-java.util.MissingResourceException
 java.util.NavigableMap
 java.util.NavigableSet
-java.util.NoSuchElementException
-java.util.Objects
-java.util.PriorityQueue
 java.util.Properties
 java.util.Queue
 java.util.Random
 java.util.RandomAccess
-java.util.Scanner
 java.util.Set
 java.util.SimpleTimeZone
 java.util.SortedMap
@@ -2517,19 +2171,10 @@
 java.util.concurrent.Callable
 java.util.concurrent.CancellationException
 java.util.concurrent.ConcurrentHashMap
-java.util.concurrent.ConcurrentHashMap$BaseIterator
-java.util.concurrent.ConcurrentHashMap$CollectionView
-java.util.concurrent.ConcurrentHashMap$CounterCell
-java.util.concurrent.ConcurrentHashMap$ForwardingNode
-java.util.concurrent.ConcurrentHashMap$KeyIterator
-java.util.concurrent.ConcurrentHashMap$KeySetView
-java.util.concurrent.ConcurrentHashMap$Node
 java.util.concurrent.ConcurrentHashMap$Segment
-java.util.concurrent.ConcurrentHashMap$Traverser
 java.util.concurrent.ConcurrentLinkedQueue
 java.util.concurrent.ConcurrentLinkedQueue$Node
 java.util.concurrent.ConcurrentMap
-java.util.concurrent.ConcurrentSkipListMap
 java.util.concurrent.CopyOnWriteArrayList
 java.util.concurrent.CopyOnWriteArrayList$CowIterator
 java.util.concurrent.CountDownLatch
@@ -2545,19 +2190,10 @@
 java.util.concurrent.Future
 java.util.concurrent.FutureTask
 java.util.concurrent.FutureTask$WaitNode
-java.util.concurrent.LinkedBlockingDeque
 java.util.concurrent.LinkedBlockingQueue
 java.util.concurrent.LinkedBlockingQueue$Node
 java.util.concurrent.RejectedExecutionHandler
 java.util.concurrent.RunnableFuture
-java.util.concurrent.ScheduledExecutorService
-java.util.concurrent.Semaphore
-java.util.concurrent.Semaphore$NonfairSync
-java.util.concurrent.Semaphore$Sync
-java.util.concurrent.SynchronousQueue
-java.util.concurrent.SynchronousQueue$TransferStack
-java.util.concurrent.SynchronousQueue$TransferStack$SNode
-java.util.concurrent.SynchronousQueue$Transferer
 java.util.concurrent.ThreadFactory
 java.util.concurrent.ThreadPoolExecutor
 java.util.concurrent.ThreadPoolExecutor$AbortPolicy
@@ -2570,10 +2206,8 @@
 java.util.concurrent.TimeUnit$5
 java.util.concurrent.TimeUnit$6
 java.util.concurrent.TimeUnit$7
-java.util.concurrent.TimeoutException
 java.util.concurrent.atomic.AtomicBoolean
 java.util.concurrent.atomic.AtomicInteger
-java.util.concurrent.atomic.AtomicLong
 java.util.concurrent.atomic.AtomicReference
 java.util.concurrent.locks.AbstractOwnableSynchronizer
 java.util.concurrent.locks.AbstractQueuedSynchronizer
@@ -2592,13 +2226,14 @@
 java.util.concurrent.locks.ReentrantReadWriteLock$Sync
 java.util.concurrent.locks.ReentrantReadWriteLock$Sync$ThreadLocalHoldCounter
 java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock
+java.util.jar.Attributes
+java.util.jar.Attributes$Name
 java.util.jar.JarEntry
 java.util.jar.JarFile
-java.util.jar.JarFile$JarFileEnumerator
-java.util.jar.StrictJarFile
+java.util.jar.JarVerifier
+java.util.jar.Manifest
 java.util.logging.ConsoleHandler
 java.util.logging.ErrorManager
-java.util.logging.Filter
 java.util.logging.Formatter
 java.util.logging.Handler
 java.util.logging.Level
@@ -2609,42 +2244,54 @@
 java.util.logging.LoggingPermission
 java.util.logging.SimpleFormatter
 java.util.logging.StreamHandler
+java.util.regex.MatchResult
+java.util.regex.Matcher
 java.util.regex.Pattern
 java.util.regex.PatternSyntaxException
+java.util.regex.Splitter
+java.util.zip.Adler32
 java.util.zip.CRC32
+java.util.zip.Checksum
 java.util.zip.Deflater
 java.util.zip.DeflaterOutputStream
 java.util.zip.GZIPInputStream
 java.util.zip.GZIPOutputStream
 java.util.zip.Inflater
 java.util.zip.InflaterInputStream
+java.util.zip.ZipConstants
+java.util.zip.ZipEntry
+java.util.zip.ZipFile
 java.util.zip.ZipFile$1
 java.util.zip.ZipFile$RAFStream
-javax.crypto.BadPaddingException
-javax.crypto.IllegalBlockSizeException
-javax.crypto.NoSuchPaddingException
+java.util.zip.ZipFile$ZipInflaterInputStream
+javax.crypto.Cipher
+javax.crypto.CipherSpi
+javax.crypto.KeyAgreementSpi
+javax.crypto.MacSpi
+javax.crypto.SecretKey
 javax.crypto.spec.GCMParameterSpec
+javax.crypto.spec.IvParameterSpec
+javax.crypto.spec.SecretKeySpec
 javax.microedition.khronos.egl.EGL
 javax.microedition.khronos.egl.EGL10
+javax.microedition.khronos.egl.EGLConfig
+javax.microedition.khronos.egl.EGLContext
+javax.microedition.khronos.egl.EGLDisplay
+javax.microedition.khronos.egl.EGLSurface
 javax.microedition.khronos.opengles.GL
 javax.microedition.khronos.opengles.GL10
 javax.microedition.khronos.opengles.GL10Ext
 javax.microedition.khronos.opengles.GL11
 javax.microedition.khronos.opengles.GL11Ext
 javax.microedition.khronos.opengles.GL11ExtensionPack
-javax.net.DefaultSocketFactory
 javax.net.SocketFactory
 javax.net.ssl.DefaultHostnameVerifier
-javax.net.ssl.DistinguishedNameParser
 javax.net.ssl.HostnameVerifier
 javax.net.ssl.HttpsURLConnection
 javax.net.ssl.KeyManager
 javax.net.ssl.KeyManagerFactory
 javax.net.ssl.KeyManagerFactorySpi
 javax.net.ssl.SSLContextSpi
-javax.net.ssl.SSLException
-javax.net.ssl.SSLPeerUnverifiedException
-javax.net.ssl.SSLProtocolException
 javax.net.ssl.SSLSession
 javax.net.ssl.SSLSessionContext
 javax.net.ssl.SSLSocket
@@ -2656,11 +2303,8 @@
 javax.net.ssl.X509KeyManager
 javax.net.ssl.X509TrustManager
 javax.security.auth.x500.X500Principal
-javax.security.cert.CertificateException
-javax.xml.parsers.ParserConfigurationException
 libcore.icu.AlphabeticIndex
 libcore.icu.AlphabeticIndex$ImmutableIndex
-libcore.icu.DateIntervalFormat
 libcore.icu.ICU
 libcore.icu.LocaleData
 libcore.icu.NativeBreakIterator
@@ -2671,56 +2315,86 @@
 libcore.icu.NativeIDN
 libcore.icu.NativeNormalizer
 libcore.icu.NativePluralRules
+libcore.icu.RuleBasedCollatorICU
 libcore.icu.TimeZoneNames
 libcore.icu.Transliterator
 libcore.internal.StringPool
 libcore.io.AsynchronousCloseMonitor
+libcore.io.BlockGuardOs
 libcore.io.BufferIterator
 libcore.io.DropBox
 libcore.io.DropBox$DefaultReporter
 libcore.io.DropBox$Reporter
+libcore.io.ErrnoException
 libcore.io.EventLogger
 libcore.io.EventLogger$DefaultReporter
 libcore.io.EventLogger$Reporter
+libcore.io.ForwardingOs
+libcore.io.GaiException
 libcore.io.HeapBufferIterator
 libcore.io.IoBridge
-libcore.io.IoUtils$FileReader
+libcore.io.IoUtils
+libcore.io.Libcore
+libcore.io.Memory
 libcore.io.MemoryMappedFile
 libcore.io.NioBufferIterator
+libcore.io.Os
+libcore.io.OsConstants
+libcore.io.Posix
 libcore.io.Streams
+libcore.io.StructAddrinfo
+libcore.io.StructFlock
+libcore.io.StructGroupReq
+libcore.io.StructLinger
+libcore.io.StructPasswd
+libcore.io.StructPollfd
+libcore.io.StructStat
+libcore.io.StructTimeval
+libcore.io.StructUcred
+libcore.io.StructUtsname
 libcore.math.MathUtils
 libcore.net.MimeUtils
-libcore.net.event.NetworkEventDispatcher
-libcore.net.event.NetworkEventListener
+libcore.net.UriCodec
+libcore.net.http.HttpDate
+libcore.net.http.HttpDate$1
 libcore.net.url.FileHandler
 libcore.net.url.FileURLConnection
-libcore.net.url.FileURLConnection$1
 libcore.net.url.JarHandler
 libcore.net.url.JarURLConnectionImpl
 libcore.net.url.JarURLConnectionImpl$JarURLConnectionInputStream
 libcore.net.url.UrlUtils
-libcore.reflect.AnnotationFactory
-libcore.reflect.AnnotationMember
-libcore.reflect.AnnotationMember$DefaultValues
-libcore.reflect.ListOfVariables
-libcore.reflect.ParameterizedTypeImpl
+libcore.util.BasicLruCache
+libcore.util.CollectionUtils
+libcore.util.CollectionUtils$1
+libcore.util.CollectionUtils$1$1
+libcore.util.EmptyArray
+libcore.util.MutableInt
+libcore.util.MutableLong
+libcore.util.Objects
 libcore.util.ZoneInfo
-libcore.util.ZoneInfo$CheckedArithmeticException
-libcore.util.ZoneInfo$WallTime
 libcore.util.ZoneInfoDB
-libcore.util.ZoneInfoDB$TzData
-libcore.util.ZoneInfoDB$TzData$1
 org.apache.commons.logging.Log
 org.apache.commons.logging.LogFactory
 org.apache.commons.logging.impl.Jdk14Logger
 org.apache.commons.logging.impl.WeakHashtable
+org.apache.harmony.crypto.internal.NullCipherSpi
 org.apache.harmony.dalvik.NativeTestTarget
-org.apache.harmony.dalvik.ddmc.DdmVmInternal
+org.apache.harmony.dalvik.ddmc.Chunk
+org.apache.harmony.dalvik.ddmc.ChunkHandler
+org.apache.harmony.dalvik.ddmc.DdmServer
 org.apache.harmony.luni.internal.util.TimezoneGetter
 org.apache.harmony.security.asn1.ASN1Any
+org.apache.harmony.security.asn1.ASN1BitString
+org.apache.harmony.security.asn1.ASN1BitString$ASN1NamedBitList
+org.apache.harmony.security.asn1.ASN1Boolean
 org.apache.harmony.security.asn1.ASN1Choice
 org.apache.harmony.security.asn1.ASN1Constants
 org.apache.harmony.security.asn1.ASN1Constructed
+org.apache.harmony.security.asn1.ASN1Explicit
+org.apache.harmony.security.asn1.ASN1GeneralizedTime
+org.apache.harmony.security.asn1.ASN1Implicit
+org.apache.harmony.security.asn1.ASN1Integer
+org.apache.harmony.security.asn1.ASN1OctetString
 org.apache.harmony.security.asn1.ASN1Oid
 org.apache.harmony.security.asn1.ASN1Oid$1
 org.apache.harmony.security.asn1.ASN1Primitive
@@ -2736,22 +2410,24 @@
 org.apache.harmony.security.asn1.ASN1StringType$6
 org.apache.harmony.security.asn1.ASN1StringType$7
 org.apache.harmony.security.asn1.ASN1StringType$ASN1StringUTF8Type
+org.apache.harmony.security.asn1.ASN1Time
 org.apache.harmony.security.asn1.ASN1Type
 org.apache.harmony.security.asn1.ASN1TypeCollection
+org.apache.harmony.security.asn1.ASN1UTCTime
 org.apache.harmony.security.asn1.ASN1ValueCollection
 org.apache.harmony.security.asn1.BerInputStream
 org.apache.harmony.security.asn1.BerOutputStream
+org.apache.harmony.security.asn1.BitString
 org.apache.harmony.security.asn1.DerInputStream
 org.apache.harmony.security.asn1.DerOutputStream
+org.apache.harmony.security.asn1.ObjectIdentifier
+org.apache.harmony.security.fortress.Engine
 org.apache.harmony.security.fortress.Engine$ServiceCacheEntry
 org.apache.harmony.security.fortress.Engine$SpiAndProvider
 org.apache.harmony.security.fortress.SecurityAccess
 org.apache.harmony.security.fortress.Services
-org.apache.harmony.security.pkcs7.ContentInfo$1
-org.apache.harmony.security.pkcs7.SignedData
 org.apache.harmony.security.provider.crypto.CryptoProvider
 org.apache.harmony.security.utils.AlgNameMapper
-org.apache.harmony.security.utils.AlgNameMapperSource
 org.apache.harmony.security.utils.ObjectIdentifier
 org.apache.harmony.security.x501.AttributeTypeAndValue
 org.apache.harmony.security.x501.AttributeTypeAndValue$1
@@ -2762,11 +2438,43 @@
 org.apache.harmony.security.x501.DirectoryString$1
 org.apache.harmony.security.x501.Name
 org.apache.harmony.security.x501.Name$1
+org.apache.harmony.security.x509.AlgorithmIdentifier
+org.apache.harmony.security.x509.AlgorithmIdentifier$1
+org.apache.harmony.security.x509.BasicConstraints
+org.apache.harmony.security.x509.BasicConstraints$1
+org.apache.harmony.security.x509.Certificate
+org.apache.harmony.security.x509.Certificate$1
+org.apache.harmony.security.x509.EDIPartyName
+org.apache.harmony.security.x509.EDIPartyName$1
+org.apache.harmony.security.x509.ExtendedKeyUsage
+org.apache.harmony.security.x509.ExtendedKeyUsage$1
+org.apache.harmony.security.x509.Extension
+org.apache.harmony.security.x509.Extension$1
+org.apache.harmony.security.x509.Extension$2
+org.apache.harmony.security.x509.ExtensionValue
+org.apache.harmony.security.x509.Extensions
+org.apache.harmony.security.x509.Extensions$1
+org.apache.harmony.security.x509.GeneralName
+org.apache.harmony.security.x509.GeneralName$1
+org.apache.harmony.security.x509.GeneralName$2
+org.apache.harmony.security.x509.GeneralNames
+org.apache.harmony.security.x509.GeneralNames$1
+org.apache.harmony.security.x509.KeyUsage
+org.apache.harmony.security.x509.ORAddress
+org.apache.harmony.security.x509.ORAddress$1
+org.apache.harmony.security.x509.ORAddress$2
+org.apache.harmony.security.x509.OtherName
+org.apache.harmony.security.x509.OtherName$1
+org.apache.harmony.security.x509.SubjectPublicKeyInfo
+org.apache.harmony.security.x509.SubjectPublicKeyInfo$1
 org.apache.harmony.security.x509.TBSCertificate
+org.apache.harmony.security.x509.TBSCertificate$1
+org.apache.harmony.security.x509.Time
+org.apache.harmony.security.x509.Time$1
+org.apache.harmony.security.x509.Validity
+org.apache.harmony.security.x509.Validity$1
 org.apache.harmony.xml.ExpatAttributes
 org.apache.harmony.xml.ExpatParser
-org.apache.harmony.xml.dom.DocumentImpl
-org.apache.harmony.xml.dom.InnerNodeImpl
 org.apache.http.ConnectionReuseStrategy
 org.apache.http.FormattedHeader
 org.apache.http.Header
@@ -2778,7 +2486,6 @@
 org.apache.http.HttpConnectionMetrics
 org.apache.http.HttpEntity
 org.apache.http.HttpEntityEnclosingRequest
-org.apache.http.HttpException
 org.apache.http.HttpHost
 org.apache.http.HttpInetConnection
 org.apache.http.HttpMessage
@@ -2789,8 +2496,6 @@
 org.apache.http.HttpResponseInterceptor
 org.apache.http.HttpVersion
 org.apache.http.NameValuePair
-org.apache.http.ParseException
-org.apache.http.ProtocolException
 org.apache.http.ProtocolVersion
 org.apache.http.ReasonPhraseCatalog
 org.apache.http.RequestLine
@@ -2798,7 +2503,6 @@
 org.apache.http.auth.AuthSchemeFactory
 org.apache.http.auth.AuthSchemeRegistry
 org.apache.http.auth.AuthState
-org.apache.http.auth.AuthenticationException
 org.apache.http.client.AuthenticationHandler
 org.apache.http.client.CookieStore
 org.apache.http.client.CredentialsProvider
@@ -2825,7 +2529,6 @@
 org.apache.http.conn.ClientConnectionManager
 org.apache.http.conn.ClientConnectionOperator
 org.apache.http.conn.ClientConnectionRequest
-org.apache.http.conn.ConnectTimeoutException
 org.apache.http.conn.ConnectionKeepAliveStrategy
 org.apache.http.conn.ConnectionReleaseTrigger
 org.apache.http.conn.EofSensorInputStream
@@ -2859,9 +2562,13 @@
 org.apache.http.conn.ssl.StrictHostnameVerifier
 org.apache.http.conn.ssl.X509HostnameVerifier
 org.apache.http.conn.util.InetAddressUtils
+org.apache.http.cookie.CookieAttributeHandler
+org.apache.http.cookie.CookieIdentityComparator
+org.apache.http.cookie.CookieOrigin
+org.apache.http.cookie.CookiePathComparator
+org.apache.http.cookie.CookieSpec
 org.apache.http.cookie.CookieSpecFactory
 org.apache.http.cookie.CookieSpecRegistry
-org.apache.http.cookie.MalformedCookieException
 org.apache.http.entity.AbstractHttpEntity
 org.apache.http.entity.BasicHttpEntity
 org.apache.http.entity.ByteArrayEntity
@@ -2869,9 +2576,7 @@
 org.apache.http.entity.HttpEntityWrapper
 org.apache.http.impl.AbstractHttpClientConnection
 org.apache.http.impl.DefaultConnectionReuseStrategy
-org.apache.http.impl.DefaultHttpClientConnection
 org.apache.http.impl.DefaultHttpResponseFactory
-org.apache.http.impl.DefaultHttpServerConnection
 org.apache.http.impl.EnglishReasonPhraseCatalog
 org.apache.http.impl.HttpConnectionMetricsImpl
 org.apache.http.impl.SocketHttpClientConnection
@@ -2879,6 +2584,7 @@
 org.apache.http.impl.auth.DigestSchemeFactory
 org.apache.http.impl.client.AbstractAuthenticationHandler
 org.apache.http.impl.client.AbstractHttpClient
+org.apache.http.impl.client.BasicCookieStore
 org.apache.http.impl.client.BasicCredentialsProvider
 org.apache.http.impl.client.ClientParamsStack
 org.apache.http.impl.client.DefaultConnectionKeepAliveStrategy
@@ -2892,7 +2598,6 @@
 org.apache.http.impl.client.EntityEnclosingRequestWrapper
 org.apache.http.impl.client.RequestWrapper
 org.apache.http.impl.client.RoutedRequest
-org.apache.http.impl.client.TunnelRefusedException
 org.apache.http.impl.conn.AbstractClientConnAdapter
 org.apache.http.impl.conn.AbstractPoolEntry
 org.apache.http.impl.conn.AbstractPooledConnAdapter
@@ -2916,12 +2621,29 @@
 org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager
 org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager$1
 org.apache.http.impl.conn.tsccm.WaitingThreadAborter
+org.apache.http.impl.cookie.AbstractCookieAttributeHandler
+org.apache.http.impl.cookie.AbstractCookieSpec
+org.apache.http.impl.cookie.BasicCommentHandler
+org.apache.http.impl.cookie.BasicExpiresHandler
+org.apache.http.impl.cookie.BasicMaxAgeHandler
+org.apache.http.impl.cookie.BasicPathHandler
+org.apache.http.impl.cookie.BasicSecureHandler
+org.apache.http.impl.cookie.BestMatchSpec
 org.apache.http.impl.cookie.BestMatchSpecFactory
 org.apache.http.impl.cookie.BrowserCompatSpecFactory
-org.apache.http.impl.cookie.DateParseException
+org.apache.http.impl.cookie.CookieSpecBase
 org.apache.http.impl.cookie.NetscapeDraftSpecFactory
+org.apache.http.impl.cookie.RFC2109DomainHandler
+org.apache.http.impl.cookie.RFC2109Spec
 org.apache.http.impl.cookie.RFC2109SpecFactory
+org.apache.http.impl.cookie.RFC2109VersionHandler
+org.apache.http.impl.cookie.RFC2965CommentUrlAttributeHandler
+org.apache.http.impl.cookie.RFC2965DiscardAttributeHandler
+org.apache.http.impl.cookie.RFC2965DomainAttributeHandler
+org.apache.http.impl.cookie.RFC2965PortAttributeHandler
+org.apache.http.impl.cookie.RFC2965Spec
 org.apache.http.impl.cookie.RFC2965SpecFactory
+org.apache.http.impl.cookie.RFC2965VersionAttributeHandler
 org.apache.http.impl.entity.EntityDeserializer
 org.apache.http.impl.entity.EntitySerializer
 org.apache.http.impl.entity.LaxContentLengthStrategy
@@ -2983,11 +2705,20 @@
 org.apache.http.util.ByteArrayBuffer
 org.apache.http.util.CharArrayBuffer
 org.apache.http.util.LangUtils
+org.ccil.cowan.tagsoup.AttributesImpl
+org.ccil.cowan.tagsoup.AutoDetector
+org.ccil.cowan.tagsoup.Element
+org.ccil.cowan.tagsoup.ElementType
+org.ccil.cowan.tagsoup.HTMLModels
 org.ccil.cowan.tagsoup.HTMLScanner
+org.ccil.cowan.tagsoup.HTMLSchema
 org.ccil.cowan.tagsoup.Parser
+org.ccil.cowan.tagsoup.Parser$1
+org.ccil.cowan.tagsoup.ScanHandler
+org.ccil.cowan.tagsoup.Scanner
+org.ccil.cowan.tagsoup.Schema
 org.json.JSON
 org.json.JSONArray
-org.json.JSONException
 org.json.JSONObject
 org.json.JSONObject$1
 org.json.JSONStringer
@@ -3002,11 +2733,9 @@
 org.xml.sax.ErrorHandler
 org.xml.sax.InputSource
 org.xml.sax.Locator
-org.xml.sax.SAXException
-org.xml.sax.SAXNotRecognizedException
-org.xml.sax.SAXNotSupportedException
 org.xml.sax.XMLReader
+org.xml.sax.ext.LexicalHandler
 org.xml.sax.helpers.DefaultHandler
 org.xmlpull.v1.XmlPullParser
-org.xmlpull.v1.XmlPullParserException
 org.xmlpull.v1.XmlSerializer
+sun.misc.Unsafe
diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java
index 85ab249..a9cff22 100644
--- a/services/core/java/com/android/server/ConnectivityService.java
+++ b/services/core/java/com/android/server/ConnectivityService.java
@@ -137,6 +137,7 @@
 import com.android.server.connectivity.NetworkAgentInfo;
 import com.android.server.connectivity.NetworkMonitor;
 import com.android.server.connectivity.PacManager;
+import com.android.server.connectivity.PermissionMonitor;
 import com.android.server.connectivity.Tethering;
 import com.android.server.connectivity.Vpn;
 import com.android.server.net.BaseNetworkObserver;
@@ -225,6 +226,8 @@
 
     private Tethering mTethering;
 
+    private final PermissionMonitor mPermissionMonitor;
+
     private KeyStore mKeyStore;
 
     @GuardedBy("mVpns")
@@ -702,6 +705,8 @@
 
         mTethering = new Tethering(mContext, mNetd, statsService, mHandler.getLooper());
 
+        mPermissionMonitor = new PermissionMonitor(mContext, mNetd);
+
         //set up the listener for user state for creating user VPNs
         IntentFilter intentFilter = new IntentFilter();
         intentFilter.addAction(Intent.ACTION_USER_STARTING);
@@ -1484,6 +1489,8 @@
         }
 
         mHandler.sendMessage(mHandler.obtainMessage(EVENT_SYSTEM_READY));
+
+        mPermissionMonitor.startMonitoring();
     }
 
     private BroadcastReceiver mUserPresentReceiver = new BroadcastReceiver() {
diff --git a/services/core/java/com/android/server/NetworkManagementService.java b/services/core/java/com/android/server/NetworkManagementService.java
index 822007a..020c951 100644
--- a/services/core/java/com/android/server/NetworkManagementService.java
+++ b/services/core/java/com/android/server/NetworkManagementService.java
@@ -16,7 +16,6 @@
 
 package com.android.server;
 
-import static android.Manifest.permission.CHANGE_NETWORK_STATE;
 import static android.Manifest.permission.CONNECTIVITY_INTERNAL;
 import static android.Manifest.permission.DUMP;
 import static android.Manifest.permission.SHUTDOWN;
@@ -2059,20 +2058,26 @@
     }
 
     @Override
-    public void setPermission(boolean internal, boolean changeNetState, int[] uids) {
+    public void setPermission(String permission, int[] uids) {
         mContext.enforceCallingOrSelfPermission(CONNECTIVITY_INTERNAL, TAG);
 
-        final Command cmd = new Command("network", "permission", "user", "set");
-        if (internal) cmd.appendArg(CONNECTIVITY_INTERNAL);
-        if (changeNetState) cmd.appendArg(CHANGE_NETWORK_STATE);
-        for (int i=0; i<uids.length; i++) {
-            cmd.appendArg(uids[i]);
-        }
-
-        try {
-            mConnector.execute(cmd);
-        } catch (NativeDaemonConnectorException e) {
-            throw e.rethrowAsParcelableException();
+        Object[] argv = new Object[4 + MAX_UID_RANGES_PER_COMMAND];
+        argv[0] = "permission";
+        argv[1] = "user";
+        argv[2] = "set";
+        argv[3] = permission;
+        int argc = 4;
+        // Avoid overly long commands by limiting number of UIDs per command.
+        for (int i = 0; i < uids.length; ++i) {
+            argv[argc++] = uids[i];
+            if (i == uids.length - 1 || argc == argv.length) {
+                try {
+                    mConnector.execute("network", Arrays.copyOf(argv, argc));
+                } catch (NativeDaemonConnectorException e) {
+                    throw e.rethrowAsParcelableException();
+                }
+                argc = 4;
+            }
         }
     }
 
@@ -2080,15 +2085,22 @@
     public void clearPermission(int[] uids) {
         mContext.enforceCallingOrSelfPermission(CONNECTIVITY_INTERNAL, TAG);
 
-        final Command cmd = new Command("network", "permission", "user", "clear");
-        for (int i=0; i<uids.length; i++) {
-            cmd.appendArg(uids[i]);
-        }
-
-        try {
-            mConnector.execute(cmd);
-        } catch (NativeDaemonConnectorException e) {
-            throw e.rethrowAsParcelableException();
+        Object[] argv = new Object[3 + MAX_UID_RANGES_PER_COMMAND];
+        argv[0] = "permission";
+        argv[1] = "user";
+        argv[2] = "clear";
+        int argc = 3;
+        // Avoid overly long commands by limiting number of UIDs per command.
+        for (int i = 0; i < uids.length; ++i) {
+            argv[argc++] = uids[i];
+            if (i == uids.length - 1 || argc == argv.length) {
+                try {
+                    mConnector.execute("network", Arrays.copyOf(argv, argc));
+                } catch (NativeDaemonConnectorException e) {
+                    throw e.rethrowAsParcelableException();
+                }
+                argc = 3;
+            }
         }
     }
 
diff --git a/services/core/java/com/android/server/connectivity/PermissionMonitor.java b/services/core/java/com/android/server/connectivity/PermissionMonitor.java
new file mode 100644
index 0000000..238402f
--- /dev/null
+++ b/services/core/java/com/android/server/connectivity/PermissionMonitor.java
@@ -0,0 +1,277 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.connectivity;
+
+import static android.Manifest.permission.CHANGE_NETWORK_STATE;
+import static android.Manifest.permission.CONNECTIVITY_INTERNAL;
+import static android.content.pm.ApplicationInfo.FLAG_SYSTEM;
+import static android.content.pm.ApplicationInfo.FLAG_UPDATED_SYSTEM_APP;
+import static android.content.pm.PackageManager.GET_PERMISSIONS;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.content.pm.PackageInfo;
+import android.content.pm.PackageManager;
+import android.content.pm.PackageManager.NameNotFoundException;
+import android.content.pm.UserInfo;
+import android.net.Uri;
+import android.os.INetworkManagementService;
+import android.os.RemoteException;
+import android.os.UserHandle;
+import android.os.UserManager;
+import android.text.TextUtils;
+import android.util.Log;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map.Entry;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * A utility class to inform Netd of UID permisisons.
+ * Does a mass update at boot and then monitors for app install/remove.
+ *
+ * @hide
+ */
+public class PermissionMonitor {
+    private static final String TAG = "PermissionMonitor";
+    private static final boolean DBG = true;
+    private static final boolean SYSTEM = true;
+    private static final boolean NETWORK = false;
+
+    private final Context mContext;
+    private final PackageManager mPackageManager;
+    private final UserManager mUserManager;
+    private final INetworkManagementService mNetd;
+    private final BroadcastReceiver mIntentReceiver;
+
+    // Values are User IDs.
+    private final Set<Integer> mUsers = new HashSet<Integer>();
+
+    // Keys are App IDs. Values are true for SYSTEM permission and false for NETWORK permission.
+    private final Map<Integer, Boolean> mApps = new HashMap<Integer, Boolean>();
+
+    public PermissionMonitor(Context context, INetworkManagementService netd) {
+        mContext = context;
+        mPackageManager = context.getPackageManager();
+        mUserManager = UserManager.get(context);
+        mNetd = netd;
+        mIntentReceiver = new BroadcastReceiver() {
+            @Override
+            public void onReceive(Context context, Intent intent) {
+                String action = intent.getAction();
+                int user = intent.getIntExtra(Intent.EXTRA_USER_HANDLE, UserHandle.USER_NULL);
+                int appUid = intent.getIntExtra(Intent.EXTRA_UID, -1);
+                Uri appData = intent.getData();
+                String appName = appData != null ? appData.getSchemeSpecificPart() : null;
+
+                if (Intent.ACTION_USER_ADDED.equals(action)) {
+                    onUserAdded(user);
+                } else if (Intent.ACTION_USER_REMOVED.equals(action)) {
+                    onUserRemoved(user);
+                } else if (Intent.ACTION_PACKAGE_ADDED.equals(action)) {
+                    onAppAdded(appName, appUid);
+                } else if (Intent.ACTION_PACKAGE_REMOVED.equals(action)) {
+                    onAppRemoved(appUid);
+                }
+            }
+        };
+    }
+
+    // Intended to be called only once at startup, after the system is ready. Installs a broadcast
+    // receiver to monitor ongoing UID changes, so this shouldn't/needn't be called again.
+    public synchronized void startMonitoring() {
+        log("Monitoring");
+
+        IntentFilter intentFilter = new IntentFilter();
+        intentFilter.addAction(Intent.ACTION_USER_ADDED);
+        intentFilter.addAction(Intent.ACTION_USER_REMOVED);
+        mContext.registerReceiverAsUser(mIntentReceiver, UserHandle.ALL, intentFilter, null, null);
+
+        intentFilter = new IntentFilter();
+        intentFilter.addAction(Intent.ACTION_PACKAGE_ADDED);
+        intentFilter.addAction(Intent.ACTION_PACKAGE_REMOVED);
+        intentFilter.addDataScheme("package");
+        mContext.registerReceiverAsUser(mIntentReceiver, UserHandle.ALL, intentFilter, null, null);
+
+        List<PackageInfo> apps = mPackageManager.getInstalledPackages(GET_PERMISSIONS);
+        if (apps == null) {
+            loge("No apps");
+            return;
+        }
+
+        for (PackageInfo app : apps) {
+            int uid = app.applicationInfo != null ? app.applicationInfo.uid : -1;
+            if (uid < 0) {
+                continue;
+            }
+
+            boolean isNetwork = hasNetworkPermission(app);
+            boolean isSystem = hasSystemPermission(app);
+
+            if (isNetwork || isSystem) {
+                Boolean permission = mApps.get(uid);
+                // If multiple packages share a UID (cf: android:sharedUserId) and ask for different
+                // permissions, don't downgrade (i.e., if it's already SYSTEM, leave it as is).
+                if (permission == null || permission == NETWORK) {
+                    mApps.put(uid, isSystem);
+                }
+            }
+        }
+
+        List<UserInfo> users = mUserManager.getUsers(true);  // exclude dying users
+        if (users != null) {
+            for (UserInfo user : users) {
+                mUsers.add(user.id);
+            }
+        }
+
+        log("Users: " + mUsers.size() + ", Apps: " + mApps.size());
+        update(mUsers, mApps, true);
+    }
+
+    private boolean hasPermission(PackageInfo app, String permission) {
+        if (app.requestedPermissions != null) {
+            for (String p : app.requestedPermissions) {
+                if (permission.equals(p)) {
+                    return true;
+                }
+            }
+        }
+        return false;
+    }
+
+    private boolean hasNetworkPermission(PackageInfo app) {
+        return hasPermission(app, CHANGE_NETWORK_STATE);
+    }
+
+    private boolean hasSystemPermission(PackageInfo app) {
+        int flags = app.applicationInfo != null ? app.applicationInfo.flags : 0;
+        if ((flags & FLAG_SYSTEM) != 0 || (flags & FLAG_UPDATED_SYSTEM_APP) != 0) {
+            return true;
+        }
+        return hasPermission(app, CONNECTIVITY_INTERNAL);
+    }
+
+    private int[] toIntArray(List<Integer> list) {
+        int[] array = new int[list.size()];
+        for (int i = 0; i < list.size(); i++) {
+            array[i] = list.get(i);
+        }
+        return array;
+    }
+
+    private void update(Set<Integer> users, Map<Integer, Boolean> apps, boolean add) {
+        List<Integer> network = new ArrayList<Integer>();
+        List<Integer> system = new ArrayList<Integer>();
+        for (Entry<Integer, Boolean> app : apps.entrySet()) {
+            List<Integer> list = app.getValue() ? system : network;
+            for (int user : users) {
+                list.add(UserHandle.getUid(user, app.getKey()));
+            }
+        }
+        try {
+            if (add) {
+                mNetd.setPermission(CHANGE_NETWORK_STATE, toIntArray(network));
+                mNetd.setPermission(CONNECTIVITY_INTERNAL, toIntArray(system));
+            } else {
+                mNetd.clearPermission(toIntArray(network));
+                mNetd.clearPermission(toIntArray(system));
+            }
+        } catch (RemoteException e) {
+            loge("Exception when updating permissions: " + e);
+        }
+    }
+
+    private synchronized void onUserAdded(int user) {
+        if (user < 0) {
+            loge("Invalid user in onUserAdded: " + user);
+            return;
+        }
+        mUsers.add(user);
+
+        Set<Integer> users = new HashSet<Integer>();
+        users.add(user);
+        update(users, mApps, true);
+    }
+
+    private synchronized void onUserRemoved(int user) {
+        if (user < 0) {
+            loge("Invalid user in onUserRemoved: " + user);
+            return;
+        }
+        mUsers.remove(user);
+
+        Set<Integer> users = new HashSet<Integer>();
+        users.add(user);
+        update(users, mApps, false);
+    }
+
+    private synchronized void onAppAdded(String appName, int appUid) {
+        if (TextUtils.isEmpty(appName) || appUid < 0) {
+            loge("Invalid app in onAppAdded: " + appName + " | " + appUid);
+            return;
+        }
+
+        try {
+            PackageInfo app = mPackageManager.getPackageInfo(appName, GET_PERMISSIONS);
+            boolean isNetwork = hasNetworkPermission(app);
+            boolean isSystem = hasSystemPermission(app);
+            if (isNetwork || isSystem) {
+                Boolean permission = mApps.get(appUid);
+                // If multiple packages share a UID (cf: android:sharedUserId) and ask for different
+                // permissions, don't downgrade (i.e., if it's already SYSTEM, leave it as is).
+                if (permission == null || permission == NETWORK) {
+                    mApps.put(appUid, isSystem);
+
+                    Map<Integer, Boolean> apps = new HashMap<Integer, Boolean>();
+                    apps.put(appUid, isSystem);
+                    update(mUsers, apps, true);
+                }
+            }
+        } catch (NameNotFoundException e) {
+            loge("NameNotFoundException in onAppAdded: " + e);
+        }
+    }
+
+    private synchronized void onAppRemoved(int appUid) {
+        if (appUid < 0) {
+            loge("Invalid app in onAppRemoved: " + appUid);
+            return;
+        }
+        mApps.remove(appUid);
+
+        Map<Integer, Boolean> apps = new HashMap<Integer, Boolean>();
+        apps.put(appUid, NETWORK);  // doesn't matter which permission we pick here
+        update(mUsers, apps, false);
+    }
+
+    private static void log(String s) {
+        if (DBG) {
+            Log.d(TAG, s);
+        }
+    }
+
+    private static void loge(String s) {
+        Log.e(TAG, s);
+    }
+}
diff --git a/tools/layoutlib/bridge/src/android/content/res/BridgeTypedArray.java b/tools/layoutlib/bridge/src/android/content/res/BridgeTypedArray.java
index aaba545..4a6a434 100644
--- a/tools/layoutlib/bridge/src/android/content/res/BridgeTypedArray.java
+++ b/tools/layoutlib/bridge/src/android/content/res/BridgeTypedArray.java
@@ -23,7 +23,6 @@
 import com.android.ide.common.rendering.api.StyleResourceValue;
 import com.android.internal.util.XmlUtils;
 import com.android.layoutlib.bridge.Bridge;
-import com.android.layoutlib.bridge.BridgeConstants;
 import com.android.layoutlib.bridge.android.BridgeContext;
 import com.android.layoutlib.bridge.android.BridgeXmlBlockParser;
 import com.android.layoutlib.bridge.impl.ParserFactory;
@@ -142,16 +141,8 @@
      */
     @Override
     public CharSequence getText(int index) {
-        if (index < 0 || index >= mResourceData.length) {
-            return null;
-        }
-
-        if (mResourceData[index] != null) {
-            // FIXME: handle styled strings!
-            return mResourceData[index].getValue();
-        }
-
-        return null;
+        // FIXME: handle styled strings!
+        return getString(index);
     }
 
     /**
@@ -164,15 +155,14 @@
      */
     @Override
     public String getString(int index) {
-        if (index < 0 || index >= mResourceData.length) {
+        if (!hasValue(index)) {
             return null;
         }
-
-        if (mResourceData[index] != null) {
-            return mResourceData[index].getValue();
-        }
-
-        return null;
+        // As unfortunate as it is, it's possible to use enums with all attribute formats,
+        // not just integers/enums. So, we need to search the enums always. In case,
+        // enums are used, the returned value is an integer.
+        Integer v = resolveEnumAttribute(index);
+        return v == null ? mResourceData[index].getValue() : String.valueOf((int) v);
     }
 
     /**
@@ -185,20 +175,9 @@
      */
     @Override
     public boolean getBoolean(int index, boolean defValue) {
-        if (index < 0 || index >= mResourceData.length) {
-            return defValue;
-        }
+        String s = getString(index);
+        return s == null ? defValue : XmlUtils.convertValueToBoolean(s, defValue);
 
-        if (mResourceData[index] == null) {
-            return defValue;
-        }
-
-        String s = mResourceData[index].getValue();
-        if (s != null) {
-            return XmlUtils.convertValueToBoolean(s, defValue);
-        }
-
-        return defValue;
     }
 
     /**
@@ -211,75 +190,18 @@
      */
     @Override
     public int getInt(int index, int defValue) {
-        if (index < 0 || index >= mResourceData.length) {
-            return defValue;
-        }
-
-        if (mResourceData[index] == null) {
-            return defValue;
-        }
-
-        String s = mResourceData[index].getValue();
-
-        if (s == null || s.length() == 0) {
-            return defValue;
-        }
-
+        String s = getString(index);
         try {
-            return XmlUtils.convertValueToInt(s, defValue);
+            if (s != null) {
+                return XmlUtils.convertValueToInt(s, defValue);
+            }
         } catch (NumberFormatException e) {
-            // pass
+            Bridge.getLog().warning(LayoutLog.TAG_RESOURCES_FORMAT,
+                    String.format("\"%s\" in attribute \"%2$s\" is not a valid integer",
+                            s, mNames[index]),
+                    null);
+            return defValue;
         }
-
-        // Field is not null and is not an integer.
-        // Check for possible constants and try to find them.
-        return (int) resolveEnumAttribute(index, defValue);
-    }
-
-    /**
-     * Searches for the string in the attributes (flag or enums) and returns the integer.
-     * If found, it will return an integer matching the value. However, if the value is not found,
-     * it returns {@code defValue} which may be a float.
-     *
-     * @param index Index of attribute to retrieve.
-     * @param defValue Value to return if the attribute is not found.
-     *
-     * @return Attribute int value, or defValue if not defined.
-     */
-    private float resolveEnumAttribute(int index, float defValue) {
-        // Get the map of attribute-constant -> IntegerValue
-        Map<String, Integer> map = null;
-        if (mIsFramework[index]) {
-            map = Bridge.getEnumValues(mNames[index]);
-        } else {
-            // get the styleable matching the resolved name
-            RenderResources res = mContext.getRenderResources();
-            ResourceValue attr = res.getProjectResource(ResourceType.ATTR, mNames[index]);
-            if (attr instanceof AttrResourceValue) {
-                map = ((AttrResourceValue) attr).getAttributeValues();
-            }
-        }
-
-        if (map != null) {
-            // accumulator to store the value of the 1+ constants.
-            int result = 0;
-
-            // split the value in case this is a mix of several flags.
-            String[] keywords = mResourceData[index].getValue().split("\\|");
-            for (String keyword : keywords) {
-                Integer i = map.get(keyword.trim());
-                if (i != null) {
-                    result |= i;
-                } else {
-                    Bridge.getLog().warning(LayoutLog.TAG_RESOURCES_FORMAT,
-                            String.format(
-                                "\"%s\" in attribute \"%2$s\" is not a valid value",
-                                keyword, mNames[index]), null);
-                }
-            }
-            return result;
-        }
-
         return defValue;
     }
 
@@ -292,27 +214,16 @@
      */
     @Override
     public float getFloat(int index, float defValue) {
-        if (index < 0 || index >= mResourceData.length) {
-            return defValue;
-        }
-
-        if (mResourceData[index] == null) {
-            return defValue;
-        }
-
-        String s = mResourceData[index].getValue();
-
-        if (s != null) {
-            try {
-                return Float.parseFloat(s);
-            } catch (NumberFormatException e) {
-                Bridge.getLog().warning(LayoutLog.TAG_RESOURCES_FORMAT,
-                        String.format(
-                            "\"%s\" in attribute \"%2$s\" cannot be converted to float.",
-                            s, mNames[index]), null);
-
-                // we'll return the default value below.
+        String s = getString(index);
+        try {
+            if (s != null) {
+                    return Float.parseFloat(s);
             }
+        } catch (NumberFormatException e) {
+            Bridge.getLog().warning(LayoutLog.TAG_RESOURCES_FORMAT,
+                    String.format("\"%s\" in attribute \"%2$s\" cannot be converted to float.",
+                            s, mNames[index]),
+                    null);
         }
         return defValue;
     }
@@ -359,11 +270,7 @@
      */
     @Override
     public ColorStateList getColorStateList(int index) {
-        if (index < 0 || index >= mResourceData.length) {
-            return null;
-        }
-
-        if (mResourceData[index] == null) {
+        if (!hasValue(index)) {
             return null;
         }
 
@@ -443,27 +350,25 @@
      */
     @Override
     public float getDimension(int index, float defValue) {
-        if (index < 0 || index >= mResourceData.length) {
-            return defValue;
-        }
-
-        if (mResourceData[index] == null) {
-            return defValue;
-        }
-
-        String s = mResourceData[index].getValue();
-
+        String s = getString(index);
         if (s == null) {
             return defValue;
         }
+        // Check if the value is a magic constant that doesn't require a unit.
+        try {
+            int i = Integer.parseInt(s);
+            if (i == LayoutParams.MATCH_PARENT || i == LayoutParams.WRAP_CONTENT) {
+                return i;
+            }
+        } catch (NumberFormatException ignored) {
+            // pass
+        }
 
         if (ResourceHelper.parseFloatAttribute(mNames[index], s, mValue, true)) {
             return mValue.getDimension(mBridgeResources.getDisplayMetrics());
         }
 
-        // looks like we were unable to resolve the dimension value. Check if it is an attribute
-        // constant.
-        return resolveEnumAttribute(index, defValue);
+        return defValue;
     }
 
     /**
@@ -511,16 +416,13 @@
         try {
             return getDimension(index);
         } catch (RuntimeException e) {
-            if (mResourceData[index] != null) {
-                String s = mResourceData[index].getValue();
+            String s = getString(index);
 
-                if (s != null) {
-                    // looks like we were unable to resolve the dimension value
-                    Bridge.getLog().warning(LayoutLog.TAG_RESOURCES_FORMAT,
-                            String.format(
-                                "\"%1$s\" in attribute \"%2$s\" is not a valid format.",
+            if (s != null) {
+                // looks like we were unable to resolve the dimension value
+                Bridge.getLog().warning(LayoutLog.TAG_RESOURCES_FORMAT,
+                        String.format("\"%1$s\" in attribute \"%2$s\" is not a valid format.",
                                 s, mNames[index]), null);
-                }
             }
 
             return defValue;
@@ -563,21 +465,19 @@
     }
 
     private int getDimension(int index) {
-        if (mResourceData[index] == null) {
-            throw new RuntimeException();
-        }
-
-        String s = mResourceData[index].getValue();
-
+        String s = getString(index);
         if (s == null) {
             throw new RuntimeException();
-        } else if (s.equals(BridgeConstants.MATCH_PARENT) ||
-                s.equals(BridgeConstants.FILL_PARENT)) {
-            return LayoutParams.MATCH_PARENT;
-        } else if (s.equals(BridgeConstants.WRAP_CONTENT)) {
-            return LayoutParams.WRAP_CONTENT;
         }
-
+        // Check if the value is a magic constant that doesn't require a unit.
+        try {
+            int i = Integer.parseInt(s);
+            if (i == LayoutParams.MATCH_PARENT || i == LayoutParams.WRAP_CONTENT) {
+                return i;
+            }
+        } catch (NumberFormatException ignored) {
+            // pass
+        }
         if (ResourceHelper.parseFloatAttribute(mNames[index], s, mValue, true)) {
             float f = mValue.getDimension(mBridgeResources.getDisplayMetrics());
 
@@ -607,15 +507,7 @@
      */
     @Override
     public float getFraction(int index, int base, int pbase, float defValue) {
-        if (index < 0 || index >= mResourceData.length) {
-            return defValue;
-        }
-
-        if (mResourceData[index] == null) {
-            return defValue;
-        }
-
-        String value = mResourceData[index].getValue();
+        String value = getString(index);
         if (value == null) {
             return defValue;
         }
@@ -766,20 +658,11 @@
      */
     @Override
     public Drawable getDrawable(int index) {
-        if (index < 0 || index >= mResourceData.length) {
-            return null;
-        }
-
-        if (mResourceData[index] == null) {
+        if (!hasValue(index)) {
             return null;
         }
 
         ResourceValue value = mResourceData[index];
-        String stringValue = value.getValue();
-        if (stringValue == null) {
-            return null;
-        }
-
         return ResourceHelper.getDrawable(value, mContext);
     }
 
@@ -796,15 +679,7 @@
      */
     @Override
     public CharSequence[] getTextArray(int index) {
-        if (index < 0 || index >= mResourceData.length) {
-            return null;
-        }
-
-        if (mResourceData[index] == null) {
-            return null;
-        }
-
-        String value = mResourceData[index].getValue();
+        String value = getString(index);
         if (value != null) {
             return new CharSequence[] { value };
         }
@@ -837,17 +712,8 @@
      */
     @Override
     public boolean getValue(int index, TypedValue outValue) {
-        if (index < 0 || index >= mResourceData.length) {
-            return false;
-        }
-
-        if (mResourceData[index] == null) {
-            return false;
-        }
-
-        String s = mResourceData[index].getValue();
-
-        return ResourceHelper.parseFloatAttribute(mNames[index], s, outValue, false);
+        String s = getString(index);
+        return s != null && ResourceHelper.parseFloatAttribute(mNames[index], s, outValue, false);
     }
 
     /**
@@ -859,12 +725,7 @@
      */
     @Override
     public boolean hasValue(int index) {
-        //noinspection SimplifiableIfStatement
-        if (index < 0 || index >= mResourceData.length) {
-            return false;
-        }
-
-        return mResourceData[index] != null;
+        return index >= 0 && index < mResourceData.length && mResourceData[index] != null;
     }
 
     /**
@@ -912,6 +773,52 @@
         return Arrays.toString(mResourceData);
     }
 
+    /**
+     * Searches for the string in the attributes (flag or enums) and returns the integer.
+     * If found, it will return an integer matching the value.
+     *
+     * @param index Index of attribute to retrieve.
+     *
+     * @return Attribute int value, or null if not defined.
+     */
+    private Integer resolveEnumAttribute(int index) {
+        // Get the map of attribute-constant -> IntegerValue
+        Map<String, Integer> map = null;
+        if (mIsFramework[index]) {
+            map = Bridge.getEnumValues(mNames[index]);
+        } else {
+            // get the styleable matching the resolved name
+            RenderResources res = mContext.getRenderResources();
+            ResourceValue attr = res.getProjectResource(ResourceType.ATTR, mNames[index]);
+            if (attr instanceof AttrResourceValue) {
+                map = ((AttrResourceValue) attr).getAttributeValues();
+            }
+        }
+
+        if (map != null) {
+            // accumulator to store the value of the 1+ constants.
+            int result = 0;
+            boolean found = false;
+
+            // split the value in case this is a mix of several flags.
+            String[] keywords = mResourceData[index].getValue().split("\\|");
+            for (String keyword : keywords) {
+                Integer i = map.get(keyword.trim());
+                if (i != null) {
+                    result |= i;
+                    found = true;
+                }
+                // TODO: We should act smartly and log a warning for incorrect keywords. However,
+                // this method is currently called even if the resourceValue is not an enum.
+            }
+            if (found) {
+                return result;
+            }
+        }
+
+        return null;
+    }
+
     static TypedArray obtain(Resources res, int len) {
         return res instanceof BridgeResources ?
                 new BridgeTypedArray(((BridgeResources) res), null, len, true) : null;
diff --git a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/impl/ResourceHelper.java b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/impl/ResourceHelper.java
index 99ae7c9..22f8e1c 100644
--- a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/impl/ResourceHelper.java
+++ b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/impl/ResourceHelper.java
@@ -16,6 +16,7 @@
 
 package com.android.layoutlib.bridge.impl;
 
+import com.android.annotations.NonNull;
 import com.android.ide.common.rendering.api.DensityBasedResourceValue;
 import com.android.ide.common.rendering.api.LayoutLog;
 import com.android.ide.common.rendering.api.RenderResources;
@@ -358,7 +359,7 @@
      * @param requireUnit whether the value is expected to contain a unit.
      * @return true if success.
      */
-    public static boolean parseFloatAttribute(String attribute, String value,
+    public static boolean parseFloatAttribute(String attribute, @NonNull String value,
             TypedValue outValue, boolean requireUnit) {
         assert !requireUnit || attribute != null;
 
diff --git a/wifi/java/android/net/wifi/WifiConfiguration.java b/wifi/java/android/net/wifi/WifiConfiguration.java
index 4f5f31a..5514798 100644
--- a/wifi/java/android/net/wifi/WifiConfiguration.java
+++ b/wifi/java/android/net/wifi/WifiConfiguration.java
@@ -1222,18 +1222,15 @@
         if (allowCached && mCachedConfigKey != null) {
             key = mCachedConfigKey;
         } else {
-            key = this.SSID;
-            if (key == null)
-                key = "";
-            if (this.wepKeys[0] != null) {
-                key = key + "-WEP";
-            }
-            if (this.allowedKeyManagement.get(KeyMgmt.WPA_PSK)) {
-                key = key + "-" + KeyMgmt.strings[KeyMgmt.WPA_PSK];
-            }
-            if (this.allowedKeyManagement.get(KeyMgmt.WPA_EAP) ||
-                    this.allowedKeyManagement.get(KeyMgmt.IEEE8021X)) {
-                key = key + "-" + KeyMgmt.strings[KeyMgmt.WPA_EAP];
+            if (allowedKeyManagement.get(KeyMgmt.WPA_PSK)) {
+                key = SSID + KeyMgmt.strings[KeyMgmt.WPA_PSK];
+            } else if (allowedKeyManagement.get(KeyMgmt.WPA_EAP) ||
+                    allowedKeyManagement.get(KeyMgmt.IEEE8021X)) {
+                key = SSID + KeyMgmt.strings[KeyMgmt.WPA_EAP];
+            } else if (wepKeys[0] != null) {
+                key = SSID + "WEP";
+            } else {
+                key = SSID + KeyMgmt.strings[KeyMgmt.NONE];
             }
             mCachedConfigKey = key;
         }