Only do slow unlock transition if real home is not running
am: 031f79560f

Change-Id: I61f8a3d7458898ac139189920ec58607a570b813
diff --git a/Android.mk b/Android.mk
index 2c99df7..4ca3e22 100644
--- a/Android.mk
+++ b/Android.mk
@@ -926,6 +926,7 @@
 
 LOCAL_DROIDDOC_OPTIONS:=\
 		$(framework_docs_LOCAL_DROIDDOC_OPTIONS) \
+		-referenceonly \
 		-api $(INTERNAL_PLATFORM_API_FILE) \
 		-removedApi $(INTERNAL_PLATFORM_REMOVED_API_FILE) \
 		-nodocs
@@ -959,6 +960,7 @@
 
 LOCAL_DROIDDOC_OPTIONS:=\
 		$(framework_docs_LOCAL_DROIDDOC_OPTIONS) \
+		-referenceonly \
 		-showAnnotation android.annotation.SystemApi \
 		-api $(INTERNAL_PLATFORM_SYSTEM_API_FILE) \
 		-removedApi $(INTERNAL_PLATFORM_SYSTEM_REMOVED_API_FILE) \
@@ -993,6 +995,7 @@
 
 LOCAL_DROIDDOC_OPTIONS:=\
                $(framework_docs_LOCAL_DROIDDOC_OPTIONS) \
+               -referenceonly \
                -stubs $(TARGET_OUT_COMMON_INTERMEDIATES)/JAVA_LIBRARIES/android_test_stubs_current_intermediates/src \
                -showAnnotation android.annotation.TestApi \
                -api $(INTERNAL_PLATFORM_TEST_API_FILE) \
@@ -1026,6 +1029,7 @@
 
 LOCAL_DROIDDOC_OPTIONS:=\
 		$(framework_docs_LOCAL_DROIDDOC_OPTIONS) \
+		-referenceonly \
 		-parsecomments
 
 LOCAL_DROIDDOC_CUSTOM_TEMPLATE_DIR:=build/tools/droiddoc/templates-sdk
@@ -1064,7 +1068,7 @@
 		-sdkvalues $(OUT_DOCS) \
 		-hdf android.whichdoc offline
 
-LOCAL_DROIDDOC_CUSTOM_TEMPLATE_DIR:=build/tools/droiddoc/templates-sdk-dev
+LOCAL_DROIDDOC_CUSTOM_TEMPLATE_DIR:=build/tools/droiddoc/templates-sdk
 
 include $(BUILD_DROIDDOC)
 
@@ -1101,7 +1105,7 @@
 		-hdf android.whichdoc offline \
 		-referenceonly
 
-LOCAL_DROIDDOC_CUSTOM_TEMPLATE_DIR:=build/tools/droiddoc/templates-sdk-dev
+LOCAL_DROIDDOC_CUSTOM_TEMPLATE_DIR:=build/tools/droiddoc/templates-sdk
 
 include $(BUILD_DROIDDOC)
 
@@ -1139,7 +1143,7 @@
 		-hdf android.hasSamples true \
 		-samplesdir $(samples_dir)
 
-LOCAL_DROIDDOC_CUSTOM_TEMPLATE_DIR:=build/tools/droiddoc/templates-sdk-dev
+LOCAL_DROIDDOC_CUSTOM_TEMPLATE_DIR:=build/tools/droiddoc/templates-sdk
 
 include $(BUILD_DROIDDOC)
 
@@ -1163,6 +1167,7 @@
 
 LOCAL_DROIDDOC_OPTIONS:= \
 		$(framework_docs_LOCAL_DROIDDOC_OPTIONS) \
+		-referenceonly \
 		-showAnnotation android.annotation.SystemApi \
 		-title "Android SDK - Including system APIs." \
 		-toroot / \
@@ -1206,7 +1211,7 @@
 		-hdf android.hasSamples true \
 		-samplesdir $(samples_dir)
 
-LOCAL_DROIDDOC_CUSTOM_TEMPLATE_DIR:=build/tools/droiddoc/templates-sdk-dev
+LOCAL_DROIDDOC_CUSTOM_TEMPLATE_DIR:=build/tools/droiddoc/templates-sdk
 
 include $(BUILD_DROIDDOC)
 
@@ -1234,7 +1239,7 @@
 		-devsite \
 		-ignoreJdLinks
 
-LOCAL_DROIDDOC_CUSTOM_TEMPLATE_DIR:=build/tools/droiddoc/templates-sdk-dev
+LOCAL_DROIDDOC_CUSTOM_TEMPLATE_DIR:=build/tools/droiddoc/templates-sdk
 
 include $(BUILD_DROIDDOC)
 
@@ -1259,11 +1264,10 @@
 		-toroot / \
 		-hdf android.whichdoc online \
 		$(sample_groups) \
-		-useUpdatedTemplates \
 		-hdf android.hasSamples true \
 		-samplesdir $(samples_dir)
 
-LOCAL_DROIDDOC_CUSTOM_TEMPLATE_DIR:=build/tools/droiddoc/templates-sdk-dev
+LOCAL_DROIDDOC_CUSTOM_TEMPLATE_DIR:=build/tools/droiddoc/templates-sdk
 
 include $(BUILD_DROIDDOC)
 
@@ -1282,6 +1286,7 @@
 LOCAL_MODULE := hidden
 LOCAL_DROIDDOC_OPTIONS:=\
 		$(framework_docs_LOCAL_DROIDDOC_OPTIONS) \
+		-referenceonly \
 		-title "Android SDK - Including hidden APIs."
 #		-hidden
 
diff --git a/core/java/android/app/ITransientNotification.aidl b/core/java/android/app/ITransientNotification.aidl
index 35b53a4..d5b3ed0 100644
--- a/core/java/android/app/ITransientNotification.aidl
+++ b/core/java/android/app/ITransientNotification.aidl
@@ -19,7 +19,7 @@
 
 /** @hide */
 oneway interface ITransientNotification {
-    void show();
+    void show(IBinder windowToken);
     void hide();
 }
 
diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java
index 79f1151..829ce2e 100755
--- a/core/java/android/provider/Settings.java
+++ b/core/java/android/provider/Settings.java
@@ -5345,6 +5345,13 @@
         public static final String LONG_PRESS_TIMEOUT = "long_press_timeout";
 
         /**
+         * The duration in milliseconds between the first tap's up event and the second tap's
+         * down event for an interaction to be considered part of the same multi-press.
+         * @hide
+         */
+        public static final String MULTI_PRESS_TIMEOUT = "multi_press_timeout";
+
+        /**
          * List of the enabled print services.
          *
          * N and beyond uses {@link #DISABLED_PRINT_SERVICES}. But this might be used in an upgrade
@@ -6333,6 +6340,21 @@
         public static final String WEB_ACTION_ENABLED = "web_action_enabled";
 
         /**
+         * The uptime when tasks were last persisted.  This is used to adjust the previous task
+         * active times to be relative to the current boot time.
+         * @hide
+         */
+        public static final String TASK_PERSISTER_LAST_WRITE_UPTIME = "task_persister_write_uptime";
+
+        /**
+         * Used by Overview to keep track of the last visible task's active time to determine what
+         * should tasks be visible.
+         * @hide
+         */
+        public static final String OVERVIEW_LAST_VISIBLE_TASK_ACTIVE_UPTIME =
+                "overview_last_visible_task_active_uptime";
+
+        /**
          * This are the settings to be backed up.
          *
          * NOTE: Settings are backed up and restored in the order they appear
diff --git a/core/java/android/view/SurfaceView.java b/core/java/android/view/SurfaceView.java
index e0ac7ed..77bcf5f 100644
--- a/core/java/android/view/SurfaceView.java
+++ b/core/java/android/view/SurfaceView.java
@@ -227,6 +227,7 @@
         mSession = getWindowSession();
         mLayout.token = getWindowToken();
         mLayout.setTitle("SurfaceView - " + getViewRootImpl().getTitle());
+        mLayout.packageName = mContext.getOpPackageName();
         mViewVisibility = getVisibility() == VISIBLE;
 
         if (!mGlobalListenersAdded) {
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java
index 908658f..770b619 100644
--- a/core/java/android/view/View.java
+++ b/core/java/android/view/View.java
@@ -23875,7 +23875,7 @@
      * on the screen.
      */
     private boolean shouldDrawRoundScrollbar() {
-        if (!mResources.getConfiguration().isScreenRound()) {
+        if (!mResources.getConfiguration().isScreenRound() || mAttachInfo == null) {
             return false;
         }
 
diff --git a/core/java/android/view/ViewConfiguration.java b/core/java/android/view/ViewConfiguration.java
index 4d584a3..8b8525f 100644
--- a/core/java/android/view/ViewConfiguration.java
+++ b/core/java/android/view/ViewConfiguration.java
@@ -16,6 +16,7 @@
 
 package android.view;
 
+import android.annotation.SystemApi;
 import android.app.AppGlobals;
 import android.content.Context;
 import android.content.res.Configuration;
@@ -64,6 +65,12 @@
     private static final int DEFAULT_LONG_PRESS_TIMEOUT = 500;
 
     /**
+     * Defines the default duration in milliseconds between the first tap's up event and the second
+     * tap's down event for an interaction to be considered part of the same multi-press.
+     */
+    private static final int DEFAULT_MULTI_PRESS_TIMEOUT = 300;
+
+    /**
      * Defines the time between successive key repeats in milliseconds.
      */
     private static final int KEY_REPEAT_DELAY = 50;
@@ -213,6 +220,12 @@
     private static final int OVERFLING_DISTANCE = 6;
 
     /**
+     * Amount to scroll in response to a {@link MotionEvent#ACTION_SCROLL} event, in dips per
+     * axis value.
+     */
+    private static final int SCROLL_FACTOR = 64;
+
+    /**
      * Default duration to hide an action mode for.
      */
     private static final long ACTION_MODE_HIDE_DURATION_DEFAULT = 2000;
@@ -240,6 +253,7 @@
     private final int mOverflingDistance;
     private final boolean mFadingMarqueeEnabled;
     private final long mGlobalActionsKeyTimeout;
+    private final int mScrollFactor;
 
     private boolean sHasPermanentMenuKey;
     private boolean sHasPermanentMenuKeySet;
@@ -268,6 +282,7 @@
         mOverflingDistance = OVERFLING_DISTANCE;
         mFadingMarqueeEnabled = true;
         mGlobalActionsKeyTimeout = GLOBAL_ACTIONS_KEY_TIMEOUT;
+        mScrollFactor = SCROLL_FACTOR;
     }
 
     /**
@@ -351,6 +366,8 @@
                 com.android.internal.R.dimen.config_viewMaxFlingVelocity);
         mGlobalActionsKeyTimeout = res.getInteger(
                 com.android.internal.R.integer.config_globalActionsKeyTimeout);
+        mScrollFactor = res.getDimensionPixelSize(
+                com.android.internal.R.dimen.config_scrollFactor);
     }
 
     /**
@@ -441,6 +458,16 @@
     }
 
     /**
+     * @return the duration in milliseconds between the first tap's up event and the second tap's
+     * down event for an interaction to be considered part of the same multi-press.
+     * @hide
+     */
+    public static int getMultiPressTimeout() {
+        return AppGlobals.getIntCoreSetting(Settings.Secure.MULTI_PRESS_TIMEOUT,
+                DEFAULT_MULTI_PRESS_TIMEOUT);
+    }
+
+    /**
      * @return the time before the first key repeat in milliseconds.
      */
     public static int getKeyRepeatTimeout() {
@@ -653,6 +680,16 @@
     }
 
     /**
+     * @return Amount to scroll in response to a {@link MotionEvent#ACTION_SCROLL} event. Multiply
+     * this by the event's axis value to obtain the number of pixels to be scrolled.
+     * @hide
+     * @SystemApi
+     */
+    public int getScaledScrollFactor() {
+        return mScrollFactor;
+    }
+
+    /**
      * The maximum drawing cache size expressed in bytes.
      *
      * @return the maximum size of View's drawing cache expressed in bytes
diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java
index 1bb4c08..2d431cf 100644
--- a/core/java/android/view/ViewRootImpl.java
+++ b/core/java/android/view/ViewRootImpl.java
@@ -6043,7 +6043,8 @@
                 return true;
             }
             return mEvent instanceof MotionEvent
-                    && mEvent.isFromSource(InputDevice.SOURCE_CLASS_POINTER);
+                    && (mEvent.isFromSource(InputDevice.SOURCE_CLASS_POINTER)
+                        || mEvent.isFromSource(InputDevice.SOURCE_ROTARY_ENCODER));
         }
 
         public boolean shouldSendToSynthesizer() {
diff --git a/core/java/android/view/WindowManager.java b/core/java/android/view/WindowManager.java
index 0dbf00d..395f738 100644
--- a/core/java/android/view/WindowManager.java
+++ b/core/java/android/view/WindowManager.java
@@ -1752,14 +1752,18 @@
         public CharSequence accessibilityTitle;
 
         /**
-         * Sets a timeout in milliseconds before which the window will be removed
+         * Sets a timeout in milliseconds before which the window will be hidden
          * by the window manager. Useful for transient notifications like toasts
          * so we don't have to rely on client cooperation to ensure the window
-         * is removed. Must be specified at window creation time.
+         * is hidden. Must be specified at window creation time. Note that apps
+         * are not prepared to handle their windows being removed without their
+         * explicit request and may try to interact with the removed window
+         * resulting in undefined behavior and crashes. Therefore, we do hide
+         * such windows to prevent them from overlaying other apps.
          *
          * @hide
          */
-        public long removeTimeoutMilliseconds = -1;
+        public long hideTimeoutMilliseconds = -1;
 
         public LayoutParams() {
             super(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
@@ -1895,7 +1899,7 @@
             out.writeInt(needsMenuKey);
             out.writeInt(accessibilityIdOfAnchor);
             TextUtils.writeToParcel(accessibilityTitle, out, parcelableFlags);
-            out.writeLong(removeTimeoutMilliseconds);
+            out.writeLong(hideTimeoutMilliseconds);
         }
 
         public static final Parcelable.Creator<LayoutParams> CREATOR
@@ -1949,7 +1953,7 @@
             needsMenuKey = in.readInt();
             accessibilityIdOfAnchor = in.readInt();
             accessibilityTitle = TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(in);
-            removeTimeoutMilliseconds = in.readLong();
+            hideTimeoutMilliseconds = in.readLong();
         }
 
         @SuppressWarnings({"PointlessBitwiseExpression"})
@@ -2171,7 +2175,7 @@
             }
 
             // This can't change, it's only set at window creation time.
-            removeTimeoutMilliseconds = o.removeTimeoutMilliseconds;
+            hideTimeoutMilliseconds = o.hideTimeoutMilliseconds;
 
             return changes;
         }
diff --git a/core/java/android/view/inputmethod/InputConnection.java b/core/java/android/view/inputmethod/InputConnection.java
index 07910b6..8023201 100644
--- a/core/java/android/view/inputmethod/InputConnection.java
+++ b/core/java/android/view/inputmethod/InputConnection.java
@@ -43,12 +43,14 @@
  *     in {@link android.os.Build.VERSION_CODES#HONEYCOMB}.</li>
  *     <li>{@link #requestCursorUpdates(int)}, which was introduced in
  *     {@link android.os.Build.VERSION_CODES#LOLLIPOP}.</li>
- *     <li>{@link #deleteSurroundingTextInCodePoints(int, int)}}, which
+ *     <li>{@link #deleteSurroundingTextInCodePoints(int, int)}, which
  *     was introduced in {@link android.os.Build.VERSION_CODES#N}.</li>
- *     <li>{@link #getHandler()}}, which was introduced in
+ *     <li>{@link #getHandler()}, which was introduced in
  *     {@link android.os.Build.VERSION_CODES#N}.</li>
- *     <li>{@link #closeConnection()}}, which was introduced in
+ *     <li>{@link #closeConnection()}, which was introduced in
  *     {@link android.os.Build.VERSION_CODES#N}.</li>
+ *     <li>{@link #commitContent(InputContentInfo, int, Bundle)}, which was
+ *     introduced in {@link android.os.Build.VERSION_CODES#N_MR1}.</li>
  * </ul>
  *
  * <h3>Implementing an IME or an editor</h3>
diff --git a/core/java/android/widget/AbsListView.java b/core/java/android/widget/AbsListView.java
index 7b45d8c..f1bfade 100644
--- a/core/java/android/widget/AbsListView.java
+++ b/core/java/android/widget/AbsListView.java
@@ -21,6 +21,7 @@
 import android.annotation.NonNull;
 import android.content.Context;
 import android.content.Intent;
+import android.content.res.Configuration;
 import android.content.res.TypedArray;
 import android.graphics.Canvas;
 import android.graphics.Rect;
@@ -616,6 +617,8 @@
     private int mTouchSlop;
     private float mDensityScale;
 
+    private float mScrollFactor;
+
     private InputConnection mDefInputConnection;
     private InputConnectionWrapper mPublicInputConnection;
 
@@ -857,6 +860,10 @@
                 R.styleable.AbsListView_fastScrollAlwaysVisible, false));
 
         a.recycle();
+
+        if (context.getResources().getConfiguration().uiMode == Configuration.UI_MODE_TYPE_WATCH) {
+            setRevealOnFocusHint(false);
+        }
     }
 
     private void initAbsListView() {
@@ -869,6 +876,7 @@
 
         final ViewConfiguration configuration = ViewConfiguration.get(mContext);
         mTouchSlop = configuration.getScaledTouchSlop();
+        mScrollFactor = configuration.getScaledScrollFactor();
         mMinimumVelocity = configuration.getScaledMinimumFlingVelocity();
         mMaximumVelocity = configuration.getScaledMaximumFlingVelocity();
         mOverscrollDistance = configuration.getScaledOverscrollDistance();
@@ -4201,21 +4209,26 @@
 
     @Override
     public boolean onGenericMotionEvent(MotionEvent event) {
-        if ((event.getSource() & InputDevice.SOURCE_CLASS_POINTER) != 0) {
-            switch (event.getAction()) {
-                case MotionEvent.ACTION_SCROLL:
-                    if (mTouchMode == TOUCH_MODE_REST) {
-                        final float vscroll = event.getAxisValue(MotionEvent.AXIS_VSCROLL);
-                        if (vscroll != 0) {
-                            final int delta = (int) (vscroll * getVerticalScrollFactor());
-                            if (!trackMotionScroll(delta, delta)) {
-                                return true;
-                            }
-                        }
-                    }
-                    break;
+        switch (event.getAction()) {
+            case MotionEvent.ACTION_SCROLL:
+                final float axisValue;
+                if (event.isFromSource(InputDevice.SOURCE_CLASS_POINTER)) {
+                    axisValue = event.getAxisValue(MotionEvent.AXIS_VSCROLL);
+                } else if (event.isFromSource(InputDevice.SOURCE_ROTARY_ENCODER)) {
+                    axisValue = event.getAxisValue(MotionEvent.AXIS_SCROLL);
+                } else {
+                    axisValue = 0;
+                }
 
-                case MotionEvent.ACTION_BUTTON_PRESS:
+                final int delta = Math.round(axisValue * mScrollFactor);
+                if (delta != 0) {
+                    if (!trackMotionScroll(delta, delta)) {
+                        return true;
+                    }
+                }
+                break;
+            case MotionEvent.ACTION_BUTTON_PRESS:
+                if (event.isFromSource(InputDevice.SOURCE_CLASS_POINTER)) {
                     int actionButton = event.getActionButton();
                     if ((actionButton == MotionEvent.BUTTON_STYLUS_PRIMARY
                             || actionButton == MotionEvent.BUTTON_SECONDARY)
@@ -4225,8 +4238,8 @@
                             removeCallbacks(mPendingCheckForTap);
                         }
                     }
-                    break;
-            }
+                }
+                break;
         }
 
         return super.onGenericMotionEvent(event);
diff --git a/core/java/android/widget/HorizontalScrollView.java b/core/java/android/widget/HorizontalScrollView.java
index 00f368e..918b6c0 100644
--- a/core/java/android/widget/HorizontalScrollView.java
+++ b/core/java/android/widget/HorizontalScrollView.java
@@ -18,6 +18,7 @@
 
 import android.annotation.NonNull;
 import android.content.Context;
+import android.content.res.Configuration;
 import android.content.res.TypedArray;
 import android.graphics.Canvas;
 import android.graphics.Rect;
@@ -128,6 +129,8 @@
     private int mOverscrollDistance;
     private int mOverflingDistance;
 
+    private float mScrollFactor;
+
     /**
      * ID of the active pointer. This is used to retain consistency during
      * drags/flings if multiple pointers are used.
@@ -165,6 +168,10 @@
         setFillViewport(a.getBoolean(android.R.styleable.HorizontalScrollView_fillViewport, false));
 
         a.recycle();
+
+        if (context.getResources().getConfiguration().uiMode == Configuration.UI_MODE_TYPE_WATCH) {
+            setRevealOnFocusHint(false);
+        }
     }
 
     @Override
@@ -217,6 +224,7 @@
         mMaximumVelocity = configuration.getScaledMaximumFlingVelocity();
         mOverscrollDistance = configuration.getScaledOverscrollDistance();
         mOverflingDistance = configuration.getScaledOverflingDistance();
+        mScrollFactor = configuration.getScaledScrollFactor();
     }
 
     @Override
@@ -719,30 +727,35 @@
 
     @Override
     public boolean onGenericMotionEvent(MotionEvent event) {
-        if ((event.getSource() & InputDevice.SOURCE_CLASS_POINTER) != 0) {
-            switch (event.getAction()) {
-                case MotionEvent.ACTION_SCROLL: {
-                    if (!mIsBeingDragged) {
-                        final float hscroll;
+        switch (event.getAction()) {
+            case MotionEvent.ACTION_SCROLL: {
+                if (!mIsBeingDragged) {
+                    final float axisValue;
+                    if (event.isFromSource(InputDevice.SOURCE_CLASS_POINTER)) {
                         if ((event.getMetaState() & KeyEvent.META_SHIFT_ON) != 0) {
-                            hscroll = -event.getAxisValue(MotionEvent.AXIS_VSCROLL);
+                            axisValue = -event.getAxisValue(MotionEvent.AXIS_VSCROLL);
                         } else {
-                            hscroll = event.getAxisValue(MotionEvent.AXIS_HSCROLL);
+                            axisValue = event.getAxisValue(MotionEvent.AXIS_HSCROLL);
                         }
-                        if (hscroll != 0) {
-                            final int delta = (int) (hscroll * getHorizontalScrollFactor());
-                            final int range = getScrollRange();
-                            int oldScrollX = mScrollX;
-                            int newScrollX = oldScrollX + delta;
-                            if (newScrollX < 0) {
-                                newScrollX = 0;
-                            } else if (newScrollX > range) {
-                                newScrollX = range;
-                            }
-                            if (newScrollX != oldScrollX) {
-                                super.scrollTo(newScrollX, mScrollY);
-                                return true;
-                            }
+                    } else if (event.isFromSource(InputDevice.SOURCE_ROTARY_ENCODER)) {
+                        axisValue = event.getAxisValue(MotionEvent.AXIS_SCROLL);
+                    } else {
+                        axisValue = 0;
+                    }
+
+                    final int delta = Math.round(axisValue * mScrollFactor);
+                    if (delta != 0) {
+                        final int range = getScrollRange();
+                        int oldScrollX = mScrollX;
+                        int newScrollX = oldScrollX + delta;
+                        if (newScrollX < 0) {
+                            newScrollX = 0;
+                        } else if (newScrollX > range) {
+                            newScrollX = range;
+                        }
+                        if (newScrollX != oldScrollX) {
+                            super.scrollTo(newScrollX, mScrollY);
+                            return true;
                         }
                     }
                 }
@@ -1430,11 +1443,13 @@
 
     @Override
     public void requestChildFocus(View child, View focused) {
-        if (!mIsLayoutDirty) {
-            scrollToChild(focused);
-        } else {
-            // The child may not be laid out yet, we can't compute the scroll yet
-            mChildToScrollTo = focused;
+        if (focused.getRevealOnFocusHint()) {
+            if (!mIsLayoutDirty) {
+                scrollToChild(focused);
+            } else {
+                // The child may not be laid out yet, we can't compute the scroll yet
+                mChildToScrollTo = focused;
+            }
         }
         super.requestChildFocus(child, focused);
     }
diff --git a/core/java/android/widget/ScrollView.java b/core/java/android/widget/ScrollView.java
index 0555cd4..e696ff7 100644
--- a/core/java/android/widget/ScrollView.java
+++ b/core/java/android/widget/ScrollView.java
@@ -17,6 +17,7 @@
 package android.widget;
 
 import android.annotation.NonNull;
+import android.content.res.Configuration;
 import android.os.Build;
 import android.os.Build.VERSION_CODES;
 import android.os.Parcel;
@@ -134,6 +135,8 @@
     private int mOverscrollDistance;
     private int mOverflingDistance;
 
+    private int mScrollFactor;
+
     /**
      * ID of the active pointer. This is used to retain consistency during
      * drags/flings if multiple pointers are used.
@@ -186,6 +189,10 @@
         setFillViewport(a.getBoolean(R.styleable.ScrollView_fillViewport, false));
 
         a.recycle();
+
+        if (context.getResources().getConfiguration().uiMode == Configuration.UI_MODE_TYPE_WATCH) {
+            setRevealOnFocusHint(false);
+        }
     }
 
     @Override
@@ -243,6 +250,7 @@
         mMaximumVelocity = configuration.getScaledMaximumFlingVelocity();
         mOverscrollDistance = configuration.getScaledOverscrollDistance();
         mOverflingDistance = configuration.getScaledOverflingDistance();
+        mScrollFactor = configuration.getScaledScrollFactor();
     }
 
     @Override
@@ -777,30 +785,35 @@
 
     @Override
     public boolean onGenericMotionEvent(MotionEvent event) {
-        if ((event.getSource() & InputDevice.SOURCE_CLASS_POINTER) != 0) {
-            switch (event.getAction()) {
-                case MotionEvent.ACTION_SCROLL: {
-                    if (!mIsBeingDragged) {
-                        final float vscroll = event.getAxisValue(MotionEvent.AXIS_VSCROLL);
-                        if (vscroll != 0) {
-                            final int delta = (int) (vscroll * getVerticalScrollFactor());
-                            final int range = getScrollRange();
-                            int oldScrollY = mScrollY;
-                            int newScrollY = oldScrollY - delta;
-                            if (newScrollY < 0) {
-                                newScrollY = 0;
-                            } else if (newScrollY > range) {
-                                newScrollY = range;
-                            }
-                            if (newScrollY != oldScrollY) {
-                                super.scrollTo(mScrollX, newScrollY);
-                                return true;
-                            }
-                        }
+        switch (event.getAction()) {
+            case MotionEvent.ACTION_SCROLL:
+                final float axisValue;
+                if (event.isFromSource(InputDevice.SOURCE_CLASS_POINTER)) {
+                    axisValue = event.getAxisValue(MotionEvent.AXIS_VSCROLL);
+                } else if (event.isFromSource(InputDevice.SOURCE_ROTARY_ENCODER)) {
+                    axisValue = event.getAxisValue(MotionEvent.AXIS_SCROLL);
+                } else {
+                    axisValue = 0;
+                }
+
+                final int delta = Math.round(axisValue * mScrollFactor);
+                if (delta != 0) {
+                    final int range = getScrollRange();
+                    int oldScrollY = mScrollY;
+                    int newScrollY = oldScrollY - delta;
+                    if (newScrollY < 0) {
+                        newScrollY = 0;
+                    } else if (newScrollY > range) {
+                        newScrollY = range;
+                    }
+                    if (newScrollY != oldScrollY) {
+                        super.scrollTo(mScrollX, newScrollY);
+                        return true;
                     }
                 }
-            }
+                break;
         }
+
         return super.onGenericMotionEvent(event);
     }
 
@@ -1455,11 +1468,13 @@
 
     @Override
     public void requestChildFocus(View child, View focused) {
-        if (!mIsLayoutDirty) {
-            scrollToChild(focused);
-        } else {
-            // The child may not be laid out yet, we can't compute the scroll yet
-            mChildToScrollTo = focused;
+        if (focused.getRevealOnFocusHint()) {
+            if (!mIsLayoutDirty) {
+                scrollToChild(focused);
+            } else {
+                // The child may not be laid out yet, we can't compute the scroll yet
+                mChildToScrollTo = focused;
+            }
         }
         super.requestChildFocus(child, focused);
     }
diff --git a/core/java/android/widget/Toast.java b/core/java/android/widget/Toast.java
index 7762675..eca10cb 100644
--- a/core/java/android/widget/Toast.java
+++ b/core/java/android/widget/Toast.java
@@ -25,6 +25,8 @@
 import android.content.res.Resources;
 import android.graphics.PixelFormat;
 import android.os.Handler;
+import android.os.IBinder;
+import android.os.Message;
 import android.os.RemoteException;
 import android.os.ServiceManager;
 import android.util.Log;
@@ -326,13 +328,6 @@
     }
 
     private static class TN extends ITransientNotification.Stub {
-        final Runnable mShow = new Runnable() {
-            @Override
-            public void run() {
-                handleShow();
-            }
-        };
-
         final Runnable mHide = new Runnable() {
             @Override
             public void run() {
@@ -343,7 +338,13 @@
         };
 
         private final WindowManager.LayoutParams mParams = new WindowManager.LayoutParams();
-        final Handler mHandler = new Handler();
+        final Handler mHandler = new Handler() {
+            @Override
+            public void handleMessage(Message msg) {
+                IBinder token = (IBinder) msg.obj;
+                handleShow(token);
+            }
+        };
 
         int mGravity;
         int mX, mY;
@@ -379,9 +380,9 @@
          * schedule handleShow into the right thread
          */
         @Override
-        public void show() {
+        public void show(IBinder windowToken) {
             if (localLOGV) Log.v(TAG, "SHOW: " + this);
-            mHandler.post(mShow);
+            mHandler.obtainMessage(0, windowToken).sendToTarget();
         }
 
         /**
@@ -393,7 +394,7 @@
             mHandler.post(mHide);
         }
 
-        public void handleShow() {
+        public void handleShow(IBinder windowToken) {
             if (localLOGV) Log.v(TAG, "HANDLE SHOW: " + this + " mView=" + mView
                     + " mNextView=" + mNextView);
             if (mView != mNextView) {
@@ -422,8 +423,9 @@
                 mParams.verticalMargin = mVerticalMargin;
                 mParams.horizontalMargin = mHorizontalMargin;
                 mParams.packageName = packageName;
-                mParams.removeTimeoutMilliseconds = mDuration ==
+                mParams.hideTimeoutMilliseconds = mDuration ==
                     Toast.LENGTH_LONG ? LONG_DURATION_TIMEOUT : SHORT_DURATION_TIMEOUT;
+                mParams.token = windowToken;
                 if (mView.getParent() != null) {
                     if (localLOGV) Log.v(TAG, "REMOVE! " + mView + " in " + this);
                     mWM.removeView(mView);
diff --git a/core/java/com/android/internal/app/AlertController.java b/core/java/com/android/internal/app/AlertController.java
index 5aeb7f9..95c291a 100644
--- a/core/java/com/android/internal/app/AlertController.java
+++ b/core/java/com/android/internal/app/AlertController.java
@@ -888,7 +888,8 @@
             final int checkedItem = mCheckedItem;
             if (checkedItem > -1) {
                 listView.setItemChecked(checkedItem, true);
-                listView.setSelection(checkedItem);
+                listView.setSelectionFromTop(checkedItem,
+                        a.getDimensionPixelSize(R.styleable.AlertDialog_selectionScrollOffset, 0));
             }
         }
     }
diff --git a/core/java/com/android/internal/widget/WatchHeaderListView.java b/core/java/com/android/internal/widget/WatchHeaderListView.java
index 3d32d86..4fd19c3 100644
--- a/core/java/com/android/internal/widget/WatchHeaderListView.java
+++ b/core/java/com/android/internal/widget/WatchHeaderListView.java
@@ -103,7 +103,8 @@
 
     @Override
     public int getHeaderViewsCount() {
-        return mTopPanel == null ? super.getHeaderViewsCount() : super.getHeaderViewsCount() + 1;
+        return mTopPanel == null ? super.getHeaderViewsCount()
+                : super.getHeaderViewsCount() + (mTopPanel.getVisibility() == GONE ? 0 : 1);
     }
 
     private void wrapAdapterIfNecessary() {
@@ -133,7 +134,7 @@
         }
 
         private int getTopPanelCount() {
-            return mTopPanel == null ? 0 : 1;
+            return (mTopPanel == null || mTopPanel.getVisibility() == GONE) ? 0 : 1;
         }
 
         @Override
@@ -143,33 +144,19 @@
 
         @Override
         public boolean areAllItemsEnabled() {
-            return mTopPanel == null && super.areAllItemsEnabled();
+            return getTopPanelCount() == 0 && super.areAllItemsEnabled();
         }
 
         @Override
         public boolean isEnabled(int position) {
-            if (mTopPanel != null) {
-                if (position == 0) {
-                    return false;
-                } else {
-                    return super.isEnabled(position - 1);
-                }
-            }
-
-            return super.isEnabled(position);
+            int topPanelCount = getTopPanelCount();
+            return position < topPanelCount ? false : super.isEnabled(position - topPanelCount);
         }
 
         @Override
         public Object getItem(int position) {
-            if (mTopPanel != null) {
-                if (position == 0) {
-                    return null;
-                } else {
-                    return super.getItem(position - 1);
-                }
-            }
-
-            return super.getItem(position);
+            int topPanelCount = getTopPanelCount();
+            return position < topPanelCount ? null : super.getItem(position - topPanelCount);
         }
 
         @Override
@@ -187,15 +174,9 @@
 
         @Override
         public View getView(int position, View convertView, ViewGroup parent) {
-            if (mTopPanel != null) {
-                if (position == 0) {
-                    return mTopPanel;
-                } else {
-                    return super.getView(position - 1, convertView, parent);
-                }
-            }
-
-            return super.getView(position, convertView, parent);
+            int topPanelCount = getTopPanelCount();
+            return position < topPanelCount
+                    ? mTopPanel : super.getView(position - topPanelCount, convertView, parent);
         }
 
         @Override
diff --git a/core/res/assets/images/android-logo-mask.png b/core/res/assets/images/android-logo-mask.png
index ad40645..5512c0ad 100644
--- a/core/res/assets/images/android-logo-mask.png
+++ b/core/res/assets/images/android-logo-mask.png
Binary files differ
diff --git a/core/res/assets/images/android-logo-shine.png b/core/res/assets/images/android-logo-shine.png
index cb65f22..c5d1263 100644
--- a/core/res/assets/images/android-logo-shine.png
+++ b/core/res/assets/images/android-logo-shine.png
Binary files differ
diff --git a/core/res/assets/images/clock64.png b/core/res/assets/images/clock64.png
index 493a1ea..2e01e38 100644
--- a/core/res/assets/images/clock64.png
+++ b/core/res/assets/images/clock64.png
Binary files differ
diff --git a/core/res/assets/sounds/bootanim0.raw b/core/res/assets/sounds/bootanim0.raw
deleted file mode 100644
index 46b8c0f..0000000
--- a/core/res/assets/sounds/bootanim0.raw
+++ /dev/null
Binary files differ
diff --git a/core/res/assets/sounds/bootanim1.raw b/core/res/assets/sounds/bootanim1.raw
deleted file mode 100644
index ce69944..0000000
--- a/core/res/assets/sounds/bootanim1.raw
+++ /dev/null
Binary files differ
diff --git a/core/res/assets/webkit/hyph_en_US.dic b/core/res/assets/webkit/hyph_en_US.dic
deleted file mode 100644
index d91204b..0000000
--- a/core/res/assets/webkit/hyph_en_US.dic
+++ /dev/null
@@ -1,9784 +0,0 @@
-ISO8859-1
-LEFTHYPHENMIN 2
-RIGHTHYPHENMIN 3
-.a2ch4
-.ad4der
-.a2d
-.ad1d4
-.a2f1t
-.a2f
-.a4l3t
-.am5at
-.4a1ma
-.an5c
-.a2n
-.2ang4
-.an1i5m
-.an1t4
-.an3te
-.anti5s
-.ant2i
-.a4r5s2
-.2a2r
-.ar4t2ie4
-.ar1ti
-.ar4ty
-.as3c
-.as1p
-.a2s1s
-.aster5
-.a2tom5
-.a1to
-.au1d
-.av4i
-.awn4
-.ba4g
-.ba5na
-.ba2n
-.bas4e
-.ber4
-.be5r1a
-.be3s1m
-.4bes4
-.b4e5s2to
-.bri2
-.but4ti
-.bu4t3t2
-.cam4pe
-.1ca
-.ca4m1p
-.can5c
-.ca2n
-.capa5b
-.ca1pa
-.car5ol
-.c2a2r
-.ca4t
-.ce4la
-.2ch4
-.chill5i
-.ch4il2
-.chil1l
-.1ci2
-.cit5r
-.2c1it
-.co3e2
-.1co
-.co4r
-.cor5n1er
-.corn2e
-.de4moi2
-.d4em
-.de1mo
-.de3o
-.de3r1a
-.de3r1i
-.de1s4c
-.des2
-.dic1t2io5
-.3di2c1t
-.do4t
-.1do
-.du4c
-.1du
-.du4m1b5
-.earth5
-.ear2t
-.e2a2r
-.eas3i
-.2e1b4
-.eer4
-.eg2
-.e2l5d
-.el3em
-.enam3
-.e1na
-.en3g
-.e2n3s2
-.eq5ui5t
-.e1q
-.equ2
-.eq2ui2
-.er4ri
-.er1r4
-.es3
-.4eu3
-.eye5
-.fes3
-.for5mer
-.1fo
-.fo2r
-.for1m
-.for2me
-.1ga2
-.ge2
-.gen3t4
-.1gen
-.ge5o2g
-.1geo
-.1g2i5a
-.gi4b
-.go4r
-.1go
-.hand5i
-.ha2n
-.h4and
-.ha4n5k2
-.he2
-.hero5i2
-.h2ero
-.h1es3
-.he4t3
-.hi3b
-.hi3er
-.h2ie4
-.hon5ey
-.ho2n
-.hon3o
-.hov5
-.id4l
-.2id
-.idol3
-.i1do
-.im3m
-.im5p1i2n
-.i4m1p
-.im2pi
-.in1
-.in3ci
-.2ine2
-.4i4n2k2
-.2i2n3s2
-.ir5r4
-.4ir
-.is4i
-.ju3r
-.la4cy
-.la4m
-.lat5er
-.l4ath5
-.le2
-.leg5e
-.len4
-.lep5
-.lev1
-.l2i4g
-.li1g5a
-.li2n
-.l2i3o
-.l1i4t
-.ma1g5a5
-.1ma
-.mal5o
-.ma1n5a
-.ma2n
-.mar5ti
-.m2a2r
-.me2
-.mer3c
-.me5ter
-.me1te
-.m2is1
-.mis4t5i
-.mon3e
-.1mo
-.mo2n
-.mo3ro
-.mo2r
-.mu5ta
-.1mu
-.mu2ta5b
-.ni4c
-.od2
-.od1d5
-.of5te
-.o2ft
-.or5a1to
-.o1ra
-.or3c
-.or1d
-.or3t
-.os3
-.os4tl
-.4oth3
-.out3
-.ou2
-.ped5al
-.2p2ed
-.p2e2d2a
-.pe5te
-.pe2t
-.pe5tit
-.p2i4e4
-.pio5n4
-.3p2i1o
-.pi2t
-.pre3m
-.pr2
-.ra4c
-.ran4t
-.ra2n
-.ratio5n1a
-.ratio2n4
-.ra1t2io
-.ree2
-.re5mit
-.res2
-.re5stat
-.res2t
-.res1ta
-.r2i4g
-.ri2t5u
-.ro4q
-.ros5t
-.row5d
-.ru4d
-.3s4c2i3e4
-.s1ci
-.5se2l2f5
-.sel1l5
-.se2n
-.se5r2ie4
-.ser1i
-.s2h2
-.si2
-.s3ing4
-.2s1in
-.st4
-.sta5b2l2
-.s1ta
-.s2tab
-.s4y2
-.1ta4
-.te4
-.3ten5a2n
-.te1na
-.th2
-.ti2
-.til4
-.ti1m5o5
-.1tim
-.ting4
-.2t1in
-.t4i4n5k2
-.to1n4a
-.1to
-.to2n
-.to4p
-.top5i
-.to2u5s
-.tou2
-.trib5ut
-.tr4ib
-.u1n1a
-.un3ce
-.under5
-.un1de
-.u2n1e
-.u4n5k2
-.un5o
-.un3u4
-.up3
-.ure3
-.us5a2
-.2us
-.ven4de
-.ve5r1a
-.wil5i
-.wi2
-.wil2
-.ye4
-4ab.
-a5bal
-a5ba2n
-abe2
-ab5erd
-ab2i5a
-ab5i2t5ab
-abi2t
-abi1ta
-ab5lat
-ab2l2
-ab5o5l1iz
-abol2i
-4abr
-ab5rog
-ab3ul
-a4c2a2r
-a1ca
-ac5ard
-ac5aro
-a5ceou2
-ac1er
-a5che4t
-a2ch
-ache2
-4a2ci
-a3c2ie4
-a2c1in
-a3c2io
-ac5rob
-act5if2
-a2c1t
-ac3ul
-ac4um
-a2d
-ad4d1in
-ad1d4
-ad5er.
-2adi
-a3d4i3a
-ad3i1ca
-adi4er
-ad2ie4
-a3d2io
-a3dit
-a5di1u
-ad4le
-ad3ow
-a1do
-ad5ra2n
-a1dr
-ad4su
-a2d1s2
-4a1du
-a3du2c
-ad5um
-ae4r
-aer2i4e4
-aer1i
-a2f
-a4f1f4
-a4gab
-a1ga
-aga4n
-ag5el1l
-a1ge4o
-4ag4eu
-ag1i
-4ag4l2
-ag1n
-a2go
-3a3g4o4g
-ag3o3ni
-ago2n2
-a5guer
-a2gue
-ag5ul
-a4gy
-a3ha
-a3he
-a4h4l4
-a3ho
-ai2
-a5i1a
-a3ic.
-ai5ly
-a4i4n
-ain5in
-a2ini
-a2i1n5o
-ait5en
-a2ite
-a1j
-ak1en
-al5ab
-al3a2d
-a4l2a2r
-4aldi4
-a2ld
-2ale
-al3end
-a4lent2i
-a1len1t
-a5le5o
-al1i
-al4ia.
-al2i1a
-al2i4e4
-al5lev
-al1l
-al2le
-4allic
-all2i
-4a2lm
-a5log.
-a4ly.
-a1ly
-4a2lys4
-5a5lys1t
-5alyt
-3alyz
-4a1ma
-a2m5ab
-am3ag
-ama5ra
-am2a2r
-am5asc
-a4ma3tis
-a4m5a1to
-am5er1a
-am3ic
-am5if
-am5i1ly
-am1in
-am2i4no
-a2mo
-a5mo2n
-amor5i
-amo2r
-amp5en
-a4m1p
-a2n
-an3age
-a1na
-3ana1ly
-a3n2a2r
-an3ar3c
-anar4i
-a3nati
-an2at
-4and
-ande4s2
-an1de
-an3dis1
-an1dl
-an4dow
-an1do
-a5nee
-a3nen
-an5e2st.
-a1nes
-a2nest
-a3n4eu
-2ang
-ang5ie4
-an1gl2
-a4n1ic
-a3nies
-an2ie4
-an3i3f
-an4ime
-an1im
-a5nim1i
-a5n2ine
-an1in
-an3i4o
-a3n2ip
-an3is2h
-an3it
-a3ni1u
-an4kli
-a4nk2
-an1k1l
-5anniz
-a4n1n2
-ano4
-an5ot
-an4oth5
-an2sa2
-a2n1s2
-an4s1co
-ans4c
-an4s1n4
-an2sp
-ans3po
-an4st
-an4su2r
-an1su
-anta2l4
-an1t
-an1ta
-an4t2ie4
-ant2i
-4an1to
-an2tr
-an4tw4
-an3u1a
-an3ul
-a5nur
-4ao
-ap2a2r4
-a1pa
-ap5at
-ap5er3o
-a3ph4er
-4aphi
-a4pilla
-apil1l
-ap5ill2a2r
-ap3i2n
-ap3i1ta
-a3pi2tu
-a2p2l2
-apo4c5
-ap5o1la
-apor5i
-a1p4or
-apos3t
-a1pos
-aps5e4s
-a2p1s2
-ap2se
-a3pu
-aque5
-aqu2
-2a2r
-ar3a2c1t
-a5rade
-ara2d
-ar5adis1
-ar2adi
-ar3al
-a5rame1te
-aram3et
-ar2an4g
-ara2n
-ara3p
-ar4at
-a5ra1t2io
-ar5a1t2iv
-a5rau
-ar5av4
-araw4
-arbal4
-ar1b
-ar4cha2n
-ar1c
-ar3cha
-ar2ch
-ar5d2ine
-ard2i
-ard1in4
-ar4dr
-ar5eas
-a3ree
-ar3en1t
-a5r2e2ss
-ar4fi
-ar1f
-ar4f4l2
-ar1i
-ar5i2al
-ar2i3a
-ar3i2a2n
-a3ri5et
-ar2ie4
-ar4im
-ar5in2at
-ar2i1na
-ar3i1o
-ar2iz
-ar2mi
-ar1m
-ar5o5d
-a5roni
-aro2n
-a3roo2
-ar2p
-ar3q
-arre4
-ar1r4
-ar4sa2
-a4rs2
-ar2s2h
-4as.
-a2s4ab
-asa2
-as3an1t
-asa2n
-ashi4
-as2h
-a5sia.
-as2i1a
-a3si1b
-a3sic
-5a5si4t
-ask3i
-ask2
-as4l2
-a4soc
-a1so
-as5ph
-as4s2h
-a2ss
-as3ten
-as1t4r
-asu1r5a
-a1su
-asu2r
-a2ta
-at3ab2l2
-a2tab
-at5ac
-at3alo
-ata2l
-at5ap
-ate5c
-at5e2ch
-at3e1go
-ateg4
-at3en.
-at3er1a
-ater5n
-a5ter1na
-at3est
-at5ev
-4ath
-ath5em
-ath2e
-a5the2n
-at4ho
-ath5om
-4ati.
-a5t2i1a
-a2t5i5b
-at1ic
-at3if2
-ation5a2r
-a1t2io
-atio2n
-atio1n1a
-at3i1tu
-a4tog
-a1to
-a2tom
-at5om2iz
-a4top
-a4tos2
-a1tr
-at5rop
-at4sk2
-a4t1s2
-at4tag
-a4t3t2
-at1ta
-at5te
-at4th
-a2tu
-at5u1a
-a4t5ue
-at3ul
-at3u1ra
-a2ty
-au4b
-augh3
-au3gu
-au4l2
-aun5d
-au3r
-au5si1b
-a2us
-a4ut5en
-au1th
-a2va
-av3ag4
-a5va2n
-av4e4no
-av3er1a
-av5ern
-av5ery
-av1i
-avi4er
-av2ie4
-av3ig
-av5oc
-a1vor
-3away
-aw3i2
-aw4ly
-aws4
-ax4i5c
-ax3i
-ax4id
-ay5al
-aye4
-ays4
-azi4er
-a2z1i
-az2ie4
-az2z5i
-a4z1z2
-5ba.
-bad5ger
-ba2d
-ba4ge
-bal1a
-ban5dag
-ba2n
-b4and
-ban1d2a
-ban4e
-ban3i
-barbi5
-b2a2r
-bar1b
-bar2i4a
-bar1i
-bas4si
-ba2ss
-1bat
-ba4z
-2b1b
-b2be
-b3ber
-bbi4na
-4b1d
-4be.
-beak4
-bea2t3
-4be2d
-b2e3d2a
-be3de
-b4e3di
-be3gi
-be5gu
-1bel
-be1l2i
-be3lo
-4be5m
-be5n2ig
-be5nu
-4bes4
-be3sp
-b2e5st4r
-3bet
-be1t5iz
-be5tr
-be3tw4
-be3w
-be5y1o4
-2bf
-4b3h
-bi2b
-b2i4d
-3b2ie4
-bi5en
-bi4er
-2b3if
-1bil
-bi3l2iz
-bil1i
-bin2a5r4
-bi1na
-b4in4d
-bi5net
-b2ine
-bi3o2gr
-b2io
-bi5ou2
-bi2t
-3b2i3t2io
-bi1ti
-bi3tr
-3bit5u1a
-bi1tu
-b5i4tz
-b1j
-bk4
-b2l2
-bl4ath5
-b4le.
-blen4
-5ble1sp
-bles2
-b3lis
-b4lo
-blun4t
-4b1m
-4b3n
-bne5g
-3bod
-bod3i
-bo4e
-bol3ic
-bol2i
-bom4bi
-bo4m1b
-bo1n4a
-bo2n
-bon5at
-3boo2
-5bor.
-4b1o1ra
-bor5d
-5bore
-5bori
-5bos4
-b5o1ta
-b4oth5
-bo4to
-boun2d3
-bou2
-4bp
-4brit
-br4oth3
-2b5s2
-bsor4
-b1so
-2bt
-b2t4l
-b4to
-b3tr
-buf4fer1
-bu4f1f
-bu4ga
-bu3l2i
-bu1mi4
-bu4n
-bunt4i
-bun1t
-bu3re
-bus5ie4
-b2us
-buss4e
-bu2ss
-5bust
-4bu1ta
-3bu1t2io
-b4u1t2i
-b5u1to
-b1v
-4b5w
-5by.
-bys4
-1ca
-cab3in
-ca1b2l2
-ca2ch4
-ca5den
-ca2d
-4cag4
-2c5ah
-ca3lat
-cal4la
-cal1l
-cal2l5in4
-call2i
-4calo
-c4an5d
-ca2n
-can4e
-ca4n4ic
-can5is
-can3iz
-can4ty
-can1t
-cany4
-ca5per
-car5om
-c2a2r
-cast5er
-cas5t2ig
-cast2i
-4cas4y
-c4a4th
-4ca1t2iv
-cav5al
-ca2va
-c3c
-ccha5
-c2ch
-c3c2i4a
-c1ci
-ccom1pa5
-c1co
-cco4m1p
-cco2n4
-ccou3t
-ccou2
-2ce.
-4ced.
-4ce1den
-3cei2
-5cel.
-3cel1l
-1cen
-3cenc
-2cen4e
-4ceni
-3cen1t
-3cep
-ce5ram
-cer1a
-4ce1s4a2
-3ces1si
-c2e2ss
-ces5si5b
-ces5t
-cet4
-c5e4ta
-cew4
-2ch
-4ch.
-4ch3ab
-5cha4n1ic
-cha2n
-ch5a5nis
-che2
-cheap3
-4ch4ed
-ch5e5lo
-3chemi
-ch5ene
-che2n
-ch3er.
-ch3e4r1s2
-4ch1in
-5chi2ne.
-ch2ine
-ch5i5n2e2ss
-chi1nes
-5ch2ini
-5ch2io
-3chit
-chi2z
-3cho2
-ch4ti
-1ci
-3c2i1a
-ci2a5b
-ci2a5r
-ci5c
-4cier
-c2ie4
-5c4i2f3ic.
-ci1fi
-4c4i5i4
-ci4la
-3cil1i
-2cim
-2cin
-c4i1na
-3cin2at
-cin3em
-c2ine
-c1ing
-c5ing.
-5c2i1no
-cio2n4
-c2io
-4cipe4
-c2ip
-ci3ph
-4cip4ic
-cip3i
-4cis1ta
-4cis1t2i
-2c1it
-ci1t3iz
-ci1ti
-5ciz
-ck1
-ck3i
-1c4l4
-4cl2a2r
-c5la5ra1t2io
-clar4at
-5clare
-cle4m
-4clic
-clim4
-c1ly4
-c5n
-1co
-co5ag
-c4oa
-coe2
-2cog
-co4gr
-coi4
-co3inc
-col5i
-5colo
-col3o4r
-com5er
-co2me
-co1n4a
-co2n
-c4one
-con3g
-con5t
-co3pa
-cop3ic
-co4p2l2
-4cor1b
-coro3n
-cos4e
-cov1
-cove4
-cow5a
-co2z5e
-co5z1i
-c1q
-cras5t
-cr2as
-5crat.
-5crat1ic
-cre3a2t
-5c2r2ed
-4c3re1ta
-cre4v2
-cri2
-cri5f
-c4rin
-cr2is4
-5cri1ti
-cro4p2l2
-crop5o
-cros4e
-cru4d
-4c3s2
-2c1t
-c2ta4b
-c1ta
-ct5ang
-cta2n
-c5tan1t
-c2te
-c3ter
-c4t4ic1u
-ctim3i
-c1tim
-ctu4r
-c1tu
-c4tw4
-cud5
-c4uf
-c4ui2
-cu5i1ty
-5cul2i
-cul4tis4
-cul1ti
-cu4lt
-3c4ul1tu2
-cu2ma
-c3ume
-cu4mi
-3cun
-cu3pi
-cu5py
-cu2r5a4b
-cu1ra
-cu5r2i3a
-1c2us
-cus1s4i
-cu2ss
-3c4ut
-cu4t2ie4
-c4u1t2i
-4c5u1t2iv
-4cutr
-1cy
-c2ze4
-1d2a
-5da.
-2d3a4b
-da2ch4
-4da2f
-2dag
-da2m2
-d2an3g
-da2n
-dard5
-d2a2r
-dark5
-4dary
-3dat
-4da1t2iv
-4da1to
-5dav4
-dav5e
-5day
-d1b
-d5c
-d1d4
-2de.
-dea2f5
-de4b5i2t
-d2e1b
-de4bo2n
-deca2n4
-de1ca
-de4cil
-de1c2i
-de5com
-de1co
-2d1ed
-4dee.
-de5if
-dei2
-del2i4e4
-del2i
-de4l5i5q
-de5lo
-d4em
-5dem.
-3demic
-dem5ic.
-de5mil
-de4mo2n3s2
-de1mo
-demo2n
-demo2r5
-1den
-de4n2a2r
-de1na
-d4e3no
-denti5f2
-den1t
-dent2i
-de3nu
-de1p
-de3pa
-depi4
-de2pu
-d3e1q
-d4er1h4
-5der3m4
-d5ern5iz
-de4r5s2
-des2
-d2es.
-de1s2c
-de2s5o
-des3t2i
-d2e3st4r
-de4su
-de1t
-de2to
-de1v
-de2v3i4l
-de1vi
-4dey
-4d1f
-d4ga
-d3ge4t
-dg1i
-d2gy
-d1h2
-5di.
-1d4i3a
-dia5b
-d4i4cam
-di1ca
-d4ice
-3di2c1t
-3d2id
-5di3en
-d2ie4
-d1if
-di3ge
-d2ig
-di4la1to
-di1la
-d1in
-1di1na
-3di2ne.
-d2ine
-5d2ini
-di5niz
-1d2io
-dio5g
-di4p2l2
-d2ip
-d4ir2
-di1re
-dir1t5i
-dis1
-5disi
-d4is3t
-d2i1ti
-1d2i1v
-d1j
-d5k2
-4d5la
-3dle.
-3dled
-3dles.
-dles2
-4d3l2e2ss
-2d3lo
-4d5lu
-2d1ly
-d1m
-4d1n4
-1do
-3do.
-do5de
-5doe
-2d5of
-d4og
-do4la
-dol2i4
-do5lo4r
-dom5iz
-do3n2at
-do2n
-do1n1a
-doni4
-doo3d
-doo2
-do4p4p
-d4or
-3dos
-4d5out
-dou2
-do4v
-3dox
-d1p
-1dr
-drag5o2n2
-dra2go
-4dr2ai2
-dre4
-dre2a5r
-5dren
-dr4i4b
-dril4
-dro4p
-4drow
-5drupli
-dru3p2l2
-4dry
-2d1s2
-ds4p
-d4sw2
-d4s4y
-d2th
-1du
-d1u1a
-du2c
-d1u3ca
-duc5er
-4duct.
-du2c1t
-4duc4t1s2
-du5el
-du4g
-d3ul4e
-dum4be
-du4m1b
-du4n
-4dup
-du4pe
-d1v
-d1w
-d2y
-5dyn
-dy4s2e
-dys5p
-e1a4b
-e3a2c1t
-ea2d1
-ead5ie4
-e2adi
-ea4ge
-ea5ger
-ea4l
-eal5er
-e2ale
-eal3ou2
-eam3er
-e5and
-ea2n
-ear3a
-e2a2r
-ear4c
-ear5es
-ear4ic
-ear1i
-ear4il
-ear5k
-ear2t
-eart3e
-ea5sp
-e3a2ss
-east3
-ea2t
-eat5en
-eath3i
-e4ath
-e5at3if2
-e4a3tu
-ea2v
-eav3en
-eav5i
-eav5o
-2e1b
-e4bel.
-e1bel
-e4be2l1s2
-e4ben
-e4bi2t
-e3br
-e4ca2d
-e1ca
-ecan5c
-eca2n
-ec1ca5
-ec3c
-e1ce
-ec5es1sa2
-ec2e2ss
-e1c2i
-e4cib
-ec5ificat
-eci1fi
-ecifi1ca
-ec5i3f2ie4
-ec5i1fy
-e2c3im
-e2c1i4t
-e5c2ite
-e4clam
-e1c4l4
-e4cl2us
-e2col
-e1co
-e4com1m
-e4compe
-eco4m1p
-e4con1c
-eco2n
-e2cor
-ec3o1ra
-eco5ro
-e1cr
-e4crem
-ec4ta2n
-e2c1t
-ec1ta
-ec4te
-e1cu
-e4cul
-ec3u1la
-2e2d2a
-4ed3d4
-e4d1er
-ede4s2
-4edi
-e3d4i3a
-ed3ib
-ed3i1ca
-ed3im
-ed1it
-edi5z
-4e1do
-e4dol
-edo2n2
-e4dri
-e1dr
-e4dul
-e1du
-ed5u1l4o
-ee2c
-e4ed3i
-ee2f
-eel3i
-ee4ly
-ee2m
-ee4na
-ee4p1
-ee2s4
-eest4
-ee4ty
-e5ex
-e1f
-e4f3ere
-efer1
-1e4f1f
-e4fic
-e1fi
-5ef2i1c4i
-efil4
-e3f2i2ne
-e2fin
-ef5i5n2ite
-ef2ini
-efin2it
-3efit
-efor5es
-e1fo
-efo2r
-e4fu4se.
-e3fu
-ef2us
-4egal
-e1ga
-eger4
-eg5ib
-eg4ic
-eg5ing
-e5git5
-eg5n
-e4go.
-e1go
-e4gos
-eg1ul
-e5gur
-5e1gy
-e1h4
-eher4
-ei2
-e5ic
-e2i5d
-e2ig2
-ei5g4l2
-e3i4m1b
-e3in3f
-e1ing
-e5inst
-e2i2n1s2
-eir4d
-e4ir
-e2it3e
-e2i3th
-e5i1ty
-e1j
-e4jud
-ej5udi
-eki4n
-ek1i
-ek4la
-ek1l
-e1la
-e4la.
-e4lac
-e3l4an4d
-ela2n
-e4l5a1t2iv
-e4law
-elax1a4
-e3le2a
-el5ebra
-el2e1b
-ele3br
-5elec
-e4led
-el3e1ga
-e5len
-e4l1er
-e1les2
-e2l2f
-el2i
-e3libe4
-e4l5ic.
-el3i1ca
-e3lier
-el2ie4
-el5i3gib
-el2ig
-el4igi
-e5lim
-e4l3ing
-e3l2io
-e2lis
-el5is2h
-e3l2iv3
-4ella
-el1l
-el4lab
-ell4o4
-e5loc
-el5og
-el3op.
-el2s2h
-e2l1s2
-el4ta
-e4lt
-e5lud
-el5ug
-e4mac
-e1ma
-e4mag
-e5ma2n
-em5a1na
-e4m5b
-e1me
-e2mel
-e4met
-em3i1ca
-em2i4e4
-em5igra
-em2ig4
-emi1gr
-em1in2
-em5ine
-em3i3ni
-e4m2is
-em5is2h
-e5m4i2s1s
-em3iz
-5emniz
-e4m1n
-emo4g
-e1mo
-emo3n2i5o
-emo2n
-em3pi
-e4m1p
-e4mul
-e1mu
-em5u1la
-emu3n2
-e3my
-en5a2mo
-e1na
-e4nan1t
-en2a2n
-ench4er
-en2ch
-enche2
-en3dic
-e5nea
-e5nee
-en3em
-en5ero
-en1er
-en5e1si
-e1nes
-e2n5est
-en3etr
-e3ne4w
-en5i4c3s2
-e5n2ie4
-e5nil
-e3n2i4o
-en3is2h
-en3it
-e5ni1u
-5eniz
-4e4n1n2
-4eno
-e4no4g
-e4nos
-en3ov
-en4sw2
-e2n1s2
-ent5age
-en1t
-en1ta
-4enth1es
-enth2e
-en3u1a
-en5uf
-e3ny.
-4e4n3z
-e5of
-eo2g
-e4oi4
-e3ol
-eop3a2r
-eo2pa
-e1or
-eo3re
-eo5rol
-eos4
-e4ot
-eo4to
-e5out
-eou2
-e5ow
-e2pa
-e3p4ai2
-ep5anc
-epa2n
-e5pel
-e3pen1t
-ep5e5t2i1t2io
-epe2t
-epeti1ti
-ephe4
-e4pli
-e1p2l2
-e1po
-e4prec
-epr2
-ep5re1ca
-e4p2r2ed
-ep3re1h4
-e3pro
-e4prob
-ep4s4h
-e2p1s2
-ep5ti5b
-e2p1t
-e4pu2t
-ep5u1ta
-e1q
-equi3l
-equ2
-eq2ui2
-e4q3ui3s
-er1a
-e2ra4b
-4er4and
-era2n
-er3a2r
-4er4ati.
-2er1b
-er4b2l2
-er3ch
-er1c
-er4che2
-2e2re.
-e3re1a4l
-ere5co
-ere3in
-erei2
-er5el.
-er3e1mo
-er5e1na
-er5ence
-4erene
-er3en1t
-ere4q
-er5e2ss
-er3es2t
-eret4
-er1h4
-er1i
-e1r2i3a4
-5erick1
-e3rien
-er2ie4
-eri4er
-er3in4e
-e1r2i1o
-4erit
-er4i1u
-er2i4v
-e4ri1va
-er3m4
-er4nis4
-4er3n2it
-5erniz
-er3no4
-2ero
-er5ob
-e5r2oc
-ero4r
-er1ou2
-e4r1s2
-er3set
-er2se
-ert3er
-4er2tl
-er3tw4
-4eru
-eru4t
-5erwau
-er1w
-e1s4a2
-e4sa2ge.
-e4sages
-es2c
-e2s1ca
-es5ca2n
-e3scr
-es5cu
-e1s2e
-e2sec
-es5e1cr
-e4s5enc
-e4sert.
-e4ser4t1s2
-e4ser1va
-4es2h
-e3sha
-esh5e2n
-e1si
-e2sic
-e2s2id
-es5i1den
-e4s5ig1n4a
-es2ig
-e2s5im
-e2s4i4n
-esis4te
-e1sis
-e5si4u
-e5skin
-esk2
-esk1i
-es4mi
-e2s1m
-e2sol
-e1so
-es3olu
-e2so2n
-es5o1n1a4
-e1sp
-e2s3per
-es5pi1ra
-esp4ir
-es4pre
-espr2
-2e2ss
-es4si4b
-es1si
-esta2n4
-es1ta
-es3t2ig
-est2i
-es5tim
-4es2to
-e3sto2n
-2est4r
-e5stro
-estruc5
-e2su2r
-e1su
-es5ur1r4
-es4w2
-e2ta4b
-e1ta
-e3ten4d
-e3teo
-ethod3
-et1ic
-e5tide
-et2id
-e2t1in4
-et2i4no
-e5t4ir
-e5t2i1t2io
-eti1ti
-et5i1t2iv
-4e2t1n2
-et5o1n1a
-e1to
-eto2n
-e3tra
-e3tre
-et3ric
-et5rif
-et3rog
-et5ros
-et3u1a
-e1tu
-et5ym
-e1ty
-e4t5z
-4eu
-e5un
-e3up
-eu3ro
-e2us4
-eute4
-euti5l
-e4u1t2i
-eu5tr
-eva2p5
-e1va
-e2vas
-ev5ast
-e5vea
-ev3el1l
-eve4l3o
-e5veng
-even4i
-ev1er
-e5v2er1b
-e1vi
-ev3id
-e2vi4l
-e4v1in
-e3v2i4v
-e5voc
-e5vu
-e1wa
-e4wag
-e5wee
-e3wh
-ewil5
-ewi2
-ew3in4g
-e3wit
-1ex3p
-5ey1c
-5eye.
-eys4
-1fa
-fa3b2l2
-f4ab3r
-fa4ce
-4fag
-fa4i4n4
-fai2
-fal2l5e
-fal1l
-4f4a4ma
-fam5is
-5f2a2r
-far5th
-fa3ta
-fa3th2e
-f4ath
-4fa1to
-fau4lt5
-fau4l2
-4f5b
-4fd
-4fe.
-feas4
-fe4ath3
-fea2t
-f2e4b
-4fe1ca
-5fe2c1t
-2fed
-fe3l2i
-fe4mo
-fen2d
-fen1d5e
-fer1
-5fer1r4
-fev4
-4f1f
-f4fes
-f4f2ie4
-f1fi
-f5f2in.
-f2fin
-f2f5is
-f4f2ly5
-ff4l2
-f2fy
-4fh
-1fi
-f2i3a
-2f3ic.
-4f3ical
-fi1ca
-f3ica2n
-4ficate
-f3i1cen
-fi3cer
-f2i1c4i
-5fi3c2i1a
-5fic2ie4
-4fi4c3s2
-fi3cu
-fi5del
-f2id
-fight5
-f2ig
-fil5i
-fil2l5in4
-fil1l
-fill2i
-4fi1ly
-2fin
-5fi1na
-f4in2d5
-f2i2ne
-f1in3g
-f2i4n4n2
-fis4t2i
-f4l2
-f5l2e2ss
-fles2
-flin4
-flo3re
-f2ly5
-4fm
-4fn
-1fo
-5fo2n
-fon4de
-f2ond
-fon4t
-fo2r
-fo5rat
-fo1ra
-for5ay
-fore5t
-for4i
-for1t5a
-fos5
-4f5p
-fra4t
-f5rea
-fres5c
-fri2
-fril4
-frol5
-2f3s
-2ft
-f4to
-f2ty
-3fu
-fu5el
-4fug
-fu4min
-fu1mi
-fu5ne
-fu3ri
-fusi4
-f2us
-fu2s4s
-4fu1ta
-1fy
-1ga
-ga2f4
-5gal.
-3gal1i
-ga3lo
-2gam
-ga5met
-g5a2mo
-gan5is
-ga2n
-ga3niz
-gani5za1
-4gano4
-gar5n4
-g2a2r
-ga2ss4
-g4ath3
-4ga1t2iv
-4gaz
-g3b
-gd4
-2ge.
-2ged
-geez4
-gel4in
-gel2i
-ge5lis
-ge5l1iz
-4ge1ly
-1gen
-ge4n2at
-ge1na
-g5e5niz
-4g4eno
-4geny
-1geo
-ge3om
-g4ery
-5ge1si
-geth5
-4ge1to
-ge4ty
-ge4v
-4g1g2
-g2ge
-g3ger
-gglu5
-ggl2
-g1go4
-gh3in
-gh5out
-ghou2
-gh4to
-5gi.
-1g2i4a
-gi2a5r
-g1ic
-5gi3c2i1a
-g2i1ci
-g4i1co
-gien5
-g2ie4
-5gies.
-gil4
-g3i1men
-3g4in.
-g4in5ge
-5g4i2n1s2
-5g2io
-3g4ir
-gir4l
-g3is1l2
-gi4u
-5g2iv
-3giz
-gl2
-gla4
-gl2ad5i
-gla2d
-5glas
-1gle
-gli4b
-g3l2ig
-3glo
-glo3r
-g1m
-g4my
-g1n4a
-g4na.
-gne4t4t2
-g1ni
-g2n1in
-g4n2i4o
-g1no
-g4no4n
-1go
-3go.
-gob5
-5goe
-3g4o4g
-go3is
-goi2
-go2n2
-4g3o3n1a
-gon5do5
-g2ond
-go3ni
-5goo2
-go5riz
-gor5ou2
-5gos.
-gov1
-g3p
-1gr
-4gra1d2a
-gra2d
-g4r2ai2
-gra2n2
-5gra4ph.
-g5ra3ph4er
-5graph1ic
-gr4aphi
-4g3ra1phy
-4gray
-gre4n
-4gress.
-gr2e2ss
-4grit
-g4ro
-gruf4
-gs2
-g5ste
-gth3
-gu4a
-3guar2d
-gu2a2r
-2gue
-5gui5t
-g2ui2
-3gun
-3g2us
-4gu4t
-g3w
-1gy
-2g5y3n
-gy5ra
-h3ab4l2
-ha2ch4
-hae4m
-hae4t
-h5agu
-ha3la
-hala3m
-ha4m
-han4ci
-ha2n
-han4cy
-5hand.
-h4and
-h2an4g
-hang5er
-han1g5o
-h5a5niz
-ha4n4k2
-han4te
-han1t
-ha2p3l2
-ha2p5t
-ha3ra2n
-h2a2r
-ha5r2as
-har2d
-hard3e
-har4le4
-har1l
-harp5en
-har2p
-har5ter
-ha2s5s
-haun4
-5haz
-haz3a1
-h1b
-1hea2d1
-3he2a2r
-he4ca2n
-he1ca
-h5ecat
-h4ed
-h4e5do5
-he3l4i
-hel4lis
-hel1l
-hell2i
-hel4ly
-h5elo
-he4m4p
-he2n
-he1na4
-hen5at
-he1o5r
-hep5
-h4er1a
-hera3p
-her4ba
-h2er1b
-here5a
-h3ern
-h5er1ou2
-h2ero
-h3ery
-h1es
-he2s5p
-he4t
-he2t4ed
-h4eu4
-h1f
-h1h
-hi5a2n
-h2i1a
-hi4co
-high5
-h2ig
-h4il2
-himer4
-h4i1na
-hion4e
-h2io
-hio2n
-h2i4p
-hir4l
-h4ir
-hi3ro
-hir4p
-hir4r4
-his3el
-h4ise
-h4i2s4s
-hith5er
-h2ith
-hith2e
-h2i2v
-4hk
-4h1l4
-hla2n4
-h2lo
-hlo3ri
-4h1m
-hmet4
-2h1n
-h5odiz
-h5o2d1s2
-ho4g
-ho1ge4
-hol5a2r
-ho1la
-3hol4e
-ho4ma
-ho2me3
-ho1n4a
-ho2n
-ho5ny
-3hood
-hoo2
-hoo2n4
-hor5at
-ho1ra
-ho5r2is
-hort3e
-ho5ru
-hos4e
-ho5sen
-hos1p
-1ho2us
-hou2
-house3
-hov5el
-4h5p
-4hr4
-hree5
-hro5niz
-hro2n
-hro3po
-4h1s2
-h4s2h
-h4t2a2r
-h1ta
-ht1en
-ht5es
-h4ty
-hu4g
-hu4min
-hu1mi
-hun5ke
-hu4nk2
-hun4t
-hus3t4
-h2us
-hu4t
-h1w
-h4war4t
-hw2a2r
-hy3pe
-hy3ph
-hy2s
-2i1a
-i2al
-iam4
-iam5e1te
-i2a2n
-4ianc
-ian3i
-4ian4t
-ia5pe
-ia2ss4
-i4a1t2iv
-ia4tric
-ia1tr
-i4a2tu
-ibe4
-ib3er1a
-ib5ert
-ib5i1a
-ib3in
-ib5it.
-ibi2t
-ib5ite
-i1b2l2
-ib3li
-i5bo
-i1br
-i2b5ri
-i5bu4n
-4icam
-i1ca
-5icap
-4ic2a2r
-i4car.
-i4cara
-icas5
-i4cay
-iccu4
-ic3c
-4iceo
-4i2ch
-2i1ci
-i5c2id
-ic5i1na
-i2cin
-i2c2ip
-ic3i1pa
-i4c1ly4
-i1c4l4
-i2c5oc
-i1co
-4i1cr
-5icra
-i4cry
-ic4te
-i2c1t
-ic1tu2
-ic4t3u1a
-ic3u1la
-ic4um
-ic5uo
-i3cur
-2id
-i4dai2
-i1d2a
-id5anc
-ida2n
-id5d4
-ide3a4l
-ide4s2
-i2di
-id5i2a2n
-i1d4i3a
-idi4a2r
-i5d2ie4
-i1d3io
-idi5ou2
-id1it
-id5i1u
-i3dle
-i4dom
-i1do
-id3ow
-i4dr
-i2du
-id5uo
-2ie4
-ied4e
-5ie5ga
-ie2ld3
-ie1n5a4
-ien4e
-i5e4n1n2
-i3ent2i
-ien1t
-i1er.
-i3es2c
-i1est
-i3et
-4if.
-if5ero
-ifer1
-iff5en
-i4f1f
-if4fr
-4i2f3ic.
-i1fi
-i3f2ie4
-i3f4l2
-4i2ft
-2ig
-iga5b
-i1ga
-ig3er1a
-ight3i
-4igi
-i3gib
-ig3il4
-ig3in
-ig3it
-i4g4l2
-i2go
-ig3or
-ig5ot
-i5gre
-i1gr
-ig2u5i2
-ig1ur
-i3h
-4i5i4
-i3j
-4ik
-i1la
-il3a4b
-i4l4ade
-ila2d
-i2l5am
-ila5ra
-il2a2r
-i3leg
-il1er
-ilev4
-i2l5f
-il1i
-il3i1a
-il2ib
-il3io
-il4ist
-2il1it
-il2iz
-ill5ab
-il1l
-4i2l1n2
-il3o1q
-il4ty
-i4lt
-il5ur
-il3v
-i4mag
-i1ma
-im3age
-ima5ry
-im2a2r
-iment2a5r
-i1men
-i3men1t
-imen1ta
-4imet
-im1i
-im5i1d4a
-im2id
-imi5le
-i5m2ini
-4imit
-im4ni
-i4m1n
-i3mo2n
-i1mo
-i2mu
-im3u1la
-2in.
-i4n3au
-i1na
-4inav
-incel4
-in3cer
-4ind
-in5dling
-2ine
-i3nee
-in4er4a2r
-in1er
-iner1a
-i5n2e2ss
-i1nes
-4in1ga
-4inge
-in5gen
-4ingi
-in5gling
-ingl2
-4in1go
-4in1gu
-2ini
-i5ni.
-i4n4i1a
-in3i4o
-in1is
-i5ni4te.
-in2it
-in2ite
-5i3n2i1t2io
-ini1ti
-in3i1ty
-4i4nk2
-4i4n1l
-2i4n1n2
-2i1no
-i4no4c
-ino4s
-i4not
-2i2n1s2
-in3se
-insu1r5a
-in1su
-insu2r
-2int.
-in1t
-2in4th
-in1u
-i5n2us
-4iny
-2io
-4io.
-io1ge4
-io2gr
-i1ol
-io4m
-ion3at
-io2n
-io1n1a
-ion4ery
-ion1er
-ion3i
-i2o5ph
-ior3i
-i4os
-i4o5th
-i5oti
-io4to
-i4our
-iou2
-2ip
-ipe4
-iphr2as4
-ip4hr4
-ip3i
-ip4ic
-ip4re4
-ipr2
-ip3ul
-i3qua
-iqu2
-iq5ue1f
-iq3u2id
-iq2ui2
-iq3ui3t
-4ir
-i1ra
-i2ra4b
-i4rac
-ird5e
-ire4de
-i2r2ed
-i4re1f
-i4rel4
-i4res
-ir5gi
-irg2
-ir1i
-iri5de
-ir2id
-ir4is
-iri3tu
-5i5r2iz
-ir4min
-ir1m
-iro4g
-5iron.
-iro2n
-ir5ul
-2is.
-is5ag
-isa2
-is3a2r
-isas5
-2is1c
-is3ch2
-4ise
-is3er
-3i4s3f
-is5ha2n
-is2h
-is3ho2n3
-isho4
-ish5op
-is3i1b
-is2i4d
-i5sis
-is5i1t2iv
-isi1ti
-4is4k2
-isla2n4
-is1l2
-4is4m1s2
-i2s1m
-i2so
-iso5mer
-i3som
-iso2me
-is1p
-is2pi
-is4py
-4i2s1s
-is4sal
-is1sa2
-issen4
-is4s1e4s
-is4ta.
-is1ta
-is1te
-is1t2i
-ist4ly
-is2tl
-4istral
-ist4r
-is1tra
-i2su
-is5us
-4i3ta.
-i1ta
-ita4bi
-i2tab
-i4tag
-4ita5m
-i3ta2n
-i3tat
-2ite
-it3er1a
-i5ter1i
-it4es
-2ith
-i1ti
-4i1t2i1a
-4i2tic
-it3i1ca
-5i5tick1
-i2t3ig
-it5il1l
-i2tim
-2i1t2io
-4itis
-i4ti2s4m
-i2t5o5m
-i1to
-4ito2n
-i4tram
-i1tra
-it5ry
-4i4t3t2
-it3u1at
-i1tu
-itu1a
-i5tud2
-it3ul
-4itz.
-i4tz
-i1u
-2iv
-iv3el1l
-iv3en.
-i4v3er.
-i4vers.
-ive4r1s2
-iv5il.
-i2vil
-iv5io
-iv1it
-i5vore
-iv3o3ro
-i4v3ot
-4i5w
-ix4o
-4iy
-4iz2a2r2
-iza1
-i2z1i4
-5izon1t
-i1zo
-izo2n
-5ja
-jac4q
-ja4p
-1je
-je4r5s2
-4jes4t2ie4
-jest2i
-4jes2ty
-jew3
-jo4p
-5judg
-3ka.
-k3ab
-k5ag
-kais4
-kai2
-kal4
-k1b
-k2ed
-1kee
-ke4g
-ke5l2i
-k3en4d
-k1er
-kes4
-k3e2st.
-ke4ty
-k3f
-kh4
-k1i
-5ki.
-5k2ic
-k4il1l
-kilo5
-k4im
-k4in.
-kin4de
-k4ind
-k5i5n2e2ss
-k2ine
-ki1nes
-kin4g
-k2i4p
-kis4
-k5is2h
-kk4
-k1l
-4k3ley
-4k1ly
-k1m
-k5nes
-1k2no
-ko5r
-kos2h4
-k3ou2
-kro5n
-4k1s2
-k4sc
-ks4l2
-k4s4y
-k5t
-k1w
-lab3ic
-l4abo
-l4a2ci4
-l4ade
-la2d
-la3d2y
-lag4n
-la2m3o
-3l4and
-la2n
-lan4dl
-lan5et
-lan4te
-lan1t
-lar4g2
-l2a2r
-lar3i
-las4e
-la5ta2n
-la2ta
-4latel2i4
-4la1t2iv
-4lav
-la4v4a
-2l1b
-lbin4
-4l1c2
-lce4
-l3ci
-2ld
-l2de
-ld4ere
-ld4er1i
-ldi4
-ld5is1
-l3dr
-l4dri
-le2a
-le4bi
-l2e1b
-le2ft5
-le1f
-5leg.
-5le4g1g2
-le4mat
-le1ma
-lem5at1ic
-4len.
-3lenc
-5le2ne.
-1len1t
-le3ph
-le4pr2
-le2ra5b
-ler1a
-ler4e
-3lerg2
-3l4er1i
-l4ero
-les2
-le5s1co
-les2c
-5lesq
-3l2e2ss
-5less.
-l3e1va
-lev4er.
-lev1er
-lev4er1a
-lev4e4r1s2
-3ley
-4leye
-2lf
-l5fr
-4l1g4
-l5ga
-lg2a2r3
-l4ges
-l1go3
-2l3h
-li4ag
-l2i1a
-li2am4
-liar5iz
-li2a2r
-liar1i
-li4as
-li4a1to
-li5bi
-5lic2io
-l2i1ci
-li4cor
-li1co
-4li4c3s2
-4lict.
-li2c1t
-l4icu
-l3i1cy
-l3i1d2a
-l2id
-lid5er
-3li2di
-lif3er1
-l4i4f1f
-li4f4l2
-5ligate
-l2ig
-li1ga
-3ligh
-li4gra
-li1gr
-3l4ik
-4l4i4l
-lim4b2l2
-li4m1b
-lim3i
-li4mo
-l4i4m4p
-l4i1na
-1l4ine
-lin3ea
-l2in3i
-link5er
-l4i4nk2
-li5og
-l2io
-4l4iq
-lis4p
-l1it
-l2it.
-5lit3i1ca
-li1ti
-l4i2tic
-l5i5ti4c3s2
-liv3er
-l2iv
-l1iz
-4lj
-lka3
-l3kal4
-lka4t
-l1l
-l4law
-l2le
-l5le2a
-l3lec
-l3leg
-l3lel
-l3le4n
-l3le4t
-ll2i
-l2lin4
-l5l4i1na
-ll4o
-lloq2ui5
-llo1q
-lloqu2
-l2l5out
-llou2
-l5low
-2lm
-l5met
-lm3ing
-l4mo2d1
-l1mo
-lmo2n4
-2l1n2
-3lo.
-lob5al
-lo4ci
-4lof
-3log1ic
-l5o1go
-3logu
-lom3er
-lo2me
-5long
-lo2n
-lon4i
-l3o3niz
-lood5
-loo2
-5lo4pe.
-lop3i
-l3o4p1m
-lo1ra4
-lo4ra1to
-lo5r2ie4
-lor5ou2
-5los.
-los5et
-5los5o3phiz
-lo2so
-los4op
-los2oph
-5los5o1phy
-los4t
-lo4ta
-loun5d
-lou2
-2lout
-4lov
-2lp
-lpa5b
-l1pa
-l3pha
-l5phi
-lp5ing
-lpi2n
-l3pit
-l4p2l2
-l5pr2
-4l1r
-2l1s2
-l4sc
-l2se
-l4s2ie4
-4lt
-lt5ag
-l1ta
-ltane5
-lta2n
-l1te
-lten4
-lter1a4
-lth3i
-l5ties.
-lt2ie4
-ltis4
-l1tr
-l1tu2
-ltu1r3a
-lu5a
-lu3br
-lu2ch4
-lu3ci
-lu3en
-luf4
-lu5id
-l2ui2
-lu4ma
-5lu1mi
-l5umn.
-lu4m1n
-5lum3n4i1a
-lu3o
-luo3r
-4lup
-lu2ss4
-l2us
-lus3te
-1lut
-l5ven
-l5vet4
-2l1w
-1ly
-4lya
-4ly1b
-ly5me4
-ly3no
-2lys4
-l5y3s2e
-1ma
-2mab
-ma2ca
-ma5ch2ine
-ma2ch
-ma4ch1in
-ma4c4l4
-mag5in
-mag1i
-5mag1n
-2mah
-ma2id5
-mai2
-4ma2ld
-ma3l2ig
-mal1i
-ma5lin
-mal4l2i
-mal1l
-mal4ty
-ma4lt
-5ma3n4i1a
-ma2n
-man5is
-man3iz
-4map
-ma5ri2ne.
-m2a2r
-mar1i
-mar2in4e
-ma5r2iz
-mar4ly
-mar1l
-mar3v
-ma5sce
-mas4e
-mas1t
-5mate
-m4ath3
-ma3tis
-4mati3za1
-ma1tiz
-4m1b
-m1ba4t5
-m5bil
-m4b3ing
-mb2i4v
-4m5c
-4me.
-2med
-4med.
-5me3d4i3a
-m4edi
-me3d2ie4
-m5e5d2y
-me2g
-mel5o2n
-me4l4t
-me2m
-me1m1o3
-1men
-me1n4a
-men5ac
-men4de
-4mene
-men4i
-me2n1s4
-men1su5
-3men1t
-men4te
-me5o2n
-m5er1sa2
-me4r1s2
-2mes
-3mest2i
-me4ta
-met3a2l
-me1te
-me5thi
-m4etr
-5met3ric
-me5tr2ie4
-me3try
-me4v
-4m1f
-2mh
-5mi.
-m2i3a
-mi1d4a
-m2id
-mid4g
-m2ig4
-3mil3i1a
-mil1i
-m5i5l2ie4
-m4il1l
-mi1n4a
-3m4ind
-m5i3nee
-m2ine
-m4ingl2
-min5gli
-m5ing1ly
-min4t
-m4in1u
-miot4
-m2io
-m2is
-mi4s4er.
-m4ise
-mis3er
-mis5l2
-mis4t2i
-m5i4stry
-mist4r
-4m2ith
-m2iz
-4mk
-4m1l
-m1m
-mma5ry
-m1ma
-mm2a2r
-4m1n
-m1n4a
-m4n1in
-mn4o
-1mo
-4mocr
-5moc5ra1tiz
-mo2d1
-mo4go
-mois2
-moi2
-mo4i5se
-4m2ok
-mo5lest
-moles2
-mo3me
-mon5et
-mo2n
-mon5ge
-mo3n4i3a
-mon4i2s1m
-mon1is
-mon4ist
-mo3niz
-monol4
-mo3ny.
-mo2r
-4mo5ra.
-mo1ra
-mos2
-mo5sey
-mo3sp
-m4oth3
-m5ouf
-mou2
-3mo2us
-mo2v
-4m1p
-mpara5
-m1pa
-mp2a2r
-mpa5rab
-mp4a4r5i
-m3pe2t
-mphas4
-m2pi
-mp2i4a
-mp5ies
-mp2ie4
-m4p1i2n
-m5p4ir
-mp5is
-mpo3ri
-m1p4or
-mpos5ite
-m1pos
-m4po2us
-mpou2
-mpov5
-mp4tr
-m2p1t
-m2py
-4m3r
-4m1s2
-m4s2h
-m5si
-4mt
-1mu
-mul2a5r4
-mu1la
-5mu4lt
-mul1ti3
-3mum
-mun2
-4mup
-mu4u
-4mw
-1na
-2n1a2b
-n4abu
-4nac.
-na4ca
-n5a2c1t
-nag5er.
-nak4
-na4l1i
-na5l2i1a
-4na4lt
-na5mit
-n2a2n
-nan1ci4
-nan4it
-na4nk4
-nar3c
-n2a2r
-4nare
-nar3i
-nar4l
-n5ar1m
-n4as
-nas4c
-nas5t2i
-n2at
-na3ta2l
-na2ta
-nat5o5m2iz
-na2tom
-na1to
-n2au
-nau3se
-na2us
-3naut
-nav4e
-4n1b4
-nc2a2r5
-n1ca
-n4ces.
-n3cha
-n2ch
-n5cheo
-nche2
-n5ch4il2
-n3chis
-n2c1in
-n1ci
-n2c4it
-ncou1r5a
-n1co
-ncou2
-n1cr
-n1cu
-n4dai2
-n1d2a
-n5da2n
-n1de
-nd5e2st.
-ndes2
-ndi4b
-n5d2if
-n1dit
-n3diz
-n5du2c
-n1du
-ndu4r
-nd2we
-nd1w
-2ne.
-n3e2a2r
-n2e2b
-neb3u
-ne2c
-5neck1
-2ned
-ne4gat
-ne1ga
-ne4g5a1t2iv
-5nege
-ne4la
-nel5iz
-nel2i
-ne5mi
-ne4mo
-1nen
-4nene
-3neo
-ne4po
-ne2q
-n1er
-ne2ra5b
-ner1a
-n4er3a2r
-n2ere
-n4er5i
-ner4r4
-1nes
-2nes.
-4ne1sp
-2nest
-4nes4w2
-3net1ic
-ne4v
-n5eve
-ne4w
-n3f
-n4gab
-n1ga
-n3gel
-nge4n4e
-n1gen
-n5gere
-n3ger1i
-ng5ha
-n3gib
-ng1in
-n5git
-n4gla4
-ngl2
-ngov4
-n1go
-ng5s2h
-ngs2
-n1gu
-n4gum
-n2gy
-4n1h4
-nha4
-nhab3
-nhe4
-3n4i1a
-ni3a2n
-ni4ap
-ni3ba
-ni4b2l2
-n2i4d
-ni5di
-ni4er
-n2ie4
-ni2fi
-ni5ficat
-nifi1ca
-n5i1gr
-n2ig
-n4ik4
-n1im
-ni3m2iz
-nim1i
-n1in
-5ni2ne.
-n2ine
-nin4g
-n2i4o
-5n2is.
-nis4ta
-n2it
-n4ith
-3n2i1t2io
-ni1ti
-n3itor
-ni1to
-ni3tr
-n1j
-4nk2
-n5k2ero
-nk1er
-n3ket
-nk3in
-nk1i
-n1k1l
-4n1l
-n5m
-nme4
-nmet4
-4n1n2
-nne4
-nni3al
-n3n4i1a
-nn2i4v
-nob4l2
-no3ble
-n5o1c4l4
-4n3o2d
-3noe
-4nog
-no1ge4
-nois5i
-noi2
-no5l4i
-5nol1o1gis
-3nomic
-n5o5m2iz
-no4mo
-no3my
-no4n
-non4ag
-no1n1a
-non5i
-n5oniz
-4nop
-5nop5o5l2i
-no2r5ab
-no1ra
-no4rary
-nor2a2r
-4nos2c
-nos4e
-nos5t
-no5ta
-1nou2
-3noun
-nov3el3
-nowl3
-n1p4
-npi4
-npre4c
-npr2
-n1q
-n1r
-nru4
-2n1s2
-n2s5ab
-nsa2
-nsati4
-ns4c
-n2se
-n4s3e4s
-ns2id1
-ns2ig4
-n2s1l2
-n2s3m
-n4soc
-n1so
-ns4pe
-n5spi
-nsta5b2l2
-ns1ta
-ns2tab
-n1t
-n2ta4b
-n1ta
-nte4r3s2
-nt2i
-n5ti2b
-nti4er
-nt2ie4
-nti2f2
-n3t2ine
-n2t1in
-n4t3ing
-nt2i4p
-ntrol5l2i
-ntrol1l
-n4t4s2
-ntu3me
-n1tu
-n3tum
-nu1a
-nu4d
-nu5en
-nuf4fe
-nu4f1f
-n3ui4n
-n2ui2
-3nu3it
-n4um
-nu1me
-n5u1mi
-3nu4n
-n3uo
-nu3tr
-n1v2
-n1w4
-nym4
-nyp4
-4nz
-n3za1
-4oa
-oa2d3
-o5a5les2
-o2ale
-oard3
-o2a2r
-oas4e
-oast5e
-oat5i
-ob3a3b
-o5b2a2r
-o1be4l
-o1bi
-o2bin
-ob5ing
-o3br
-ob3ul
-o1ce
-o2ch4
-o3che4t
-oche2
-ocif3
-o1ci
-o4cil
-o4clam
-o1c4l4
-o4cod
-o1co
-oc3rac
-oc5ra1tiz
-ocre3
-5ocrit
-ocri2
-octo2r5a
-o2c1t
-oc1to
-oc3u1la
-o5cure
-od5d1ed
-od1d4
-od3ic
-o1d2i3o
-o2do4
-od4or3
-o4d5uct.
-o1du
-odu2c
-odu2c1t
-o4d5uc4t1s2
-o4el
-o5eng
-o3er
-oe4ta
-o3ev
-o2fi
-of5ite
-of4i4t4t2
-o2g5a5r
-o1ga
-o4g5a1t2iv
-o4ga1to
-o1ge
-o5gene
-o1gen
-o5geo
-o4ger
-o3g2ie4
-1o1gis
-og3it
-o4gl2
-o5g2ly
-3ogniz
-og1ni
-o4g4ro
-o1gr
-og2u5i2
-1o1gy
-2o2g5y3n
-o1h2
-ohab5
-oi2
-oic3es
-oi3der
-o2id
-oi4f1f4
-o2ig4
-oi5let
-o3ing
-oint5er
-oin1t
-o5i2s1m
-oi5so2n
-oi2so
-oist5en
-ois1te
-oi3ter
-o2ite
-o5j
-2ok
-o3ken
-ok5ie4
-ok1i
-o1la
-o4la2n
-ola2ss4
-o2l2d
-ol2d1e
-ol3er
-o3les2c
-oles2
-o3let
-ol4fi
-o2lf
-ol2i
-o3l2i1a
-o3lice
-ol5id.
-ol2id
-o3li4f
-o5l4i4l
-ol3ing
-o5l2io
-o5l2is.
-ol3is2h
-o5l2ite
-ol1it
-o5l2i1t2io
-oli1ti
-o5l2iv
-oll2i4e4
-ol1l
-oll2i
-ol5o3giz
-olo4r
-ol5p2l2
-o2lp
-o4l2t
-ol3ub
-ol3ume
-ol3un
-o5l2us
-ol2v
-o2ly
-o2m5ah
-o1ma
-oma5l
-om5a1tiz
-om2be
-o4m1b
-om4b2l2
-o2me
-om3e1n4a
-o1men
-om5er2se
-ome4r1s2
-o4met
-om5e3try
-om4etr
-o3m2i3a
-om3ic.
-om3i1ca
-o5m2id
-om1in
-o5m2ini
-5ommend
-om1m
-om1men
-omo4ge
-o1mo
-o4mo2n
-om3pi
-o4m1p
-ompro5
-ompr2
-o2n
-o1n1a
-on4ac
-o3n2a2n
-on1c
-3oncil
-on1ci
-2ond
-on5do
-o3nen
-o2n5est
-o1nes
-on4gu
-on1ic
-o3n2i4o
-on1is
-o5ni1u
-on3key
-o4nk2
-on4odi
-o4n3o2d
-on3o3my
-o2n3s2
-on5spi4
-onspi1r5a
-onsp4ir
-on1su4
-onten4
-on1t
-on3t4i
-onti2f5
-on5um
-on1va5
-on1v2
-oo2
-ood5e
-ood5i
-o2o4k
-oop3i
-o3ord
-oost5
-o2pa
-o2p2e5d
-op1er
-3oper1a
-4op4erag
-2oph
-o5pha2n
-o5ph4er
-op3ing
-opi2n
-o3pit
-o5po2n
-o4posi
-o1pos
-o1pr2
-op1u
-opy5
-o1q
-o1ra
-o5ra.
-o4r3ag
-or5al1iz
-oral1i
-or5an4ge
-ora2n
-or2ang
-ore5a
-o5re1a4l
-or3ei2
-or4e5s2h
-or5e2st.
-ores2t
-orew4
-or4gu
-org2
-4o5r2i3a
-or3i1ca
-o5ril
-or1in
-o1r2i1o
-or3i1ty
-o3ri1u
-or2mi
-or1m
-orn2e
-o5rof
-or3oug
-orou2
-or5pe
-or1p
-3orrh4
-or1r4
-or4se
-o4rs2
-ors5en
-orst4
-or3thi
-or3thy
-or4ty
-o5rum
-o1ry
-os3al
-osa2
-os2c
-os4ce
-o3scop
-os1co
-4oscopi
-o5scr
-os4i4e4
-os5i1t2iv
-osi1ti
-os3i1to
-os3i1ty
-o5si4u
-os4l2
-o2so
-o2s4pa
-os4po
-os2ta
-o5stati
-os5til
-ost2i
-os5tit
-o4ta2n
-o1ta
-otele4g
-ot3er.
-ot5e4r1s2
-o4tes
-4oth
-oth5e1si
-oth2e
-oth1es
-oth3i4
-ot3ic.
-ot5i1ca
-o3tice
-o3tif2
-o3tis
-oto5s2
-o1to
-ou2
-ou3b2l2
-ouch5i
-ou2ch
-ou5et
-ou4l
-ounc5er
-oun2d
-ou5v2
-ov4en
-over4ne
-ove4r3s2
-ov4ert
-o3vis
-o4vi1ti4
-o5v4ol
-ow3der
-ow3el
-ow5est3
-ow1i2
-own5i
-o4wo2
-oy1a
-1pa
-pa4ca
-pa4ce
-pa2c4t
-p4a2d
-5paga4n
-pa1ga
-p3agat
-p4ai2
-pa4i4n4
-p4al
-pa1n4a
-pa2n
-pan3el
-pan4ty
-pan1t
-pa3ny
-pa1p
-pa4pu
-para5b2l2
-p2a2r
-pa2rab
-par5age
-par5d2i
-3pare
-par5el
-p4a4r1i
-par4is
-pa2te
-pa5ter
-5pathic
-p4ath
-pa5thy
-pa4tric
-pa1tr
-pav4
-3pay
-4p1b
-pd4
-4pe.
-3pe4a
-pear4l
-pe2a2r
-pe2c
-2p2ed
-3pede
-3p4edi
-pe3d4i3a4
-ped4ic
-p4ee
-pee4d
-pek4
-pe4la
-pel2i4e4
-pel2i
-pe4n2a2n
-pe1na
-p4enc
-pen4th
-pen1t
-pe5o2n
-p4era.
-per1a
-pera5b2l2
-pe2ra4b
-p4erag
-p4er1i
-peri5st
-per2is
-per4mal
-per3m4
-per1ma
-per2me5
-p4ern
-p2er3o
-per3ti
-p4e5ru
-per1v
-pe2t
-pe5ten
-pe5tiz
-4pf
-4pg
-4ph.
-phar5i
-ph2a2r
-ph4e3no
-phe2n
-ph4er
-ph4es.
-ph1es
-ph1ic
-5ph2ie4
-ph5ing
-5phis1t2i
-3phiz
-p4h2l4
-3phob
-3phone
-pho2n
-5phoni
-pho4r
-4p4h1s2
-ph3t
-5phu
-1phy
-p2i3a
-pi2a2n4
-pi4c2ie4
-p2i1ci
-pi4cy
-p4id
-p5i1d2a
-pi3de
-5pi2di
-3piec
-p2ie4
-pi3en
-pi4grap
-p2ig
-pi1gr
-pi3lo
-pi2n
-p4in.
-p4ind4
-p4i1no
-3p2i1o
-pio2n4
-p3ith
-pi5tha
-pi2tu
-2p3k2
-1p2l2
-3pla2n
-plas5t
-pl2i3a
-pli5er
-pl2ie4
-4pl2ig
-pli4n
-ploi4
-plu4m
-plu4m4b
-4p1m
-2p3n
-po4c
-5pod.
-po5em
-po3et5
-5po4g
-poin2
-poi2
-5poin1t
-poly5t
-po2ly
-po4ni
-po2n
-po4p
-1p4or
-po4ry
-1pos
-po2s1s
-p4ot
-po4ta
-5poun
-pou2
-4p1p
-ppa5ra
-p1pa
-pp2a2r
-p2pe
-p4p2ed
-p5pel
-p3pen
-p3per
-p3pe2t
-ppo5s2ite
-p1pos
-pr2
-pray4e4
-5pre1c2i
-pre5co
-pre3e2m
-pre4f5ac
-pre1f
-pre1fa
-pre4la
-pr1e3r4
-p3re1s2e
-3pr2e2ss
-pre5ten
-pre3v2
-5pr2i4e4
-prin4t3
-pr2i4s
-pri2s3o
-p3ro1ca
-pr2oc
-prof5it
-pro2fi
-pro3l
-pros3e
-pro1t
-2p1s2
-p2se
-ps4h
-p4si1b
-2p1t
-p2t5a4b
-p1ta
-p2te
-p2th
-p1ti3m
-ptu4r
-p1tu
-p4tw4
-pub3
-pue4
-puf4
-pu4l3c2
-pu4m
-pu2n
-pur4r4
-5p2us
-pu2t
-5pute
-put3er
-pu3tr
-put4t1ed
-pu4t3t2
-put4t1in
-p3w
-qu2
-qua5v4
-2que.
-3quer
-3quet
-2rab
-ra3bi
-rach4e2
-ra2ch
-r5a1c4l4
-raf5fi
-ra2f
-ra4f1f4
-ra2f4t
-r2ai2
-ra4lo
-ram3et
-r2ami
-ra3ne5o
-ra2n
-ran4ge
-r2ang
-r4ani
-ra5no4
-rap3er
-3ra1phy
-rar5c
-r2a2r
-rare4
-rar5e1f
-4raril
-rar1i
-r2as
-ratio2n4
-ra1t2io
-rau4t
-ra5vai2
-ra2va
-rav3el
-ra5z2ie4
-ra2z1i
-r1b
-r4bab
-r4bag
-rbi2
-r2b3i4f
-r2bin
-r5b2ine
-rb5ing.
-rb4o
-r1c
-r2ce
-r1cen4
-r3cha
-r2ch
-rch4er
-rche2
-r4ci4b
-r1ci
-r2c4it
-rcum3
-r4dal
-r1d2a
-rd2i
-r1d4i4a
-rdi4er
-rd2ie4
-rd1in4
-rd3ing
-2re.
-re1a4l
-re3a2n
-re5ar1r4
-re2a2r
-5rea2v
-re4aw
-r5ebrat
-r2e1b
-re3br
-rec5ol1l
-re2col
-re1co
-re4c5ompe
-reco4m1p
-re4cre
-re1cr
-2r2ed
-re1de
-re3dis1
-r4edi
-red5it
-re4fac
-re1f
-re1fa
-re2fe
-re5fer.
-refer1
-re3fi
-re4fy
-reg3is
-re5it
-rei2
-re1l2i
-re5lu
-r4en4ta
-ren1t
-ren4te
-re1o
-re5pi2n
-re4posi
-re1po
-re1pos
-re1pu
-r1er4
-r4er1i
-r2ero4
-r4e5ru
-r4es.
-re4spi
-re1sp
-res4s5i4b
-r2e2ss
-res1si
-res2t
-re5s2ta2l
-res1ta
-r2e3st4r
-re4ter
-re4ti4z
-re3tri
-r4eu2
-re5u1t2i
-rev2
-re4val
-re1va
-rev3el
-r5ev5er.
-rev1er
-re5ve4r1s2
-re5vert
-re5vi4l
-re1vi
-rev5olu
-re4wh
-r1f
-r3fu4
-r4fy
-rg2
-rg3er
-r3get
-r3g1ic
-rgi4n
-rg3ing
-r5gis
-r5git
-r1gl2
-rgo4n2
-r1go
-r3gu
-rh4
-4rh.
-4rhal
-r2i3a
-ria4b
-ri4ag
-r4ib
-rib3a
-ric5as5
-ri1ca
-r4ice
-4r2i1ci
-5ri5c2id
-ri4c2ie4
-r4i1co
-rid5er
-r2id
-ri3enc
-r2ie4
-ri3en1t
-ri1er
-ri5et
-rig5a2n
-r2ig
-ri1ga
-5r4igi
-ril3iz
-ril1i
-5rima2n
-ri1ma
-rim5i
-3ri1mo
-rim4pe
-ri4m1p
-r2i1na
-5rina.
-r4in4d
-r2in4e
-rin4g
-r2i1o
-5riph
-r2ip
-riph5e
-ri2p2l2
-rip5lic
-r4iq
-r2is
-r4is.
-r2is4c
-r3is2h
-ris4p
-ri3ta3b
-ri1ta
-r5ited.
-r2ite
-ri2t1ed
-rit5er.
-rit5e4r1s2
-r4i2t3ic
-ri1ti
-ri2tu
-rit5ur
-riv5el
-r2iv
-riv3et
-riv3i
-r3j
-r3ket
-rk4le
-rk1l
-rk4lin
-r1l
-rle4
-r2led
-r4l2ig
-r4lis
-rl5is2h
-r3lo4
-r1m
-rma5c
-r1ma
-r2me
-r3men
-rm5e4r1s2
-rm3ing
-r4ming.
-r4m2io
-r3mit
-r4my
-r4n2a2r
-r1na
-r3nel
-r4n1er
-r5net
-r3ney
-r5nic
-r1nis4
-r3n2it
-r3n2iv
-rno4
-r4nou2
-r3nu
-rob3l2
-r2oc
-ro3cr
-ro4e
-ro1fe
-ro5fil
-ro2fi
-r2ok2
-ro5k1er
-5role.
-rom5e1te
-ro2me
-ro4met
-rom4i
-ro4m4p
-ron4al
-ro2n
-ro1n1a
-ron4e
-ro5n4is
-ron4ta
-ron1t
-1room
-roo2
-5root
-ro3pel
-rop3ic
-ror3i
-ro5ro
-ro2s5per
-ro2s4s
-ro4th2e
-r4oth
-ro4ty
-ro4va
-rov5el
-rox5
-r1p
-r4pe4a
-r5pen1t
-rp5er.
-r3pe2t
-rp4h4
-rp3ing
-rpi2n
-r3po
-r1r4
-rre4c
-rre4f
-r4re1o
-rre4s2t
-rr2i4o
-rr2i4v
-rro2n4
-rros4
-rrys4
-4rs2
-r1sa2
-rsa5ti
-rs4c
-r2se
-r3sec
-rse4cr
-r4s5er.
-rs3e4s
-r5se5v2
-r1s2h
-r5sha
-r1si
-r4si4b
-rso2n3
-r1so
-r1sp
-r5sw2
-rta2ch4
-r1ta
-r4tag
-r3t2e1b
-r3ten4d
-r1te5o
-r1ti
-r2t5i2b
-rt2i4d
-r4tier
-rt2ie4
-r3t2ig
-rtil3i
-rtil4l
-r4ti1ly
-r4tist
-r4t2iv
-r3tri
-rtr2oph4
-rt4s2h4
-r4t1s2
-ru3a
-ru3e4l
-ru3en
-ru4gl2
-ru3i4n
-r2ui2
-rum3p2l2
-ru4m2p
-ru2n
-ru4nk5
-run4ty
-run1t
-r5usc2
-r2us
-ru2t1i5n
-r4u1t2i
-rv4e
-rvel4i
-r3ven
-rv5er.
-r5vest
-rv4e2s
-r3vey
-r3vic
-r3v2i4v
-r3vo
-r1w
-ry4c
-5rynge
-ryn5g
-ry3t
-sa2
-2s1ab
-5sack1
-sac3ri2
-s3a2c1t
-5sai2
-sa4l2a2r4
-s4a2l4m
-sa5lo
-sa4l4t
-3sanc
-sa2n
-san4de
-s4and
-s1ap
-sa5ta
-5sa3t2io
-sa2t3u
-sau4
-sa5vor
-5saw
-4s5b
-scan4t5
-s1ca
-sca2n
-sca4p
-scav5
-s4ced
-4s3cei2
-s4ces
-s2ch2
-s4cho2
-3s4c2ie4
-s1ci
-5sc4in4d
-s2cin
-scle5
-s1c4l4
-s4cli
-scof4
-s1co
-4scopy5
-scou1r5a
-scou2
-s1cu
-4s5d
-4se.
-se4a
-seas4
-sea5w
-se2c3o
-3se2c1t
-4s4ed
-se4d4e
-s5edl
-se2g
-se1g3r
-5sei2
-se1le
-5se2l2f
-5selv
-4se1me
-se4mol
-se1mo
-sen5at
-se1na
-4senc
-sen4d
-s5e2ned
-sen5g
-s5en1in
-4sen4t1d
-sen1t
-4sen2tl
-se2p3a3
-4s1er.
-s4er1l
-s2er4o
-4ser3vo
-s1e4s
-s4e5s2h
-ses5t
-5se5um
-s4eu
-5sev
-sev3en
-sew4i2
-5sex
-4s3f
-2s3g
-s2h
-2sh.
-sh1er
-5shev
-sh1in
-sh3io
-3sh2i4p
-sh2i2v5
-sho4
-sh5o2l2d
-sho2n3
-shor4
-short5
-4sh1w
-si1b
-s5ic3c
-3si2de.
-s2id
-5side4s2
-5si2di
-si5diz
-4sig1n4a
-s2ig
-sil4e
-4si1ly
-2s1in
-s2i1na
-5si2ne.
-s2ine
-s3ing
-1s2io
-5sio2n
-sio1n5a
-s4i2r
-si1r5a
-1sis
-3s2i1t2io
-si1ti
-5si1u
-1s2iv
-5siz
-sk2
-4ske
-s3ket
-sk5ine
-sk1i
-sk5in4g
-s1l2
-s3lat
-s2le
-sl2ith5
-sl1it
-2s1m
-s3ma
-smal1l3
-sma2n3
-smel4
-s5men
-5s4m2ith
-smo2l5d4
-s1mo
-s1n4
-1so
-so4ce
-so2ft3
-so4lab
-so1la
-so2l3d2
-so3lic
-sol2i
-5sol2v
-3som
-3s4on.
-so2n
-so1n1a4
-son4g
-s4op
-5soph1ic
-s2oph
-s5o3phiz
-s5o1phy
-sor5c
-sor5d
-4sov
-so5vi
-2s1pa
-5sp4ai2
-spa4n
-spen4d
-2s5peo
-2sper
-s2phe
-3sph4er
-spho5
-spil4
-sp5ing
-spi2n
-4s3p2i1o
-s4p1ly
-s1p2l2
-s4po2n
-s1p4or4
-4sp4ot
-squal4l
-squ2
-s1r
-2ss
-s1sa2
-ssas3
-s2s5c
-s3sel
-s5sen5g
-s4ses.
-ss1e4s
-s5set
-s1si
-s4s2ie4
-ssi4er
-s4s5i1ly
-s4s1l2
-ss4li
-s4s1n4
-sspen4d4
-ss2t
-ssu1r5a
-s1su
-ssu2r
-ss5w2
-2st.
-s2tag
-s1ta
-s2ta2l
-stam4i
-5st4and
-sta2n
-s4ta4p
-5stat.
-s4t1ed
-stern5i
-s5t2ero
-ste2w
-ste1w5a
-s3th2e
-st2i
-s4ti.
-s5t2i1a
-s1tic
-5s4tick1
-s4t2ie4
-s3tif2
-st3ing
-s2t1in
-5st4ir
-s1tle
-s2tl
-5stock1
-s1to
-sto2m3a
-5stone
-sto2n
-s4top
-3store
-st4r
-s4tra2d
-s1tra
-5stra2tu
-s4tray
-s4tr2id
-4stry
-4st3w4
-s2ty
-1su
-su1al
-su4b3
-su2g3
-su5is
-s2ui2
-suit3
-s4ul
-su2m
-su1m3i
-su2n
-su2r
-4sv
-sw2
-4s1wo2
-s4y
-4sy1c
-3syl
-syn5o
-sy5rin
-1ta
-3ta.
-2tab
-ta5bles2
-tab2l2
-5tab5o5l1iz
-tabol2i
-4t4a2ci
-ta5do
-ta2d
-4ta2f4
-tai5lo
-tai2
-ta2l
-ta5la
-tal5en
-t2ale
-tal3i
-4talk
-tal4lis
-tal1l
-tall2i
-ta5log
-ta5mo
-tan4de
-ta2n
-t4and
-1tan1ta3
-tan1t
-ta5per
-ta5p2l2
-tar4a
-t2a2r
-4tar1c
-4tare
-ta3r2iz
-tar1i
-tas4e
-ta5s4y
-4tat1ic
-ta4tur
-ta2tu
-taun4
-tav4
-2taw
-tax4is
-tax3i
-2t1b
-4tc
-t4ch
-tch5e4t
-tche2
-4t1d
-4te.
-te2ad4i
-tea2d1
-4tea2t
-te1ce4
-5te2c1t
-2t1ed
-t4e5di
-1tee
-teg4
-te5ger4
-te5gi
-3tel.
-tel2i4
-5te2l1s2
-te2ma2
-tem3at
-3ten2a2n
-te1na
-3tenc
-3tend
-4te1nes
-1ten1t
-ten4tag
-ten1ta
-1teo
-te4p
-te5pe
-ter3c
-5ter3d
-1ter1i
-ter5ies
-ter2ie4
-ter3is
-teri5za1
-5t4er3n2it
-ter5v
-4tes.
-4t2e2ss
-t3ess.
-teth5e
-3t4eu
-3tex
-4tey
-2t1f
-4t1g
-2th.
-tha2n4
-th2e
-4thea
-th3eas
-the5a2t
-the3is
-thei2
-3the4t
-th5ic.
-th5i1ca
-4th4il2
-5th4i4nk2
-4t4h1l4
-th5ode
-5thod3ic
-4thoo2
-thor5it
-tho5riz
-2t4h1s2
-1t2i1a
-ti4ab
-ti4a1to
-2ti2b
-4tick1
-t4i1co
-t4ic1u
-5ti2di
-t2id
-3tien
-t2ie4
-tif2
-ti5fy
-2t2ig
-5tigu
-til2l5in4
-til1l
-till2i
-1tim
-4ti4m1p
-tim5ul
-ti2mu
-2t1in
-t2i1na
-3ti2ne.
-t2ine
-3t2ini
-1t2io
-ti5oc
-tion5ee
-tio2n
-5tiq
-ti3sa2
-3t4ise
-ti2s4m
-ti5so
-tis4p
-5tisti1ca
-tis1t2i
-tis1tic
-ti3tl
-ti4u
-1t2iv
-ti1v4a
-1tiz
-ti3za1
-ti3ze4n
-ti2ze
-2tl
-t5la
-tla2n4
-3tle.
-3tled
-3tles.
-tles2
-t5let.
-t5lo
-4t1m
-tme4
-2t1n2
-1to
-to3b
-to5crat
-4to2do4
-2tof
-to2gr
-to5ic
-toi2
-to2ma
-to4m4b
-to3my
-ton4a4l1i
-to2n
-to1n1a
-to3n2at
-4tono
-4tony
-to2ra
-to3r2ie4
-tor5iz
-tos2
-5tour
-tou2
-4tout
-to3w2a2r
-4t1p
-1tra
-t2ra3b
-tra5ch
-tr4a2ci4
-tra2c4it
-trac4te
-tra2c1t
-tr2as4
-tra5ven
-trav5e2s5
-tre5f
-tre4m
-trem5i
-5tr2i3a
-tri5ces
-tr4ice
-5tri3c2i1a
-t4r2i1ci
-4tri4c3s2
-2trim
-tr2i4v
-tro5m4i
-tron5i
-tro2n
-4trony
-tro5phe
-tr2oph
-tro3sp
-tro3v
-tr2u5i2
-tr2us4
-4t1s2
-t4sc
-ts2h4
-t4sw2
-4t3t2
-t4tes
-t5to
-t1tu4
-1tu
-tu1a
-tu3a2r
-tu4b4i
-tud2
-4tue
-4tuf4
-5t2u3i2
-3tum
-tu4nis
-tu1ni
-2t3up.
-3ture
-5turi
-tur3is
-tur5o
-tu5ry
-3t2us
-4tv
-tw4
-4t1wa
-twis4
-twi2
-4t1wo2
-1ty
-4tya
-2tyl
-type3
-ty5ph
-4tz
-t2z4e
-4uab
-uac4
-ua5na
-ua2n
-uan4i
-uar5an1t
-u2a2r
-uara2n
-uar2d
-uar3i
-uar3t
-u1at
-uav4
-ub4e
-u4bel
-u3ber
-u4b2ero
-u1b4i
-u4b5ing
-u3b4le.
-ub2l2
-u3ca
-uci4b
-u1ci
-u2c4it
-ucle3
-u1c4l4
-u3cr
-u3cu
-u4cy
-ud5d4
-ud3er
-ud5est
-udes2
-ude1v4
-u1dic
-ud3ied
-ud2ie4
-ud3ies
-ud5is1
-u5dit
-u4do2n
-u1do
-ud4si
-u2d1s2
-u4du
-u4ene
-ue2n1s4
-uen4te
-uen1t
-uer4il
-uer1i
-3u1fa
-u3f4l2
-ugh3e2n
-ug5in
-2ui2
-uil5iz
-uil1i
-ui4n
-u1ing
-uir4m
-u4ir
-ui1ta4
-u2iv3
-ui4v4er.
-u5j
-4uk
-u1la
-ula5b
-u5lati
-ul2ch4
-u4l1c2
-5ulche2
-ul3der
-u2ld
-ul2de
-ul4e
-u1len
-ul4gi
-u4l1g4
-ul2i
-u5l2i1a
-ul3ing
-ul5is2h
-ul4l2a2r
-ul1l
-ul4li4b
-ull2i
-ul4lis
-4u2l3m
-u1l4o
-4u2l1s2
-uls5e4s
-ul2se
-ul1ti
-u4lt
-ul1tra3
-ul1tr
-4ul1tu2
-u3lu
-ul5ul
-ul5v
-u2m5ab
-u1ma
-um4bi
-u4m1b
-um4b1ly
-umb2l2
-u1mi
-u4m3ing
-umor5o
-u1mo
-umo2r
-u4m2p
-un2at4
-u1na
-u2ne
-un4er
-u1ni
-un4im
-u2n1in
-un5is2h
-un2i3v
-u2n3s4
-un4sw2
-un2t3a4b
-un1t
-un1ta
-un4ter.
-un4tes
-unu4
-un5y
-u4n5z
-u4o4rs2
-u5os
-u1ou2
-u1pe
-upe4r5s2
-u5p2i3a
-up3ing
-upi2n
-u3p2l2
-u4p3p
-upport5
-up1p4or
-up2t5i2b
-u2p1t
-up1tu4
-u1ra
-4ura.
-u4rag
-u4r2as
-ur4be
-ur1b
-ur1c4
-ur1d
-ure5a2t
-ur4fer1
-ur1f
-ur4fr
-u3rif
-uri4fic
-uri1fi
-ur1in
-u3r2i1o
-u1rit
-ur3iz
-ur2l
-url5ing.
-ur4no4
-uros4
-ur4pe
-ur1p
-ur4pi
-urs5er
-u4rs2
-ur2se
-ur5tes
-ur3th2e
-ur1ti4
-ur4t2ie4
-u3ru
-2us
-u5sa2d
-usa2
-u5sa2n
-us4ap
-usc2
-us3ci
-use5a
-u5s2i1a
-u3sic
-us4lin
-us1l2
-us1p
-us5s1l2
-u2ss
-us5tere
-us1t4r
-u2su
-usu2r4
-u2ta4b
-u1ta
-u3tat
-4u4te.
-4utel
-4uten
-uten4i
-4u1t2i
-uti5l2iz
-util1i
-u3t2ine
-u2t1in
-ut3ing
-utio1n5a
-u1t2io
-utio2n
-u4tis
-5u5tiz
-u4t1l
-u2t5of
-u1to
-uto5g
-uto5mat1ic
-uto2ma
-u5to2n
-u4tou2
-u4t1s4
-u3u
-uu4m
-u1v2
-ux1u3
-u2z4e
-1va
-5va.
-2v1a4b
-vac5il
-v4a2ci
-vac3u
-vag4
-va4ge
-va5l2i4e4
-val1i
-val5o
-val1u
-va5mo
-va5niz
-va2n
-va5pi
-var5ied
-v2a2r
-var1i
-var2ie4
-3vat
-4ve.
-4ved
-veg3
-v3el.
-vel3l2i
-vel1l
-ve4lo
-v4e1ly
-ven3om
-v4eno
-v5enue
-v4erd
-5v2e2re.
-v4erel
-v3eren
-ver5enc
-v4eres
-ver3ie4
-ver1i
-vermi4n
-ver3m4
-3ver2se
-ve4r1s2
-ver3th
-v4e2s
-4ves.
-ves4te
-ve4te
-vet3er
-ve4ty
-vi5al1i
-v2i1a
-vi2al
-5vi2a2n
-5vi2de.
-v2id
-5vi2d1ed
-4v3i1den
-5vide4s2
-5vi2di
-v3if
-vi5gn
-v2ig
-v4ik4
-2vil
-5v2il1it
-vil1i
-v3i3l2iz
-v1in
-4vi4na
-v2inc
-v4in5d
-4ving
-vi1o3l
-v2io
-v3io4r
-vi1ou2
-v2i4p
-vi5ro
-v4ir
-vis3it
-vi3so
-vi3su
-4vi1ti
-vit3r
-4vi1ty
-3v2iv
-5vo.
-voi4
-3v2ok
-vo4la
-v5ole
-5vo4l2t
-3vol2v
-vom5i
-vo2r5ab
-vo1ra
-vori4
-vo4ry
-vo4ta
-4vo1tee
-4vv4
-v4y
-w5ab2l2
-2wac
-wa5ger
-wa2g5o
-wait5
-wai2
-w5al.
-wam4
-war4t
-w2a2r
-was4t
-wa1te
-wa5ver
-w1b
-wea5r2ie4
-we2a2r
-wear1i
-we4ath3
-wea2t
-we4d4n4
-weet3
-wee5v
-wel4l
-w1er
-west3
-w3ev
-whi4
-wi2
-wil2
-wil2l5in4
-wil1l
-will2i
-win4de
-w4ind
-win4g
-w4ir4
-3w4ise
-w2ith3
-wiz5
-w4k
-wl4es2
-wl3in
-w4no
-1wo2
-wom1
-wo5v4en
-w5p
-wra4
-wri4
-wri1ta4
-w3s2h
-ws4l2
-ws4pe
-w5s4t
-4wt
-wy4
-x1a
-xac5e
-x4a2go
-xam3
-x4ap
-xas5
-x3c2
-x1e
-xe4cu1to
-xe1cu
-xe3c4ut
-x2ed
-xer4i
-x2e5ro
-x1h
-xhi2
-xh4il5
-xhu4
-x3i
-x2i5a
-xi5c
-xi5di
-x2id
-x4ime
-xi5m2iz
-xim1i
-x3o
-x4ob
-x3p
-xp4an4d
-x1pa
-xpa2n
-xpec1to5
-xpe2c
-xpe2c1t
-x2p2e3d
-x1t2
-x3ti
-x1u
-xu3a
-xx4
-y5ac
-3y2a2r4
-y5at
-y1b
-y1c
-y2ce
-yc5er
-y3ch
-ych4e2
-ycom4
-y1co
-ycot4
-y1d
-y5ee
-y1er
-y4er1f
-yes4
-ye4t
-y5gi
-4y3h
-y1i
-y3la
-ylla5b2l2
-yl1l
-y3lo
-y5lu
-ymbol5
-y4m1b
-yme4
-ym1pa3
-y4m1p
-yn3c4hr4
-yn2ch
-yn5d
-yn5g
-yn5ic
-5ynx
-y1o4
-yo5d
-y4o5g
-yom4
-yo5net
-yo2n
-y4o2n3s2
-y4os
-y4p2ed
-yper5
-yp3i
-y3po
-y4po4c
-yp2ta
-y2p1t
-y5pu
-yra5m
-yr5i3a
-y3ro
-yr4r4
-ys4c
-y3s2e
-ys3i1ca
-y1s3io
-3y1sis
-y4so
-y2ss4
-ys1t
-ys3ta
-ysu2r4
-y1su
-y3thin
-yt3ic
-y1w
-za1
-z5a2b
-z2a2r2
-4zb
-2ze
-ze4n
-ze4p
-z1er
-z2e3ro
-zet4
-2z1i
-z4il
-z4is
-5zl
-4zm
-1zo
-zo4m
-zo5ol
-zoo2
-zte4
-4z1z2
-z4zy
-.as9s8o9c8i8a8te.
-.as1so
-.asso1ci
-.asso3c2i1a
-.as9s8o9c8i8a8t8es.
-.de8c9l8i9n8a9t8i8on.
-.de1c4l4
-.decl4i1na
-.declin2at
-.declina1t2io
-.declinatio2n
-.ob8l8i8g9a9t8o8ry.
-.ob2l2
-.obl2ig
-.obli1ga
-.obliga1to
-.obligato1ry
-.ph8i8l9a8n9t8h8r8o8p8ic.
-.ph4il2
-.phi1la
-.phila2n
-.philan1t
-.philant4hr4
-.philanthrop3ic
-.pr8e8s8e8nt.
-.p3re1s2e
-.presen1t
-.pr8e8s8e8n8ts.
-.presen4t4s2
-.pr8o8j8e8ct.
-.pro5j
-.pro1je
-.proje2c1t
-.pr8o8j8e8c8ts.
-.projec4t1s2
-.re8c9i9p8r8o8c9i9t8y.
-.re1c2i
-.rec2ip
-.recipr2
-.recipr2oc
-.re1cipro1ci
-.recipro2c1it
-.reciproci1ty
-.re9c8o8g9n8i9z8a8n8ce.
-.re1co
-.re2cog
-.rec3ogniz
-.recog1ni
-.recogniza1
-.recogniza2n
-.re8f9o8r9m8a9t8i8on.
-.re1f
-.re1fo
-.refo2r
-.refor1m
-.refor1ma
-.reforma1t2io
-.reformatio2n
-.re8t9r8i9b8u9t8i8on.
-.re3tri
-.retr4ib
-.retri3bu1t2io
-.retrib4u1t2i
-.retributio2n
-.ta9b8le.
-.2tab
-.tab2l2
-.ac8a8d9e9m8y.
-.a1ca
-.aca2d
-.acad4em
-.acade3my
-.ac8a8d9e9m8i8e8s.
-.academ2i4e4
-.ac9c8u9s8a9t8i8v8e.
-.ac3c
-.ac1c2us
-.accusa2
-.accusa1t2iv
-.ac8r8o9n8y8m.
-.acro2n
-.acronym4
-.ac8r8y8l9a8m8i8d8e.
-.acry3la
-.acrylam2id
-.ac8r8y8l9a8m8i8d8e8s.
-.acrylamide4s2
-.ac8r8y8l9a8l8d8e9h8y8d8e.
-.acryla2ld
-.acrylal2de
-.acrylalde1h4
-.acrylaldehy1d
-.ad8d9a9b8l8e.
-.ad1d2a
-.ad2d3a4b
-.addab2l2
-.ad8d9i9b8l8e.
-.addi1b2l2
-.ad8r8e8n9a9l8i8n8e.
-.a1dr
-.adre4
-.a5dren
-.adre1na
-.adrena4l1i
-.adrena1l4ine
-.ae8r8o9s8p8a8c8e.
-.ae4r
-.a2ero
-.aero2s4pa
-.aerospa4ce
-.af9t8e8r9t8h8o8u8g8h8t.
-.afterthou2
-.af9t8e8r9t8h8o8u8g8h8t8s.
-.afterthough4t1s2
-.ag8r8o8n9o9m8i8s8t.
-.a1gr
-.ag4ro
-.agro2n
-.agronom2is
-.ag8r8o8n9o9m8i8s8t8s.
-.agronomis4t1s2
-.al9g8e9b8r8a9i9c8a8l9l8y.
-.a4l1g4
-.alg2e1b
-.alge3br
-.algebr2ai2
-.algebrai1ca
-.algebraical1l
-.algebraical1ly
-.am9p8h8e8t9a9m8i8n8e.
-.a4m1p
-.amphe4t
-.amphe1ta
-.amphetam1in
-.amphetam2ine
-.am9p8h8e8t9a9m8i8n8e8s.
-.amphetami1nes
-.an9a9l8y8s8e.
-.3ana1ly
-.a1na
-.an4a2lys4
-.anal5y3s2e
-.an9a9l8y8s8e8d.
-.analy4s4ed
-.an8a8l8y9s8e8s.
-.analys1e4s
-.an9i8s8o9t8r8o8p9i8c.
-.ani2so
-.anisotrop3ic
-.an9i8s8o9t8r8o8p9i9c8a8l9l8y.
-.anisotropi1ca
-.anisotropical1l
-.anisotropical1ly
-.an9i8s8o8t9r8o9p8i8s8m.
-.anisotropi2s1m
-.an9i8s8o8t9r8o8p8y.
-.anisotropy5
-.an8o8m9a8l8y.
-.ano4
-.anoma5l
-.ano1ma
-.anoma1ly
-.an8o8m9a8l8i8e8s.
-.anomal1i
-.anomal2i4e4
-.an8t8i9d8e8r8i8v9a9t8i8v8e.
-.ant2id
-.antider1i
-.antider2i4v
-.antide4ri1va
-.antideri3vat
-.antider2iva1t2iv
-.an8t8i9d8e8r8i8v9a9t8i8v8e8s.
-.antiderivativ4e2s
-.an8t8i9h8o8l8o9m8o8r9p8h8i8c.
-.anti3h
-.antiholo1mo
-.antiholomo2r
-.antiholomor1p
-.antiholomorp4h4
-.antiholomorph1ic
-.an9t8i8n9o9m8y.
-.an2t1in
-.ant2i1no
-.antino3my
-.an9t8i8n9o9m8i8e8s.
-.antinom2ie4
-.an9t8i9n8u9c8l8e8a8r.
-.antin1u
-.antinucle3
-.antinu1c4l4
-.antinucle2a
-.antinucle2a2r
-.an9t8i9n8u9c8l8e9o8n.
-.antinucleo2n
-.an9t8i9r8e8v9o9l8u9t8i8o8n9a8r8y.
-.ant4ir
-.antirev2
-.antirev5olu
-.antirevo1lut
-.antirevol4u1t2i
-.antirevolutio1n5a
-.antirevolu1t2io
-.antirevolutio2n
-.antirevolution2a2r
-.ap8o8t8h9e9o9s8e8s.
-.ap4ot
-.ap4oth
-.apoth2e
-.apotheos4
-.apotheos1e4s
-.ap8o8t8h9e9o9s8i8s.
-.apotheo1sis
-.ap9p8e8n9d8i8x.
-.a4p1p
-.ap2pe
-.ap3pen
-.ar9c8h8i9m8e9d8e8a8n.
-.ar1c
-.ar2ch
-.archi2med
-.archimedea2n
-.ar9c8h8i9p8e8l9a8g8o.
-.arch2i4p
-.archipe4
-.archipe4la
-.archipela2go
-.ar9c8h8i9p8e8l9a9g8o8s.
-.ar9c8h8i8v8e.
-.arch2i2v
-.ar9c8h8i8v8e8s.
-.archiv4e2s
-.ar9c8h8i8v9i8n8g.
-.archiv1in
-.archi4ving
-.ar9c8h8i8v9i8s8t.
-.ar9c8h8i8v9i8s8t8s.
-.archivis4t1s2
-.ar9c8h8e9t8y8p9a8l.
-.arche2
-.arche4t
-.arche1ty
-.archety1pa
-.archetyp4al
-.ar9c8h8e9t8y8p9i9c8a8l.
-.archetyp3i
-.archetypi1ca
-.ar8c9t8a8n9g8e8n8t.
-.ar2c1t
-.arct5ang
-.arc1ta
-.arcta2n
-.arctan1gen
-.arctangen1t
-.ar8c9t8a8n9g8e8n8t8s.
-.arctangen4t4s2
-.as9s8i8g8n9a9b8l8e.
-.as1si
-.as4sig1n4a
-.ass2ig
-.assig2n1a2b
-.assignab2l2
-.as9s8i8g8n9o8r.
-.assig1no
-.as9s8i8g8n9o8r8s.
-.assigno4rs2
-.as9s8i8s8t9a8n8t9s8h8i8p.
-.as1sis
-.assis1ta
-.assista2n
-.assistan1t
-.assistan4t4s2
-.assistants2h4
-.assistant3sh2i4p
-.as9s8i8s8t9a8n8t9s8h8i8p8s.
-.assistantshi2p1s2
-.as8y8m8p9t8o9m8a8t8i8c.
-.as4y
-.asy4m1p
-.asym2p1t
-.asymp1to
-.asympto2ma
-.asymptomat1ic
-.as9y8m8p9t8o8t9i8c.
-.as8y8n9c8h8r8o9n8o8u8s.
-.asyn3c4hr4
-.asyn2ch
-.asynchro2n
-.asynchro1nou2
-.asynchrono2us
-.at8h9e8r9o9s8c8l8e9r8o9s8i8s.
-.4ath
-.ath2e
-.ath2ero
-.atheros2c
-.atheroscle5
-.atheros1c4l4
-.ath2eroscl4ero
-.atherosclero1sis
-.at9m8o8s9p8h8e8r8e.
-.a4t1m
-.at1mo
-.atmos2
-.atmo3sp
-.atmos2phe
-.atmo3sph4er
-.at9m8o8s9p8h8e8r8e8s.
-.at9t8r8i8b9u8t8e8d.
-.a4t3t2
-.attr4ib
-.attribu2t1ed
-.at9t8r8i8b9u8t9a8b8l8e.
-.attri4bu1ta
-.attribu2ta4b
-.attributab2l2
-.au9t8o9m8a9t8i8o8n.
-.au1to
-.auto2ma
-.automa1t2io
-.automatio2n
-.au9t8o8m9a9t8o8n.
-.automa1to
-.automato2n
-.au9t8o8m9a9t8a.
-.automa2ta
-.au9t8o9n8u8m9b8e8r9i8n8g.
-.au5to2n
-.auton5um
-.autonu4m1b
-.autonumber1i
-.autonumberin4g
-.au9t8o8n9o9m8o8u8s.
-.au4tono
-.autono4mo
-.autono3mo2us
-.autonomou2
-.au8t8o9r8o8u8n8d9i8n8g.
-.autorou2
-.autoroun2d
-.autoround1in
-.av9o8i8r9d8u9p8o8i8s.
-.avoi4
-.avo4ir
-.avoir1du
-.avoir4dup
-.avoirdupoi2
-.ba8n8d9l8e8a8d8e8r.
-.b4and
-.ban1dl
-.bandle2a
-.bandlea2d1
-.ba8n8d9l8e8a8d8e8r8s.
-.bandleade4r5s2
-.ba8n8k9r8u8p8t.
-.ba4nk2
-.bankru2p1t
-.ba8n8k9r8u8p8t9c8y.
-.bankrup4tc
-.bankrupt1cy
-.ba8n8k9r8u8p8t9c8i8e8s.
-.bankrupt1ci
-.bankruptc2ie4
-.ba8r9o8n8i8e8s.
-.b2a2r
-.ba5roni
-.baro2n
-.baron2ie4
-.ba8s8e9l8i8n8e9s8k8i8p.
-.basel2i
-.base1l4ine
-.baseli1nes
-.baselinesk2
-.baselinesk1i
-.baselinesk2i4p
-.ba9t8h8y8m9e9t8r8y.
-.1bat
-.b4ath
-.bathyme4
-.bathym4etr
-.bathyme3try
-.ba8t8h8y9s8c8a8p8h8e.
-.bathy2s
-.bathys4c
-.bathysca4p
-.bathys1ca
-.be8a8n9i8e8s.
-.bea2n
-.bea3nies
-.bean2ie4
-.be9h8a8v9i8o8u8r.
-.be1h4
-.behav1i
-.behavi1ou2
-.behav2io
-.behavi4our
-.be9h8a8v9i8o8u8r8s.
-.behaviou4rs2
-.be8v8i8e8s.
-.be1vi
-.bev2ie4
-.bi8b9l8i9o8g9r8a9p8h8y9s8t8y8l8e.
-.bi2b
-.bi1b2l2
-.bib3li
-.bibli5og
-.bibl2io
-.biblio2gr
-.biblio4g3ra1phy
-.bibliography2s
-.bibliographys1t
-.bibliographys2ty
-.bibliographys2tyl
-.bi9d8i8f9f8e8r9e8n9t8i8a8l.
-.b2i4d
-.bi2di
-.bid1if
-.bidi4f1f
-.bidiffer1
-.bidiffer3en1t
-.bidifferent2i
-.bidifferen1t2i1a
-.bidifferenti2al
-.bi8g9g8e8s8t.
-.b2ig
-.bi4g1g2
-.big2ge
-.bi8l8l9a8b8l8e.
-.1bil
-.bill5ab
-.bil1l
-.billab2l2
-.bi8o9m8a8t8h9e9m8a8t9i8c8s.
-.b2io
-.bio4m
-.bio1ma
-.biom4ath3
-.biomath5em
-.biomath2e
-.biomathe1ma
-.biomathemat1ic
-.biomathemati4c3s2
-.bi8o9m8e8d9i9c8a8l.
-.bio2me
-.bio2med
-.biom4edi
-.biomed3i1ca
-.bi8o9m8e8d9i9c8i8n8e.
-.biomed2i1ci
-.biomedi2cin
-.biomedic2ine
-.bi8o9r8h8y8t8h8m8s.
-.biorh4
-.biorhyt4h1m
-.biorhyth4m1s2
-.bi8t9m8a8p.
-.bi2t
-.bi4t1m
-.bit1ma
-.bit4map
-.bi8t9m8a8p8s.
-.bitma2p1s2
-.bl8a8n8d9e8r.
-.b2l2
-.b3l4and
-.bla2n
-.blan1de
-.bl8a8n8d9e8s8t.
-.blande4s2
-.bl8i8n8d9e8r.
-.bl4ind
-.blin1de
-.bl8o8n8d8e8s.
-.b4lo
-.blo2n
-.bl2ond
-.blon1de
-.blondes2
-.bl8u8e9p8r8i8n8t.
-.bluepr2
-.blueprin4t3
-.bl8u8e9p8r8i8n8t8s.
-.blueprin4t4s2
-.bo9l8o8m9e9t8e8r.
-.bolo2me
-.bolo4met
-.bolome1te
-.bo8o8k9s8e8l8l9e8r.
-.3boo2
-.bo2o4k
-.boo4k1s2
-.booksel1l
-.booksel2le
-.bo8o8k9s8e8l8l9e8r8s.
-.bookselle4r1s2
-.bo8o8l9e8a8n.
-.boole2a
-.boolea2n
-.bo8o8l9e8a8n8s.
-.boolea2n1s2
-.bo8r9n8o9l8o8g9i9c8a8l.
-.borno4
-.borno3log1ic
-.bornologi1ca
-.bo8t9u9l8i8s8m.
-.bo1tu
-.botul2i
-.botuli2s1m
-.br8u8s8q8u8e8r.
-.br2us
-.brusqu2
-.brus3quer
-.bu8f9f8e8r.
-.buf4fer1
-.bu4f1f
-.bu8f9f8e8r8s.
-.buffe4r1s2
-.bu8s8i8e8r.
-.bus5ie4
-.b2us
-.bu8s8i8e8s8t.
-.busi1est
-.bu8s8s8i8n8g.
-.bu2ss
-.bus1si
-.bus2s1in
-.buss3ing
-.bu8t8t8e8d.
-.but2t1ed
-.bu8z8z9w8o8r8d.
-.bu4z1z2
-.buzz1wo2
-.bu8z8z9w8o8r8d8s.
-.buzzwor2d1s2
-.ca9c8o8p8h9o9n8y.
-.ca1co
-.cac2oph
-.cacopho5ny
-.cacopho2n
-.ca9c8o8p8h9o9n8i8e8s.
-.caco5phoni
-.cacophon2ie4
-.ca8l8l9e8r.
-.cal1l
-.cal2le
-.ca8l8l9e8r8s.
-.calle4r1s2
-.ca8m9e8r8a9m8e8n.
-.cam5er1a
-.camera1men
-.ca8r8t9w8h8e8e8l.
-.cartw4
-.ca8r8t9w8h8e8e8l8s.
-.cartwhee2l1s2
-.ca9t8a8r8r8h8s.
-.ca2ta
-.cat2a2r
-.catar1r4
-.catarrh4
-.catarr4h1s2
-.ca8t9a9s8t8r8o8p8h9i8c.
-.catas1t4r
-.catastr2oph
-.catastroph1ic
-.ca8t9a9s8t8r8o8p8h9i9c8a8l8l8y.
-.catastrophi1ca
-.catastrophical1l
-.catastrophical1ly
-.ca8t9e9n8o8i8d.
-.cat4eno
-.catenoi2
-.cateno2id
-.ca8t9e9n8o8i8d8s.
-.catenoi2d1s2
-.ca8u9l8i9f8l8o8w9e8r.
-.cau4l2
-.caul2i
-.cauli4f4l2
-.cauliflow1er
-.ch8a8p9a8r9r8a8l.
-.chap2a2r4
-.cha1pa
-.chapar1r4
-.ch8a8r9t8r8e8u8s8e.
-.ch2a2r
-.chartr4eu2
-.chartre2us4
-.ch8e8m8o9t8h8e8r9a8p8y.
-.che2
-.che1mo
-.chem4oth3
-.chemoth2e
-.chemoth4er1a
-.chemothera3p
-.ch8e8m8o9t8h8e8r9a9p8i8e8s.
-.chemotherap2ie4
-.ch8l8o8r8o9m8e8t8h9a8n8e.
-.c4h1l4
-.ch2lo
-.chloro2me
-.chloro4met
-.chlorometha2n4
-.ch8l8o8r8o9m8e8t8h9a8n8e8s.
-.chlorometha1nes
-.ch8o9l8e8s9t8e8r8i8c.
-.3cho2
-.c3hol4e
-.choles2
-.choles1ter1i
-.ci8g9a9r8e8t8t8e.
-.c2ig
-.ci1ga
-.cig2a2r
-.cigare4t3t2
-.ci8g9a9r8e8t8t8e8s.
-.cigaret4tes
-.ci8n8q8u8e9f8o8i8l.
-.2cin
-.cin1q
-.cinqu2
-.cinque1f
-.cinque1fo
-.cinquefoi2
-.co9a8s8s8o9c8i8a9t8i8v8e.
-.c4oa
-.coa2ss
-.coas1so
-.coasso1ci
-.coasso3c2i1a
-.coassoci4a1t2iv
-.co9g8n8a8c.
-.2cog
-.cog1n4a
-.co9g8n8a8c8s.
-.cogna4c3s2
-.co9k8e8r9n8e8l.
-.c2ok
-.cok1er
-.coker3nel
-.co9k8e8r9n8e8l8s.
-.cokerne2l1s2
-.co8l9l8i8n9e8a9t8i8o8n.
-.col1l
-.coll2i
-.col2lin4
-.col1l4ine
-.collin3ea
-.collinea2t
-.collinea1t2io
-.collineatio2n
-.co8l9u8m8n8s.
-.colu4m1n
-.colum2n1s2
-.co8m9p8a8r9a8n8d.
-.co4m1p
-.compara5
-.com1pa
-.comp2a2r
-.compara2n
-.compar4and
-.co8m9p8a8r9a8n8d8s.
-.comparan2d1s2
-.co8m9p8e8n9d8i8u8m.
-.compendi1u
-.co8m9p8o9n8e8n8t9w8i8s8e.
-.compo2n
-.compo3nen
-.componen1t
-.componentw4
-.componentwis4
-.componentwi2
-.component3w4ise
-.co8m8p9t8r8o8l9l8e8r.
-.comp4tr
-.com2p1t
-.comptrol1l
-.comptrol2le
-.co8m8p9t8r8o8l9l8e8r8s.
-.comptrolle4r1s2
-.co8n9f8o8r8m9a8b8l8e.
-.co2n
-.con3f
-.con1fo
-.confo2r
-.confor1m
-.confor1ma
-.confor2mab
-.conformab2l2
-.co8n9f8o8r8m9i8s8t.
-.confor2mi
-.conform2is
-.co8n9f8o8r8m9i8s8t8s.
-.conformis4t1s2
-.co8n9f8o8r8m9i8t8y.
-.confor3mit
-.conformi1ty
-.co8n9g8r8e8s8s.
-.con3g
-.con1gr
-.congr2e2ss
-.co8n9g8r8e8s8s8e8s.
-.congress1e4s
-.co8n9t8r8i8b9u8t8e.
-.con5t
-.contr4ib
-.co8n9t8r8i8b9u8t8e8s.
-.co8n9t8r8i8b9u8t8e8d.
-.contribu2t1ed
-.co9r8e9l8a9t8i8o8n.
-.core1la
-.corela1t2io
-.corelatio2n
-.co9r8e9l8a9t8i8o8n8s.
-.corelatio2n3s2
-.co9r8e9l8i9g8i8o8n9i8s8t.
-.core1l2i
-.corel2ig
-.corel4igi
-.coreli5g2io
-.coreligion3i
-.coreligio2n
-.coreligion1is
-.co9r8e9l8i9g8i8o8n9i8s8t8s.
-.coreligionis4t1s2
-.co9r8e9o8p9s8i8s.
-.core1o
-.coreo2p1s2
-.coreop1sis
-.co9r8e9s8p8o8n9d8e8n8t.
-.core1sp
-.cores4po2n
-.coresp2ond
-.corespon1de
-.corespon1den
-.coresponden1t
-.co9r8e9s8p8o8n9d8e8n8t8s.
-.coresponden4t4s2
-.co9s8e9c8a8n8t.
-.cos4e
-.cose1ca
-.coseca2n
-.cosecan1t
-.co9t8a8n9g8e8n8t.
-.co4ta2n
-.co1ta
-.cot2ang
-.cotan1gen
-.cotangen1t
-.co8u8r9s8e8s.
-.cou2
-.cou4rs2
-.cour2se
-.cours3e4s
-.co9w8o8r8k9e8r.
-.co4wo2
-.cowork1er
-.co9w8o8r8k9e8r8s.
-.coworke4r1s2
-.cr8a8n8k9c8a8s8e.
-.cra2n
-.cra4nk2
-.crank1ca
-.cr8a8n8k9s8h8a8f8t.
-.cran4k1s2
-.cranks2h
-.cranksha2f
-.cranksha2ft
-.cr8o8c9o9d8i8l8e.
-.cr2oc
-.cro4cod
-.cro1co
-.cr8o8c9o9d8i8l8e8s.
-.crocodiles2
-.cr8o8s8s9h8a8t8c8h.
-.cro2s4s
-.cross2h
-.crossha4tc
-.crosshat4ch
-.cr8o8s8s9h8a8t8c8h8e8d.
-.crosshatche2
-.crosshat4ch4ed
-.cr8o8s8s9o8v8e8r.
-.cros1so
-.cros4sov
-.cr8y8p9t8o9g8r8a8m.
-.cry2p1t
-.cryp1to
-.crypto2gr
-.cr8y8p9t8o9g8r8a8m8s.
-.cryptogra4m1s2
-.cu8f8f9l8i8n8k.
-.c4uf
-.cu4f1f
-.cuff4l2
-.cufflin4
-.cuffl4i4nk2
-.cu8f8f9l8i8n8k8s.
-.cufflin4k1s2
-.cu9n8e8i9f8o8r8m.
-.3cun
-.cu2ne
-.cunei2
-.cunei1fo
-.cuneifo2r
-.cuneifor1m
-.cu8s9t8o8m9i8z9a9b8l8e.
-.1c2us
-.cus1to
-.custom2iz
-.customiza1
-.customiz5a2b
-.customizab2l2
-.cu8s9t8o8m9i8z8e.
-.customi2ze
-.cu8s9t8o8m9i8z8e8s.
-.cu8s9t8o8m9i8z8e8d.
-.da8c8h8s9h8u8n8d.
-.1d2a
-.da2ch4
-.dac4h1s2
-.dach4s2h
-.da8m9s8e8l9f8l8y.
-.da2m2
-.da4m1s2
-.dam5se2l2f
-.damself4l2
-.damself2ly5
-.da8m9s8e8l9f8l8i8e8s.
-.damselfl2ie4
-.da8c8t8y8l9o9g8r8a8m.
-.da2c1t
-.dac1ty
-.dac2tyl
-.dacty3lo
-.dactylo1gr
-.da8c8t8y8l9o9g8r8a8p8h.
-.da8t8a9b8a8s8e.
-.3dat
-.da2ta
-.da2tab
-.da8t8a9b8a8s8e8s.
-.databas1e4s
-.da8t8a9p8a8t8h.
-.dat5ap
-.datap5at
-.data1pa
-.datap4ath
-.da8t8a9p8a8t8h8s.
-.datapa2t4h1s2
-.da8t8e9s8t8a8m8p.
-.dat3est
-.dates1ta
-.datesta4m1p
-.da8t8e9s8t8a8m8p8s.
-.datestam2p1s2
-.de9c8l8a8r9a8b8l8e.
-.de4cl2a2r
-.decla2rab
-.declarab2l2
-.de9f8i8n9i9t8i8v8e.
-.de1f
-.de1fi
-.de2fin
-.def2ini
-.defin2it
-.defini1ti
-.defini1t2iv
-.de9l8e8c9t8a9b8l8e.
-.d5elec
-.dele2c1t
-.delec2ta4b
-.delec1ta
-.delectab2l2
-.de8m8i9s8e8m8i9q8u8a9v8e8r.
-.de4m2is
-.dem4ise
-.demisemi3qua
-.demisemiqu2
-.demisemiqua5v4
-.de8m8i9s8e8m8i9q8u8a9v8e8r8s.
-.demisemiquave4r1s2
-.de9m8o8c9r8a9t8i8s8m.
-.de4mocr
-.democrati2s4m
-.de8m8o8s.
-.demos2
-.de9r8i8v9a9t8i8v8e.
-.der2i4v
-.de4ri1va
-.deri3vat
-.der2iva1t2iv
-.de9r8i8v9a9t8i8v8e8s.
-.derivativ4e2s
-.di8a9l8e8c9t8i8c.
-.1d4i3a
-.di2al
-.di2ale
-.diale2c1t
-.di8a9l8e8c9t8i8c8s.
-.dialecti4c3s2
-.di8a9l8e8c9t8i9c8i8a8n.
-.dialect2i1ci
-.d2i1alecti3c2i1a
-.dialectici2a2n
-.di8a9l8e8c9t8i9c8i8a8n8s.
-.dialecticia2n1s2
-.di9c8h8l8o8r8o9m8e8t8h9a8n8e.
-.d4i2ch
-.dic4h1l4
-.dich2lo
-.dichloro2me
-.dichloro4met
-.dichlorometha2n4
-.di8f9f8r8a8c8t.
-.d1if
-.dif4fr
-.di4f1f
-.diffra2c1t
-.di8f9f8r8a8c8t8s.
-.diffrac4t1s2
-.di8f9f8r8a8c9t8i8o8n.
-.diffrac1t2io
-.diffractio2n
-.di8f9f8r8a8c9t8i8o8n8s.
-.diffractio2n3s2
-.di8r8e8r.
-.d4ir2
-.di1re
-.dir1er4
-.di8r8e9n8e8s8s.
-.dire1nes
-.diren2e2ss
-.di8s9p8a8r9a8n8d.
-.dis1
-.dis1p
-.di2s1pa
-.disp2a2r
-.dispara2n
-.dispar4and
-.di8s9p8a8r9a8n8d8s.
-.disparan2d1s2
-.di8s9t8r8a8u8g8h8t9l8y.
-.d4is3t
-.dist4r
-.dis1tra
-.distraugh3
-.distraugh2tl
-.distraught1ly
-.di8s9t8r8i8b9u8t8e.
-.distr4ib
-.di8s9t8r8i8b9u8t8e8s.
-.di8s9t8r8i8b9u8t8e8d.
-.distribu2t1ed
-.do8u9b8l8e9s8p8a8c8e.
-.dou2
-.dou3b2l2
-.dou5ble1sp
-.doubles2
-.double2s1pa
-.doublespa4ce
-.do8u9b8l8e9s8p8a8c9i8n8g.
-.doublesp4a2ci
-.doublespa2c1in
-.doublespac1ing
-.do8l8l9i8s8h.
-.dol1l
-.doll2i
-.dollis2h
-.dr8i8f8t9a8g8e.
-.1dr
-.dr4i2ft
-.drif1ta
-.dr8i8v9e8r8s.
-.dr2iv
-.drive4r1s2
-.dr8o8m9e9d8a8r8y.
-.dro2me
-.dro2med
-.drom2e2d2a
-.drome4dary
-.dromed2a2r
-.dr8o8m9e9d8a8r8i8e8s.
-.dromedar1i
-.dromedar2ie4
-.du9o8p9o9l8i8s8t.
-.duopol2i
-.du9o8p9o9l8i8s8t8s.
-.duopolis4t1s2
-.du9o8p9o8l8y.
-.duopo2ly
-.dy8s9l8e8x8i8a.
-.d2y
-.dys1l2
-.dys2le
-.dyslex3i
-.dyslex2i5a
-.dy8s9l8e8c9t8i8c.
-.dysle2c1t
-.ea8s8t9e8n8d9e8r8s.
-.east3
-.eas3ten
-.eas3tend
-.easten1de
-.eastende4r5s2
-.ec8o9n8o8m9i8c8s.
-.e1co
-.eco2n
-.eco3nomic
-.economi4c3s2
-.ec8o8n9o9m8i8s8t.
-.econom2is
-.ec8o8n9o9m8i8s8t8s.
-.economis4t1s2
-.ei9g8e8n9c8l8a8s8s.
-.ei2
-.e2ig2
-.ei1gen
-.eigen1c4l4
-.eigencla2ss
-.ei9g8e8n9c8l8a8s8s8e8s.
-.eigenclass1e4s
-.ei9g8e8n9v8a8l9u8e.
-.eigen1v2
-.eigen1va
-.eigenval1u
-.ei9g8e8n9v8a8l9u8e8s.
-.el8e8c8t8r8o9m8e8c8h8a8n9i9c8a8l.
-.5elec
-.ele2c1t
-.electro2me
-.electrome2ch
-.electrome5cha4n1ic
-.electromecha2n
-.electromechani1ca
-.el8e8c8t8r8o9m8e8c8h8a8n8o9a8c8o8u8s8t8i8c.
-.electromechano4
-.electromechan4oa
-.electromechanoa1co
-.electromechanoacou2
-.electromechanoaco2us
-.electromechanoacoust2i
-.electromechanoacous1tic
-.el8i8t9i8s8t.
-.el2i
-.el1it
-.eli1ti
-.el4itis
-.el8i8t9i8s8t8s.
-.elitis4t1s2
-.en9t8r8e9p8r8e9n8e8u8r.
-.en1t
-.entrepr2
-.entrepren4eu
-.en9t8r8e9p8r8e9n8e8u8r9i8a8l.
-.entrepreneur2i3a
-.entrepreneuri2al
-.ep9i9n8e8p8h9r8i8n8e.
-.epi2n
-.ep2ine
-.epinep4hr4
-.ep2inephr2in4e
-.eq8u8i9v8a8r8i9a8n8t.
-.equ2iv3
-.equi1va
-.equiv2a2r
-.equivar1i
-.equivar3i2a2n
-.equivar2i3a
-.equivar4ian4t
-.eq8u8i9v8a8r8i9a8n8c8e.
-.equivar4ianc
-.et8h9a8n8e.
-.etha2n4
-.et8h9y8l9e8n8e.
-.ev8e8r9s8i9b8l8e.
-.ev1er
-.eve4r1s2
-.ever1si
-.ever4si4b
-.eversi1b2l2
-.ev8e8r8t.
-.ev8e8r8t8s.
-.ever4t1s2
-.ev8e8r8t9e8d.
-.ever2t1ed
-.ev8e8r8t9i8n8g.
-.ever1ti
-.ever2t1in
-.ex9q8u8i8s9i8t8e.
-.exqu2
-.exq2ui2
-.exquis2ite
-.ex9t8r8a9o8r9d8i9n8a8r8y.
-.ex1t2
-.ex1tra
-.extr4ao
-.extraord2i
-.extraord1in4
-.extraor1di1na
-.extraordin2a2r
-.fa8l8l9i8n8g.
-.1fa
-.fal1l
-.fall2i
-.fal2lin4
-.fe8r8m8i9o8n8s.
-.fer1
-.fer3m4
-.fer4m2io
-.fermio2n
-.fermio2n3s2
-.fi9n8i8t8e9l8y.
-.1fi
-.2fin
-.f2ini
-.fin2it
-.fin2ite
-.finite1ly
-.fl8a9g8e8l9l8u8m.
-.f4l2
-.flag5el1l
-.fl8a9g8e8l9l8a.
-.flag4ella
-.fl8a8m9m8a9b8l8e8s.
-.flam1m
-.flam1ma
-.flam2mab
-.flammab2l2
-.flammables2
-.fl8e8d8g9l8i8n8g.
-.fledgl2
-.fl8o8w9c8h8a8r8t.
-.flow2ch
-.flowch2a2r
-.fl8o8w9c8h8a8r8t8s.
-.flowchar4t1s2
-.fl8u8o8r8o9c8a8r9b8o8n.
-.flu3o
-.fluo3r
-.fluor2oc
-.fluoro1ca
-.fluoroc2a2r
-.fluorocar1b
-.fluorocarb4o
-.fluorocarbo2n
-.fo8r9m8i9d8a9b8l8e.
-.for2mi
-.formi1d4a
-.form2id
-.formi2d3a4b
-.formidab2l2
-.fo8r9m8i9d8a9b8l8y.
-.formidab1ly
-.fo8r9s8y8t8h9i8a.
-.fo4rs2
-.fors4y
-.forsyth2i1a
-.fo8r8t8h9r8i8g8h8t.
-.fort4hr4
-.forthr2ig
-.fr8e8e9l8o8a8d8e8r.
-.freel4oa
-.freeloa2d3
-.fr8e8e9l8o8a8d8e8r8s.
-.freeloade4r5s2
-.fr8i8e8n8d9l8i8e8r.
-.fri2
-.fr2ie4
-.friendl2ie4
-.fr8i9v8o8l9i8t8y.
-.fr2iv
-.frivol2i
-.frivol1it
-.frivoli1ty
-.fr8i9v8o8l9i9t8i8e8s.
-.frivoli1ti
-.frivolit2ie4
-.fr8i8v9o9l8o8u8s.
-.frivolou2
-.frivolo2us
-.ga9l8a8c9t8i8c.
-.gala2c1t
-.ga8l9a8x8y.
-.ga8l9a8x9i8e8s.
-.galax3i
-.galax2ie4
-.ga8s9o8m9e9t8e8r.
-.ga1so
-.ga3som
-.gaso2me
-.gaso4met
-.gasome1te
-.ge9o9d8e8s9i8c.
-.geodes2
-.geode1si
-.geode2sic
-.ge9o9d8e8t9i8c.
-.geode1t
-.geodet1ic
-.ge8o9m8e8t9r8i8c.
-.ge3om
-.geo2me
-.geo4met
-.geom4etr
-.geo5met3ric
-.ge8o9m8e8t9r8i8c8s.
-.geome4tri4c3s2
-.ge9o9s8t8r8o8p8h8i8c.
-.geos4
-.geost4r
-.geostr2oph
-.geostroph1ic
-.ge8o9t8h8e8r9m8a8l.
-.ge4ot
-.ge4oth
-.geoth2e
-.geother3m4
-.geother1ma
-.ge9o8t9r8o9p8i8s8m.
-.geotropi2s1m
-.gn8o9m8o8n.
-.g1no
-.gno4mo
-.gno4mo2n
-.gn8o9m8o8n8s.
-.gnomo2n3s2
-.gr8a8n8d9u8n8c8l8e.
-.1gr
-.gra2n2
-.gr4and
-.gran1du
-.grandu4n
-.grandun1c4l4
-.gr8a8n8d9u8n8c8l8e8s.
-.granduncles2
-.gr8i8e8v9a8n8c8e.
-.gr2ie4
-.grie1va
-.grieva2n
-.gr8i8e8v9a8n8c8e8s.
-.gr8i8e8v9o8u8s.
-.grievou2
-.grievo2us
-.gr8i8e8v9o8u8s9l8y.
-.grievous1l2
-.grievous1ly
-.ha8i8r9s8t8y8l8e.
-.hai2
-.ha4ir
-.hai4rs2
-.hairs2ty
-.hairs2tyl
-.ha8i8r9s8t8y8l8e8s.
-.hairstyles2
-.ha8i8r9s8t8y8l9i8s8t.
-.ha8i8r9s8t8y8l9i8s8t8s.
-.hairstylis4t1s2
-.ha8l8f9s8p8a8c8e.
-.ha2lf
-.hal2f3s
-.half2s1pa
-.halfspa4ce
-.ha8l8f9s8p8a8c8e8s.
-.ha8l8f9w8a8y.
-.ha8r9b8i8n9g8e8r.
-.h2a2r
-.har1b
-.harbi2
-.har2bin
-.harb4inge
-.ha8r9b8i8n9g8e8r8s.
-.harbinge4r1s2
-.ha8r9l8e9q8u8i8n.
-.har4le4
-.har1l
-.harle1q
-.harlequ2
-.harleq2ui2
-.harlequi4n
-.ha8r9l8e9q8u8i8n8s.
-.harlequ2i2n1s2
-.ha8t8c8h9e8r8i8e8s.
-.ha4tc
-.hat4ch
-.hatche2
-.hatcher1i
-.hatcher2ie4
-.he8m8i9d8e8m8i9s8e8m8i9q8u8a9v8e8r.
-.hem2id
-.hemid4em
-.hemide4m2is
-.hemidem4ise
-.hemidemisemi3qua
-.hemidemisemiqu2
-.hemidemisemiqua5v4
-.he8m8i9d8e8m8i9s8e8m8i9q8u8a9v8e8r8s.
-.hemidemisemiquave4r1s2
-.he9m8o9g8l8o9b8i8n.
-.hemo4g
-.he1mo
-.hemo4gl2
-.hemo3glo
-.hemoglo1bi
-.hemoglo2bin
-.he9m8o9p8h8i8l9i8a.
-.hem2oph
-.hemoph4il2
-.hemophil1i
-.hemophil3i1a
-.he9m8o9p8h8i8l9i8a8c.
-.he9m8o9p8h8i8l9i8a8c8s.
-.hemophilia4c3s2
-.he8m8o9r8h8e9o8l9o8g8y.
-.hemo2r
-.hemorh4
-.hemorhe3ol
-.hemorheol1o1gy
-.he9p8a8t9i8c.
-.hep5
-.he2pa
-.hepat1ic
-.he8r9m8a8p8h9r8o9d8i8t8e.
-.her3m4
-.her1ma
-.her4map
-.hermap4hr4
-.hermaphrod2ite
-.he8r9m8a8p8h9r8o9d8i8t9i8c.
-.hermaphrod2i1ti
-.hermaphrod4i2tic
-.he9r8o8e8s.
-.hero4e
-.he8x8a9d8e8c9i9m8a8l.
-.hex1a
-.hexa2d
-.hexade1c2i
-.hexade2c3im
-.hexadeci1ma
-.ho9l8o9n8o9m8y.
-.holo2n
-.holon3o3my
-.ho9m8e8o9m8o8r9p8h8i8c.
-.ho2me3
-.homeo1mo
-.homeomo2r
-.homeomor1p
-.homeomorp4h4
-.homeomorph1ic
-.ho9m8e8o9m8o8r9p8h8i8s8m.
-.homeomorphi2s1m
-.ho9m8o9t8h8e8t8i8c.
-.ho1mo
-.hom4oth3
-.homoth2e
-.homo3the4t
-.homothet1ic
-.ho8r8s8e9r8a8d9i8s8h.
-.hor4se
-.ho4rs2
-.horser1a
-.horsera2d
-.horser2adi
-.horseradis1
-.horseradis2h
-.ho8t9b8e8d.
-.ho2t1b
-.hot4be2d
-.ho8t9b8e8d8s.
-.hotbe2d1s2
-.hy9d8r8o9t8h8e8r9m8a8l.
-.hy1d
-.hy1dr
-.hydro4th2e
-.hydr4oth
-.hydrother3m4
-.hydrother1ma
-.hy9p8o9t8h8a8l9a9m8u8s.
-.hy3po
-.hyp4ot
-.hyp4oth
-.hypotha3la
-.hypothala3m
-.hypothala1mu
-.hypothalam2us
-.id8e8a8l8s.
-.ide3a4l
-.idea2l1s2
-.id8e8o9g8r8a8p8h8s.
-.ideo2g
-.ideo1gr
-.ideogra4p4h1s2
-.id8i8o9s8y8n9c8r8a8s8y.
-.i2di
-.i1d3io
-.idi4os
-.idios4y
-.idiosyn1cr
-.idiosyncr2as
-.idiosyncras4y
-.id8i8o9s8y8n9c8r8a9s8i8e8s.
-.idiosyncras2ie4
-.id8i8o9s8y8n9c8r8a8t8i8c.
-.idiosyn5crat1ic
-.id8i8o9s8y8n9c8r8a8t9i9c8a8l9l8y.
-.idiosyncrati1ca
-.idiosyncratical1l
-.idiosyncratical1ly
-.ig9n8i8t9e8r.
-.2ig
-.ig1ni
-.ign2it
-.ign2ite
-.ig9n8i8t9e8r8s.
-.ignite4r1s2
-.ig9n8i9t8o8r.
-.ign3itor
-.igni1to
-.ig8n8o8r8e9s8p8a8c8e8s.
-.ig1no
-.ignore1sp
-.ignore2s1pa
-.ignorespa4ce
-.im9p8e8d9a8n8c8e.
-.im2p2ed
-.imp2e2d2a
-.impeda2n
-.im9p8e8d9a8n8c8e8s.
-.in9d8u9b8i9t8a9b8l8e.
-.4ind
-.in1du
-.indu1b4i
-.indubi2t
-.indubi1ta
-.indubi2tab
-.indubitab2l2
-.in9f8i8n9i8t8e9l8y.
-.in3f
-.in1fi
-.in2fin
-.inf2ini
-.infin2it
-.infin2ite
-.infinite1ly
-.in9f8i8n9i9t8e8s9i9m8a8l.
-.infinit4es
-.infinite1si
-.infinite2s5im
-.infinitesi1ma
-.in9f8r8a9s8t8r8u8c9t8u8r8e.
-.infr2as
-.infras1t4r
-.infrastru2c1t
-.infrastructu4r
-.infrastruc1tu
-.infrastruc3ture
-.in9f8r8a9s8t8r8u8c9t8u8r8e8s.
-.in9s8t8a8l8l9e8r.
-.ins2ta2l
-.ins1ta
-.instal1l
-.instal2le
-.in9s8t8a8l8l9e8r8s.
-.installe4r1s2
-.in9t8e8r9d8i8s9c8i9p8l8i9n8a8r8y.
-.in1t
-.in5ter3d
-.interd2i
-.interdis1
-.interd2is1c
-.interdis1ci
-.interdisc2ip
-.interdisci1p2l2
-.interdiscipli4n
-.interdiscipl4i1na
-.interdisciplin2a2r
-.in9t8e8r9g8a9l8a8c9t8i8c.
-.interg2
-.inter1ga
-.intergala2c1t
-.in9u8t8i8l8e.
-.in1u
-.in4u1t2i
-.in9u8t8i8l9i9t8y.
-.inutil1i
-.inut2il1it
-.inutili1ty
-.ir9r8e9d8u8c9i8b8l8e.
-.ir2r2ed
-.irre1du
-.irredu2c
-.irreduci4b
-.irredu1ci
-.irreduci1b2l2
-.ir9r8e9d8u8c9i8b8l8y.
-.irreducib1ly
-.ir9r8e8v9o9c8a9b8l8e.
-.irrev2
-.irre5voc
-.irrevo1ca
-.irrevoca1b2l2
-.is8o8t9r8o8p8y.
-.i2so
-.isotropy5
-.is8o9t8r8o8p9i8c.
-.isotrop3ic
-.it8i8n9e8r9a8r8y.
-.i1ti
-.i2t1in
-.it2ine
-.itin4er4a2r
-.itin1er
-.itiner1a
-.it8i8n9e8r9a8r9i8e8s.
-.itinerar1i
-.itinerar2ie4
-.je9r8e9m8i9a8d8s.
-.1je
-.jerem2i3a
-.jeremia2d
-.jeremia2d1s2
-.ke8y9n8o8t8e.
-.ke8y9n8o8t8e8s.
-.keyno4tes
-.ke8y9s8t8r8o8k8e.
-.keys4
-.keys1t
-.keyst4r
-.keystr2ok2
-.ke8y9s8t8r8o8k8e8s.
-.keystrokes4
-.ki8l8n9i8n8g.
-.k1i
-.k4i2l1n2
-.kiln1in
-.kilnin4g
-.la8c9i9e8s8t.
-.l4a2ci4
-.la3c2ie4
-.laci1est
-.la8m9e8n9t8a9b8l8e.
-.la1men
-.la3men1t
-.lamen2ta4b
-.lamen1ta
-.lamentab2l2
-.la8n8d9s8c8a8p9e8r.
-.3l4and
-.la2n
-.lan2d1s2
-.landsca4p
-.lands1ca
-.landsca5per
-.la8n8d9s8c8a8p9e8r8s.
-.landscape4r1s2
-.la8r9c8e9n8y.
-.l2a2r
-.lar1c
-.lar2ce
-.lar1cen4
-.la8r9c8e9n9i8s8t.
-.lar4ceni
-.le8a8f9h8o8p9p8e8r.
-.le2a
-.lea2f
-.lea4fh
-.leafho4p1p
-.leafhop2pe
-.leafhop3per
-.le8a8f9h8o8p9p8e8r8s.
-.leafhoppe4r1s2
-.le8t9t8e8r9s8p8a8c9i8n8g.
-.le4t3t2
-.lette4r1s2
-.letter1sp
-.letter2s1pa
-.lettersp4a2ci
-.letterspa2c1in
-.letterspac1ing
-.li8f8e9s8p8a8n.
-.life1sp
-.life2s1pa
-.lifespa4n
-.li8f8e9s8p8a8n8s.
-.lifespa2n1s2
-.li8f8e9s8t8y8l8e.
-.lifes2ty
-.lifes2tyl
-.li8f8e9s8t8y8l8e8s.
-.lifestyles2
-.li8g8h8t9w8e8i8g8h8t.
-.3ligh
-.lightw4
-.lightwei2
-.l2ightwe2ig2
-.li8m9o8u9s8i8n8e8s.
-.li4mo
-.li3mo2us
-.limou2
-.limou2s1in
-.limous2ine
-.limousi1nes
-.li8n8e9b8a8c8k8e8r.
-.1l4ine
-.lin2e2b
-.lineback1
-.lineback1er
-.li8n8e9s8p8a8c8i8n8g.
-.li1nes
-.li4ne1sp
-.line2s1pa
-.linesp4a2ci
-.linespa2c1in
-.linespac1ing
-.li9o8n9e8s8s.
-.lio2n
-.lio1nes
-.lion2e2ss
-.li8t8h9o9g8r8a8p8h8e8d.
-.l2ith
-.litho4g
-.litho1gr
-.lithograph4ed
-.li8t8h9o9g8r8a8p8h8s.
-.lithogra4p4h1s2
-.lo9b8o8t9o8m8y.
-.lobo4to
-.loboto3my
-.lo9b8o8t9o8m9i8z8e.
-.lobotom2iz
-.lobotomi2ze
-.lo8g8e8s.
-.lo1ge
-.lo8n8g9e8s8t.
-.5long
-.lo2n
-.lo9q8u8a8c9i8t8y.
-.lo1q
-.loqu2
-.loquac4
-.loqu4a2ci
-.loqua2c1it
-.loquaci1ty
-.lo8v8e9s8t8r8u8c8k.
-.4lov
-.lov4e2s
-.lov2est4r
-.lovestruc5
-.lovestruck1
-.ma8c8r8o9e8c8o9n8o8m8i8c8s.
-.macro4e
-.macroe1co
-.macroeco2n
-.macroeco3nomic
-.macroeconomi4c3s2
-.ma8l9a9p8r8o8p9i8s8m.
-.malapr2
-.malapropi2s1m
-.ma8l9a9p8r8o8p9i8s8m8s.
-.malaprop4is4m1s2
-.ma8n9s8l8a8u8g8h9t8e8r.
-.ma2n1s2
-.man2s1l2
-.manslaugh3
-.ma8n9u9s8c8r8i8p8t.
-.man2us
-.manusc2
-.manuscri2
-.manuscr2ip
-.manuscri2p1t
-.ma8r9g8i8n9a8l.
-.marg2
-.margi4n
-.margi1na
-.ma8t8h9e9m8a9t8i9c8i8a8n.
-.m4ath3
-.math5em
-.math2e
-.1mathe1ma
-.mathemat1ic
-.mathemat2i1ci
-.mathemati3c2i1a
-.mathematici2a2n
-.ma8t8h9e9m8a9t8i9c8i8a8n8s.
-.mathematicia2n1s2
-.ma8t8t8e8s.
-.mat5te
-.ma4t3t2
-.mat4tes
-.me8d9i8c9a8i8d.
-.2med
-.m4edi
-.med3i1ca
-.medicai2
-.medica2id
-.me8d8i9o8c8r8e.
-.me1d2io
-.mediocre3
-.me8d8i9o8c9r8i9t8i8e8s.
-.medi5ocrit
-.mediocri2
-.medio5cri1ti
-.mediocrit2ie4
-.me8g8a9l8i8t8h.
-.me2g
-.m4egal
-.me1ga
-.me3gal1i
-.megal1it
-.megal2ith
-.me8g8a9l8i8t8h8s.
-.megali2t4h1s2
-.me8t8a9b8o8l9i8c.
-.me4ta
-.me2ta4b
-.metabol3ic
-.metabol2i
-.me9t8a8b9o9l8i8s8m.
-.metaboli2s1m
-.me9t8a8b9o9l8i8s8m8s.
-.metabol4is4m1s2
-.me9t8a8b9o9l8i8t8e.
-.metabo5l2ite
-.metabol1it
-.me9t8a8b9o9l8i8t8e8s.
-.metabolit4es
-.me8t8a9l8a8n9g8u8a8g8e.
-.met3a2l
-.meta5la
-.metala2n
-.metal2ang
-.metalan1gu
-.metalangu4a
-.me8t8a9l8a8n9g8u8a8g8e8s.
-.me8t8a9p8h8o8r9i8c.
-.metapho4r
-.me8t8h9a8n8e.
-.metha2n4
-.me9t8r8o8p9o9l8i8s.
-.m4etr
-.metropol2i
-.me9t8r8o8p9o9l8i8s8e8s.
-.metropol4ise
-.metropolis1e4s
-.me8t9r8o9p8o8l9i9t8a8n.
-.metropol1it
-.metropoli3ta2n
-.metropoli1ta
-.me8t9r8o9p8o8l9i9t8a8n8s.
-.metropolita2n1s2
-.mi8c8r8o9e8c8o9n8o8m8i8c8s.
-.m4i1cr
-.micro4e
-.microe1co
-.microeco2n
-.microeco3nomic
-.microeconomi4c3s2
-.mi9c8r8o9f8i8c8h8e.
-.micro2fi
-.microf4i2ch
-.microfiche2
-.mi9c8r8o9f8i8c8h8e8s.
-.microfich1es
-.mi8c8r8o9o8r8g8a8n9i8s8m.
-.microo2
-.microorg2
-.microor1ga
-.microorgan5is
-.microorga2n
-.microorgani2s1m
-.mi8c8r8o9o8r8g8a8n9i8s8m8s.
-.microorgan4is4m1s2
-.mi8l8l9a8g8e.
-.m4il1l
-.mi8l9l8i9l8i8t8e8r.
-.mill2i
-.mil4l4i4l
-.millil1i
-.mill2il1it
-.millil2ite
-.mi8m8e8o9g8r8a8p8h8e8d.
-.mimeo2g
-.mimeo1gr
-.mimeograph4ed
-.mi8m8e8o9g8r8a8p8h8s.
-.mimeogra4p4h1s2
-.mi8m9i8c9r8i8e8s.
-.mim1i
-.mim4i1cr
-.mimicri2
-.mimicr2ie4
-.mi8n9i8s.
-.m2ini
-.min1is
-.mi8n8i9s8y8m9p8o9s8i8u8m.
-.minis4y
-.minisy4m1p
-.minisym1pos
-.minisympo5si4u
-.mi8n8i9s8y8m9p8o9s8i8a.
-.minisympos2i1a
-.mi9n8u8t9e8r.
-.m4in1u
-.mi9n8u8t9e8s8t.
-.mi8s9c8h8i8e9v8o8u8s9l8y.
-.m2is1c
-.mis3ch2
-.misch2ie4
-.mischievou2
-.mischievo2us
-.mischievous1l2
-.mischievous1ly
-.mi9s8e8r8s.
-.m4ise
-.mis3er
-.mise4r1s2
-.mi9s8o8g9a9m8y.
-.mi2so
-.miso1ga
-.miso2gam
-.mo8d9e8l9l8i8n8g.
-.mo2d1
-.model1l
-.modell2i
-.model2lin4
-.mo8l9e9c8u8l8e.
-.mole1cu
-.mole4cul
-.molecul4e
-.mo8l9e9c8u8l8e8s.
-.molecules2
-.mo8n9a8r8c8h8s.
-.mo1n1a
-.monar3c
-.mon2a2r
-.monar2ch
-.monarc4h1s2
-.mo8n8e8y9l8e8n9d8e8r.
-.moneylen1de
-.mo8n8e8y9l8e8n9d8e8r8s.
-.moneylende4r5s2
-.mo8n8o9c8h8r8o8m8e.
-.mono2ch4
-.monoc4hr4
-.monochro2me
-.mo8n8o9e8n9e8r9g8e8t8i8c.
-.mo3noe
-.monoen1er
-.monoenerg2
-.monoener3get
-.monoenerget1ic
-.mo8n9o8i8d.
-.monoi2
-.mono2id
-.mo8n8o9p8o8l8e.
-.mo4nop
-.mo8n8o9p8o8l8e8s.
-.monopoles2
-.mo9n8o8p9o8l8y.
-.monopo2ly
-.mo8n8o9s8p8l8i8n8e.
-.monos1p2l2
-.monospli4n
-.monosp1l4ine
-.mo8n8o9s8p8l8i8n8e8s.
-.monospli1nes
-.mo8n8o9s8t8r8o8f8i8c.
-.monos5t
-.monost4r
-.monostro2fi
-.mo9n8o8t9o9n8i8e8s.
-.mono1to
-.mo2noto2n
-.monoton2ie4
-.mo9n8o8t9o9n8o8u8s.
-.mono4tono
-.monoto1nou2
-.monotono2us
-.mo9r8o8n9i8s8m.
-.moro5n4is
-.moro2n
-.moroni2s1m
-.mo8s9q8u8i9t8o.
-.mos2
-.mosqu2
-.mosq2ui2
-.mosqui1to
-.mo8s9q8u8i9t8o8s.
-.mosquitos2
-.mo8s9q8u8i9t8o8e8s.
-.mu8d9r8o8o8m.
-.mu1dr
-.mud1room
-.mudroo2
-.mu8d9r8o8o8m8s.
-.mudroo4m1s2
-.mu8l9t8i9f8a8c9e8t8e8d.
-.5mu4lt
-.mul1ti3
-.multif2
-.multi1fa
-.multifa4ce
-.multifacet4
-.multiface2t1ed
-.mu8l9t8i9p8l8i8c9a8b8l8e.
-.mult2ip
-.multi1p2l2
-.multipli1ca
-.multiplica1b2l2
-.mu8l8t8i9u8s8e8r.
-.multi4u
-.multi2us
-.ne8o9f8i8e8l8d8s.
-.3neo
-.ne5of
-.neo2fi
-.neof2ie4
-.neofie2ld3
-.neofiel2d1s2
-.ne8o9n8a8z8i.
-.neo2n
-.neo1n1a
-.neona2z1i
-.ne8o9n8a8z8i8s.
-.neonaz4is
-.ne8p8h9e8w8s.
-.nephe4
-.ne8p8h9r8i8t8e.
-.nep4hr4
-.nephr2ite
-.ne8p8h9r8i8t8i8c.
-.nephr4i2t3ic
-.nephri1ti
-.ne8w9e8s8t.
-.ne4w
-.newest3
-.ne8w8s9l8e8t9t8e8r.
-.news4l2
-.news2le
-.newsle4t3t2
-.ne8w8s9l8e8t9t8e8r8s.
-.newslette4r1s2
-.ni8t8r8o9m8e8t8h9a8n8e.
-.n2it
-.ni3tr
-.nitro2me
-.nitro4met
-.nitrometha2n4
-.no9n8a8m8e.
-.no4n
-.no1n1a
-.no8n9a8r9i8t8h9m8e8t9i8c.
-.nonar3i
-.non2a2r
-.nonar2ith
-.nonarit4h1m
-.nonarithmet4
-.nonarithmet1ic
-.no8n9e8m8e8r9g8e8n8c8y.
-.none1me
-.nonemerg2
-.nonemer1gen
-.nonemergen1cy
-.no8n9e8q8u8i9v8a8r8i9a8n8c8e.
-.none2q
-.nonequ2
-.noneq2ui2
-.nonequ2iv3
-.nonequi1va
-.nonequiv2a2r
-.nonequivar1i
-.nonequivar3i2a2n
-.nonequivar2i3a
-.nonequivar4ianc
-.no8n8e9t8h8e9l8e8s8s.
-.noneth2e
-.nonethe1les2
-.nonethe3l2e2ss
-.no8n9e8u8c8l8i8d9e8a8n.
-.non4eu
-.noneu1c4l4
-.noneucl2id
-.noneuclidea2n
-.no8n9i8s8o9m8o8r9p8h8i8c.
-.non5i
-.non1is
-.noni2so
-.noni3som
-.noniso1mo
-.nonisomo2r
-.nonisomor1p
-.nonisomorp4h4
-.nonisomorph1ic
-.no8n9p8s8e8u8d8o9c8o8m9p8a8c8t.
-.non1p4
-.non2p1s2
-.nonp2se
-.nonps4eu
-.nonpseu1do
-.nonpseudo1co
-.nonpseudoco4m1p
-.nonpseudocom1pa
-.nonpseudocompa2c4t
-.no8n9s8m8o8o8t8h.
-.no2n3s2
-.non2s3m
-.nons1mo
-.nonsmoo2
-.nonsmo4oth
-.no8n9u8n8i9f8o8r8m.
-.no3nu4n
-.nonu1ni
-.nonuni1fo
-.nonunifo2r
-.nonunifor1m
-.no8n9u8n8i9f8o8r8m9l8y.
-.nonunifor4m1l
-.nonuniform1ly
-.no8r9e8p9i9n8e8p8h9r8i8n8e.
-.nore5pi2n
-.norep2ine
-.norepinep4hr4
-.norep2inephr2in4e
-.no8t9w8i8t8h9s8t8a8n8d9i8n8g.
-.notw4
-.notwi2
-.notw2ith3
-.notwi2t4h1s2
-.notwith5st4and
-.notwiths1ta
-.notwithsta2n
-.notwithstand1in
-.nu9c8l8e8o9t8i8d8e.
-.nucle3
-.nu1c4l4
-.nucle4ot
-.nucleot2id
-.nu9c8l8e8o9t8i8d8e8s.
-.nucleotide4s2
-.nu8t9c8r8a8c8k9e8r.
-.nu4tc
-.nutcrack1
-.nutcrack1er
-.nu8t9c8r8a8c8k9e8r8s.
-.nutcracke4r1s2
-.oe8r9s8t8e8d8s.
-.o3er
-.oe4r1s2
-.oers4t1ed
-.oerste2d1s2
-.of8f9l8i8n8e.
-.o4f1f
-.off4l2
-.offlin4
-.off1l4ine
-.of8f9l8o8a8d.
-.offl4oa
-.offloa2d3
-.of8f9l8o8a8d8s.
-.offloa2d1s2
-.of8f9l8o8a8d8e8d.
-.offloa2d1ed
-.ol8i9g8o8p9o9l8i8s8t.
-.ol2i
-.ol2ig
-.oli2go
-.ol2igopol2i
-.ol8i9g8o8p9o9l8i8s8t8s.
-.oligopolis4t1s2
-.ol8i9g8o8p9o8l8y.
-.oligopo2ly
-.ol8i9g8o8p9o8l9i8e8s.
-.oligopol2ie4
-.op9e8r9a8n8d.
-.op1er
-.3oper1a
-.op4er4and
-.opera2n
-.op9e8r9a8n8d8s.
-.operan2d1s2
-.or8a8n8g9u8t8a8n.
-.ora2n
-.or2ang
-.oran1gu
-.oran4gu4t
-.orangu1ta
-.ora2nguta2n
-.or8a8n8g9u8t8a8n8s.
-.oranguta2n1s2
-.or9t8h8o9d8o8n9t8i8s8t.
-.ortho2do4
-.orthodo2n
-.orthodon3t4i
-.orthodon1t
-.or9t8h8o9d8o8n9t8i8s8t8s.
-.orthodontis4t1s2
-.or9t8h8o9k8e8r9a9t8o8l9o8g8y.
-.orth2ok
-.orthok1er
-.orthoker1a
-.orthokera1to
-.orthokeratol1o1gy
-.or8t8h8o9n8i8t8r8o9t8o8l8u8e8n8e.
-.ortho2n
-.orthon2it
-.orthoni3tr
-.orthonitro1to
-.orthonitrotolu3en
-.orthonitrotolu4ene
-.ov8e8r9v8i8e8w.
-.overv2ie4
-.ov8e8r9v8i8e8w8s.
-.ox9i8d9i8c.
-.ox3i
-.oxi5di
-.ox2id
-.pa8d9d8i8n8g.
-.1pa
-.p4a2d
-.pad4d1in
-.pad1d4
-.pa8i8n9l8e8s8s9l8y.
-.p4ai2
-.pa4i4n4
-.pa4i4n1l
-.painles2
-.pain3l2e2ss
-.painles4s1l2
-.painless1ly
-.pa8l9e8t8t8e.
-.p4al
-.p2ale
-.pale4t3t2
-.pa8l9e8t8t8e8s.
-.palet4tes
-.pa8r9a9b8o8l8a.
-.p2a2r
-.pa2rab
-.parabo1la
-.pa8r9a9b8o8l9i8c.
-.parabol3ic
-.parabol2i
-.pa9r8a8b9o9l8o8i8d.
-.paraboloi2
-.parabolo2id
-.pa8r9a9d8i8g8m.
-.para2d
-.par2adi
-.parad2ig
-.paradig1m
-.pa8r9a9d8i8g8m8s.
-.paradig4m1s2
-.pa8r8a9c8h8u8t8e.
-.para2ch
-.parachu4t
-.pa8r8a9c8h8u8t8e8s.
-.pa8r8a9d8i9m8e8t8h8y8l9b8e8n8z8e8n8e.
-.parad4imet
-.paradimethy2l1b
-.paradimethylb4e4n3z
-.paradimethylben2ze
-.paradimethylbenze4n
-.pa8r8a9f8l8u8o8r8o9t8o8l8u8e8n8e.
-.para2f
-.paraf4l2
-.paraflu3o
-.parafluo3r
-.parafluoro1to
-.parafluorotolu3en
-.parafluorotolu4ene
-.pa8r8a9g8r8a8p8h9e8r.
-.para1gr
-.parag5ra3ph4er
-.pa8r8a9l8e9g8a8l.
-.par3al
-.par2ale
-.paral4egal
-.parale1ga
-.pa8r9a8l9l8e8l9i8s8m.
-.paral1l
-.paral2le
-.paral3lel
-.parallel2i
-.paralle2lis
-.paralleli2s1m
-.pa8r8a9m8a8g9n8e8t9i8s8m.
-.par4a1ma
-.param3ag
-.para5mag1n
-.paramagneti2s4m
-.pa8r8a9m8e8d8i8c.
-.para2med
-.param4edi
-.pa8r8a9m8e8t8h8y8l9a8n8i8s8o8l8e.
-.param3et
-.paramethy3la
-.paramethyla2n
-.paramethylani2so
-.pa9r8a8m9e9t8r8i8z8e.
-.param4etr
-.parametri2ze
-.pa8r8a9m8i8l9i9t8a8r8y.
-.par2ami
-.paramil1i
-.param2il1it
-.paramili1ta
-.paramilit2a2r
-.pa8r8a9m8o8u8n8t.
-.para2mo
-.paramou2
-.paramoun1t
-.pa8t8h9o9g8e8n9i8c.
-.p4ath
-.pat4ho
-.patho4g
-.patho1ge4
-.patho1gen
-.pe8e8v9i8s8h.
-.p4ee
-.pee1vi
-.peevis2h
-.pe8e8v9i8s8h9n8e8s8s.
-.peevis2h1n
-.peevish1nes
-.peevishn2e2ss
-.pe8n9t8a9g8o8n.
-.pen1t
-.pen1ta
-.penta2go
-.pentago2n2
-.pe8n9t8a9g8o8n8s.
-.pentago2n3s2
-.pe9t8r8o9l8e9u8m.
-.petrol4eu
-.ph8e9n8o8m9e9n8o8n.
-.ph4e3no
-.phe2n
-.pheno2me
-.pheno1men
-.phenom4eno
-.phenomeno4n
-.ph8e8n8y8l9a8l8a9n8i8n8e.
-.pheny3la
-.phenylala2n
-.phenylala5n2ine
-.phenylalan1in
-.ph8i9l8a8t9e9l8i8s8t.
-.phi4latel2i4
-.philate2lis
-.ph8i9l8a8t9e9l8i8s8t8s.
-.philatelis4t1s2
-.ph8o9n8e8m8e.
-.3phone
-.pho2n
-.phone1me
-.ph8o9n8e8m8e8s.
-.phone2mes
-.ph8o9n8e9m8i8c.
-.phone5mi
-.ph8o8s9p8h8o8r9i8c.
-.phos1p
-.phospho5
-.phospho4r
-.ph8o9t8o9g8r8a8p8h8s.
-.pho1to
-.photo2gr
-.photogra4p4h1s2
-.ph8o9t8o9o8f8f9s8e8t.
-.photoo2
-.photoo4f1f
-.photoof2f3s
-.pi8c9a9d8o8r.
-.pi1ca
-.pica2d
-.pica1do
-.picad4or
-.pi8c9a9d8o8r8s.
-.picado4rs2
-.pi8p8e9l8i8n8e.
-.p2ip
-.pipe4
-.pipel2i
-.pipe1l4ine
-.pi8p8e9l8i8n8e8s.
-.pipeli1nes
-.pi8p8e9l8i8n9i8n8g.
-.pipel2in3i
-.pipelin1in
-.pipelinin4g
-.pi9r8a9n8h8a8s.
-.p4ir
-.pi1ra
-.pira2n
-.pira4n1h4
-.piranha4
-.pl8a8c8a9b8l8e.
-.1p2l2
-.pla1ca
-.placa1b2l2
-.pl8a8n8t9h8o8p9p8e8r.
-.3pla2n
-.plan1t
-.plantho4p1p
-.planthop2pe
-.planthop3per
-.pl8a8n8t9h8o8p9p8e8r8s.
-.planthoppe4r1s2
-.pl8e8a8s9a8n8c8e.
-.ple2a
-.pleasa2
-.plea3sanc
-.pleasa2n
-.pl8u8g9i8n.
-.plug5in
-.pl8u8g9i8n8s.
-.plu5g4i2n1s2
-.po8l9t8e8r9g8e8i8s8t.
-.po4l2t
-.pol1te
-.polterg2
-.poltergei2
-.po8l8y9e8n8e.
-.po2ly
-.po8l8y9e8t8h9y8l9e8n8e.
-.polye4t
-.po9l8y8g9a9m8i8s8t.
-.poly1ga
-.poly2gam
-.polygam2is
-.po9l8y8g9a9m8i8s8t8s.
-.polygamis4t1s2
-.po8l8y8g9o8n9i9z8a9t8i8o8n.
-.poly1go
-.polygo2n2
-.polygo3ni
-.polygoniza1
-.polygoniza1t2io
-.polygonizatio2n
-.po9l8y8p8h9o9n8o8u8s.
-.polypho2n
-.polypho1nou2
-.polyphono2us
-.po8l8y9s8t8y8r8e8n8e.
-.po2lys4
-.polys1t
-.polys2ty
-.po8m8e9g8r8a8n9a8t8e.
-.po2me
-.pome2g
-.pome1gr
-.pomegra2n2
-.pomegra1na
-.pomegran2at
-.po8r8o9e8l8a8s9t8i8c.
-.1p4or
-.poro4e
-.poro4el
-.poroe1la
-.poroelast2i
-.poroelas1tic
-.po8r9o8u8s.
-.porou2
-.poro2us
-.po8r9t8a9b8l8e.
-.por1ta
-.por2tab
-.portab2l2
-.po8s8t9a8m9b8l8e.
-.1pos
-.pos2ta
-.posta4m1b
-.postamb2l2
-.po8s8t9a8m9b8l8e8s.
-.postambles2
-.po8s8t9h8u9m8o8u8s.
-.posthu1mo
-.posthu3mo2us
-.posthumou2
-.po8s8t9s8c8r8i8p8t.
-.pos4t1s2
-.post4sc
-.postscri2
-.postscr2ip
-.postscri2p1t
-.po8s8t9s8c8r8i8p8t8s.
-.postscrip4t1s2
-.po8s9t8u8r9a8l.
-.pos1tu
-.postu1ra
-.pr8e9a8m9b8l8e.
-.prea4m1b
-.preamb2l2
-.pr8e9a8m9b8l8e8s.
-.preambles2
-.pr8e9l8o8a8d8e8d.
-.prel4oa
-.preloa2d3
-.preloa2d1ed
-.pr8e9p8a8r9i8n8g.
-.pre2pa
-.prep4a4r1i
-.prep2a2r
-.preparin4g
-.pr8e9p8r8i8n8t.
-.pr2epr2
-.preprin4t3
-.pr8e9p8r8i8n8t8s.
-.preprin4t4s2
-.pr8e9p8r8o8c8e8s9s8o8r.
-.pre3pro
-.prepr2oc
-.prepro1ce
-.preproc2e2ss
-.preproces1so
-.pr8e9p8r8o8c8e8s9s8o8r8s.
-.preprocesso4rs2
-.pr8e9s8p8l8i8t9t8i8n8g.
-.pre1sp
-.pres1p2l2
-.prespl1it
-.prespl4i4t3t2
-.presplit2t1in
-.pr8e9w8r8a8p.
-.prewra4
-.pr8e9w8r8a8p8p8e8d.
-.prewra4p1p
-.prewrap2pe
-.prewrap4p2ed
-.pr8i8e8s8t9e8s8s8e8s.
-.5pr2i4e4
-.pri1est
-.pries4t2e2ss
-.priestess1e4s
-.pr8e8t9t8y9p8r8i8n9t8e8r.
-.pre4t3t2
-.pret1ty
-.pr2ettypr2
-.prettyprin4t3
-.pr8e8t9t8y9p8r8i8n9t8i8n8g.
-.prettyprint2i
-.prettyprin4t3ing
-.prettyprin2t1in
-.pr8o9c8e9d8u8r9a8l.
-.pr2oc
-.pro1ce
-.proce1du
-.procedu1ra
-.pr8o8c8e8s8s.
-.proc2e2ss
-.pr8o9c8u8r9a8n8c8e.
-.procu1ra
-.procura2n
-.pr8o8g9e9n8i8e8s.
-.pro1ge
-.pro1gen
-.proge5n2ie4
-.pr8o8g9e9n8y.
-.pro4geny
-.pr8o9g8r8a8m9m8a8b8l8e.
-.pro1gr
-.program1m
-.program1ma
-.program2mab
-.programmab2l2
-.pr8o8m9i9n8e8n8t.
-.prom4i
-.prom1in
-.prom2ine
-.promi1nen
-.prominen1t
-.pr8o9m8i8s9c8u9o8u8s.
-.prom2is
-.prom2is1c
-.promis1cu
-.promiscu1ou2
-.promiscuo2us
-.pr8o8m9i8s9s8o8r8y.
-.prom4i2s1s
-.promis1so
-.promisso1ry
-.pr8o8m9i8s8e.
-.prom4ise
-.pr8o8m9i8s8e8s.
-.promis1e4s
-.pr8o9p8e8l9l8e8r.
-.pro3pel
-.propel1l
-.propel2le
-.pr8o9p8e8l9l8e8r8s.
-.propelle4r1s2
-.pr8o9p8e8l9l8i8n8g.
-.propell2i
-.propel2lin4
-.pr8o9h8i8b9i9t8i8v8e.
-.pro1h2
-.prohibi2t
-.prohibi1ti
-.prohibi1t2iv
-.pr8o9h8i8b9i9t8i8v8e9l8y.
-.prohibitiv4e1ly
-.pr8o9s8c8i8u8t9t8o.
-.pros2c
-.pros1ci
-.prosci1u
-.prosciu4t3t2
-.prosciut5to
-.pr8o9t8e8s8t9e8r.
-.pro1t
-.pro4tes
-.pr8o9t8e8s8t9e8r8s.
-.proteste4r1s2
-.pr8o9t8e8s9t8o8r.
-.prot4es2to
-.pr8o9t8e8s9t8o8r8s.
-.protesto4rs2
-.pr8o9t8o9l8a8n9g8u8a8g8e.
-.pro1to
-.proto1la
-.proto4la2n
-.protol2ang
-.protolan1gu
-.protolangu4a
-.pr8o9t8o9t8y8p9a8l.
-.proto1ty
-.prototy1pa
-.prototyp4al
-.pr8o8v9i8n8c8e.
-.prov1in
-.prov2inc
-.pr8o8v9i8n8c8e8s.
-.pr8o9v8i8n9c8i8a8l.
-.provin1ci
-.provin3c2i1a
-.provinci2al
-.pr8o8w9e8s8s.
-.prow2e2ss
-.ps8e8u9d8o9d8i8f9f8e8r9e8n9t8i8a8l.
-.2p1s2
-.p2se
-.ps4eu
-.pseu1do
-.pseudod1if
-.pseudodi4f1f
-.pseudodiffer1
-.pseudodiffer3en1t
-.pseudodifferent2i
-.pseudodifferen1t2i1a
-.pseudodifferenti2al
-.ps8e8u9d8o9f8i9n8i8t8e.
-.pseu2d5of
-.pseudo2fi
-.pseudo2fin
-.pseudof2ini
-.pseudofin2it
-.pseudofin2ite
-.ps8e8u9d8o9f8i9n8i8t8e9l8y.
-.pseudofinite1ly
-.ps8e8u9d8o9f8o8r8c8e8s.
-.pseudo1fo
-.pseudofo2r
-.pseudofor1c
-.pseudofor2ce
-.ps8e8u9d8o8g9r8a9p8h8e8r.
-.pseud4og
-.pseudo1gr
-.pseudog5ra3ph4er
-.ps8e8u9d8o9g8r8o8u8p.
-.pseudo4g4ro
-.pseudogrou2
-.ps8e8u9d8o9g8r8o8u8p8s.
-.pseudogrou2p1s2
-.ps8e8u9d8o9n8y8m.
-.pseu4do2n
-.pseudonym4
-.ps8e8u9d8o9n8y8m8s.
-.pseudony4m1s2
-.ps8e8u9d8o9w8o8r8d.
-.pseudo4wo2
-.ps8e8u9d8o9w8o8r8d8s.
-.pseudowor2d1s2
-.ps8y9c8h8e9d8e8l9i8c.
-.ps4y
-.p4sy1c
-.psy3ch
-.psych4e2
-.psy4ch4ed
-.psychedel2i
-.ps8y8c8h8s.
-.psyc4h1s2
-.pu9b8e8s9c8e8n8c8e.
-.pub3
-.pub4e
-.pu4bes4
-.pubes2c
-.pubes1cen
-.pubes3cenc
-.qu8a8d9d8i8n8g.
-.qu2
-.qua2d
-.quad4d1in
-.quad1d4
-.qu8a9d8r8a8t9i8c.
-.qua1dr
-.quadrat1ic
-.qu8a9d8r8a8t9i8c8s.
-.quadrati4c3s2
-.qu8a8d9r8a9t8u8r8e.
-.quadra2tu
-.quadra3ture
-.qu8a8d9r8i9p8l8e8g9i8c.
-.quadri2p2l2
-.quadr2ip
-.quadripleg4ic
-.qu8a8i8n8t9e8r.
-.quai2
-.qua4i4n
-.quain1t
-.qu8a8i8n8t9e8s8t.
-.qu8a9s8i9e8q8u8i8v9a9l8e8n8c8e.
-.quas2ie4
-.quasie1q
-.qu2asiequ2
-.quasieq2ui2
-.quasiequ2iv3
-.quasiequi1va
-.quasiequiv2ale
-.quasiequiva3lenc
-.qu8a9s8i9e8q8u8i8v9a9l8e8n8c8e8s.
-.qu8a9s8i9e8q8u8i8v9a9l8e8n8t.
-.quasiequiva1len1t
-.qu8a9s8i9h8y9p8o9n8o8r9m8a8l.
-.quasi3h
-.quasihy3po
-.quasihypo2n
-.quasihyponor1m
-.quasihyponor1ma
-.qu8a9s8i9r8a8d9i9c8a8l.
-.quas4i2r
-.quasi1r5a
-.quasira2d
-.quasir2adi
-.quasirad3i1ca
-.qu8a9s8i9r8e8s8i8d9u8a8l.
-.quasi4res
-.quasire1si
-.quasire2s2id
-.quasiresi2du
-.quasiresid1u1a
-.qu8a9s8i9s8m8o8o8t8h.
-.qua1sis
-.quasi2s1m
-.quasis1mo
-.quasismoo2
-.quasismo4oth
-.qu8a9s8i9s8t8a9t8i8o8n9a8r8y.
-.quasis1ta
-.quasistation5a2r
-.quasista1t2io
-.quasistatio2n
-.quasistatio1n1a
-.qu8a9s8i9t8o8p8o8s.
-.qu5a5si4t
-.quasi1to
-.quasito1pos
-.qu8a9s8i9t8r8i9a8n9g8u9l8a8r.
-.quasi5tr2i3a
-.quasitri2a2n
-.quasitri2ang
-.quasitrian1gu
-.quasitriangu1la
-.quasitriangul2a2r
-.qu8a9s8i9t8r8i8v9i8a8l.
-.quasitr2i4v
-.quasitriv3i
-.quasitriv2i1a
-.quasitrivi2al
-.qu8i8n9t8e8s9s8e8n8c8e.
-.q2ui2
-.qui4n
-.quin1t
-.quin4t2e2ss
-.quintes4senc
-.qu8i8n9t8e8s9s8e8n8c8e8s.
-.qu8i8n9t8e8s9s8e8n9t8i8a8l.
-.quintessen1t
-.quintessent2i
-.quintessen1t2i1a
-.quintessenti2al
-.ra8b9b8i8t9r8y.
-.2rab
-.ra2b1b
-.rabbi2t
-.rabbi3tr
-.rabbit5ry
-.ra9d8i9o8g9r8a9p8h8y.
-.ra2d
-.r2adi
-.ra3d2io
-.radio5g
-.radio2gr
-.radio4g3ra1phy
-.ra8f8f9i8s8h.
-.raf5fi
-.ra2f
-.ra4f1f4
-.raf2f5is
-.raffis2h
-.ra8f8f9i8s8h9l8y.
-.raffis4h1l4
-.raffish1ly
-.ra8m9s8h8a8c8k8l8e.
-.ra4m1s2
-.ram4s2h
-.ramshack1
-.ramshack1l
-.ra8v9e8n9o8u8s.
-.rav4e4no
-.rave1nou2
-.raveno2us
-.re9a8r8r8a8n8g8e9m8e8n8t.
-.re5ar1r4
-.re2a2r
-.rearran4ge
-.rearra2n
-.rearr2ang
-.rearrange1me
-.rearrange1men
-.rearrange3men1t
-.re9a8r8r8a8n8g8e9m8e8n8t8s.
-.rearrangemen4t4s2
-.re8c9i9p8r8o8c9i9t8i8e8s.
-.reciproci1ti
-.reciprocit2ie4
-.re8c9t8a8n9g8l8e.
-.rec4ta2n
-.re2c1t
-.rect5ang
-.rec1ta
-.rectan1gl2
-.rectan1gle
-.re8c9t8a8n9g8l8e8s.
-.rectangles2
-.re8c9t8a8n9g8u9l8a8r.
-.rectan1gu
-.rectangu1la
-.rectangul2a2r
-.re9d8i9r8e8c8t.
-.2r2ed
-.r4edi
-.red4ir2
-.redi1re
-.redire2c1t
-.re9d8i9r8e8c8t9i8o8n.
-.redirec1t2io
-.redirectio2n
-.re9d8u8c9i8b8l8e.
-.re1du
-.redu2c
-.reduci4b
-.redu1ci
-.reduci1b2l2
-.re9e8c8h8o.
-.ree2c
-.ree2ch
-.ree3cho2
-.re9p8h8r8a8s8e.
-.rep4hr4
-.rephr2as
-.re9p8h8r8a8s8e8s.
-.rephras1e4s
-.re9p8h8r8a8s8e8d.
-.rephra4s4ed
-.re9p8o9s8i9t8i8o8n.
-.re4posi
-.re1po
-.re1pos
-.repo3s2i1t2io
-.reposi1ti
-.repositio2n
-.re9p8o9s8i9t8i8o8n8s.
-.repositio2n3s2
-.re9p8r8i8n8t.
-.repr2
-.reprin4t3
-.re9p8r8i8n8t8s.
-.reprin4t4s2
-.re9s8t8o8r9a8b8l8e.
-.r4es2to
-.resto2ra
-.resto2rab
-.restorab2l2
-.re8t8r8o9f8i8t.
-.retro2fi
-.re8t8r8o9f8i8t9t8e8d.
-.retrof4i4t4t2
-.retrofit2t1ed
-.re9u8s9a8b8l8e.
-.r4eu2
-.re2us4
-.reusa2
-.reu2s1ab
-.reusab2l2
-.re9u8s8e.
-.re9w8i8r8e.
-.rewi2
-.rew4ir4
-.re9w8r8a8p.
-.rewra4
-.re9w8r8a8p8p8e8d.
-.rewra4p1p
-.rewrap2pe
-.rewrap4p2ed
-.re9w8r8i8t8e.
-.rewri4
-.rewr2ite
-.rh8i9n8o8c9e8r9o8s.
-.rh4
-.rh2i1no
-.rhi4no4c
-.rhino1ce
-.rhinoc2ero
-.ri8g8h8t9e8o8u8s.
-.righ1teo
-.righteou2
-.righteo2us
-.ri8g8h8t9e8o8u8s9n8e8s8s.
-.righteous1n4
-.righteous1nes
-.righteousn2e2ss
-.ri8n8g9l8e8a8d8e8r.
-.rin4g
-.ringl2
-.rin1gle
-.ringle2a
-.ringlea2d1
-.ri8n8g9l8e8a8d8e8r8s.
-.ringleade4r5s2
-.ro9b8o8t.
-.ro9b8o8t8s.
-.robo4t1s2
-.ro9b8o8t8i8c.
-.ro9b8o8t9i8c8s.
-.roboti4c3s2
-.ro8u8n8d9t8a8b8l8e.
-.rou2
-.roun2d
-.round1ta
-.round2tab
-.roundtab2l2
-.ro8u8n8d9t8a8b8l8e8s.
-.roundta5bles2
-.sa8l8e8s9c8l8e8r8k.
-.sa2
-.s2ale
-.sales2
-.sales2c
-.salescle5
-.sales1c4l4
-.sa8l8e8s9c8l8e8r8k8s.
-.salescler4k1s2
-.sa8l8e8s9w8o8m8a8n.
-.sales4w2
-.sale4s1wo2
-.saleswom1
-.saleswo1ma
-.saleswoma2n
-.sa8l8e8s9w8o8m8e8n.
-.saleswo2me
-.saleswo1men
-.sa8l9m8o9n8e8l9l8a.
-.s4a2l4m
-.salmo2n4
-.sal1mo
-.salmon4ella
-.salmonel1l
-.sa8l9t8a9t8i8o8n.
-.sa4l4t
-.sal1ta
-.salta1t2io
-.saltatio2n
-.sa8r9s8a9p8a8r9i8l9l8a.
-.s2a2r
-.sa2r4sa2
-.sa4rs2
-.sars1ap
-.s2a2rsap2a2r4
-.sarsa1pa
-.sarsap4a4r1i
-.sarsaparil1l
-.sa8u8e8r9k8r8a8u8t.
-.sau4
-.sauerkrau4t
-.sc8a8t9o9l8o8g9i9c8a8l.
-.s1ca
-.sca1to
-.scato3log1ic
-.scatologi1ca
-.sc8h8e8d9u8l9i8n8g.
-.s2ch2
-.sche2
-.s4ch4ed
-.sche4dul
-.sche1du
-.schedul2i
-.schedul3ing
-.sc8h8i8z9o9p8h8r8e8n8i8c.
-.schi2z
-.schi1zo
-.schiz2oph
-.schizop4hr4
-.sc8h8n8a8u9z8e8r.
-.sc2h1n
-.sch1na
-.schn2au
-.schnau2z4e
-.schnauz1er
-.sc8h8o8o8l9c8h8i8l8d.
-.s4cho2
-.schoo2
-.schoo4l1c2
-.s2chool2ch
-.schoolch4il2
-.schoolchi2ld
-.sc8h8o8o8l9c8h8i8l8d9r8e8n.
-.schoolchil3dr
-.schoolchildre4
-.schoolchil5dren
-.sc8h8o8o8l9t8e8a8c8h8e8r.
-.schoo4l2t
-.school1te
-.s2chooltea2ch
-.schoolteache2
-.sc8h8o8o8l9t8e8a8c8h9e8r8s.
-.schoolteach3e4r1s2
-.sc8r8u9t8i9n8y.
-.scru2t1i5n
-.scr4u1t2i
-.scrut4iny
-.sc8y8t8h9i8n8g.
-.s1cy
-.scy3thin
-.se8l8l9e8r.
-.sel2le
-.se8l8l9e8r8s.
-.selle4r1s2
-.se8c9r8e9t8a8r9i8a8t.
-.se1cr
-.se4c3re1ta
-.secret2a2r
-.secretar1i
-.secretar2i3a
-.se8c9r8e9t8a8r9i8a8t8s.
-.secretaria4t1s2
-.se8m9a9p8h8o8r8e.
-.se1ma
-.se4map
-.semapho4r
-.se8m9a9p8h8o8r8e8s.
-.se9m8e8s9t8e8r.
-.4se1me
-.se2mes
-.se8m8i9d8e8f9i9n8i8t8e.
-.sem2id
-.semide1f
-.semidef5i5n2ite
-.semide1fi
-.semide2fin
-.semidef2ini
-.semidefin2it
-.se8m8i9d8i9r8e8c8t.
-.semi2di
-.semid4ir2
-.semidi1re
-.semidire2c1t
-.se8m8i9h8o9m8o9t8h8e8t9i8c.
-.semi3h
-.semiho1mo
-.semihom4oth3
-.semihomoth2e
-.semihomo3the4t
-.semihomothet1ic
-.se8m8i9r8i8n8g.
-.sem4ir
-.semir1i
-.semirin4g
-.se8m8i9r8i8n8g8s.
-.semirings2
-.se8m8i9s8i8m9p8l8e.
-.se4m2is
-.semisi4m1p
-.semisim1p2l2
-.se8m8i9s8k8i8l8l8e8d.
-.sem4is4k2
-.semisk1i
-.semisk4il1l
-.semiskil2le
-.se8r8o9e8p8i9d8e9m8i9o9l8o8g9i9c8a8l.
-.s2er4o
-.sero4e
-.seroep4id
-.seroepi3de
-.seroepid4em
-.seroepidem2io
-.seroepidemi1ol
-.seroepidemio3log1ic
-.seroepidemiologi1ca
-.se8r9v8o9m8e8c8h9a8n8i8s8m.
-.4ser3vo
-.servo2me
-.servome2ch
-.servomech5a5nis
-.servomecha2n
-.servomechani2s1m
-.se8r9v8o9m8e8c8h9a8n8i8s8m8s.
-.servomechan4is4m1s2
-.se8s9q8u8i9p8e9d8a9l8i8a8n.
-.s1e4s
-.sesqu2
-.sesq2ui2
-.sesqu2ip
-.sesquipe4
-.sesqui2p2ed
-.sesquip2e2d2a
-.sesquipedal1i
-.sesquipedal2i1a
-.sesquipedali2a2n
-.se8t9u8p.
-.se1tu
-.se8t9u8p8s.
-.setu2p1s2
-.se9v8e8r8e9l8y.
-.5sev
-.sev1er
-.sev4erel
-.severe1ly
-.sh8a8p8e9a8b8l8e.
-.sha3pe4a
-.shape1a4b
-.shapeab2l2
-.sh8o8e9s8t8r8i8n8g.
-.sho4
-.sho2est4r
-.shoestrin4g
-.sh8o8e9s8t8r8i8n8g8s.
-.shoestrings2
-.si8d8e9s8t8e8p.
-.5side4s2
-.s2id
-.sideste4p
-.si8d8e9s8t8e8p8s.
-.sideste2p1s2
-.si8d8e9s8w8i8p8e.
-.sides4w2
-.sideswi2
-.sidesw2ip
-.sideswipe4
-.sk8y9s8c8r8a8p8e8r.
-.sk2
-.skys4c
-.skyscrap3er
-.sk8y9s8c8r8a8p8e8r8s.
-.skyscrape4r1s2
-.sm8o8k8e9s8t8a8c8k.
-.2s1m
-.s1mo
-.s4m2ok
-.smokes4
-.smokes1ta
-.smokestack1
-.sm8o8k8e9s8t8a8c8k8s.
-.smokestac4k1s2
-.sn8o8r9k8e8l9i8n8g.
-.s1n4
-.snorke5l2i
-.snorke4l3ing
-.so9l8e9n8o8i8d.
-.1so
-.sol4eno
-.solenoi2
-.soleno2id
-.so9l8e9n8o8i8d8s.
-.solenoi2d1s2
-.so8l8u8t8e.
-.so1lut
-.so8l8u8t8e8s.
-.so8v9e8r9e8i8g8n.
-.4sov
-.soverei2
-.sovere2ig2
-.so8v9e8r9e8i8g8n8s.
-.sovereig2n1s2
-.sp8a9c8e8s.
-.2s1pa
-.spa4ce
-.sp8e9c8i8o8u8s.
-.spe2c
-.spe1c2i
-.spec2io
-.speciou2
-.specio2us
-.sp8e8l8l9e8r.
-.spel1l
-.spel2le
-.sp8e8l8l9e8r8s.
-.spelle4r1s2
-.sp8e8l8l9i8n8g.
-.spell2i
-.spel2lin4
-.sp8e9l8u8n8k9e8r.
-.spelu4nk2
-.spelunk1er
-.sp8e8n8d9t8h8r8i8f8t.
-.spen4d
-.spend2th
-.spendt4hr4
-.spendthr4i2ft
-.sp8h8e8r9o8i8d.
-.s2phe
-.3sph4er
-.sph2ero
-.spheroi2
-.sphero2id
-.sp8h8e8r9o8i8d9a8l.
-.spheroi1d2a
-.sp8h8i8n9g8e8s.
-.sph5ing
-.sph4inge
-.sp8i8c9i9l8y.
-.sp2i1ci
-.spici1ly
-.sp8i8n9o8r8s.
-.spi2n
-.sp4i1no
-.spino4rs2
-.sp8o8k8e8s9w8o8m8a8n.
-.sp2ok
-.spokes4
-.spokes4w2
-.spoke4s1wo2
-.spokeswom1
-.spokeswo1ma
-.spokeswoma2n
-.sp8o8k8e8s9w8o8m8e8n.
-.spokeswo2me
-.spokeswo1men
-.sp8o8r8t8s9c8a8s8t.
-.s1p4or4
-.spor4t1s2
-.sport4sc
-.sports1ca
-.sp8o8r8t8s9c8a8s8t9e8r.
-.sportscast5er
-.sp8o8r9t8i8v8e9l8y.
-.spor1ti
-.spor4t2iv
-.sportiv4e1ly
-.sp8o8r8t8s9w8e8a8r.
-.sport4sw2
-.sportswe2a2r
-.sp8o8r8t8s9w8r8i8t8e8r.
-.sportswri4
-.sportswr2ite
-.sp8o8r8t8s9w8r8i8t8e8r8s.
-.sportswrit5e4r1s2
-.sp8r8i8g8h8t9l8i8e8r.
-.spr2
-.spr2ig
-.sprigh2tl
-.sprightl2ie4
-.sq8u8e8a9m8i8s8h.
-.squ2
-.squeam2is
-.squeamis2h
-.st8a8n8d9a8l8o8n8e.
-.5st4and
-.sta2n
-.stan1d2a
-.standalo2n
-.st8a8r9t8l8i8n8g.
-.st2a2r
-.star2tl
-.st8a8r9t8l8i8n8g9l8y.
-.startlingl2
-.startling1ly
-.st8a9t8i8s9t8i8c8s.
-.statis1t2i
-.statis1tic
-.statisti4c3s2
-.st8e8a8l8t8h9i8l8y.
-.stea4l
-.stea4lt
-.stealth3i
-.steal4th4il2
-.stealthi1ly
-.st8e8e8p8l8e9c8h8a8s8e.
-.s1tee
-.stee4p1
-.stee1p2l2
-.steeple2ch
-.st8e8r8e8o9g8r8a8p8h9i8c.
-.stere1o
-.stereo2g
-.stereo1gr
-.stereo5graph1ic
-.stereogr4aphi
-.st8o9c8h8a8s9t8i8c.
-.s1to
-.sto2ch4
-.stochast2i
-.stochas1tic
-.st8r8a8n8g8e9n8e8s8s.
-.st4r
-.s1tra
-.stran4ge
-.stra2n
-.str2ang
-.strange4n4e
-.stran1gen
-.strange1nes
-.strangen2e2ss
-.st8r8a8p9h8a8n8g8e8r.
-.straph2an4g
-.straphang5er
-.strapha2n
-.st8r8a8t9a9g8e8m.
-.stra2ta
-.st8r8a8t9a9g8e8m8s.
-.stratage4m1s2
-.st8r8e8t8c8h9i9e8r.
-.stre4tc
-.stret4ch
-.stretch2ie4
-.st8r8i8p9t8e8a8s8e.
-.str2ip
-.stri2p1t
-.strip2te
-.st8r8o8n8g9h8o8l8d.
-.stro2n
-.strongho2l2d
-.st8r8o8n8g9e8s8t.
-.st8u9p8i8d9e8r.
-.s1tu
-.stup4id
-.stupi3de
-.st8u9p8i8d9e8s8t.
-.stupide4s2
-.su8b9d8i8f9f8e8r9e8n9t8i8a8l.
-.1su
-.su4b3
-.su4b1d
-.subd1if
-.subdi4f1f
-.subdiffer1
-.subdiffer3en1t
-.subdifferent2i
-.subdifferen1t2i1a
-.subdifferenti2al
-.su8b9e8x9p8r8e8s9s8i8o8n.
-.sub4e
-.sub1ex3p
-.subexpr2
-.subex3pr2e2ss
-.subexpres1si
-.subexpres1s2io
-.subexpres5sio2n
-.su8b9e8x9p8r8e8s9s8i8o8n8s.
-.subexpressio2n3s2
-.su8m9m8a9b8l8e.
-.su2m
-.sum1m
-.sum1ma
-.sum2mab
-.summab2l2
-.su8p8e8r9e8g8o.
-.su1pe
-.supere1go
-.su8p8e8r9e8g8o8s.
-.supere4gos
-.su9p8r8e8m9a9c8i8s8t.
-.supr2
-.supre4mac
-.supre1ma
-.suprem4a2ci
-.su9p8r8e8m9a9c8i8s8t8s.
-.supremacis4t1s2
-.su8r9v8e8i8l9l8a8n8c8e.
-.su2r
-.surv4e
-.survei2
-.surveil1l
-.surveilla2n
-.sw8i8m9m8i8n8g9l8y.
-.sw2
-.swi2
-.swim1m
-.swimm4ingl2
-.swimm5ing1ly
-.sy8m8p9t8o9m8a8t8i8c.
-.sy4m1p
-.sym2p1t
-.symp1to
-.sympto2ma
-.symptomat1ic
-.sy8n9c8h8r8o9m8e8s8h.
-.syn3c4hr4
-.syn2ch
-.synchro2me
-.synchro2mes
-.synchrom4es2h
-.sy8n9c8h8r8o9n8o8u8s.
-.synchro2n
-.synchro1nou2
-.synchrono2us
-.sy8n9c8h8r8o9t8r8o8n.
-.synchrotro2n
-.ta8f8f9r8a8i8l.
-.4ta2f4
-.ta4f1f4
-.taffr2ai2
-.ta8l8k9a9t8i8v8e.
-.ta2l
-.4talk
-.talka3
-.talka4t
-.talka1t2iv
-.ta9p8e8s9t8r8y.
-.tap2est4r
-.tape4stry
-.ta9p8e8s9t8r8i8e8s.
-.tapestr2ie4
-.ta8r9p8a8u9l8i8n.
-.t2a2r
-.tar2p
-.tar1pa
-.tarpau4l2
-.tarpaul2i
-.ta8r9p8a8u9l8i8n8s.
-.tarpaul2i2n1s2
-.te9l8e8g9r8a9p8h8e8r.
-.tele1gr
-.teleg5ra3ph4er
-.te9l8e8g9r8a9p8h8e8r8s.
-.telegraphe4r1s2
-.te8l8e9k8i9n8e8t9i8c.
-.teleki4n
-.telek1i
-.telek2ine
-.teleki3net1ic
-.te8l8e9k8i9n8e8t9i8c8s.
-.telekineti4c3s2
-.te8l8e9r8o9b8o8t9i8c8s.
-.te4l1er
-.tel4ero
-.teler5ob
-.teleroboti4c3s2
-.te8l8l9e8r.
-.tel1l
-.tel2le
-.te8l8l9e8r8s.
-.telle4r1s2
-.te8m9p8o9r8a8r9i8l8y.
-.te4m1p
-.tem1p4or
-.tempo1ra
-.tempo4raril
-.tempor2a2r
-.temporar1i
-.temporari1ly
-.te8n9u8r8e.
-.te8s8t9b8e8d.
-.tes2t1b
-.test4be2d
-.te8x8t9w8i8d8t8h.
-.3tex
-.tex1t2
-.textw4
-.textwi2
-.textw2id
-.textwid2th
-.th8a8l9a9m8u8s.
-.tha3la
-.thala3m
-.thala1mu
-.thalam2us
-.th8e8r9m8o9e8l8a8s9t8i8c.
-.th2e
-.ther3m4
-.ther1mo
-.thermo4el
-.thermoe1la
-.thermoelast2i
-.thermoelas1tic
-.ti8m8e9s8t8a8m8p.
-.ti2mes
-.times1ta
-.timesta4m1p
-.ti8m8e9s8t8a8m8p8s.
-.timestam2p1s2
-.to8o8l9k8i8t.
-.too2
-.toolk1i
-.to8o8l9k8i8t8s.
-.toolki4t1s2
-.to8p8o9g8r8a8p8h9i9c8a8l.
-.to5po4g
-.topo1gr
-.topo5graph1ic
-.topogr4aphi
-.topographi1ca
-.to8q8u8e8s.
-.to1q
-.toqu2
-.tr8a8i9t8o8r9o8u8s.
-.1tra
-.tr2ai2
-.trai1to
-.traitorou2
-.traitoro2us
-.tr8a8n8s9c8e8i8v8e8r.
-.tra2n
-.tra2n1s2
-.trans4c
-.tran4s3cei2
-.transce2iv
-.tr8a8n8s9c8e8i8v8e8r8s.
-.transceive4r1s2
-.tr8a8n8s9g8r8e8s8s.
-.tran2s3g
-.trans1gr
-.transgr2e2ss
-.tr8a8n8s9v8e8r9s8a8l.
-.tran4sv
-.transve4r1s2
-.transver1sa2
-.tr8a8n8s9v8e8r9s8a8l8s.
-.transversa2l1s2
-.tr8a8n8s9v8e8s9t8i8t8e.
-.transv4e2s
-.transvest2i
-.transvest2ite
-.tr8a8n8s9v8e8s9t8i8t8e8s.
-.transvestit4es
-.tr8a9v8e8r8s9a9b8l8e.
-.trave4r1s2
-.traver1sa2
-.traver2s1ab
-.traversab2l2
-.tr8a9v8e8r9s8a8l.
-.tr8a9v8e8r9s8a8l8s.
-.traversa2l1s2
-.tr8i9e8t8h8y8l9a8m8i8n8e.
-.tri5et
-.tr2ie4
-.triethy3la
-.triethylam1in
-.triethylam2ine
-.tr8e8a8c8h9e8r8i8e8s.
-.trea2ch
-.treache2
-.treacher1i
-.treacher2ie4
-.tr8o8u9b8a9d8o8u8r.
-.trou2
-.trouba2d
-.trouba1do
-.troubadou2
-.tu8r9k8e8y.
-.1tu
-.tu8r9k8e8y8s.
-.turkeys4
-.tu8r8n9a8r8o8u8n8d.
-.tur4n2a2r
-.tur1na
-.turnarou2
-.turnaroun2d
-.tu8r8n9a8r8o8u8n8d8s.
-.turnaroun2d1s2
-.ty8p9a8l.
-.1ty
-.ty1pa
-.typ4al
-.un9a8t9t8a8c8h8e8d.
-.un2at4
-.una4t3t2
-.unat1ta
-.unatta2ch
-.unattache2
-.unatta4ch4ed
-.un9e8r8r9i8n8g9l8y.
-.un4er
-.uner4r4
-.unerrin4g
-.unerringl2
-.unerring1ly
-.un9f8r8i8e8n8d9l8y.
-.un3f
-.unfri2
-.unfr2ie4
-.unfrien2d1ly
-.un9f8r8i8e8n8d9l8i9e8r.
-.unfriendl2ie4
-.va8g8u8e8r.
-.1va
-.vag4
-.va5guer
-.va2gue
-.va8u8d8e9v8i8l8l8e.
-.vaude1v4
-.vaude2v3i4l
-.vaude1vi
-.vaudevil1l
-.vaudevil2le
-.vi8c9a8r8s.
-.v4ic2a2r
-.vi1ca
-.vica4rs2
-.vi8l9l8a8i8n9e8s8s.
-.2vil
-.vil1l
-.villai2
-.villa4i4n
-.villa2ine
-.villai5n2e2ss
-.villai1nes
-.vi8s9u8a8l.
-.vi3su
-.visu1al
-.vi8s9u8a8l9l8y.
-.visual1l
-.visual1ly
-.vi9v8i8p9a9r8o8u8s.
-.3v2iv
-.viv2i4p
-.vivi1pa
-.vivip2a2r
-.viviparou2
-.viviparo2us
-.vo8i8c8e9p8r8i8n8t.
-.voi4
-.voi3cep
-.voicepr2
-.voiceprin4t3
-.vs8p8a8c8e.
-.v2s1pa
-.vspa4ce
-.wa8d9d8i8n8g.
-.wa2d
-.wad4d1in
-.wad1d4
-.wa8l8l9f8l8o8w8e8r.
-.wal1l
-.wal2lf
-.wallf4l2
-.wallflow1er
-.wa8l8l9f8l8o8w9e8r8s.
-.wallflowe4r1s2
-.wa8r8m9e8s8t.
-.w2a2r
-.war1m
-.war2me
-.war2mes
-.wa8s8t8e9w8a8t8e8r.
-.was4t
-.waste2w
-.waste1w5a
-.wastewa1te
-.wa8v8e9g8u8i8d8e.
-.waveg3
-.waveg2ui2
-.wavegu2id
-.wa8v8e9g8u8i8d8e8s.
-.waveguide4s2
-.wa8v8e9l8e8t.
-.wa8v8e9l8e8t8s.
-.wavele4t1s2
-.we8b9l8i8k8e.
-.w2e1b
-.web2l2
-.web3l4ik
-.we8e8k9n8i8g8h8t.
-.weekn2ig
-.we8e8k9n8i8g8h8t8s.
-.weeknigh4t1s2
-.wh8e8e8l9c8h8a8i8r.
-.whee4l1c2
-.wheel2ch
-.wheelchai2
-.wheelcha4ir
-.wh8e8e8l9c8h8a8i8r8s.
-.wheelchai4rs2
-.wh8i8c8h9e8v8e8r.
-.whi4
-.wh4i2ch
-.whiche2
-.whichev1er
-.wh8i8t8e9s8i8d8e8d.
-.wh2ite
-.whit4es
-.white1si
-.white2s2id
-.whitesi2d1ed
-.wh8i8t8e9s8p8a8c8e.
-.white1sp
-.white2s1pa
-.whitespa4ce
-.wh8i8t8e9s8p8a8c8e8s.
-.wi8d8e9s8p8r8e8a8d.
-.w2id
-.wide4s2
-.wide1sp
-.wides4pre
-.widespr2
-.widesprea2d1
-.wi8n8g9s8p8a8n.
-.win4g
-.wings2
-.wing2s1pa
-.wingspa4n
-.wi8n8g9s8p8a8n8s.
-.wingspa2n1s2
-.wi8n8g9s8p8r8e8a8d.
-.wingspr2
-.wingsprea2d1
-.wi8t8c8h9c8r8a8f8t.
-.wi4tc
-.wit4ch
-.witchcra2f4t
-.witchcra2f
-.wo8r8d9s8p8a8c9i8n8g.
-.1wo2
-.wor2d1s2
-.words4p
-.word2s1pa
-.wordsp4a2ci
-.wordspa2c1in
-.wordspac1ing
-.wo8r8k9a8r8o8u8n8d.
-.work2a2r
-.workarou2
-.workaroun2d
-.wo8r8k9a8r8o8u8n8d8s.
-.workaroun2d1s2
-.wo8r8k9h8o8r8s8e.
-.workh4
-.workhor4se
-.workho4rs2
-.wo8r8k9h8o8r8s8e8s.
-.workhors3e4s
-.wr8a8p9a8r8o8u8n8d.
-.wra4
-.wrap2a2r4
-.wra1pa
-.wraparou2
-.wraparoun2d
-.wr8e8t8c8h9e8d.
-.wre4tc
-.wret4ch
-.wretche2
-.wret4ch4ed
-.wr8e8t8c8h9e8d9l8y.
-.wretche2d1ly
-.ye8s9t8e8r9y8e8a8r.
-.yes4
-.yesterye2a2r
-.al9g8e9b8r8a8i9s8c8h8e.
-.algebra2is1c
-.algebrais3ch2
-.algebraische2
-.al9l8e9g8h8e9n8y.
-.al1l
-.al2le
-.al3leg
-.alleghe2n
-.ar9k8a8n9s8a8s.
-.arka2n
-.arkan2sa2
-.arka2n1s2
-.at8p9a8s8e.
-.a4t1p
-.at1pa
-.at8p9a8s8e8s.
-.atpas1e4s
-.au8s9t8r8a8l9a8s8i8a8n.
-.a2us
-.aus1t4r
-.aus1tra
-.australas2i1a
-.australasi2a2n
-.au8t8o9m8a8t8i9s8i8e8r9t8e8r.
-.automa3tis
-.automatis2ie4
-.automatisiert3er
-.be9d8i8e9n8u8n8g.
-.4be2d
-.b4e3di
-.be5di3en
-.bed2ie4
-.bedie3nu4n
-.be8m8b8o.
-.4be5m
-.be4m5b
-.bi8b9l8i9o9g8r8a9p8h8i9s8c8h8e.
-.bibliogr4aphi
-.bibliograph2is1c
-.bibliographis3ch2
-.bibliographische2
-.bo8s9t8o8n.
-.5bos4
-.bos1to
-.bosto2n
-.br8o8w8n9i8a8n.
-.brown5i
-.brow3n4i1a
-.browni3a2n
-.br8u8n8s9w8i8c8k.
-.bru2n
-.bru2n3s4
-.brun4sw2
-.brunswi2
-.brunswick1
-.bu9d8a9p8e8s8t.
-.bu1d2a
-.ca8r9i8b9b8e8a8n.
-.car1i
-.car4ib
-.cari2b1b
-.carib2be
-.caribbea2n
-.ch8a8r8l8e8s9t8o8n.
-.char4le4
-.char1l
-.charles2
-.charl4es2to
-.charle3sto2n
-.ch8a8r9l8o8t8t8e8s9v8i8l8l8e.
-.char3lo4
-.charlo4t3t2
-.charlot4tes
-.charlotte4sv
-.charlottes2vil
-.charlottesvil1l
-.charlottesvil2le
-.co9l8u8m9b8i8a.
-.colum4bi
-.colu4m1b
-.columb2i1a
-.cz8e8c8h8o9s8l8o9v8a9k8i8a.
-.c2ze4
-.cze2ch
-.cze3cho2
-.czechos4l2
-.czechos4lov
-.czechoslo1va
-.czechoslovak1i
-.czechoslovak2i1a
-.de8l9a9w8a8r8e.
-.de1la
-.de4law
-.delaw2a2r
-.di8j8k9s8t8r8a.
-.di3j
-.dij4k1s2
-.dijkst4r
-.dijks1tra
-.du8a8n8e.
-.d1u1a
-.dua2n
-.dy9n8a9m8i9s8c8h8e.
-.5dyn
-.dy1na
-.dynam2is
-.dynam2is1c
-.dynamis3ch2
-.dynamische2
-.en8g9l8i8s8h.
-.engl2
-.englis2h
-.eu8l8e8r9i8a8n.
-.eul4e
-.eu3l4er1i
-.eule1r2i3a4
-.euleri2a2n
-.ev8a8n9s8t8o8n.
-.e1va
-.eva2n
-.evan4st
-.eva2n1s2
-.evans1to
-.evansto2n
-.fe8b9r8u9a8r8y.
-.f2e4b
-.fe3br
-.febru3a
-.febru2a2r
-.fe8s8t9s8c8h8r8i8f8t.
-.fes4t1s2
-.fest4sc
-.fests2ch2
-.festsc4hr4
-.festschr4i2ft
-.fl8o8r9i9d8a.
-.flor2id
-.flori1d2a
-.fl8o8r9i9d9i8a8n.
-.flori2di
-.florid5i2a2n
-.flori1d4i3a
-.fo8r9s8c8h8u8n8g8s9i8n9s8t8i9t8u8t.
-.fors4c
-.fors2ch2
-.forschungs2
-.forschung2s1in
-.forschungs2i2n1s2
-.forschungsinst2i
-.forschungsinsti1tu
-.fr8e8e9b8s8d.
-.fre2e1b
-.free2b5s2
-.freeb4s5d
-.fu8n8k9t8s8i8o8n8a8l.
-.3fu
-.fu4nk2
-.funk5t
-.funk4t1s2
-.funkt1s2io
-.funkt5sio2n
-.funktsio1n5a
-.ga8u8s8s9i8a8n.
-.ga2us
-.gau2ss
-.gaus1si
-.gauss2i1a
-.gaussi2a2n
-.gh8o8s8t9s8c8r8i8p8t.
-.ghos4t1s2
-.ghost4sc
-.ghostscri2
-.ghostscr2ip
-.ghostscri2p1t
-.gh8o8s8t9v8i8e8w.
-.ghos4tv
-.ghostv2ie4
-.gr8a8s8s9m8a8n8n9i8a8n.
-.gr2as
-.gra2ss
-.gras2s1m
-.grass3ma
-.grassma2n3
-.grassma4n1n2
-.grassman3n4i1a
-.grassma2nni3a2n
-.gr8e8i8f8s9w8a8l8d.
-.grei2
-.grei2f3s
-.greifsw2
-.greifswa2ld
-.gr8o8t8h8e8n9d8i8e8c8k.
-.g4ro
-.gro4th2e
-.gr4oth
-.grothe2n
-.grothend2ie4
-.grothendieck1
-.gr8u8n8d9l8e8h9r8e8n.
-.gru2n
-.grundle1h4
-.grundle4hr4
-.ha9d8a9m8a8r8d.
-.ha2d
-.ha1d2a
-.hada2m2
-.had4a1ma
-.hadam2a2r
-.ha8i9f8a.
-.hai1fa
-.ha8m8i8l9t8o8n9i8a8n.
-.ha4m
-.hami4lt
-.hamil1to
-.hamilto2n
-.hamilto3n4i1a
-.hamiltoni3a2n
-.he8l9s8i8n8k8i.
-.he2l1s2
-.hel2s1in
-.hels4i4nk2
-.helsink1i
-.he8r9m8i8t9i8a8n.
-.her3mit
-.hermi1ti
-.herm4i1t2i1a
-.hermiti2a2n
-.hi8b8b8s.
-.hi2b1b
-.hib2b5s2
-.ho8k9k8a8i9d8o.
-.h2ok
-.hokk4
-.hokkai2
-.hokka2id
-.hokkai1do
-.ja8c9k8o8w9s8k8i.
-.5ja
-.jack1
-.jackowsk2
-.jackowsk1i
-.ja8n9u9a8r8y.
-.ja2n
-.jan3u1a
-.janu2a2r
-.ja9p8a9n8e8s8e.
-.ja4p
-.ja1pa
-.japa2n
-.japa1nes
-.japane1s2e
-.ka8d9o8m9t8s8e8v.
-.ka2d
-.ka1do
-.kado4mt
-.kadom4t1s2
-.kadomt5sev
-.ka8n9s8a8s.
-.ka2n
-.kan2sa2
-.ka2n1s2
-.ka8r8l8s9r8u8h8e.
-.k2a2r
-.kar1l
-.kar2l1s2
-.karls1r
-.ko8r9t8e9w8e8g.
-.ko5r
-.kr8i8s8h8n8a.
-.kr2is
-.kr3is2h
-.kris2h1n
-.krish1na
-.kr8i8s8h9n8a9i8s8m.
-.krishnai2
-.krishnai2s1m
-.kr8i8s8h9n8a8n.
-.krishn2a2n
-.la8n9c8a8s9t8e8r.
-.lan1ca
-.lancast5er
-.le9g8e8n8d8r8e.
-.le1gen
-.legen1dr
-.legendre4
-.le8i8c8e8s9t8e8r.
-.lei2
-.le5ic
-.leices5t
-.li8p9s8c8h8i8t8z.
-.l2ip
-.li2p1s2
-.lips2ch2
-.lips3chit
-.lipschi4tz
-.li8p9s8c8h8i8t8z9i8a8n.
-.lipschit2z1i
-.lipschitz2i1a
-.lipschitzi2a2n
-.lo8j9b8a8n.
-.lo5j
-.lojba2n
-.lo8u9i9s8i9a8n8a.
-.lou2
-.lo2ui2
-.louis2i1a
-.louisi2a2n
-.louisia1na
-.ma8c9o8s.
-.ma1co
-.ma8n9c8h8e8s9t8e8r.
-.man2ch
-.manche2
-.manch1es
-.ma8r9k8o8v9i8a8n.
-.marko5vi2a2n
-.markov2i1a
-.ma8r8k8t9o8b8e8r9d8o8r8f.
-.mark5t
-.mark1to
-.markto3b
-.marktober1do
-.marktoberd4or
-.marktoberdor1f
-.ma8s8s9a9c8h8u9s8e8t8t8s.
-.ma2ss
-.mas1sa2
-.massa2ch
-.massach2us
-.massachuse4t3t2
-.massachuset4t1s2
-.ma8x9w8e8l8l.
-.maxwel4l
-.mi9c8r8o9s8o8f8t.
-.micro2so
-.microso2ft3
-.mi8n9n8e9a8p9o9l8i8s.
-.m2i4n1n2
-.minne4
-.minneapol2i
-.mi8n9n8e9s8o8t8a.
-.min1nes
-.minne1so
-.minneso1ta
-.mo8s9c8o8w.
-.mos2c
-.mos1co
-.na8c8h9r8i8c8h8t8e8n.
-.1na
-.na2ch
-.nac4hr4
-.na2chr4i2ch
-.nachricht1en
-.na8s8h9v8i8l8l8e.
-.n4as
-.nas2h
-.nash2vil
-.nashvil1l
-.nashvil2le
-.ne8t9b8s8d.
-.ne2t1b
-.net2b5s2
-.netb4s5d
-.ne8t9s8c8a8p8e.
-.ne4t1s2
-.net4sc
-.netsca4p
-.nets1ca
-.ni8j9m8e9g8e8n.
-.ni3j
-.nijme2g
-.nijme1gen
-.no8e9t8h8e8r9i8a8n.
-.3noe
-.noeth2e
-.noether1i
-.noethe1r2i3a4
-.noetheri2a2n
-.no8o8r8d9w8i8j8k8e8r9h8o8u8t.
-.noo2
-.no3ord
-.noord1w
-.noordwi2
-.noordwi3j
-.noordwijk1er
-.noordwijker1h4
-.noordwijkerhou2
-.no9v8e8m9b8e8r.
-.nove4m5b
-.op8e8n9b8s8d.
-.ope4n1b4
-.open2b5s2
-.openb4s5d
-.op8e8n9o8f8f8i8c8e.
-.op4eno
-.openo4f1f
-.openof1fi
-.pa8l8a9t8i8n8o.
-.pala2t1in
-.palat2i1no
-.pa9l8e8r9m8o.
-.paler3m4
-.paler1mo
-.pe9t8r8o8v9s8k8i.
-.petro3v
-.petrovsk2
-.petrovsk1i
-.pf8a8f8f9i8a8n.
-.4pf
-.p1fa
-.pfa2f
-.pfa4f1f4
-.pfaf1fi
-.pfaff2i3a
-.pfaffi2a2n
-.ph8i8l9a9d8e8l9p8h8i8a.
-.phi4l4ade
-.phila2d
-.philade2lp
-.philadel5phi
-.philadelph2i1a
-.ph8i8l9o9s8o8p8h9i9s8c8h8e.
-.philo2so
-.philos4op
-.philos2oph
-.philosoph2is1c
-.philosophis3ch2
-.philosophische2
-.po8i8n9c8a8r8e.
-.poin2
-.poi2
-.poinc2a2r5
-.poin1ca
-.po9t8e8n9t8i8a8l9g8l8e8i9c8h8u8n8g.
-.p4ot
-.po1ten1t
-.potent2i
-.poten1t2i1a
-.potenti2al
-.potentia4l1g4
-.potentialgl2
-.potential1gle
-.potentialglei2
-.potentialgle5ic
-.potentialgle4i2ch
-.ra9d8h8a9k8r8i8s8h9n8a8n.
-.rad1h2
-.radhakr2is
-.radhakr3is2h
-.radhakris2h1n
-.radhakrish1na
-.radhakrishn2a2n
-.ra8t8h8s9k8e8l9l8e8r.
-.r4ath
-.ra2t4h1s2
-.rathsk2
-.rath4ske
-.rathskel1l
-.rathskel2le
-.ri8e9m8a8n8n9i8a8n.
-.r2ie4
-.rie5ma2n
-.rie1ma
-.riema4n1n2
-.rieman3n4i1a
-.riema2nni3a2n
-.ry8d9b8e8r8g.
-.ry1d
-.ryd1b
-.rydberg2
-.sc8h8o8t9t8i8s8c8h8e.
-.scho4t3t2
-.schott2is1c
-.s2ch2ottis3ch2
-.schottische2
-.sc8h8r8o9d8i8n8g9e8r.
-.sc4hr4
-.schrod1in
-.schrod4inge
-.sc8h8w8a9b8a9c8h8e8r.
-.sch1w
-.schwaba2ch
-.schwabache2
-.sc8h8w8a8r8z9s8c8h8i8l8d.
-.schw2a2r
-.s2chwarzs2ch2
-.schwarzsch4il2
-.schwarzschi2ld
-.se8p9t8e8m9b8e8r.
-.se2p1t
-.sep2te
-.septe4m5b
-.st8o8k8e8s9s8c8h8e.
-.st2ok
-.stokes4
-.stok2e2ss
-.stokes2s5c
-.stokess2ch2
-.stokessche2
-.st8u8t8t9g8a8r8t.
-.stu4t3t2
-.stut4t1g
-.stutt1ga
-.stuttg2a2r
-.su8s9q8u8e9h8a8n9n8a.
-.s2us
-.susqu2
-.susque1h4
-.susqueha2n
-.susqueha4n1n2
-.susquehan1na
-.ta8u9b8e8r9i8a8n.
-.tau4b
-.taub4e
-.tau3ber
-.tauber1i
-.taube1r2i3a4
-.tauberi2a2n
-.te8c8h9n8i9s8c8h8e.
-.te2ch
-.tec2h1n
-.techn2is1c
-.te2chnis3ch2
-.technische2
-.te8n9n8e8s9s8e8e.
-.t4e4n1n2
-.tenne4
-.ten1nes
-.tenn2e2ss
-.to9m8a9s8z8e8w9s8k8i.
-.to2ma
-.tomas2ze
-.tomaszewsk2
-.tomaszewsk1i
-.ty9p8o9g8r8a8p8h8i8q8u8e.
-.ty3po
-.ty5po4g
-.typo1gr
-.typogr4aphi
-.typographiqu2
-.uk8r8a8i8n9i8a8n.
-.4uk
-.ukr2ai2
-.ukra4i4n
-.ukra2ini
-.ukrai4n4i1a
-.ukraini3a2n
-.ve8r9a8l8l9g8e9m8e8i8n9e8r8t8e.
-.veral1l
-.veral4l1g4
-.verallge1me
-.verallgemei2
-.verallgeme2ine
-.verallgemein1er
-.ve8r9e8i8n9i9g8u8n8g.
-.vere3in
-.verei2
-.vere2ini
-.verein2ig
-.vereini3gun
-.ve8r9t8e8i9l8u8n9g8e8n.
-.vertei2
-.verteilun1gen
-.vi8i8i8t8h.
-.v4i5i4
-.vi4i5i4
-.vii2ith
-.vi8i8t8h.
-.vi2ith
-.wa8h8r9s8c8h8e8i8n9l8i8c8h9k8e8i8t8s9t8h8e8o9r8i8e.
-.wa4hr4
-.wah4rs2
-.wahrs4c
-.wahrs2ch2
-.wahrsche2
-.wahrschei2
-.wahrsche4i4n1l
-.wahrs2cheinl4i2ch
-.wahrscheinlic4hk
-.wahrscheinlichkei2
-.wahrscheinlichkei4t1s2
-.wahrscheinlichkeits3th2e
-.wahrscheinlichkeitsthe1o5r
-.wahrscheinlichkeitstheor2ie4
-.we8r9n8e8r.
-.w1er
-.wer4n1er
-.we8r9t8h8e8r9i8a8n.
-.werth2e
-.werther1i
-.werthe1r2i3a4
-.wertheri2a2n
-.wi8n9c8h8e8s9t8e8r.
-.win2ch
-.winche2
-.winch1es
-.wi8r8t9s8c8h8a8f8t.
-.w4ir4
-.wir4t1s2
-.wirt4sc
-.wirts2ch2
-.wirtscha2f
-.wirtscha2ft
-.wi8s9s8e8n9s8c8h8a8f8t9l8i8c8h.
-.w4i2s1s
-.wissen4
-.wisse2n1s2
-.wissens4c
-.wissens2ch2
-.wissenscha2f
-.wissenscha2ft
-.wissenschaf2tl
-.wissens2chaftl4i2ch
-.xv8i8i8i8t8h.
-.xv4i5i4
-.xvi4i5i4
-.xvii2ith
-.xv8i8i8t8h.
-.xvi2ith
-.xx8i8i8i8r8d.
-.xx4
-.xx3i
-.xx4i5i4
-.xxi4i5i4
-.xxii4ir
-.xx8i8i8n8d.
-.xxi4ind
-.yi8n8g9y8o8n8g.
-.y1i
-.yin2gy
-.yingy1o4
-.yingyo2n
-.sh8u9x8u8e.
-.shux1u3
-.ji9s8u8a8n.
-.ji2su
-.jisua2n
-.ze8a9l8a8n8d.
-.2ze
-.zea4l
-.zea3l4and
-.zeala2n
-.ze8i8t9s8c8h8r8i8f8t.
-.zei2
-.zei4t1s2
-.zeit4sc
-.zeits2ch2
-.zeitsc4hr4
-.zeitschr4i2ft
diff --git a/core/res/assets/webkit/incognito_mode_start_page.html b/core/res/assets/webkit/incognito_mode_start_page.html
deleted file mode 100644
index 5d7a3fb..0000000
--- a/core/res/assets/webkit/incognito_mode_start_page.html
+++ /dev/null
@@ -1,24 +0,0 @@
-<html>
-  <head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no"/>
-    <title>New incognito window</title>
-  </head>
-  <body>
-    <p><strong>You've gone incognito</strong>. Pages you view in this window
-      won't appear in your browser history or search history, and they won't
-      leave other traces, like cookies, on your device after you close the
-      incognito window. Any files you download or bookmarks you create will be
-      preserved, however.</p>
-
-    <p><strong>Going incognito doesn't affect the behavior of other people,
-      servers, or software. Be wary of:</strong></p>
-
-    <ul>
-      <li>Websites that collect or share information about you</li>
-      <li>Internet service providers or employers that track the pages you visit</li>
-      <li>Malicious software that tracks your keystrokes in exchange for free smileys</li>
-      <li>Surveillance by secret agents</li>
-      <li>People standing behind you</li>
-    </ul>
-  </body>
-</html>
diff --git a/core/res/assets/webkit/missingImage.png b/core/res/assets/webkit/missingImage.png
deleted file mode 100644
index f49a98d..0000000
--- a/core/res/assets/webkit/missingImage.png
+++ /dev/null
Binary files differ
diff --git a/core/res/assets/webkit/nullPlugin.png b/core/res/assets/webkit/nullPlugin.png
deleted file mode 100644
index 96a52e3..0000000
--- a/core/res/assets/webkit/nullPlugin.png
+++ /dev/null
Binary files differ
diff --git a/core/res/assets/webkit/play.png b/core/res/assets/webkit/play.png
deleted file mode 100644
index 26fe286..0000000
--- a/core/res/assets/webkit/play.png
+++ /dev/null
Binary files differ
diff --git a/core/res/assets/webkit/textAreaResizeCorner.png b/core/res/assets/webkit/textAreaResizeCorner.png
deleted file mode 100644
index 777eff0..0000000
--- a/core/res/assets/webkit/textAreaResizeCorner.png
+++ /dev/null
Binary files differ
diff --git a/core/res/assets/webkit/togglePlugin.png b/core/res/assets/webkit/togglePlugin.png
deleted file mode 100644
index 008333c..0000000
--- a/core/res/assets/webkit/togglePlugin.png
+++ /dev/null
Binary files differ
diff --git a/core/res/assets/webkit/youtube.html b/core/res/assets/webkit/youtube.html
deleted file mode 100644
index 8e103c1..0000000
--- a/core/res/assets/webkit/youtube.html
+++ /dev/null
@@ -1,71 +0,0 @@
-<html>
-  <head>
-    <style type="text/css">
-      body      { background-color: black; }
-      a:hover   { text-decoration: none; }
-      a:link    { color: black; }
-      a:visited { color: black; }
-      #main {
-        position: absolute;
-        left: 0%;
-        top: 0%;
-        width: 100%;
-        height: 100%;
-        padding: 0%;
-        z-index: 10;
-        background-size: 100%;
-        background: no-repeat;
-        background-position: center;
-      }
-      #play {
-        position: absolute;
-        left: 50%;
-        top: 50%;
-      }
-      #logo {
-        position: absolute;
-        bottom: 0;
-        right: 0;
-      }
-    </style>
-  </head>
-  <body id="body">
-  <script type="text/javascript">
-    function setup() {
-        var width = document.body.clientWidth;
-        var height = document.body.clientHeight;
-        var mainElement = document.getElementById("main");
-        var playElement = document.getElementById("play");
-        var loadcount = 0;
-        var POSTER = "http://img.youtube.com/vi/VIDEO_ID/0.jpg";
-
-        function doload() {
-            if (++loadcount == 2) {
-                // Resize the element to the right size
-                mainElement.width = width;
-                mainElement.height = height;
-                mainElement.style.backgroundImage = "url('" + POSTER + "')";
-                // Center the play button
-                playElement.style.marginTop = "-" + play.height/2 + "px";
-                playElement.style.marginLeft = "-" + play.width/2 + "px";
-                playElement.addEventListener("click", function(e) {
-                    top.location.href = "vnd.youtube:VIDEO_ID";
-                }, false);
-            }
-        }
-        var background = new Image();
-        background.onload = doload;
-        background.src = POSTER;
-        play = new Image();
-        play.onload = doload;
-        play.src = "play.png";
-    }
-
-    window.onload = setup;
-  </script>
-    <div id="main">
-        <img src="play.png" id="play"></img>
-        <img src="youtube.png" id="logo"></img>
-    </div>
-  </body>
-</html>
diff --git a/core/res/assets/webkit/youtube.png b/core/res/assets/webkit/youtube.png
deleted file mode 100644
index 87779b1..0000000
--- a/core/res/assets/webkit/youtube.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/anim/watch_switch_thumb_to_off_animation.xml b/core/res/res/anim/watch_switch_thumb_to_off_animation.xml
deleted file mode 100644
index cd02e0d..0000000
--- a/core/res/res/anim/watch_switch_thumb_to_off_animation.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?><!-- Copyright (C) 2016 The Android Open Source Project
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-          http://www.apache.org/licenses/LICENSE-2.0
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<set xmlns:android="http://schemas.android.com/apk/res/android"
-    android:ordering="sequentially">
-    <objectAnimator
-        android:duration="33"
-        android:interpolator="@android:interpolator/linear"
-        android:propertyName="pathData"
-        android:valueFrom="M 0.0,-7.0 l 0.0,0.0 c 3.8659932486,0.0 7.0,3.1340067514 7.0,7.0 l 0.0,0.0 c 0.0,3.8659932486 -3.1340067514,7.0 -7.0,7.0 l 0.0,0.0 c -3.8659932486,0.0 -7.0,-3.1340067514 -7.0,-7.0 l 0.0,0.0 c 0.0,-3.8659932486 3.1340067514,-7.0 7.0,-7.0 Z"
-        android:valueTo="M -3.0,-7.0 l 6.0,0.0 c 3.8659932486,0.0 7.0,3.1340067514 7.0,7.0 l 0.0,0.0 c 0.0,3.8659932486 -3.1340067514,7.0 -7.0,7.0 l -6.0,0.0 c -3.8659932486,0.0 -7.0,-3.1340067514 -7.0,-7.0 l 0.0,0.0 c 0.0,-3.8659932486 3.1340067514,-7.0 7.0,-7.0 Z"
-        android:valueType="pathType" />
-    <objectAnimator
-        android:duration="66"
-        android:interpolator="@android:interpolator/linear"
-        android:propertyName="pathData"
-        android:valueFrom="M -3.0,-7.0 l 6.0,0.0 c 3.8659932486,0.0 7.0,3.1340067514 7.0,7.0 l 0.0,0.0 c 0.0,3.8659932486 -3.1340067514,7.0 -7.0,7.0 l -6.0,0.0 c -3.8659932486,0.0 -7.0,-3.1340067514 -7.0,-7.0 l 0.0,0.0 c 0.0,-3.8659932486 3.1340067514,-7.0 7.0,-7.0 Z"
-        android:valueTo="M -3.0,-7.0 l 6.0,0.0 c 3.8659932486,0.0 7.0,3.1340067514 7.0,7.0 l 0.0,0.0 c 0.0,3.8659932486 -3.1340067514,7.0 -7.0,7.0 l -6.0,0.0 c -3.8659932486,0.0 -7.0,-3.1340067514 -7.0,-7.0 l 0.0,0.0 c 0.0,-3.8659932486 3.1340067514,-7.0 7.0,-7.0 Z"
-        android:valueType="pathType" />
-    <objectAnimator
-        android:duration="66"
-        android:interpolator="@android:interpolator/linear"
-        android:propertyName="pathData"
-        android:valueFrom="M -3.0,-7.0 l 6.0,0.0 c 3.8659932486,0.0 7.0,3.1340067514 7.0,7.0 l 0.0,0.0 c 0.0,3.8659932486 -3.1340067514,7.0 -7.0,7.0 l -6.0,0.0 c -3.8659932486,0.0 -7.0,-3.1340067514 -7.0,-7.0 l 0.0,0.0 c 0.0,-3.8659932486 3.1340067514,-7.0 7.0,-7.0 Z"
-        android:valueTo="M 0.0,-7.0 l 0.0,0.0 c 3.8659932486,0.0 7.0,3.1340067514 7.0,7.0 l 0.0,0.0 c 0.0,3.8659932486 -3.1340067514,7.0 -7.0,7.0 l 0.0,0.0 c -3.8659932486,0.0 -7.0,-3.1340067514 -7.0,-7.0 l 0.0,0.0 c 0.0,-3.8659932486 3.1340067514,-7.0 7.0,-7.0 Z"
-        android:valueType="pathType" />
-</set>
diff --git a/core/res/res/anim/watch_switch_thumb_to_on_animation.xml b/core/res/res/anim/watch_switch_thumb_to_on_animation.xml
deleted file mode 100644
index e644217..0000000
--- a/core/res/res/anim/watch_switch_thumb_to_on_animation.xml
+++ /dev/null
@@ -1,37 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2016 The Android Open Source Project
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-          http://www.apache.org/licenses/LICENSE-2.0
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<set xmlns:android="http://schemas.android.com/apk/res/android"
-    android:ordering="sequentially">
-    <objectAnimator
-        android:duration="33"
-        android:interpolator="@android:interpolator/linear"
-        android:propertyName="pathData"
-        android:valueFrom="M 0.0,-7.0 l 0.0,0.0 c 3.8659932486,0.0 7.0,3.1340067514 7.0,7.0 l 0.0,0.0 c 0.0,3.8659932486 -3.1340067514,7.0 -7.0,7.0 l 0.0,0.0 c -3.8659932486,0.0 -7.0,-3.1340067514 -7.0,-7.0 l 0.0,0.0 c 0.0,-3.8659932486 3.1340067514,-7.0 7.0,-7.0 Z"
-        android:valueTo="M -3.0,-7.0 l 6.0,0.0 c 3.8659932486,0.0 7.0,3.1340067514 7.0,7.0 l 0.0,0.0 c 0.0,3.8659932486 -3.1340067514,7.0 -7.0,7.0 l -6.0,0.0 c -3.8659932486,0.0 -7.0,-3.1340067514 -7.0,-7.0 l 0.0,0.0 c 0.0,-3.8659932486 3.1340067514,-7.0 7.0,-7.0 Z"
-        android:valueType="pathType" />
-    <objectAnimator
-        android:duration="66"
-        android:interpolator="@android:interpolator/linear"
-        android:propertyName="pathData"
-        android:valueFrom="M -3.0,-7.0 l 6.0,0.0 c 3.8659932486,0.0 7.0,3.1340067514 7.0,7.0 l 0.0,0.0 c 0.0,3.8659932486 -3.1340067514,7.0 -7.0,7.0 l -6.0,0.0 c -3.8659932486,0.0 -7.0,-3.1340067514 -7.0,-7.0 l 0.0,0.0 c 0.0,-3.8659932486 3.1340067514,-7.0 7.0,-7.0 Z"
-        android:valueTo="M -3.0,-7.0 l 6.0,0.0 c 3.8659932486,0.0 7.0,3.1340067514 7.0,7.0 l 0.0,0.0 c 0.0,3.8659932486 -3.1340067514,7.0 -7.0,7.0 l -6.0,0.0 c -3.8659932486,0.0 -7.0,-3.1340067514 -7.0,-7.0 l 0.0,0.0 c 0.0,-3.8659932486 3.1340067514,-7.0 7.0,-7.0 Z"
-        android:valueType="pathType" />
-    <objectAnimator
-        android:duration="66"
-        android:interpolator="@android:interpolator/linear"
-        android:propertyName="pathData"
-        android:valueFrom="M -3.0,-7.0 l 6.0,0.0 c 3.8659932486,0.0 7.0,3.1340067514 7.0,7.0 l 0.0,0.0 c 0.0,3.8659932486 -3.1340067514,7.0 -7.0,7.0 l -6.0,0.0 c -3.8659932486,0.0 -7.0,-3.1340067514 -7.0,-7.0 l 0.0,0.0 c 0.0,-3.8659932486 3.1340067514,-7.0 7.0,-7.0 Z"
-        android:valueTo="M 0.0,-7.0 l 0.0,0.0 c 3.8659932486,0.0 7.0,3.1340067514 7.0,7.0 l 0.0,0.0 c 0.0,3.8659932486 -3.1340067514,7.0 -7.0,7.0 l 0.0,0.0 c -3.8659932486,0.0 -7.0,-3.1340067514 -7.0,-7.0 l 0.0,0.0 c 0.0,-3.8659932486 3.1340067514,-7.0 7.0,-7.0 Z"
-        android:valueType="pathType" />
-</set>
diff --git a/core/res/res/color/watch_switch_thumb_color_material.xml b/core/res/res/color/watch_switch_thumb_color_material.xml
index d4796a0..f78d9b62 100644
--- a/core/res/res/color/watch_switch_thumb_color_material.xml
+++ b/core/res/res/color/watch_switch_thumb_color_material.xml
@@ -10,9 +10,9 @@
      See the License for the specific language governing permissions and
      limitations under the License.
 -->
-
 <selector xmlns:android="http://schemas.android.com/apk/res/android">
-    <item android:color="?android:colorButtonNormal" android:state_enabled="false" />
-    <item android:color="?android:colorControlActivated" android:state_checked="true" />
-    <item android:color="?android:colorButtonNormal" />
-</selector>
\ No newline at end of file
+    <item android:color="?attr/colorButtonNormal" android:alpha="?attr/disabledAlpha"
+            android:state_enabled="false" />
+    <item android:color="?attr/colorControlActivated" android:state_checked="true" />
+    <item android:color="?attr/colorButtonNormal" />
+</selector>
diff --git a/core/res/res/drawable/watch_switch_thumb_to_on_anim_mtrl.xml b/core/res/res/color/watch_switch_track_color_material.xml
similarity index 67%
rename from core/res/res/drawable/watch_switch_thumb_to_on_anim_mtrl.xml
rename to core/res/res/color/watch_switch_track_color_material.xml
index 9f92361..402a536 100644
--- a/core/res/res/drawable/watch_switch_thumb_to_on_anim_mtrl.xml
+++ b/core/res/res/color/watch_switch_track_color_material.xml
@@ -1,19 +1,21 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!-- Copyright (C) 2016 The Android Open Source Project
+
      Licensed under the Apache License, Version 2.0 (the "License");
      you may not use this file except in compliance with the License.
      You may obtain a copy of the License at
+
           http://www.apache.org/licenses/LICENSE-2.0
+
      Unless required by applicable law or agreed to in writing, software
      distributed under the License is distributed on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
      See the License for the specific language governing permissions and
      limitations under the License.
 -->
-
-<animated-vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:drawable="@drawable/watch_switch_thumb_material">
-    <target
-        android:name="thumb_path"
-        android:animation="@anim/watch_switch_thumb_to_on_animation" />
-</animated-vector>
+<!-- Used for the background of switch track for watch switch preference. -->
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:state_enabled="false"
+          android:alpha="0.4" android:color="?attr/colorPrimary" />
+    <item android:color="?attr/colorPrimary" />
+</selector>
diff --git a/core/res/res/drawable-hdpi/watch_switch_thumb_mtrl_14w.png b/core/res/res/drawable-hdpi/watch_switch_thumb_mtrl_14w.png
new file mode 100644
index 0000000..371469c
--- /dev/null
+++ b/core/res/res/drawable-hdpi/watch_switch_thumb_mtrl_14w.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/watch_switch_thumb_mtrl_15w.png b/core/res/res/drawable-hdpi/watch_switch_thumb_mtrl_15w.png
new file mode 100644
index 0000000..e477260
--- /dev/null
+++ b/core/res/res/drawable-hdpi/watch_switch_thumb_mtrl_15w.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/watch_switch_thumb_mtrl_16w.png b/core/res/res/drawable-hdpi/watch_switch_thumb_mtrl_16w.png
new file mode 100644
index 0000000..19a1bd3
--- /dev/null
+++ b/core/res/res/drawable-hdpi/watch_switch_thumb_mtrl_16w.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/watch_switch_thumb_mtrl_17w.png b/core/res/res/drawable-hdpi/watch_switch_thumb_mtrl_17w.png
new file mode 100644
index 0000000..79dc733
--- /dev/null
+++ b/core/res/res/drawable-hdpi/watch_switch_thumb_mtrl_17w.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/watch_switch_thumb_mtrl_18w.png b/core/res/res/drawable-hdpi/watch_switch_thumb_mtrl_18w.png
new file mode 100644
index 0000000..6d921c0
--- /dev/null
+++ b/core/res/res/drawable-hdpi/watch_switch_thumb_mtrl_18w.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/watch_switch_track_mtrl.png b/core/res/res/drawable-hdpi/watch_switch_track_mtrl.png
new file mode 100644
index 0000000..ecee3e1
--- /dev/null
+++ b/core/res/res/drawable-hdpi/watch_switch_track_mtrl.png
Binary files differ
diff --git a/core/res/res/drawable-nodpi/default_wallpaper.png b/core/res/res/drawable-nodpi/default_wallpaper.png
index ce546f0..d60ef83 100644
--- a/core/res/res/drawable-nodpi/default_wallpaper.png
+++ b/core/res/res/drawable-nodpi/default_wallpaper.png
Binary files differ
diff --git a/core/res/res/drawable-sw600dp-hdpi/unlock_wave.png b/core/res/res/drawable-sw600dp-hdpi/unlock_wave.png
index d259499..64e3cf8 100644
--- a/core/res/res/drawable-sw600dp-hdpi/unlock_wave.png
+++ b/core/res/res/drawable-sw600dp-hdpi/unlock_wave.png
Binary files differ
diff --git a/core/res/res/drawable-sw600dp-mdpi/unlock_wave.png b/core/res/res/drawable-sw600dp-mdpi/unlock_wave.png
index 9e38499..719366e 100644
--- a/core/res/res/drawable-sw600dp-mdpi/unlock_wave.png
+++ b/core/res/res/drawable-sw600dp-mdpi/unlock_wave.png
Binary files differ
diff --git a/core/res/res/drawable-sw600dp-nodpi/default_wallpaper.png b/core/res/res/drawable-sw600dp-nodpi/default_wallpaper.png
index af8e251..7b7e940 100644
--- a/core/res/res/drawable-sw600dp-nodpi/default_wallpaper.png
+++ b/core/res/res/drawable-sw600dp-nodpi/default_wallpaper.png
Binary files differ
diff --git a/core/res/res/drawable-sw600dp-xhdpi/unlock_wave.png b/core/res/res/drawable-sw600dp-xhdpi/unlock_wave.png
index 035bd92..93916cd 100644
--- a/core/res/res/drawable-sw600dp-xhdpi/unlock_wave.png
+++ b/core/res/res/drawable-sw600dp-xhdpi/unlock_wave.png
Binary files differ
diff --git a/core/res/res/drawable-sw720dp-nodpi/default_wallpaper.png b/core/res/res/drawable-sw720dp-nodpi/default_wallpaper.png
index cb00d82..68e6331 100644
--- a/core/res/res/drawable-sw720dp-nodpi/default_wallpaper.png
+++ b/core/res/res/drawable-sw720dp-nodpi/default_wallpaper.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/watch_switch_thumb_mtrl_14w.png b/core/res/res/drawable-xhdpi/watch_switch_thumb_mtrl_14w.png
new file mode 100644
index 0000000..7f7ca14
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/watch_switch_thumb_mtrl_14w.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/watch_switch_thumb_mtrl_15w.png b/core/res/res/drawable-xhdpi/watch_switch_thumb_mtrl_15w.png
new file mode 100644
index 0000000..52120b8
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/watch_switch_thumb_mtrl_15w.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/watch_switch_thumb_mtrl_16w.png b/core/res/res/drawable-xhdpi/watch_switch_thumb_mtrl_16w.png
new file mode 100644
index 0000000..d6e9be9
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/watch_switch_thumb_mtrl_16w.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/watch_switch_thumb_mtrl_17w.png b/core/res/res/drawable-xhdpi/watch_switch_thumb_mtrl_17w.png
new file mode 100644
index 0000000..8d76393
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/watch_switch_thumb_mtrl_17w.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/watch_switch_thumb_mtrl_18w.png b/core/res/res/drawable-xhdpi/watch_switch_thumb_mtrl_18w.png
new file mode 100644
index 0000000..ca9c66e
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/watch_switch_thumb_mtrl_18w.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/watch_switch_track_mtrl.png b/core/res/res/drawable-xhdpi/watch_switch_track_mtrl.png
new file mode 100644
index 0000000..1aa5442
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/watch_switch_track_mtrl.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/watch_switch_thumb_mtrl_14w.png b/core/res/res/drawable-xxhdpi/watch_switch_thumb_mtrl_14w.png
new file mode 100644
index 0000000..c0d72d7
--- /dev/null
+++ b/core/res/res/drawable-xxhdpi/watch_switch_thumb_mtrl_14w.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/watch_switch_thumb_mtrl_15w.png b/core/res/res/drawable-xxhdpi/watch_switch_thumb_mtrl_15w.png
new file mode 100644
index 0000000..d7c0ec0
--- /dev/null
+++ b/core/res/res/drawable-xxhdpi/watch_switch_thumb_mtrl_15w.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/watch_switch_thumb_mtrl_16w.png b/core/res/res/drawable-xxhdpi/watch_switch_thumb_mtrl_16w.png
new file mode 100644
index 0000000..5815ba9
--- /dev/null
+++ b/core/res/res/drawable-xxhdpi/watch_switch_thumb_mtrl_16w.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/watch_switch_thumb_mtrl_17w.png b/core/res/res/drawable-xxhdpi/watch_switch_thumb_mtrl_17w.png
new file mode 100644
index 0000000..41da8c0
--- /dev/null
+++ b/core/res/res/drawable-xxhdpi/watch_switch_thumb_mtrl_17w.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/watch_switch_thumb_mtrl_18w.png b/core/res/res/drawable-xxhdpi/watch_switch_thumb_mtrl_18w.png
new file mode 100644
index 0000000..975eb01
--- /dev/null
+++ b/core/res/res/drawable-xxhdpi/watch_switch_thumb_mtrl_18w.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/watch_switch_track_mtrl.png b/core/res/res/drawable-xxhdpi/watch_switch_track_mtrl.png
new file mode 100644
index 0000000..af2042b
--- /dev/null
+++ b/core/res/res/drawable-xxhdpi/watch_switch_track_mtrl.png
Binary files differ
diff --git a/core/res/res/drawable/ic_check_circle_24px.xml b/core/res/res/drawable/ic_check_circle_24px.xml
index 066a8a7..e9af9e4 100644
--- a/core/res/res/drawable/ic_check_circle_24px.xml
+++ b/core/res/res/drawable/ic_check_circle_24px.xml
@@ -19,9 +19,6 @@
         android:viewportWidth="24.0"
         android:viewportHeight="24.0">
     <path
-        android:pathData="M0 0h24v24H0z"
-        android:fillColor="#00000000"/>
-    <path
         android:fillColor="#FF000000"
         android:pathData="M12.0,2.0C6.48,2.0 2.0,6.48 2.0,12.0s4.48,10.0 10.0,10.0 10.0,-4.48 10.0,-10.0S17.52,2.0 12.0,2.0zm-2.0,15.0l-5.0,-5.0 1.41,-1.41L10.0,14.17l7.59,-7.59L19.0,8.0l-9.0,9.0z"/>
 </vector>
diff --git a/core/res/res/drawable/ic_collapse_notification.xml b/core/res/res/drawable/ic_collapse_notification.xml
index 603c159..124e99e 100644
--- a/core/res/res/drawable/ic_collapse_notification.xml
+++ b/core/res/res/drawable/ic_collapse_notification.xml
@@ -22,7 +22,4 @@
     <path
         android:fillColor="#FF000000"
         android:pathData="M12.0,8.0l-6.0,6.0l1.4,1.4l4.6,-4.6l4.6,4.6L18.0,14.0L12.0,8.0z"/>
-    <path
-        android:pathData="M0,0h24v24H0V0z"
-        android:fillColor="#00000000"/>
 </vector>
diff --git a/core/res/res/drawable/ic_expand_more_48dp.xml b/core/res/res/drawable/ic_expand_more_48dp.xml
index 11323e3..5a71669 100644
--- a/core/res/res/drawable/ic_expand_more_48dp.xml
+++ b/core/res/res/drawable/ic_expand_more_48dp.xml
@@ -21,7 +21,4 @@
     <path
         android:fillColor="#FF000000"
         android:pathData="M33.17,17.17L24.0,26.34l-9.17,-9.17L12.0,20.0l12.0,12.0 12.0,-12.0z"/>
-    <path
-        android:pathData="M0 0h48v48H0z"
-        android:fillColor="#00000000"/>
 </vector>
diff --git a/core/res/res/drawable/ic_expand_notification.xml b/core/res/res/drawable/ic_expand_notification.xml
index db7d3eb..847e326 100644
--- a/core/res/res/drawable/ic_expand_notification.xml
+++ b/core/res/res/drawable/ic_expand_notification.xml
@@ -22,7 +22,4 @@
     <path
         android:fillColor="#FF000000"
         android:pathData="M16.6,8.6L12.0,13.2L7.4,8.6L6.0,10.0l6.0,6.0l6.0,-6.0L16.6,8.6z"/>
-    <path
-        android:pathData="M0,0h24v24H0V0z"
-        android:fillColor="#00000000"/>
 </vector>
diff --git a/core/res/res/drawable/ic_feedback.xml b/core/res/res/drawable/ic_feedback.xml
index b2d1cb8..365863d 100644
--- a/core/res/res/drawable/ic_feedback.xml
+++ b/core/res/res/drawable/ic_feedback.xml
@@ -19,9 +19,6 @@
         android:viewportWidth="24.0"
         android:viewportHeight="24.0">
     <path
-        android:pathData="M0 0h24v24H0z"
-        android:fillColor="#00000000"/>
-    <path
         android:fillColor="#FF000000"
         android:pathData="M20.0,2.0L4.0,2.0c-1.1,0.0 -1.9,0.9 -1.99,2.0L2.0,22.0l4.0,-4.0l14.0,0.0c1.1,0.0 2.0,-0.9 2.0,-2.0L22.0,4.0c0.0,-1.1 -0.9,-2.0 -2.0,-2.0zm-7.0,12.0l-2.0,0.0l0.0,-2.0l2.0,0.0l0.0,2.0zm0.0,-4.0l-2.0,0.0L11.0,6.0l2.0,0.0l0.0,4.0z"/>
 </vector>
diff --git a/core/res/res/drawable/ic_more_items.xml b/core/res/res/drawable/ic_more_items.xml
index 5fdcdce..0ec754c 100644
--- a/core/res/res/drawable/ic_more_items.xml
+++ b/core/res/res/drawable/ic_more_items.xml
@@ -24,6 +24,5 @@
         android:fillColor="#000000"
         android:pathData="M3 13h2v-2H3v2zm0 4h2v-2H3v2zm0-8h2V7H3v2zm4 4h14v-2H7v2zm0 4h14v-2H7v2zM7
 7v2h14V7H7z" />
-    <path
-        android:pathData="M0 0h24v24H0z" />
+
 </vector>
\ No newline at end of file
diff --git a/core/res/res/drawable/ic_schedule.xml b/core/res/res/drawable/ic_schedule.xml
index 899dc82..55d54b1 100644
--- a/core/res/res/drawable/ic_schedule.xml
+++ b/core/res/res/drawable/ic_schedule.xml
@@ -22,9 +22,6 @@
         android:fillColor="#FF000000"
         android:pathData="M11.99,2.0C6.47,2.0 2.0,6.48 2.0,12.0s4.47,10.0 9.99,10.0C17.52,22.0 22.0,17.52 22.0,12.0S17.52,2.0 11.99,2.0zM12.0,20.0c-4.42,0.0 -8.0,-3.58 -8.0,-8.0s3.58,-8.0 8.0,-8.0 8.0,3.58 8.0,8.0 -3.58,8.0 -8.0,8.0z"/>
     <path
-        android:pathData="M0 0h24v24H0z"
-        android:fillColor="#00000000"/>
-    <path
         android:fillColor="#FF000000"
         android:pathData="M12.5,7.0L11.0,7.0l0.0,6.0l5.25,3.1 0.75,-1.23 -4.5,-2.67z"/>
 </vector>
diff --git a/core/res/res/drawable/perm_group_calendar.xml b/core/res/res/drawable/perm_group_calendar.xml
index 4dc7b37..85a783e 100644
--- a/core/res/res/drawable/perm_group_calendar.xml
+++ b/core/res/res/drawable/perm_group_calendar.xml
@@ -24,6 +24,5 @@
         android:fillColor="#000000"
         android:pathData="M17 12h-5v5h5v-5zM16 1v2H8V1H6v2H5c-1.11 0-1.99 .9 -1.99 2L3 19c0 1.1 .89 2 2
 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2h-1V1h-2zm3 18H5V8h14v11z" />
-    <path
-        android:pathData="M0 0h24v24H0z" />
+
 </vector>
\ No newline at end of file
diff --git a/core/res/res/drawable/perm_group_camera.xml b/core/res/res/drawable/perm_group_camera.xml
index 741a40e..61903a5 100644
--- a/core/res/res/drawable/perm_group_camera.xml
+++ b/core/res/res/drawable/perm_group_camera.xml
@@ -28,6 +28,4 @@
         android:pathData="M9 2L7.17 4H4c-1.1 0-2 .9-2 2v12c0 1.1 .9 2 2 2h16c1.1 0 2-.9
 2-2V6c0-1.1-.9-2-2-2h-3.17L15 2H9zm3 15c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5
 5-2.24 5-5 5z" />
-    <path
-        android:pathData="M0 0h24v24H0z" />
 </vector>
\ No newline at end of file
diff --git a/core/res/res/drawable/perm_group_contacts.xml b/core/res/res/drawable/perm_group_contacts.xml
index d698fd1..8f9dc3e 100644
--- a/core/res/res/drawable/perm_group_contacts.xml
+++ b/core/res/res/drawable/perm_group_contacts.xml
@@ -21,8 +21,6 @@
     android:viewportHeight="24">
 
     <path
-        android:pathData="M0 0h24v24H0zm0 0h24v24H0zm0 0h24v24H0z" />
-    <path
         android:fillColor="#000000"
         android:pathData="M20 0H4v2h16V0zM4 24h16v-2H4v2zM20 4H4c-1.1 0-2 .9-2 2v12c0 1.1 .9 2 2 2h16c1.1
 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-8 2.75c1.24 0 2.25 1.01 2.25 2.25s-1.01 2.25-2.25
diff --git a/core/res/res/drawable/perm_group_location.xml b/core/res/res/drawable/perm_group_location.xml
index fbc6066..cc1ec90 100644
--- a/core/res/res/drawable/perm_group_location.xml
+++ b/core/res/res/drawable/perm_group_location.xml
@@ -24,6 +24,4 @@
         android:fillColor="#000000"
         android:pathData="M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0
 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z" />
-    <path
-        android:pathData="M0 0h24v24H0z" />
 </vector>
\ No newline at end of file
diff --git a/core/res/res/drawable/perm_group_microphone.xml b/core/res/res/drawable/perm_group_microphone.xml
index c565d20..d494e67 100644
--- a/core/res/res/drawable/perm_group_microphone.xml
+++ b/core/res/res/drawable/perm_group_microphone.xml
@@ -25,6 +25,4 @@
         android:pathData="M12 14c1.66 0 2.99-1.34 2.99-3L15 5c0-1.66-1.34-3-3-3S9 3.34 9 5v6c0 1.66 1.34 3
 3 3zm5.3-3c0 3-2.54 5.1-5.3 5.1S6.7 14 6.7 11H5c0 3.41 2.72 6.23 6
 6.72V21h2v-3.28c3.28-.48 6-3.3 6-6.72h-1.7z" />
-    <path
-        android:pathData="M0 0h24v24H0z" />
 </vector>
\ No newline at end of file
diff --git a/core/res/res/drawable/perm_group_phone_calls.xml b/core/res/res/drawable/perm_group_phone_calls.xml
index a647894..324d864 100644
--- a/core/res/res/drawable/perm_group_phone_calls.xml
+++ b/core/res/res/drawable/perm_group_phone_calls.xml
@@ -19,9 +19,6 @@
     android:height="24dp"
     android:viewportWidth="24"
     android:viewportHeight="24">
-
-    <path
-        android:pathData="M0 0h24v24H0z" />
     <path
         android:fillColor="#000000"
         android:pathData="M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.2c.27-.27 .67 -.36 1.02-.24 1.12
diff --git a/core/res/res/drawable/perm_group_sms.xml b/core/res/res/drawable/perm_group_sms.xml
index 9b32c601..47bca19e 100644
--- a/core/res/res/drawable/perm_group_sms.xml
+++ b/core/res/res/drawable/perm_group_sms.xml
@@ -24,6 +24,4 @@
         android:fillColor="#000000"
         android:pathData="M20 2H4c-1.1 0-1.99 .9 -1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM9
 11H7V9h2v2zm4 0h-2V9h2v2zm4 0h-2V9h2v2z" />
-    <path
-        android:pathData="M0 0h24v24H0z" />
 </vector>
\ No newline at end of file
diff --git a/core/res/res/drawable/perm_group_storage.xml b/core/res/res/drawable/perm_group_storage.xml
index 477270d..1ff1693 100644
--- a/core/res/res/drawable/perm_group_storage.xml
+++ b/core/res/res/drawable/perm_group_storage.xml
@@ -24,6 +24,4 @@
         android:fillColor="#000000"
         android:pathData="M10 4H4c-1.1 0-1.99 .9 -1.99 2L2 18c0 1.1 .9 2 2 2h16c1.1 0 2-.9
 2-2V8c0-1.1-.9-2-2-2h-8l-2-2z" />
-    <path
-        android:pathData="M0 0h24v24H0z" />
 </vector>
\ No newline at end of file
diff --git a/core/res/res/drawable/watch_switch_thumb_material.xml b/core/res/res/drawable/watch_switch_thumb_material.xml
deleted file mode 100644
index 3463a4f..0000000
--- a/core/res/res/drawable/watch_switch_thumb_material.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2016 The Android Open Source Project
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-          http://www.apache.org/licenses/LICENSE-2.0
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:width="20dp"
-    android:height="40dp"
-    android:viewportHeight="40"
-    android:viewportWidth="20">
-    <group
-        android:translateX="10"
-        android:translateY="20">
-        <path
-            android:name="thumb_path"
-            android:fillColor="@color/white"
-            android:pathData="M 0.0,-7.0 l 0.0,0.0 c 3.8659932486,0.0 7.0,3.1340067514 7.0,7.0 l 0.0,0.0 c 0.0,3.8659932486 -3.1340067514,7.0 -7.0,7.0 l 0.0,0.0 c -3.8659932486,0.0 -7.0,-3.1340067514 -7.0,-7.0 l 0.0,0.0 c 0.0,-3.8659932486 3.1340067514,-7.0 7.0,-7.0 Z" />
-    </group>
-</vector>
diff --git a/core/res/res/drawable/watch_switch_thumb_material_anim.xml b/core/res/res/drawable/watch_switch_thumb_material_anim.xml
index 686fb97..9e3e893 100644
--- a/core/res/res/drawable/watch_switch_thumb_material_anim.xml
+++ b/core/res/res/drawable/watch_switch_thumb_material_anim.xml
@@ -15,21 +15,79 @@
     android:constantSize="true">
     <item
         android:id="@+id/off"
-        android:drawable="@drawable/watch_switch_thumb_material"
+        android:drawable="@drawable/watch_switch_thumb_mtrl_14w"
         android:state_enabled="false" />
     <item
         android:id="@+id/on"
-        android:drawable="@drawable/watch_switch_thumb_material"
+        android:drawable="@drawable/watch_switch_thumb_mtrl_14w"
         android:state_checked="true" />
     <item
         android:id="@+id/off"
-        android:drawable="@drawable/watch_switch_thumb_material" />
+        android:drawable="@drawable/watch_switch_thumb_mtrl_14w" />
     <transition
-        android:drawable="@drawable/watch_switch_thumb_to_on_anim_mtrl"
         android:fromId="@id/off"
-        android:toId="@id/on" />
+        android:toId="@id/on">
+        <animation-list>
+            <item
+                android:drawable="@drawable/watch_switch_thumb_mtrl_14w"
+                android:duration="30" />
+            <item
+                android:drawable="@drawable/watch_switch_thumb_mtrl_15w"
+                android:duration="15" />
+            <item
+                android:drawable="@drawable/watch_switch_thumb_mtrl_16w"
+                android:duration="15" />
+            <item
+                android:drawable="@drawable/watch_switch_thumb_mtrl_17w"
+                android:duration="15" />
+            <item
+                android:drawable="@drawable/watch_switch_thumb_mtrl_18w"
+                android:duration="75" />
+            <item
+                android:drawable="@drawable/watch_switch_thumb_mtrl_17w"
+                android:duration="15" />
+            <item
+                android:drawable="@drawable/watch_switch_thumb_mtrl_16w"
+                android:duration="15" />
+            <item
+                android:drawable="@drawable/watch_switch_thumb_mtrl_15w"
+                android:duration="15" />
+            <item
+                android:drawable="@drawable/watch_switch_thumb_mtrl_14w"
+                android:duration="30" />
+        </animation-list>
+    </transition>
     <transition
-        android:drawable="@drawable/watch_switch_thumb_to_off_anim_mtrl"
         android:fromId="@id/on"
-        android:toId="@id/off" />
+        android:toId="@id/off">
+        <animation-list>
+            <item
+                android:drawable="@drawable/watch_switch_thumb_mtrl_14w"
+                android:duration="30" />
+            <item
+                android:drawable="@drawable/watch_switch_thumb_mtrl_15w"
+                android:duration="15" />
+            <item
+                android:drawable="@drawable/watch_switch_thumb_mtrl_16w"
+                android:duration="15" />
+            <item
+                android:drawable="@drawable/watch_switch_thumb_mtrl_17w"
+                android:duration="15" />
+            <item
+                android:drawable="@drawable/watch_switch_thumb_mtrl_18w"
+                android:duration="75" />
+            <item
+                android:drawable="@drawable/watch_switch_thumb_mtrl_17w"
+                android:duration="15" />
+            <item
+                android:drawable="@drawable/watch_switch_thumb_mtrl_16w"
+                android:duration="15" />
+            <item
+                android:drawable="@drawable/watch_switch_thumb_mtrl_15w"
+                android:duration="15" />
+            <item
+                android:drawable="@drawable/watch_switch_thumb_mtrl_14w"
+                android:duration="30" />
+        </animation-list>
+    </transition>
 </animated-selector>
diff --git a/core/res/res/drawable/watch_switch_thumb_to_off_anim_mtrl.xml b/core/res/res/drawable/watch_switch_thumb_to_off_anim_mtrl.xml
deleted file mode 100644
index 2c6ba2f..0000000
--- a/core/res/res/drawable/watch_switch_thumb_to_off_anim_mtrl.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2016 The Android Open Source Project
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-          http://www.apache.org/licenses/LICENSE-2.0
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<animated-vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:drawable="@drawable/watch_switch_thumb_material">
-    <target
-        android:name="thumb_path"
-        android:animation="@anim/watch_switch_thumb_to_off_animation" />
-</animated-vector>
diff --git a/core/res/res/drawable/watch_switch_track_material.xml b/core/res/res/drawable/watch_switch_track_material.xml
deleted file mode 100644
index 00cdadb..0000000
--- a/core/res/res/drawable/watch_switch_track_material.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2016 The Android Open Source Project
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-          http://www.apache.org/licenses/LICENSE-2.0
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
-    <item android:gravity="center_vertical|center_horizontal">
-        <shape android:shape="oval">
-            <solid android:color="@android:color/white" />
-            <size
-                android:width="40dp"
-                android:height="40dp" />
-        </shape>
-    </item>
-</layer-list>
\ No newline at end of file
diff --git a/core/res/res/layout-notround-watch/alert_dialog_header_micro.xml b/core/res/res/layout-notround-watch/alert_dialog_title_material.xml
similarity index 85%
rename from core/res/res/layout-notround-watch/alert_dialog_header_micro.xml
rename to core/res/res/layout-notround-watch/alert_dialog_title_material.xml
index fc840d9..307c6db 100644
--- a/core/res/res/layout-notround-watch/alert_dialog_header_micro.xml
+++ b/core/res/res/layout-notround-watch/alert_dialog_title_material.xml
@@ -30,12 +30,9 @@
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:src="@null" />
-    <com.android.internal.widget.DialogTitle android:id="@+id/alertTitle"
+    <TextView android:id="@+id/alertTitle"
             style="?android:attr/windowTitleStyle"
-            android:ellipsize="end"
-            android:layout_marginStart="8dp"
             android:layout_marginBottom="8dp"
             android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:textAlignment="viewStart" />
+            android:layout_height="wrap_content" />
 </LinearLayout>
diff --git a/core/res/res/layout-round-watch/alert_dialog_header_micro.xml b/core/res/res/layout-round-watch/alert_dialog_title_material.xml
similarity index 84%
rename from core/res/res/layout-round-watch/alert_dialog_header_micro.xml
rename to core/res/res/layout-round-watch/alert_dialog_title_material.xml
index 6f7ae02..0279911 100644
--- a/core/res/res/layout-round-watch/alert_dialog_header_micro.xml
+++ b/core/res/res/layout-round-watch/alert_dialog_title_material.xml
@@ -27,12 +27,10 @@
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:src="@null" />
-    <com.android.internal.widget.DialogTitle android:id="@+id/alertTitle"
+    <TextView android:id="@+id/alertTitle"
             style="?android:attr/windowTitleStyle"
-            android:ellipsize="end"
             android:layout_marginTop="36dp"
-            android:layout_marginBottom="4dp"
+            android:layout_marginBottom="8dp"
             android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:textAlignment="center" />
+            android:layout_height="wrap_content" />
 </FrameLayout>
diff --git a/core/res/res/layout-watch/alert_dialog_material.xml b/core/res/res/layout-watch/alert_dialog_material.xml
index ce8e20a..002dde8 100644
--- a/core/res/res/layout-watch/alert_dialog_material.xml
+++ b/core/res/res/layout-watch/alert_dialog_material.xml
@@ -39,7 +39,7 @@
                 <include android:id="@+id/title_template"
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
-                        layout="@layout/alert_dialog_header_micro"/>
+                        layout="@layout/alert_dialog_title_material"/>
             </FrameLayout>
 
             <!-- Content Panel -->
@@ -50,7 +50,8 @@
                 <TextView android:id="@+id/message"
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
-                        android:textAppearance="@style/TextAppearance.Material.Body1"
+                        android:gravity="@integer/config_dialogTextGravity"
+                        android:textAppearance="@style/TextAppearance.Material.Subhead"
                         android:paddingStart="?dialogPreferredPadding"
                         android:paddingEnd="?dialogPreferredPadding"
                         android:paddingTop="8dip"
@@ -77,6 +78,7 @@
                 <LinearLayout
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
+                        android:layout_gravity="bottom"
                         android:orientation="vertical"
                         android:minHeight="@dimen/alert_dialog_button_bar_height"
                         android:paddingBottom="?dialogPreferredPadding"
diff --git a/core/res/res/layout-watch/date_picker_dialog.xml b/core/res/res/layout-watch/date_picker_dialog.xml
new file mode 100644
index 0000000..b8772bc
--- /dev/null
+++ b/core/res/res/layout-watch/date_picker_dialog.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2007 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<DatePicker xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/datePicker"
+    android:layout_gravity="center_horizontal"
+    android:gravity="center_horizontal"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    android:spinnersShown="true"
+    android:calendarViewShown="false"
+    android:datePickerMode="@integer/date_picker_mode" />
diff --git a/core/res/res/layout-watch/number_picker_material.xml b/core/res/res/layout-watch/number_picker_material.xml
deleted file mode 100644
index a1c09214..0000000
--- a/core/res/res/layout-watch/number_picker_material.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-**
-** Copyright 2012, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-**     http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<merge xmlns:android="http://schemas.android.com/apk/res/android">
-
-    <view class="android.widget.NumberPicker$CustomEditText"
-        android:textAppearance="?android:attr/textAppearanceLarge"
-        android:id="@+id/numberpicker_input"
-        android:layout_width="fill_parent"
-        android:layout_height="wrap_content"
-        android:gravity="center"
-        android:singleLine="true"
-        android:background="@null" />
-
-</merge>
diff --git a/core/res/res/layout-watch/preference_widget_switch.xml b/core/res/res/layout-watch/preference_widget_switch.xml
index 37d0c6b..a1a845a 100644
--- a/core/res/res/layout-watch/preference_widget_switch.xml
+++ b/core/res/res/layout-watch/preference_widget_switch.xml
@@ -23,8 +23,9 @@
     android:layout_gravity="center"
     android:thumb="@drawable/watch_switch_thumb_material_anim"
     android:thumbTint="@color/watch_switch_thumb_color_material"
-    android:track="@drawable/watch_switch_track_material"
-    android:trackTint="?android:colorPrimary"
+    android:thumbTintMode="multiply"
+    android:track="@drawable/watch_switch_track_mtrl"
+    android:trackTint="@color/watch_switch_track_color_material"
     android:focusable="false"
     android:clickable="false"
     android:background="@null" />
diff --git a/core/res/res/layout-watch/time_picker_dialog.xml b/core/res/res/layout-watch/time_picker_dialog.xml
new file mode 100644
index 0000000..788602b
--- /dev/null
+++ b/core/res/res/layout-watch/time_picker_dialog.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+**
+** Copyright 2007, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<TimePicker xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/timePicker"
+    android:layout_gravity="center_horizontal"
+    android:gravity="center_horizontal"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    android:timePickerMode="@integer/time_picker_mode" />
diff --git a/core/res/res/layout/date_picker_legacy_holo.xml b/core/res/res/layout/date_picker_legacy_holo.xml
index b465d97..a6e93c9 100644
--- a/core/res/res/layout/date_picker_legacy_holo.xml
+++ b/core/res/res/layout/date_picker_legacy_holo.xml
@@ -41,8 +41,8 @@
             android:id="@+id/month"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:layout_marginTop="16dip"
-            android:layout_marginBottom="16dip"
+            android:layout_marginTop="@dimen/picker_top_margin"
+            android:layout_marginBottom="@dimen/picker_bottom_margin"
             android:layout_marginStart="8dip"
             android:layout_marginEnd="8dip"
             android:focusable="true"
@@ -54,8 +54,8 @@
             android:id="@+id/day"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:layout_marginTop="16dip"
-            android:layout_marginBottom="16dip"
+            android:layout_marginTop="@dimen/picker_top_margin"
+            android:layout_marginBottom="@dimen/picker_bottom_margin"
             android:layout_marginStart="8dip"
             android:layout_marginEnd="8dip"
             android:focusable="true"
@@ -67,8 +67,8 @@
             android:id="@+id/year"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:layout_marginTop="16dip"
-            android:layout_marginBottom="16dip"
+            android:layout_marginTop="@dimen/picker_top_margin"
+            android:layout_marginBottom="@dimen/picker_bottom_margin"
             android:layout_marginStart="8dip"
             android:layout_marginEnd="16dip"
             android:focusable="true"
diff --git a/core/res/res/layout/number_picker_material.xml b/core/res/res/layout/number_picker_material.xml
index b045585..6fbd2b2 100644
--- a/core/res/res/layout/number_picker_material.xml
+++ b/core/res/res/layout/number_picker_material.xml
@@ -22,4 +22,4 @@
       android:gravity="center"
       android:singleLine="true"
       android:background="@null"
-      android:textAppearance="@style/TextAppearance.Material.Body1" />
+      android:textAppearance="@style/TextAppearance.Material.NumberPicker" />
diff --git a/core/res/res/layout/time_picker_legacy_material.xml b/core/res/res/layout/time_picker_legacy_material.xml
index c6b7d3a..ee56266 100644
--- a/core/res/res/layout/time_picker_legacy_material.xml
+++ b/core/res/res/layout/time_picker_legacy_material.xml
@@ -40,8 +40,8 @@
             android:id="@+id/hour"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:layout_marginTop="16dip"
-            android:layout_marginBottom="16dip"
+            android:layout_marginTop="@dimen/picker_top_margin"
+            android:layout_marginBottom="@dimen/picker_bottom_margin"
             android:focusable="true"
             android:focusableInTouchMode="true"
             />
@@ -62,8 +62,8 @@
             android:id="@+id/minute"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:layout_marginTop="16dip"
-            android:layout_marginBottom="16dip"
+            android:layout_marginTop="@dimen/picker_top_margin"
+            android:layout_marginBottom="@dimen/picker_bottom_margin"
             android:focusable="true"
             android:focusableInTouchMode="true"
             />
@@ -75,8 +75,8 @@
         android:id="@+id/amPm"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:layout_marginTop="16dip"
-        android:layout_marginBottom="16dip"
+        android:layout_marginTop="@dimen/picker_top_margin"
+        android:layout_marginBottom="@dimen/picker_bottom_margin"
         android:layout_marginStart="8dip"
         android:layout_marginEnd="8dip"
         android:focusable="true"
diff --git a/core/res/res/raw-ar-xlarge/incognito_mode_start_page.html b/core/res/res/raw-ar-xlarge/incognito_mode_start_page.html
deleted file mode 100644
index 002be41..0000000
--- a/core/res/res/raw-ar-xlarge/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html DIR="RTL">
-  <head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
-    <title>نافذة جديدة للتصفح المتخفي</title>
-  </head>
-  <body>
-    <p><strong>أنت الآن في وضع التصفح المتخفي</strong> الصفحات التي تشاهدها في هذه النافذة لن تظهر في سجل المتصفح أو سجلّ البحث، ولن تترك آثارًا أخرى للتتبع، مثل ملفات تعريف الارتباط على جهازك بعد أن تغلق نافذة التصفح المتخفي. ورغم ذلك، سيتم الاحتفاظ بأي ملفات تنزلها أو أية إشارات مرجعية تقوم بإنشائها.</p>
-
-    <p><strong>العمل في وضع التصفح المخفي لا يؤثر على طريقة عمل الأشخاص الآخرين أو الخوادم أو البرامج الأخرى. كن على حذر مما يلي:</strong></p>
-
-    <ul>
-      <li>مواقع الويب التي تجمع معلومات عنك أو تشارك الآخرين فيها</li>
-      <li>مزوّدو خدمة الإنترنت أو الموظفون الذين يتتبعون الصفحات التي تزورها</li>
-      <li>البرامج الضارة التي تتبع ضغطات المفاتيح التي تقوم بها مقابل تنزيل وجوه رمزية مجانًا</li>
-      <li>المراقبة من قبل العملاء السريين</li>
-      <li>الأشخاص الذين يقفون خلفك</li>
-    </ul>
-  </body>
-</html>
diff --git a/core/res/res/raw-ar/incognito_mode_start_page.html b/core/res/res/raw-ar/incognito_mode_start_page.html
deleted file mode 100644
index 002be41..0000000
--- a/core/res/res/raw-ar/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html DIR="RTL">
-  <head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
-    <title>نافذة جديدة للتصفح المتخفي</title>
-  </head>
-  <body>
-    <p><strong>أنت الآن في وضع التصفح المتخفي</strong> الصفحات التي تشاهدها في هذه النافذة لن تظهر في سجل المتصفح أو سجلّ البحث، ولن تترك آثارًا أخرى للتتبع، مثل ملفات تعريف الارتباط على جهازك بعد أن تغلق نافذة التصفح المتخفي. ورغم ذلك، سيتم الاحتفاظ بأي ملفات تنزلها أو أية إشارات مرجعية تقوم بإنشائها.</p>
-
-    <p><strong>العمل في وضع التصفح المخفي لا يؤثر على طريقة عمل الأشخاص الآخرين أو الخوادم أو البرامج الأخرى. كن على حذر مما يلي:</strong></p>
-
-    <ul>
-      <li>مواقع الويب التي تجمع معلومات عنك أو تشارك الآخرين فيها</li>
-      <li>مزوّدو خدمة الإنترنت أو الموظفون الذين يتتبعون الصفحات التي تزورها</li>
-      <li>البرامج الضارة التي تتبع ضغطات المفاتيح التي تقوم بها مقابل تنزيل وجوه رمزية مجانًا</li>
-      <li>المراقبة من قبل العملاء السريين</li>
-      <li>الأشخاص الذين يقفون خلفك</li>
-    </ul>
-  </body>
-</html>
diff --git a/core/res/res/raw-bg-xlarge/incognito_mode_start_page.html b/core/res/res/raw-bg-xlarge/incognito_mode_start_page.html
deleted file mode 100644
index ee25ae4..0000000
--- a/core/res/res/raw-bg-xlarge/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html DIR="LTR">
-  <head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
-    <title>Нов прозорец „инкогнито“</title>
-  </head>
-  <body>
-    <p><strong>Влязохте в режим „инкогнито“</strong>. Страниците, които разглеждате в този прозорец, няма да се показват в историята на браузъра ви, нито в историята на търсенията ви. Те също няма да оставят други следи като „бисквитки“ в устройството ви, след като затворите прозореца в режим „инкогнито“. Ще се съхранят обаче всички файлове, които изтеглите, или отметки, които създадете.</p>
-
-    <p><strong>Преминаването в режим „инкогнито“ не засяга поведението на други хора, сървъри или софтуер. </strong>Внимавайте за:</p>
-
-    <ul>
-      <li>уебсайтове, които събират или споделят информация за вас;</li>
-      <li>доставчици на интернет услуги или служители, които проследяват посещаваните от вас страници;</li>
-      <li>злонамерен софтуер, който ви дава безплатни емотикони, но в замяна проследява натисканията на клавишите от вас;</li>
-      <li>наблюдение от тайните служби;</li>
-      <li>хора, които стоят зад вас.</li>
-    </ul>
-  </body>
-</html>
diff --git a/core/res/res/raw-bg/incognito_mode_start_page.html b/core/res/res/raw-bg/incognito_mode_start_page.html
deleted file mode 100644
index ee25ae4..0000000
--- a/core/res/res/raw-bg/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html DIR="LTR">
-  <head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
-    <title>Нов прозорец „инкогнито“</title>
-  </head>
-  <body>
-    <p><strong>Влязохте в режим „инкогнито“</strong>. Страниците, които разглеждате в този прозорец, няма да се показват в историята на браузъра ви, нито в историята на търсенията ви. Те също няма да оставят други следи като „бисквитки“ в устройството ви, след като затворите прозореца в режим „инкогнито“. Ще се съхранят обаче всички файлове, които изтеглите, или отметки, които създадете.</p>
-
-    <p><strong>Преминаването в режим „инкогнито“ не засяга поведението на други хора, сървъри или софтуер. </strong>Внимавайте за:</p>
-
-    <ul>
-      <li>уебсайтове, които събират или споделят информация за вас;</li>
-      <li>доставчици на интернет услуги или служители, които проследяват посещаваните от вас страници;</li>
-      <li>злонамерен софтуер, който ви дава безплатни емотикони, но в замяна проследява натисканията на клавишите от вас;</li>
-      <li>наблюдение от тайните служби;</li>
-      <li>хора, които стоят зад вас.</li>
-    </ul>
-  </body>
-</html>
diff --git a/core/res/res/raw-ca-xlarge/incognito_mode_start_page.html b/core/res/res/raw-ca-xlarge/incognito_mode_start_page.html
deleted file mode 100644
index bec3dac..0000000
--- a/core/res/res/raw-ca-xlarge/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html DIR="LTR">
-  <head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
-    <title>Nova finestra d'incògnit</title>
-  </head>
-  <body>
-    <p><strong>Has passat a l'estat d'incògnit</strong>. Les pàgines que visualitzis en aquesta finestra no apareixeran a l'historial del navegador ni a l'historial de cerques, i no deixaran cap pista, com ara galetes, al dispositiu després de tancar la finestra d'incògnit. Tanmateix, es conservaran tots els fitxers que baixis o les adreces d'interès que creïs.</p>
-
-    <p><strong>Utilitzar el mode d'incògnit no afecta el comportament d'altres usuaris, servidors ni programari. Vés amb compte amb:</strong></p>
-
-    <ul>
-      <li>llocs web que recopilen o comparteixen informació sobre la teva identitat,</li>
-      <li>proveïdors de serveis d'Internet o treballadors que segueixen les pàgines que visites,</li>
-      <li>programari maliciós que segueix les teves pulsacions del teclat a canvi d'emoticones,</li>
-      <li>vigilància per part d'agents secrets,</li>
-      <li>persones que estan darrere teu.</li>
-    </ul>
-  </body>
-</html>
diff --git a/core/res/res/raw-ca/incognito_mode_start_page.html b/core/res/res/raw-ca/incognito_mode_start_page.html
deleted file mode 100644
index bec3dac..0000000
--- a/core/res/res/raw-ca/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html DIR="LTR">
-  <head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
-    <title>Nova finestra d'incògnit</title>
-  </head>
-  <body>
-    <p><strong>Has passat a l'estat d'incògnit</strong>. Les pàgines que visualitzis en aquesta finestra no apareixeran a l'historial del navegador ni a l'historial de cerques, i no deixaran cap pista, com ara galetes, al dispositiu després de tancar la finestra d'incògnit. Tanmateix, es conservaran tots els fitxers que baixis o les adreces d'interès que creïs.</p>
-
-    <p><strong>Utilitzar el mode d'incògnit no afecta el comportament d'altres usuaris, servidors ni programari. Vés amb compte amb:</strong></p>
-
-    <ul>
-      <li>llocs web que recopilen o comparteixen informació sobre la teva identitat,</li>
-      <li>proveïdors de serveis d'Internet o treballadors que segueixen les pàgines que visites,</li>
-      <li>programari maliciós que segueix les teves pulsacions del teclat a canvi d'emoticones,</li>
-      <li>vigilància per part d'agents secrets,</li>
-      <li>persones que estan darrere teu.</li>
-    </ul>
-  </body>
-</html>
diff --git a/core/res/res/raw-cs-xlarge/incognito_mode_start_page.html b/core/res/res/raw-cs-xlarge/incognito_mode_start_page.html
deleted file mode 100644
index 7420393..0000000
--- a/core/res/res/raw-cs-xlarge/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html DIR="LTR">
-  <head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
-    <title>Nové anonymní okno</title>
-  </head>
-  <body>
-    <p><strong>Spustili jste anonymní režim</strong>. Stránky, které zobrazíte v tomto okně, se nezahrnou do historie prohlížeče ani historie vyhledávání a dokonce po zavření tohoto anonymního okna ve vašem zařízení nezanechají ani žádné jiné stopy například v podobě souborů cookie. Veškeré stažené soubory nebo vytvořené záložky však budou zachovány.</p>
-
-    <p><strong>Použití anonymního režimu nemá vliv na chování jiných osob, serverů nebo softwaru. Dejte si pozor na:</strong></p>
-
-    <ul>
-      <li>Weby, které sbírají nebo sdílejí informace o vás</li>
-      <li>Poskytovatele internetových služeb nebo zaměstnavatele, kteří sledují stránky, které navštěvujete</li>
-      <li>Škodlivý software, který sleduje stisknuté klávesy a výměnou nabízí nové emotikony</li>
-      <li>Tajné agenty</li>
-      <li>Lidi, kteří vám koukají přes rameno</li>
-    </ul>
-  </body>
-</html>
diff --git a/core/res/res/raw-cs/incognito_mode_start_page.html b/core/res/res/raw-cs/incognito_mode_start_page.html
deleted file mode 100644
index 7420393..0000000
--- a/core/res/res/raw-cs/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html DIR="LTR">
-  <head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
-    <title>Nové anonymní okno</title>
-  </head>
-  <body>
-    <p><strong>Spustili jste anonymní režim</strong>. Stránky, které zobrazíte v tomto okně, se nezahrnou do historie prohlížeče ani historie vyhledávání a dokonce po zavření tohoto anonymního okna ve vašem zařízení nezanechají ani žádné jiné stopy například v podobě souborů cookie. Veškeré stažené soubory nebo vytvořené záložky však budou zachovány.</p>
-
-    <p><strong>Použití anonymního režimu nemá vliv na chování jiných osob, serverů nebo softwaru. Dejte si pozor na:</strong></p>
-
-    <ul>
-      <li>Weby, které sbírají nebo sdílejí informace o vás</li>
-      <li>Poskytovatele internetových služeb nebo zaměstnavatele, kteří sledují stránky, které navštěvujete</li>
-      <li>Škodlivý software, který sleduje stisknuté klávesy a výměnou nabízí nové emotikony</li>
-      <li>Tajné agenty</li>
-      <li>Lidi, kteří vám koukají přes rameno</li>
-    </ul>
-  </body>
-</html>
diff --git a/core/res/res/raw-da-xlarge/incognito_mode_start_page.html b/core/res/res/raw-da-xlarge/incognito_mode_start_page.html
deleted file mode 100644
index eae989f..0000000
--- a/core/res/res/raw-da-xlarge/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html DIR="LTR">
-  <head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
-    <title>Nyt inkognitovindue</title>
-  </head>
-  <body>
-    <p><strong>Nu er du inkognito</strong>. De sider, du besøger i dette vindue, vises ikke i din browser- eller søgeoversigt, og de efterlader ikke andre spor, såsom cookies, på din enhed, når du lukker incognitovinduet. Filer, som du downloader eller bogmærker, som du opretter, gemmes dog.</p>
-
-    <p><strong>At være inkognito er ikke noget, der påvirker andre folk, servere eller software. Vær opmærksom på:</strong></p>
-
-    <ul>
-      <li>Websider, der indsamler eller deler oplysninger om dig</li>
-      <li>Internetserviceudbydere eller arbejdsgivere, der registrerer de sider, du besøger</li>
-      <li>Ondsindet software, der registrerer dine tasteslag til gengæld for gratis smileys</li>
-      <li>Overvågning af hemmelige agenter</li>
-      <li>Folk, der kigger dig over skulderen</li>
-    </ul>
-  </body>
-</html>
diff --git a/core/res/res/raw-da/incognito_mode_start_page.html b/core/res/res/raw-da/incognito_mode_start_page.html
deleted file mode 100644
index eae989f..0000000
--- a/core/res/res/raw-da/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html DIR="LTR">
-  <head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
-    <title>Nyt inkognitovindue</title>
-  </head>
-  <body>
-    <p><strong>Nu er du inkognito</strong>. De sider, du besøger i dette vindue, vises ikke i din browser- eller søgeoversigt, og de efterlader ikke andre spor, såsom cookies, på din enhed, når du lukker incognitovinduet. Filer, som du downloader eller bogmærker, som du opretter, gemmes dog.</p>
-
-    <p><strong>At være inkognito er ikke noget, der påvirker andre folk, servere eller software. Vær opmærksom på:</strong></p>
-
-    <ul>
-      <li>Websider, der indsamler eller deler oplysninger om dig</li>
-      <li>Internetserviceudbydere eller arbejdsgivere, der registrerer de sider, du besøger</li>
-      <li>Ondsindet software, der registrerer dine tasteslag til gengæld for gratis smileys</li>
-      <li>Overvågning af hemmelige agenter</li>
-      <li>Folk, der kigger dig over skulderen</li>
-    </ul>
-  </body>
-</html>
diff --git a/core/res/res/raw-de-xlarge/incognito_mode_start_page.html b/core/res/res/raw-de-xlarge/incognito_mode_start_page.html
deleted file mode 100644
index 1d2cb69..0000000
--- a/core/res/res/raw-de-xlarge/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html DIR="LTR">
-  <head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
-    <title>Neues Inkognito-Fenster</title>
-  </head>
-  <body>
-    <p><strong>Sie haben den Modus für anonymes Browsen aktiviert</strong>. In diesem Fenster aufgerufene Seiten erscheinen nicht in Ihrem Browser- oder Suchverlauf. Zudem werden nach dem Schließen des Inkognito-Fensters keine anderen Spuren wie etwa Cookies auf Ihrem Gerät gespeichert. Heruntergeladene Dateien oder hinzugefügte Lesezeichen werden jedoch beibehalten.</p>
-
-    <p><strong>Das anonyme Browsen wirkt sich nicht auf das Verhalten von Menschen, Servern oder Software aus. </strong>Vorsicht ist geboten bei:</p>
-
-    <ul>
-      <li>Websites, auf denen Informationen über Sie gesammelt oder weitergegeben werden</li>
-      <li>Internetanbietern oder Arbeitgebern, die die von Ihnen aufgerufenen Seiten protokollieren</li>
-      <li>Bösartiger Software, die Ihnen kostenlose Smileys bietet, dafür aber Ihre Tastatureingaben speichert</li>
-      <li>Geheimagenten</li>
-      <li>Personen, die hinter Ihnen stehen</li>
-    </ul>
-  </body>
-</html>
diff --git a/core/res/res/raw-de/incognito_mode_start_page.html b/core/res/res/raw-de/incognito_mode_start_page.html
deleted file mode 100644
index 1d2cb69..0000000
--- a/core/res/res/raw-de/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html DIR="LTR">
-  <head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
-    <title>Neues Inkognito-Fenster</title>
-  </head>
-  <body>
-    <p><strong>Sie haben den Modus für anonymes Browsen aktiviert</strong>. In diesem Fenster aufgerufene Seiten erscheinen nicht in Ihrem Browser- oder Suchverlauf. Zudem werden nach dem Schließen des Inkognito-Fensters keine anderen Spuren wie etwa Cookies auf Ihrem Gerät gespeichert. Heruntergeladene Dateien oder hinzugefügte Lesezeichen werden jedoch beibehalten.</p>
-
-    <p><strong>Das anonyme Browsen wirkt sich nicht auf das Verhalten von Menschen, Servern oder Software aus. </strong>Vorsicht ist geboten bei:</p>
-
-    <ul>
-      <li>Websites, auf denen Informationen über Sie gesammelt oder weitergegeben werden</li>
-      <li>Internetanbietern oder Arbeitgebern, die die von Ihnen aufgerufenen Seiten protokollieren</li>
-      <li>Bösartiger Software, die Ihnen kostenlose Smileys bietet, dafür aber Ihre Tastatureingaben speichert</li>
-      <li>Geheimagenten</li>
-      <li>Personen, die hinter Ihnen stehen</li>
-    </ul>
-  </body>
-</html>
diff --git a/core/res/res/raw-el-xlarge/incognito_mode_start_page.html b/core/res/res/raw-el-xlarge/incognito_mode_start_page.html
deleted file mode 100644
index 5641650..0000000
--- a/core/res/res/raw-el-xlarge/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html DIR="LTR">
-  <head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
-    <title>Νέο παράθυρο για ανώνυμη περιήγηση</title>
-  </head>
-  <body>
-    <p><strong>Είστε σε κατάσταση ανώνυμης περιήγησης</strong>. Οι σελίδες που θα προβάλλετε σε αυτό το παράθυρο δεν θα εμφανιστούν στο ιστορικό του πρόγράμματος περιήγησης ή στο ιστορικό αναζήτησης. Επίσης, δεν θα αφήσουν ίχνη, όπως cookie, στη συσκευή σας αφού κλείσετε το παράθυρο ανώνυμης περιήγησης. Ωστόσο, τα αρχεία και οι σελιδοδείκτες που θα δημιουργήσετε θα διατηρηθούν.</p>
-
-    <p><strong>Η κατάσταση ανώνυμης περιήγησης δεν επηρεάζει την συμπεριφορά άλλων, διακομιστών ή λογισμικού. Αλλά προσοχή σε:</strong></p>
-
-    <ul>
-      <li>Ιστοτόπους που συλλέγουν ή μοιράζονται πληροφορίες για εσάς</li>
-      <li>Πάροχους υπηρεσιών διαδικτύου ή εργοδότες που παρακολουθούν τις ιστοσελίδες που επισκέπτεστε</li>
-      <li>Κακόβουλο λογισμικό που καταγράφει ότι πληκτρολογείτε με αντάλλαγμα δωρεάν "φατσούλες"</li>
-      <li>Παρακολούθηση από μυστικούς πράκτορες</li>
-      <li>Άτομα που στέκονται πίσω σας</li>
-    </ul>
-  </body>
-</html>
diff --git a/core/res/res/raw-el/incognito_mode_start_page.html b/core/res/res/raw-el/incognito_mode_start_page.html
deleted file mode 100644
index 5641650..0000000
--- a/core/res/res/raw-el/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html DIR="LTR">
-  <head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
-    <title>Νέο παράθυρο για ανώνυμη περιήγηση</title>
-  </head>
-  <body>
-    <p><strong>Είστε σε κατάσταση ανώνυμης περιήγησης</strong>. Οι σελίδες που θα προβάλλετε σε αυτό το παράθυρο δεν θα εμφανιστούν στο ιστορικό του πρόγράμματος περιήγησης ή στο ιστορικό αναζήτησης. Επίσης, δεν θα αφήσουν ίχνη, όπως cookie, στη συσκευή σας αφού κλείσετε το παράθυρο ανώνυμης περιήγησης. Ωστόσο, τα αρχεία και οι σελιδοδείκτες που θα δημιουργήσετε θα διατηρηθούν.</p>
-
-    <p><strong>Η κατάσταση ανώνυμης περιήγησης δεν επηρεάζει την συμπεριφορά άλλων, διακομιστών ή λογισμικού. Αλλά προσοχή σε:</strong></p>
-
-    <ul>
-      <li>Ιστοτόπους που συλλέγουν ή μοιράζονται πληροφορίες για εσάς</li>
-      <li>Πάροχους υπηρεσιών διαδικτύου ή εργοδότες που παρακολουθούν τις ιστοσελίδες που επισκέπτεστε</li>
-      <li>Κακόβουλο λογισμικό που καταγράφει ότι πληκτρολογείτε με αντάλλαγμα δωρεάν "φατσούλες"</li>
-      <li>Παρακολούθηση από μυστικούς πράκτορες</li>
-      <li>Άτομα που στέκονται πίσω σας</li>
-    </ul>
-  </body>
-</html>
diff --git a/core/res/res/raw-en-rGB-xlarge/incognito_mode_start_page.html b/core/res/res/raw-en-rGB-xlarge/incognito_mode_start_page.html
deleted file mode 100644
index 7436f98..0000000
--- a/core/res/res/raw-en-rGB-xlarge/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html DIR="LTR">
-  <head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
-    <title>New incognito window</title>
-  </head>
-  <body>
-    <p><strong>You've gone incognito</strong>. Pages that you view in this window won't appear in your browser history or search history, and they won't leave other traces, such as cookies, on your device after you close the incognito window. However, any files that you download or bookmarks that you create will be preserved.</p>
-
-    <p><strong>Going incognito doesn't affect the behaviour of other people, servers or software. Be cautious of:</strong></p>
-
-    <ul>
-      <li>Websites that collect or share information about you</li>
-      <li>Internet service providers or employers that track the pages that you visit</li>
-      <li>Malicious software that tracks your keystrokes in exchange for free smileys</li>
-      <li>Surveillance by secret agents</li>
-      <li>People standing behind you</li>
-    </ul>
-  </body>
-</html>
diff --git a/core/res/res/raw-en-rGB/incognito_mode_start_page.html b/core/res/res/raw-en-rGB/incognito_mode_start_page.html
deleted file mode 100644
index 7436f98..0000000
--- a/core/res/res/raw-en-rGB/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html DIR="LTR">
-  <head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
-    <title>New incognito window</title>
-  </head>
-  <body>
-    <p><strong>You've gone incognito</strong>. Pages that you view in this window won't appear in your browser history or search history, and they won't leave other traces, such as cookies, on your device after you close the incognito window. However, any files that you download or bookmarks that you create will be preserved.</p>
-
-    <p><strong>Going incognito doesn't affect the behaviour of other people, servers or software. Be cautious of:</strong></p>
-
-    <ul>
-      <li>Websites that collect or share information about you</li>
-      <li>Internet service providers or employers that track the pages that you visit</li>
-      <li>Malicious software that tracks your keystrokes in exchange for free smileys</li>
-      <li>Surveillance by secret agents</li>
-      <li>People standing behind you</li>
-    </ul>
-  </body>
-</html>
diff --git a/core/res/res/raw-es-rUS-xlarge/incognito_mode_start_page.html b/core/res/res/raw-es-rUS-xlarge/incognito_mode_start_page.html
deleted file mode 100644
index d283df5..0000000
--- a/core/res/res/raw-es-rUS-xlarge/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html DIR="LTR">
-  <head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
-    <title>Nueva ventana de incógnito</title>
-  </head>
-  <body>
-    <p><strong>Estás de incógnito</strong>. Las páginas que veas en esta ventana no aparecerán en el historial de tu navegador ni en el historial de búsquedas, y cuando cierres la ventana de incógnito, tampoco quedará ningún otro rastro, como cookies, en tu dispositivo. Sin embargo, sí se preservarán los archivos que descargues o los favoritos que marques.</p>
-
-    <p><strong>Estar de incógnito no afecta el comportamiento de otras personas, servidores o programas. Ten cuidado con:</strong></p>
-
-    <ul>
-      <li>Sitios web que recaban o comparten tu información</li>
-      <li>Proveedores de servicio de Internet o empleadores que hacen un seguimiento de las páginas que visitas</li>
-      <li>Programas de software maliciosos que hacen un seguimiento de la actividad de tu teclado a cambio de emoticones gratuitos</li>
-      <li>Vigilancia a cargo de agentes secretos</li>
-      <li>Personas paradas atrás tuyo</li>
-    </ul>
-  </body>
-</html>
diff --git a/core/res/res/raw-es-rUS/incognito_mode_start_page.html b/core/res/res/raw-es-rUS/incognito_mode_start_page.html
deleted file mode 100644
index d283df5..0000000
--- a/core/res/res/raw-es-rUS/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html DIR="LTR">
-  <head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
-    <title>Nueva ventana de incógnito</title>
-  </head>
-  <body>
-    <p><strong>Estás de incógnito</strong>. Las páginas que veas en esta ventana no aparecerán en el historial de tu navegador ni en el historial de búsquedas, y cuando cierres la ventana de incógnito, tampoco quedará ningún otro rastro, como cookies, en tu dispositivo. Sin embargo, sí se preservarán los archivos que descargues o los favoritos que marques.</p>
-
-    <p><strong>Estar de incógnito no afecta el comportamiento de otras personas, servidores o programas. Ten cuidado con:</strong></p>
-
-    <ul>
-      <li>Sitios web que recaban o comparten tu información</li>
-      <li>Proveedores de servicio de Internet o empleadores que hacen un seguimiento de las páginas que visitas</li>
-      <li>Programas de software maliciosos que hacen un seguimiento de la actividad de tu teclado a cambio de emoticones gratuitos</li>
-      <li>Vigilancia a cargo de agentes secretos</li>
-      <li>Personas paradas atrás tuyo</li>
-    </ul>
-  </body>
-</html>
diff --git a/core/res/res/raw-es-xlarge/incognito_mode_start_page.html b/core/res/res/raw-es-xlarge/incognito_mode_start_page.html
deleted file mode 100644
index 6d9b501..0000000
--- a/core/res/res/raw-es-xlarge/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html DIR="LTR">
-  <head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
-    <title>Nueva ventana de incógnito</title>
-  </head>
-  <body>
-    <p><strong>Estás navegando de incógnito</strong>. Las páginas que consultes a través de esta ventana no quedarán registradas en el historial del navegador ni en el historial de búsquedas, y tampoco dejarán otros rastros en el ordenador (como cookies) una vez cerrada. Los archivos que descargues y los marcadores que guardes sí se almacenarán. </p>
-
-    <p><strong>La función de navegación de incógnito no afecta al comportamiento de los servidores o programas de software. Ten cuidado con:</strong></p>
-
-    <ul>
-      <li>sitios web que recopilan o comparten información personal</li>
-      <li>proveedores de servicios de Internet o trabajadores de estas empresas que supervisan las páginas que visitas</li>
-      <li>software malicioso que realiza un seguimiento de las teclas que pulsas a cambio de emoticonos gratuitos</li>
-      <li>actividades de seguimiento por parte de terceros</li>
-      <li>personas merodeando cerca de tu ordenador</li>
-    </ul>
-  </body>
-</html>
diff --git a/core/res/res/raw-es/incognito_mode_start_page.html b/core/res/res/raw-es/incognito_mode_start_page.html
deleted file mode 100644
index 6d9b501..0000000
--- a/core/res/res/raw-es/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html DIR="LTR">
-  <head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
-    <title>Nueva ventana de incógnito</title>
-  </head>
-  <body>
-    <p><strong>Estás navegando de incógnito</strong>. Las páginas que consultes a través de esta ventana no quedarán registradas en el historial del navegador ni en el historial de búsquedas, y tampoco dejarán otros rastros en el ordenador (como cookies) una vez cerrada. Los archivos que descargues y los marcadores que guardes sí se almacenarán. </p>
-
-    <p><strong>La función de navegación de incógnito no afecta al comportamiento de los servidores o programas de software. Ten cuidado con:</strong></p>
-
-    <ul>
-      <li>sitios web que recopilan o comparten información personal</li>
-      <li>proveedores de servicios de Internet o trabajadores de estas empresas que supervisan las páginas que visitas</li>
-      <li>software malicioso que realiza un seguimiento de las teclas que pulsas a cambio de emoticonos gratuitos</li>
-      <li>actividades de seguimiento por parte de terceros</li>
-      <li>personas merodeando cerca de tu ordenador</li>
-    </ul>
-  </body>
-</html>
diff --git a/core/res/res/raw-fa-xlarge/incognito_mode_start_page.html b/core/res/res/raw-fa-xlarge/incognito_mode_start_page.html
deleted file mode 100644
index f004120..0000000
--- a/core/res/res/raw-fa-xlarge/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html DIR="RTL">
-  <head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
-    <title>پنجره ناشناس جدید</title>
-  </head>
-  <body>
-    <p><strong>شما به صورت ناشناس وارد شده اید</strong> صفحاتی که شما در این پنجره مشاهده میکنید در سابقه مرورگر یا سابقه جستجوی شما ظاهر نمیشوند، و پس از بستن پنجره ناشناس، دنباله ای از خود مانند کوکی ها روی دستگاه شما بر جای نمیگذارند. به هر حال، فایل های دانلود شده و نشانکهای صفحه ای که ایجاد کرده اید باقی خواهند ماند.</p>
-
-    <p><strong>وارد شدن به صورت ناشناس، تاثیری بر روی رفتار افراد دیگر، سرورها و یا نرم افزارها ندارد. در خصوص موارد زیر هشیار باشید:</strong></p>
-
-    <ul>
-      <li>وبسایت هایی که اطلاعاتی را در مورد شما جمع آوری کرده و به اشتراک میگذارند</li>
-      <li>تامین کننده های خدمات اینترنتی شما یا کارمندانی که صفحاتی که شما بازدید کرده اید را پیگیری میکنند</li>
-      <li>نرم افزارهای مخربی که در ازای نشانک های رایگان، ضربات کلیدهای شما را ذخیره میکنند</li>
-      <li>نظارت توسط نمایندگان سری</li>
-      <li>افرادی که پشت سرتان ایستاده اند</li>
-    </ul>
-  </body>
-</html>
diff --git a/core/res/res/raw-fa/incognito_mode_start_page.html b/core/res/res/raw-fa/incognito_mode_start_page.html
deleted file mode 100644
index f004120..0000000
--- a/core/res/res/raw-fa/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html DIR="RTL">
-  <head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
-    <title>پنجره ناشناس جدید</title>
-  </head>
-  <body>
-    <p><strong>شما به صورت ناشناس وارد شده اید</strong> صفحاتی که شما در این پنجره مشاهده میکنید در سابقه مرورگر یا سابقه جستجوی شما ظاهر نمیشوند، و پس از بستن پنجره ناشناس، دنباله ای از خود مانند کوکی ها روی دستگاه شما بر جای نمیگذارند. به هر حال، فایل های دانلود شده و نشانکهای صفحه ای که ایجاد کرده اید باقی خواهند ماند.</p>
-
-    <p><strong>وارد شدن به صورت ناشناس، تاثیری بر روی رفتار افراد دیگر، سرورها و یا نرم افزارها ندارد. در خصوص موارد زیر هشیار باشید:</strong></p>
-
-    <ul>
-      <li>وبسایت هایی که اطلاعاتی را در مورد شما جمع آوری کرده و به اشتراک میگذارند</li>
-      <li>تامین کننده های خدمات اینترنتی شما یا کارمندانی که صفحاتی که شما بازدید کرده اید را پیگیری میکنند</li>
-      <li>نرم افزارهای مخربی که در ازای نشانک های رایگان، ضربات کلیدهای شما را ذخیره میکنند</li>
-      <li>نظارت توسط نمایندگان سری</li>
-      <li>افرادی که پشت سرتان ایستاده اند</li>
-    </ul>
-  </body>
-</html>
diff --git a/core/res/res/raw-fi-xlarge/incognito_mode_start_page.html b/core/res/res/raw-fi-xlarge/incognito_mode_start_page.html
deleted file mode 100644
index feb9f4f..0000000
--- a/core/res/res/raw-fi-xlarge/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html DIR="LTR">
-  <head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
-    <title>Uusi incognito-ikkuna</title>
-  </head>
-  <body>
-    <p><strong>Olet nyt incognito-tilassa</strong>. Incognito-tilassa katsellut sivut eivät näy selainhistoriassa eikä hakuhistoriassa. Ne eivät myöskään jätä muita jälkiä, kuten evästeitä, sivun sulkemisen jälkeen. Lataamasi tiedostot tai luomasi kirjanmerkit tosin tallentuvat.</p>
-
-    <p><strong>Incognito-tilaan siirtyminen ei vaikuta muiden ihmisten, palvelimien tai tietokoneohjelmien toimintaan. Varo:</strong></p>
-
-    <ul>
-      <li>Verkkosivustoja jotka keräävät sinusta tietoa ja/tai jakavat sitä eteenpäin</li>
-      <li>Internet-palveluntarjoajia ja työnantajia jotka seuraavat sivuja, joilla käyt</li>
-      <li>Haittaohjelmia jotka seuraavat näppäimistön toimintaa ja tarjoavat vastineeksi ilmaisia hymiöitä</li>
-      <li>Salaisten agenttien seurantaa</li>
-      <li>Ihmisiä jotka seisovat takanasi</li>
-    </ul>
-  </body>
-</html>
diff --git a/core/res/res/raw-fi/incognito_mode_start_page.html b/core/res/res/raw-fi/incognito_mode_start_page.html
deleted file mode 100644
index feb9f4f..0000000
--- a/core/res/res/raw-fi/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html DIR="LTR">
-  <head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
-    <title>Uusi incognito-ikkuna</title>
-  </head>
-  <body>
-    <p><strong>Olet nyt incognito-tilassa</strong>. Incognito-tilassa katsellut sivut eivät näy selainhistoriassa eikä hakuhistoriassa. Ne eivät myöskään jätä muita jälkiä, kuten evästeitä, sivun sulkemisen jälkeen. Lataamasi tiedostot tai luomasi kirjanmerkit tosin tallentuvat.</p>
-
-    <p><strong>Incognito-tilaan siirtyminen ei vaikuta muiden ihmisten, palvelimien tai tietokoneohjelmien toimintaan. Varo:</strong></p>
-
-    <ul>
-      <li>Verkkosivustoja jotka keräävät sinusta tietoa ja/tai jakavat sitä eteenpäin</li>
-      <li>Internet-palveluntarjoajia ja työnantajia jotka seuraavat sivuja, joilla käyt</li>
-      <li>Haittaohjelmia jotka seuraavat näppäimistön toimintaa ja tarjoavat vastineeksi ilmaisia hymiöitä</li>
-      <li>Salaisten agenttien seurantaa</li>
-      <li>Ihmisiä jotka seisovat takanasi</li>
-    </ul>
-  </body>
-</html>
diff --git a/core/res/res/raw-fr-xlarge/incognito_mode_start_page.html b/core/res/res/raw-fr-xlarge/incognito_mode_start_page.html
deleted file mode 100644
index 8962cdf..0000000
--- a/core/res/res/raw-fr-xlarge/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html DIR="LTR">
-  <head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
-    <title>Nouvelle fenêtre de navigation privée</title>
-  </head>
-  <body>
-    <p><strong>Vous êtes passé en navigation privée</strong>. Les pages que vous consultez dans cette fenêtre n'apparaîtront ni dans l'historique de votre navigateur, ni dans l'historique des recherches, et ne laisseront aucune trace (comme les cookies) sur votre appareil une fois que vous aurez fermé la fenêtre de navigation privée. Tous les fichiers téléchargés et les favoris créés seront toutefois conservés.</p>
-
-    <p><strong>Passer en navigation privée n'a aucun effet sur les autres utilisateurs, serveurs ou logiciels. Méfiez-vous :</strong></p>
-
-    <ul>
-      <li>Des sites Web qui collectent ou partagent des informations vous concernant</li>
-      <li>Des fournisseurs d'accès Internet ou des employeurs qui conservent une trace des pages que vous visitez</li>
-      <li>Des programmes indésirables qui enregistrent vos frappes en échange d'émoticônes gratuites</li>
-      <li>Des personnes qui pourraient surveiller vos activités</li>
-      <li>Des personnes qui se tiennent derrière vous</li>
-    </ul>
-  </body>
-</html>
diff --git a/core/res/res/raw-fr/incognito_mode_start_page.html b/core/res/res/raw-fr/incognito_mode_start_page.html
deleted file mode 100644
index 8962cdf..0000000
--- a/core/res/res/raw-fr/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html DIR="LTR">
-  <head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
-    <title>Nouvelle fenêtre de navigation privée</title>
-  </head>
-  <body>
-    <p><strong>Vous êtes passé en navigation privée</strong>. Les pages que vous consultez dans cette fenêtre n'apparaîtront ni dans l'historique de votre navigateur, ni dans l'historique des recherches, et ne laisseront aucune trace (comme les cookies) sur votre appareil une fois que vous aurez fermé la fenêtre de navigation privée. Tous les fichiers téléchargés et les favoris créés seront toutefois conservés.</p>
-
-    <p><strong>Passer en navigation privée n'a aucun effet sur les autres utilisateurs, serveurs ou logiciels. Méfiez-vous :</strong></p>
-
-    <ul>
-      <li>Des sites Web qui collectent ou partagent des informations vous concernant</li>
-      <li>Des fournisseurs d'accès Internet ou des employeurs qui conservent une trace des pages que vous visitez</li>
-      <li>Des programmes indésirables qui enregistrent vos frappes en échange d'émoticônes gratuites</li>
-      <li>Des personnes qui pourraient surveiller vos activités</li>
-      <li>Des personnes qui se tiennent derrière vous</li>
-    </ul>
-  </body>
-</html>
diff --git a/core/res/res/raw-hi-xlarge/incognito_mode_start_page.html b/core/res/res/raw-hi-xlarge/incognito_mode_start_page.html
deleted file mode 100644
index f73c41d..0000000
--- a/core/res/res/raw-hi-xlarge/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html DIR="LTR">
-  <head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
-    <title>नई गुप्त विंडो</title>
-  </head>
-  <body>
-    <p><strong>आप गुप्त मोड में हैं</strong>. इस विंडो में देखे गए पृष्ठ आपके ब्राउज़र इतिहास  या खोज इतिहास में प्रकट नहीं होंगे, और वे आपके डिवाइस पर गुप्त विंडो बंद करने के बाद और कोई चिह्न जैसे कुकीज़, नहीं छोड़ते. हालांकि डाउनलोड की गई या बुकमार्क की गई कोई भी फ़ाइल संरक्षित रखी जाएगी.</p>
-
-    <p><strong>गुप्त मोड में होने से दूसरे लोगों, सर्वर. या सॉफ़्टवेयर पर कोई प्रभाव नहीं होता. इनका ध्यान रखें</strong></p>
-
-    <ul>
-      <li>वे वेबसाइट जो आपके बारे में जानकारी एकत्र या शेयर करती हैं</li>
-      <li>इंटरनेट सेवा प्रदाता या नियोक्ता जो आपके द्वारा विज़िट किए गए पृष्ठों पर नज़र रखते हैं</li>
-      <li>दुर्भावनापूर्ण सॉफ़्टवेयर जो मुफ़्त स्माइली के बदले आपके कीस्ट्रोक पर नज़र रखते हैं.</li>
-      <li>गुप्तचरों द्वारा निगरानी</li>
-      <li>आपके पीछे खड़े लोग</li>
-    </ul>
-  </body>
-</html>
diff --git a/core/res/res/raw-hi/incognito_mode_start_page.html b/core/res/res/raw-hi/incognito_mode_start_page.html
deleted file mode 100644
index f73c41d..0000000
--- a/core/res/res/raw-hi/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html DIR="LTR">
-  <head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
-    <title>नई गुप्त विंडो</title>
-  </head>
-  <body>
-    <p><strong>आप गुप्त मोड में हैं</strong>. इस विंडो में देखे गए पृष्ठ आपके ब्राउज़र इतिहास  या खोज इतिहास में प्रकट नहीं होंगे, और वे आपके डिवाइस पर गुप्त विंडो बंद करने के बाद और कोई चिह्न जैसे कुकीज़, नहीं छोड़ते. हालांकि डाउनलोड की गई या बुकमार्क की गई कोई भी फ़ाइल संरक्षित रखी जाएगी.</p>
-
-    <p><strong>गुप्त मोड में होने से दूसरे लोगों, सर्वर. या सॉफ़्टवेयर पर कोई प्रभाव नहीं होता. इनका ध्यान रखें</strong></p>
-
-    <ul>
-      <li>वे वेबसाइट जो आपके बारे में जानकारी एकत्र या शेयर करती हैं</li>
-      <li>इंटरनेट सेवा प्रदाता या नियोक्ता जो आपके द्वारा विज़िट किए गए पृष्ठों पर नज़र रखते हैं</li>
-      <li>दुर्भावनापूर्ण सॉफ़्टवेयर जो मुफ़्त स्माइली के बदले आपके कीस्ट्रोक पर नज़र रखते हैं.</li>
-      <li>गुप्तचरों द्वारा निगरानी</li>
-      <li>आपके पीछे खड़े लोग</li>
-    </ul>
-  </body>
-</html>
diff --git a/core/res/res/raw-hr-xlarge/incognito_mode_start_page.html b/core/res/res/raw-hr-xlarge/incognito_mode_start_page.html
deleted file mode 100644
index 6f20fe0..0000000
--- a/core/res/res/raw-hr-xlarge/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html DIR="LTR">
-  <head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
-    <title>Novi anonimni prozor</title>
-  </head>
-  <body>
-    <p><strong>Sada ste anonimni</strong>. Stranice koje pregledavate u ovom prozoru neće se pojaviti u povijesti preglednika ili povijesti pretraživanja, neće ostaviti tragove, poput kolačića, na vašem uređaju nakon što zatvorite anonimni prozor. Međutim, sve datoteke koje preuzmete ili oznake koje stvorite bit će sačuvane.</p>
-
-    <p><strong>Anonimno pregledavanje neće utjecati na ponašanje drugih osoba, poslužitelja ili softvera. Pazite na sljedeće:</strong></p>
-
-    <ul>
-      <li>Web-lokacije koje prikupljaju ili dijele informacije o vama</li>
-      <li>Davatelje internetskih usluga ili poslodavce koji prate stranice koje posjećujete</li>
-      <li>Zlonamjerni softver koji prati koje tipke pritišćete u zamjenu za besplatne emotikone</li>
-      <li>Nadzor tajnih službi</li>
-      <li>Osobe koje stoje iza vas</li>
-    </ul>
-  </body>
-</html>
diff --git a/core/res/res/raw-hr/incognito_mode_start_page.html b/core/res/res/raw-hr/incognito_mode_start_page.html
deleted file mode 100644
index 6f20fe0..0000000
--- a/core/res/res/raw-hr/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html DIR="LTR">
-  <head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
-    <title>Novi anonimni prozor</title>
-  </head>
-  <body>
-    <p><strong>Sada ste anonimni</strong>. Stranice koje pregledavate u ovom prozoru neće se pojaviti u povijesti preglednika ili povijesti pretraživanja, neće ostaviti tragove, poput kolačića, na vašem uređaju nakon što zatvorite anonimni prozor. Međutim, sve datoteke koje preuzmete ili oznake koje stvorite bit će sačuvane.</p>
-
-    <p><strong>Anonimno pregledavanje neće utjecati na ponašanje drugih osoba, poslužitelja ili softvera. Pazite na sljedeće:</strong></p>
-
-    <ul>
-      <li>Web-lokacije koje prikupljaju ili dijele informacije o vama</li>
-      <li>Davatelje internetskih usluga ili poslodavce koji prate stranice koje posjećujete</li>
-      <li>Zlonamjerni softver koji prati koje tipke pritišćete u zamjenu za besplatne emotikone</li>
-      <li>Nadzor tajnih službi</li>
-      <li>Osobe koje stoje iza vas</li>
-    </ul>
-  </body>
-</html>
diff --git a/core/res/res/raw-hu-xlarge/incognito_mode_start_page.html b/core/res/res/raw-hu-xlarge/incognito_mode_start_page.html
deleted file mode 100644
index 38b0806..0000000
--- a/core/res/res/raw-hu-xlarge/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html DIR="LTR">
-  <head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
-    <title>Új inkognitóablak</title>
-  </head>
-  <body>
-    <p><strong>Ön inkognitó módra váltott</strong>. Az inkognitóablakban megtekintett oldalak nem jelennek meg böngészője előzményeiben, illetve keresési előzményeiben, és nem hagynak más nyomot pl. cookie-t sem a számítógépén az inkognitóablak bezárását követően. A letöltött fájlok, valamint a létrehozott könyvjelzők azonban megmaradnak.</p>
-
-    <p><strong>Az inkognitó üzemmód nem befolyásolja a többi felhasználó, szerver vagy szoftver viselkedését. Ügyeljen a következőkre:</strong></p>
-
-    <ul>
-      <li>Olyan webhelyek, amelyek információt gyűjtenek vagy osztanak meg Önről</li>
-      <li>Olyan internetszolgáltatók vagy alkalmazottaik, akik nyomon követik az Ön által látogatott oldalakat</li>
-      <li>Olyan kártékony szoftverek, amelyek ingyenes hangulatjelekért cserébe nyomon követik billentyűbeviteleit</li>
-      <li>Titkos ügynökök megfigyelése</li>
-      <li>Az Ön mögött álló emberek</li>
-    </ul>
-  </body>
-</html>
diff --git a/core/res/res/raw-hu/incognito_mode_start_page.html b/core/res/res/raw-hu/incognito_mode_start_page.html
deleted file mode 100644
index 38b0806..0000000
--- a/core/res/res/raw-hu/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html DIR="LTR">
-  <head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
-    <title>Új inkognitóablak</title>
-  </head>
-  <body>
-    <p><strong>Ön inkognitó módra váltott</strong>. Az inkognitóablakban megtekintett oldalak nem jelennek meg böngészője előzményeiben, illetve keresési előzményeiben, és nem hagynak más nyomot pl. cookie-t sem a számítógépén az inkognitóablak bezárását követően. A letöltött fájlok, valamint a létrehozott könyvjelzők azonban megmaradnak.</p>
-
-    <p><strong>Az inkognitó üzemmód nem befolyásolja a többi felhasználó, szerver vagy szoftver viselkedését. Ügyeljen a következőkre:</strong></p>
-
-    <ul>
-      <li>Olyan webhelyek, amelyek információt gyűjtenek vagy osztanak meg Önről</li>
-      <li>Olyan internetszolgáltatók vagy alkalmazottaik, akik nyomon követik az Ön által látogatott oldalakat</li>
-      <li>Olyan kártékony szoftverek, amelyek ingyenes hangulatjelekért cserébe nyomon követik billentyűbeviteleit</li>
-      <li>Titkos ügynökök megfigyelése</li>
-      <li>Az Ön mögött álló emberek</li>
-    </ul>
-  </body>
-</html>
diff --git a/core/res/res/raw-id-xlarge/incognito_mode_start_page.html b/core/res/res/raw-id-xlarge/incognito_mode_start_page.html
deleted file mode 100644
index 788c088..0000000
--- a/core/res/res/raw-id-xlarge/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html DIR="LTR">
-  <head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
-    <title>Jendela penyamaran baru</title>
-  </head>
-  <body>
-    <p><strong>Anda menggunakan penyamaran</strong>. Laman yang Anda lihat di jendela ini tidak akan ditampilkan dalam riwayat peramban atau riwayat penelusuran, dan tidak akan meninggalkan jejak, seperti kuki, di perangkat setelah jendela penyamaran ditutup. Namun, berkas yang diunduh atau bookmark yang dibuat akan disimpan.</p>
-
-    <p><strong>Menggunakan penyamaran tidak mempengaruhi perilaku orang lain, server, atau perangkat lunak. Waspadai:</strong></p>
-
-    <ul>
-      <li>Situs web yang mengumpulkan atau berbagi informasi tentang Anda</li>
-      <li>Penyedia layanan internet atau tempat kerja yang melacak laman yang Anda kunjungi</li>
-      <li>Perangkat lunak jahat yang melacak penekanan tombol dengan imbalan smiley gratis</li>
-      <li>Pemantauan oleh agen rahasia</li>
-      <li>Orang yang berdiri di belakang Anda</li>
-    </ul>
-  </body>
-</html>
diff --git a/core/res/res/raw-id/incognito_mode_start_page.html b/core/res/res/raw-id/incognito_mode_start_page.html
deleted file mode 100644
index 788c088..0000000
--- a/core/res/res/raw-id/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html DIR="LTR">
-  <head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
-    <title>Jendela penyamaran baru</title>
-  </head>
-  <body>
-    <p><strong>Anda menggunakan penyamaran</strong>. Laman yang Anda lihat di jendela ini tidak akan ditampilkan dalam riwayat peramban atau riwayat penelusuran, dan tidak akan meninggalkan jejak, seperti kuki, di perangkat setelah jendela penyamaran ditutup. Namun, berkas yang diunduh atau bookmark yang dibuat akan disimpan.</p>
-
-    <p><strong>Menggunakan penyamaran tidak mempengaruhi perilaku orang lain, server, atau perangkat lunak. Waspadai:</strong></p>
-
-    <ul>
-      <li>Situs web yang mengumpulkan atau berbagi informasi tentang Anda</li>
-      <li>Penyedia layanan internet atau tempat kerja yang melacak laman yang Anda kunjungi</li>
-      <li>Perangkat lunak jahat yang melacak penekanan tombol dengan imbalan smiley gratis</li>
-      <li>Pemantauan oleh agen rahasia</li>
-      <li>Orang yang berdiri di belakang Anda</li>
-    </ul>
-  </body>
-</html>
diff --git a/core/res/res/raw-it-xlarge/incognito_mode_start_page.html b/core/res/res/raw-it-xlarge/incognito_mode_start_page.html
deleted file mode 100644
index 4a34874..0000000
--- a/core/res/res/raw-it-xlarge/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html DIR="LTR">
-  <head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
-    <title>Nuova finestra di navigazione in incognito</title>
-  </head>
-  <body>
-    <p><strong>Sei passato alla navigazione in incognito</strong>. Le pagine aperte in questa finestra non vengono registrate nella cronologia di navigazione o di ricerca, e non lasciano traccia sul tuo computer, ad esempio sotto forma di cookie, una volta chiusa la finestra. Tuttavia, qualsiasi file scaricato o preferito creato verrà conservato.</p>
-
-    <p><strong>La navigazione in incognito non influisce sul comportamento di altri utenti, server o software. Diffida di:</strong></p>
-
-    <ul>
-      <li>Siti web che raccolgono o condividono informazioni su di te</li>
-      <li>Provider di servizi Internet o datori di lavoro che registrano le pagine da te visitate</li>
-      <li>Software dannosi che registrano le sequenze di tasti da te utilizzate in cambio di smiley gratuiti</li>
-      <li>Agenti segreti</li>
-      <li>Persone che ti stanno alle spalle</li>
-    </ul>
-  </body>
-</html>
diff --git a/core/res/res/raw-it/incognito_mode_start_page.html b/core/res/res/raw-it/incognito_mode_start_page.html
deleted file mode 100644
index 4a34874..0000000
--- a/core/res/res/raw-it/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html DIR="LTR">
-  <head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
-    <title>Nuova finestra di navigazione in incognito</title>
-  </head>
-  <body>
-    <p><strong>Sei passato alla navigazione in incognito</strong>. Le pagine aperte in questa finestra non vengono registrate nella cronologia di navigazione o di ricerca, e non lasciano traccia sul tuo computer, ad esempio sotto forma di cookie, una volta chiusa la finestra. Tuttavia, qualsiasi file scaricato o preferito creato verrà conservato.</p>
-
-    <p><strong>La navigazione in incognito non influisce sul comportamento di altri utenti, server o software. Diffida di:</strong></p>
-
-    <ul>
-      <li>Siti web che raccolgono o condividono informazioni su di te</li>
-      <li>Provider di servizi Internet o datori di lavoro che registrano le pagine da te visitate</li>
-      <li>Software dannosi che registrano le sequenze di tasti da te utilizzate in cambio di smiley gratuiti</li>
-      <li>Agenti segreti</li>
-      <li>Persone che ti stanno alle spalle</li>
-    </ul>
-  </body>
-</html>
diff --git a/core/res/res/raw-iw-xlarge/incognito_mode_start_page.html b/core/res/res/raw-iw-xlarge/incognito_mode_start_page.html
deleted file mode 100644
index 368dea0..0000000
--- a/core/res/res/raw-iw-xlarge/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html DIR="RTL">
-  <head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
-    <title>חלון חדש של גלישה בסתר</title>
-  </head>
-  <body>
-    <p><strong>עברת למצב של גלישה בסתר</strong>. דפים שאתה רואה בחלון זה לא יופיעו בהיסטוריית הדפדפן או בהיסטוריית החיפושים שלך, והם לא ישאירו עקבות אחרים, כמו קובצי cookie, לאחר שתסגור את חלון הגלישה בסתר. עם זאת, כל קובץ שאתה מוריד או כוכביות שאתה יוצר יישמרו.</p>
-
-    <p><strong> גלישה בסתר לא משפיעה על התנהגותם של אנשים אחרים, שרתים  אחרים או תוכנות אחרות. היזהר מ:</strong></p>
-
-    <ul>
-      <li>אתרים שאוספים נתונים או משתפים מידע לגביך</li>
-      <li>ספקי שירות אינטרנט או עובדים שעוקבים אחר הדפים שבהם אתה מבקר</li>
-      <li>תוכנה זדונית שעוקבת אחר ההקשות שלך על המקשים בתמורה לסימני סמיילי בחינם</li>
-      <li>מעקב של סוכנים חשאיים</li>
-      <li>אנשים שעומדים מאחוריך</li>
-    </ul>
-  </body>
-</html>
diff --git a/core/res/res/raw-iw/incognito_mode_start_page.html b/core/res/res/raw-iw/incognito_mode_start_page.html
deleted file mode 100644
index 368dea0..0000000
--- a/core/res/res/raw-iw/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html DIR="RTL">
-  <head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
-    <title>חלון חדש של גלישה בסתר</title>
-  </head>
-  <body>
-    <p><strong>עברת למצב של גלישה בסתר</strong>. דפים שאתה רואה בחלון זה לא יופיעו בהיסטוריית הדפדפן או בהיסטוריית החיפושים שלך, והם לא ישאירו עקבות אחרים, כמו קובצי cookie, לאחר שתסגור את חלון הגלישה בסתר. עם זאת, כל קובץ שאתה מוריד או כוכביות שאתה יוצר יישמרו.</p>
-
-    <p><strong> גלישה בסתר לא משפיעה על התנהגותם של אנשים אחרים, שרתים  אחרים או תוכנות אחרות. היזהר מ:</strong></p>
-
-    <ul>
-      <li>אתרים שאוספים נתונים או משתפים מידע לגביך</li>
-      <li>ספקי שירות אינטרנט או עובדים שעוקבים אחר הדפים שבהם אתה מבקר</li>
-      <li>תוכנה זדונית שעוקבת אחר ההקשות שלך על המקשים בתמורה לסימני סמיילי בחינם</li>
-      <li>מעקב של סוכנים חשאיים</li>
-      <li>אנשים שעומדים מאחוריך</li>
-    </ul>
-  </body>
-</html>
diff --git a/core/res/res/raw-ja-xlarge/incognito_mode_start_page.html b/core/res/res/raw-ja-xlarge/incognito_mode_start_page.html
deleted file mode 100644
index a58ad05..0000000
--- a/core/res/res/raw-ja-xlarge/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html DIR="LTR">
-  <head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
-    <title>新しいシークレットウィンドウ</title>
-  </head>
-  <body>
-    <p><strong>シークレットモードを使用中です</strong>。このウィンドウで開いたページはブラウザの履歴や検索履歴に残りません。このウィンドウを閉じるとCookieなどの記録も端末から消去されます。ただし、ダウンロードしたファイルやブックマークしたページは保存されます。</p>
-
-    <p><strong>シークレットモードが他のユーザーやサーバー、ソフトウェアの動作に影響することはありません。なお、下記のようなケースにご注意ください。</strong></p>
-
-    <ul>
-      <li>ユーザーの情報を収集、共有するウェブサイト</li>
-      <li>アクセスしたページをトラッキングするインターネットサービスプロバイダや雇用主</li>
-      <li>無料ダウンロードなどと一緒にインストールされ、キーストロークを記録するマルウェア</li>
-      <li>スパイ、諜報活動</li>
-      <li>背後にいる人</li>
-    </ul>
-  </body>
-</html>
diff --git a/core/res/res/raw-ja/incognito_mode_start_page.html b/core/res/res/raw-ja/incognito_mode_start_page.html
deleted file mode 100644
index a58ad05..0000000
--- a/core/res/res/raw-ja/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html DIR="LTR">
-  <head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
-    <title>新しいシークレットウィンドウ</title>
-  </head>
-  <body>
-    <p><strong>シークレットモードを使用中です</strong>。このウィンドウで開いたページはブラウザの履歴や検索履歴に残りません。このウィンドウを閉じるとCookieなどの記録も端末から消去されます。ただし、ダウンロードしたファイルやブックマークしたページは保存されます。</p>
-
-    <p><strong>シークレットモードが他のユーザーやサーバー、ソフトウェアの動作に影響することはありません。なお、下記のようなケースにご注意ください。</strong></p>
-
-    <ul>
-      <li>ユーザーの情報を収集、共有するウェブサイト</li>
-      <li>アクセスしたページをトラッキングするインターネットサービスプロバイダや雇用主</li>
-      <li>無料ダウンロードなどと一緒にインストールされ、キーストロークを記録するマルウェア</li>
-      <li>スパイ、諜報活動</li>
-      <li>背後にいる人</li>
-    </ul>
-  </body>
-</html>
diff --git a/core/res/res/raw-ko-xlarge/incognito_mode_start_page.html b/core/res/res/raw-ko-xlarge/incognito_mode_start_page.html
deleted file mode 100644
index 0e703b100..0000000
--- a/core/res/res/raw-ko-xlarge/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html DIR="LTR">
-  <head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
-    <title>새 시크릿 창</title>
-  </head>
-  <body>
-    <p><strong>시크릿 모드로 들어오셨습니다.</strong> 이 창에서 보는 페이지는 브라우저 기록이나 검색기록에 남지 않으며, 시크릿 창을 닫은 뒤 기기에 쿠기와 같은 흔적도 남기지 않습니다. 다운로드한 파일이나 생성한 북마크는 보관됩니다. </p>
-
-    <p><strong>시크릿 모드를 이용해도 다른 사용자, 서버, 소프트웨어에 영향을 주지는 않습니다. 다음을 주의하세요.</strong></p>
-
-    <ul>
-      <li>사용자에 대한 정보를 모으고 공유하는 웹사이트</li>
-      <li>방문 페이지를 추적하는 인터넷 서비스 제공업체나 직원 </li>
-      <li>스마일 이모티콘을 제공한다는 명목으로 입력 내용을 추적하는 악성 소프트웨어</li>
-      <li>비밀 개체를 통한 감시</li>
-      <li>뒤에서 사용자의 작업내용을 지켜보는 사람</li>
-    </ul>
-  </body>
-</html>
diff --git a/core/res/res/raw-ko/incognito_mode_start_page.html b/core/res/res/raw-ko/incognito_mode_start_page.html
deleted file mode 100644
index 0e703b100..0000000
--- a/core/res/res/raw-ko/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html DIR="LTR">
-  <head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
-    <title>새 시크릿 창</title>
-  </head>
-  <body>
-    <p><strong>시크릿 모드로 들어오셨습니다.</strong> 이 창에서 보는 페이지는 브라우저 기록이나 검색기록에 남지 않으며, 시크릿 창을 닫은 뒤 기기에 쿠기와 같은 흔적도 남기지 않습니다. 다운로드한 파일이나 생성한 북마크는 보관됩니다. </p>
-
-    <p><strong>시크릿 모드를 이용해도 다른 사용자, 서버, 소프트웨어에 영향을 주지는 않습니다. 다음을 주의하세요.</strong></p>
-
-    <ul>
-      <li>사용자에 대한 정보를 모으고 공유하는 웹사이트</li>
-      <li>방문 페이지를 추적하는 인터넷 서비스 제공업체나 직원 </li>
-      <li>스마일 이모티콘을 제공한다는 명목으로 입력 내용을 추적하는 악성 소프트웨어</li>
-      <li>비밀 개체를 통한 감시</li>
-      <li>뒤에서 사용자의 작업내용을 지켜보는 사람</li>
-    </ul>
-  </body>
-</html>
diff --git a/core/res/res/raw-lt-xlarge/incognito_mode_start_page.html b/core/res/res/raw-lt-xlarge/incognito_mode_start_page.html
deleted file mode 100644
index 9244ae4..0000000
--- a/core/res/res/raw-lt-xlarge/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html DIR="LTR">
-  <head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
-    <title>Naujas inkognito langas</title>
-  </head>
-  <body>
-    <p><strong>Naršote inkognito režimu</strong>. Šiame lange peržiūrimi puslapiai nebus išsaugomi naršyklės istorijoje ar paieškos istorijoje ir uždarius inkognito langą nepaliks jokių kitų žymių, pvz., slapukų. Tačiau bus išsaugoti atsisiųsti failai ar sukurtos žymos.</p>
-
-    <p><strong>Naršymas inkognito režimu nedaro jokios įtakos kitiems asmenims, serveriams ar programinei įrangai. Saugokitės:</strong></p>
-
-    <ul>
-      <li>svetainių, kurios renka ar platina informaciją apie jus</li>
-      <li>interneto paslaugos teikėjų ar darbdavių, kurie stebi, kuriuos puslapius peržiūrite</li>
-      <li>kenkėjiškos programinės įrangos, kuri siūlydama nemokamų šypsniukų fiksuoja klavišų paspaudimus</li>
-      <li>jus galinčių sekti slaptųjų agentų</li>
-      <li>už nugaros stovinčių asmenų</li>
-    </ul>
-  </body>
-</html>
diff --git a/core/res/res/raw-lt/incognito_mode_start_page.html b/core/res/res/raw-lt/incognito_mode_start_page.html
deleted file mode 100644
index 9244ae4..0000000
--- a/core/res/res/raw-lt/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html DIR="LTR">
-  <head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
-    <title>Naujas inkognito langas</title>
-  </head>
-  <body>
-    <p><strong>Naršote inkognito režimu</strong>. Šiame lange peržiūrimi puslapiai nebus išsaugomi naršyklės istorijoje ar paieškos istorijoje ir uždarius inkognito langą nepaliks jokių kitų žymių, pvz., slapukų. Tačiau bus išsaugoti atsisiųsti failai ar sukurtos žymos.</p>
-
-    <p><strong>Naršymas inkognito režimu nedaro jokios įtakos kitiems asmenims, serveriams ar programinei įrangai. Saugokitės:</strong></p>
-
-    <ul>
-      <li>svetainių, kurios renka ar platina informaciją apie jus</li>
-      <li>interneto paslaugos teikėjų ar darbdavių, kurie stebi, kuriuos puslapius peržiūrite</li>
-      <li>kenkėjiškos programinės įrangos, kuri siūlydama nemokamų šypsniukų fiksuoja klavišų paspaudimus</li>
-      <li>jus galinčių sekti slaptųjų agentų</li>
-      <li>už nugaros stovinčių asmenų</li>
-    </ul>
-  </body>
-</html>
diff --git a/core/res/res/raw-lv-xlarge/incognito_mode_start_page.html b/core/res/res/raw-lv-xlarge/incognito_mode_start_page.html
deleted file mode 100644
index f325ef5..0000000
--- a/core/res/res/raw-lv-xlarge/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html DIR="LTR">
-  <head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
-    <title>Jauns inkognito logs</title>
-  </head>
-  <body>
-    <p><strong>Jūs esat ieslēdzis inkognito režīmu</strong>. Šajā logā aplūkotās lapas neparādīsies jūsu pārlūkprogrammas vēsturē vai meklēšanas vēsturē, tās arī neatstās citas pēdas, piemēram, sīkfailus, jūsu ierīcē pēc inkognito režīma loga aizvēršanas. Tomēr visi jūsu lejupielādētie faili vai izveidotās grāmatzīmes tiks saglabātas.</p>
-
-    <p><strong>Inkognito režīma ieslēgšana neietekmēs citu personu, serveru vai programmatūras darbību. Uzmanieties no</strong></p>
-
-    <ul>
-      <li>vietnēm, kas apkopo vai koplieto informāciju par jums;</li>
-      <li>interneta pakalpojumu sniedzējiem vai darba devējiem, kas izseko jūsu apmeklētajām lapām;</li>
-      <li>maldprogrammatūras, kas izseko jūsu taustiņsitieniem apmaiņā par bezmaksas smaidiņiem;</li>
-      <li>slepeno aģentu veiktas izmeklēšanas;</li>
-      <li>personām, kas stāv aiz jums.</li>
-    </ul>
-  </body>
-</html>
diff --git a/core/res/res/raw-lv/incognito_mode_start_page.html b/core/res/res/raw-lv/incognito_mode_start_page.html
deleted file mode 100644
index f325ef5..0000000
--- a/core/res/res/raw-lv/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html DIR="LTR">
-  <head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
-    <title>Jauns inkognito logs</title>
-  </head>
-  <body>
-    <p><strong>Jūs esat ieslēdzis inkognito režīmu</strong>. Šajā logā aplūkotās lapas neparādīsies jūsu pārlūkprogrammas vēsturē vai meklēšanas vēsturē, tās arī neatstās citas pēdas, piemēram, sīkfailus, jūsu ierīcē pēc inkognito režīma loga aizvēršanas. Tomēr visi jūsu lejupielādētie faili vai izveidotās grāmatzīmes tiks saglabātas.</p>
-
-    <p><strong>Inkognito režīma ieslēgšana neietekmēs citu personu, serveru vai programmatūras darbību. Uzmanieties no</strong></p>
-
-    <ul>
-      <li>vietnēm, kas apkopo vai koplieto informāciju par jums;</li>
-      <li>interneta pakalpojumu sniedzējiem vai darba devējiem, kas izseko jūsu apmeklētajām lapām;</li>
-      <li>maldprogrammatūras, kas izseko jūsu taustiņsitieniem apmaiņā par bezmaksas smaidiņiem;</li>
-      <li>slepeno aģentu veiktas izmeklēšanas;</li>
-      <li>personām, kas stāv aiz jums.</li>
-    </ul>
-  </body>
-</html>
diff --git a/core/res/res/raw-nb-xlarge/incognito_mode_start_page.html b/core/res/res/raw-nb-xlarge/incognito_mode_start_page.html
deleted file mode 100644
index 724e734..0000000
--- a/core/res/res/raw-nb-xlarge/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html DIR="LTR">
-  <head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
-    <title>Nytt inkognitovindu</title>
-  </head>
-  <body>
-    <p><strong></strong>Du er nå inkognito Sider du besøker i dette vinduet blir ikke lagret i nettleser- eller søkelogg, og etterlater ikke andre spor, f. eks. informasjonskapsler, på enheten din etter at du har lukket vinduet. Filer du laster ned eller bokmerker du lager blir derimot lagret.</p>
-
-    <p><strong>Det at du er inkognito endrer ikke hvordan andre mennesker, tjenere eller programmer oppfører seg. Pass deg for:</strong></p>
-
-    <ul>
-      <li>Nettsider som samler eller deler informasjon om deg</li>
-      <li>Nettleverandører eller arbeidsgivere som overvåker hvilke sider du besøker</li>
-      <li>Skadelige programmer som følger med på tastetrykk i bytte mot smilefjes</li>
-      <li>Hemmelige agenter som spionerer på deg</li>
-      <li>Folk som titter over skulderen din</li>
-    </ul>
-  </body>
-</html>
diff --git a/core/res/res/raw-nb/incognito_mode_start_page.html b/core/res/res/raw-nb/incognito_mode_start_page.html
deleted file mode 100644
index 724e734..0000000
--- a/core/res/res/raw-nb/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html DIR="LTR">
-  <head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
-    <title>Nytt inkognitovindu</title>
-  </head>
-  <body>
-    <p><strong></strong>Du er nå inkognito Sider du besøker i dette vinduet blir ikke lagret i nettleser- eller søkelogg, og etterlater ikke andre spor, f. eks. informasjonskapsler, på enheten din etter at du har lukket vinduet. Filer du laster ned eller bokmerker du lager blir derimot lagret.</p>
-
-    <p><strong>Det at du er inkognito endrer ikke hvordan andre mennesker, tjenere eller programmer oppfører seg. Pass deg for:</strong></p>
-
-    <ul>
-      <li>Nettsider som samler eller deler informasjon om deg</li>
-      <li>Nettleverandører eller arbeidsgivere som overvåker hvilke sider du besøker</li>
-      <li>Skadelige programmer som følger med på tastetrykk i bytte mot smilefjes</li>
-      <li>Hemmelige agenter som spionerer på deg</li>
-      <li>Folk som titter over skulderen din</li>
-    </ul>
-  </body>
-</html>
diff --git a/core/res/res/raw-nl-xlarge/incognito_mode_start_page.html b/core/res/res/raw-nl-xlarge/incognito_mode_start_page.html
deleted file mode 100644
index 92fedd7..0000000
--- a/core/res/res/raw-nl-xlarge/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html DIR="LTR">
-  <head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
-    <title>Nieuw incognitovenster</title>
-  </head>
-  <body>
-    <p><strong>U bent nu incognito</strong> De pagina's die u in dit venster bekijkt worden niet opgenomen in de browsergeschiedenis en de zoekgeschiedenis en laten geen cookies of andere sporen na op uw apparaat nadat u het incognitovenster hebt gesloten. Alle bestanden die u downloadt en bladwijzers die u maakt, blijven echter behouden.</p>
-
-    <p><strong>Incognito zijn heeft geen invloed op het gedrag van andere personen, servers of software. Wees op uw hoede voor:</strong></p>
-
-    <ul>
-      <li>Websites die informatie over u verzamelen of delen</li>
-      <li>Internetproviders of werkgevers die bijhouden welke pagina's u bezoekt</li>
-      <li>Schadelijke software die uw toetsaanslagen registreert in ruil voor gratis emoticons</li>
-      <li>Spionage door geheim agenten</li>
-      <li>Mensen die achter u staan</li>
-    </ul>
-  </body>
-</html>
diff --git a/core/res/res/raw-nl/incognito_mode_start_page.html b/core/res/res/raw-nl/incognito_mode_start_page.html
deleted file mode 100644
index 92fedd7..0000000
--- a/core/res/res/raw-nl/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html DIR="LTR">
-  <head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
-    <title>Nieuw incognitovenster</title>
-  </head>
-  <body>
-    <p><strong>U bent nu incognito</strong> De pagina's die u in dit venster bekijkt worden niet opgenomen in de browsergeschiedenis en de zoekgeschiedenis en laten geen cookies of andere sporen na op uw apparaat nadat u het incognitovenster hebt gesloten. Alle bestanden die u downloadt en bladwijzers die u maakt, blijven echter behouden.</p>
-
-    <p><strong>Incognito zijn heeft geen invloed op het gedrag van andere personen, servers of software. Wees op uw hoede voor:</strong></p>
-
-    <ul>
-      <li>Websites die informatie over u verzamelen of delen</li>
-      <li>Internetproviders of werkgevers die bijhouden welke pagina's u bezoekt</li>
-      <li>Schadelijke software die uw toetsaanslagen registreert in ruil voor gratis emoticons</li>
-      <li>Spionage door geheim agenten</li>
-      <li>Mensen die achter u staan</li>
-    </ul>
-  </body>
-</html>
diff --git a/core/res/res/raw-pl-xlarge/incognito_mode_start_page.html b/core/res/res/raw-pl-xlarge/incognito_mode_start_page.html
deleted file mode 100644
index 9748ead..0000000
--- a/core/res/res/raw-pl-xlarge/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html DIR="LTR">
-  <head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
-    <title>Nowe okno incognito</title>
-  </head>
-  <body>
-    <p><strong>Jesteś teraz incognito</strong> Strony przeglądane w tym oknie nie będą wyświetlane w historii przeglądarki ani w historii wyszukiwania. Po zamknięciu okna incognito na komputerze nie zostanie po nich żaden ślad np. w postaci plików cookie. Zachowane zostaną jednak pobrane pliki lub utworzone zakładki.</p>
-
-    <p><strong>Przejście do trybu incognito nie ma wpływu na działania innych osób, serwery ani oprogramowanie. Należy uważać na:</strong></p>
-
-    <ul>
-      <li>witryny zbierające lub udostępniające dane na temat użytkowników</li>
-      <li>dostawców usług internetowych oraz pracowników monitorujących strony odwiedzane przez użytkowników</li>
-      <li>złośliwe oprogramowanie śledzące naciśnięcia klawiszy (np. w zamian za darmowe emotikony)</li>
-      <li>aktywność wywiadowczą tajnych agentów</li>
-      <li>osoby stojące za plecami</li>
-    </ul>
-  </body>
-</html>
diff --git a/core/res/res/raw-pl/incognito_mode_start_page.html b/core/res/res/raw-pl/incognito_mode_start_page.html
deleted file mode 100644
index 9748ead..0000000
--- a/core/res/res/raw-pl/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html DIR="LTR">
-  <head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
-    <title>Nowe okno incognito</title>
-  </head>
-  <body>
-    <p><strong>Jesteś teraz incognito</strong> Strony przeglądane w tym oknie nie będą wyświetlane w historii przeglądarki ani w historii wyszukiwania. Po zamknięciu okna incognito na komputerze nie zostanie po nich żaden ślad np. w postaci plików cookie. Zachowane zostaną jednak pobrane pliki lub utworzone zakładki.</p>
-
-    <p><strong>Przejście do trybu incognito nie ma wpływu na działania innych osób, serwery ani oprogramowanie. Należy uważać na:</strong></p>
-
-    <ul>
-      <li>witryny zbierające lub udostępniające dane na temat użytkowników</li>
-      <li>dostawców usług internetowych oraz pracowników monitorujących strony odwiedzane przez użytkowników</li>
-      <li>złośliwe oprogramowanie śledzące naciśnięcia klawiszy (np. w zamian za darmowe emotikony)</li>
-      <li>aktywność wywiadowczą tajnych agentów</li>
-      <li>osoby stojące za plecami</li>
-    </ul>
-  </body>
-</html>
diff --git a/core/res/res/raw-pt-rPT-xlarge/incognito_mode_start_page.html b/core/res/res/raw-pt-rPT-xlarge/incognito_mode_start_page.html
deleted file mode 100644
index 89a5ab0..0000000
--- a/core/res/res/raw-pt-rPT-xlarge/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html DIR="LTR">
-  <head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
-    <title>Nova janela de navegação anónima</title>
-  </head>
-  <body>
-    <p><strong>Está no modo de navegação anónima</strong>. As páginas que visualizar nesta janela não vão aparecer nos históricos de pesquisa ou de navegação e não deixarão quaisquer vestígios (por exemplo cookies) no computador depois de fechar a janela. No entanto se transferir ficheiros ou criar marcadores, estes serão preservados.</p>
-
-    <p><strong>Navegar no modo de navegação anónima não afecta o comportamento de outras pessoas, nem o comportamento de servidores ou programas. Tenha cuidado com:</strong></p>
-
-    <ul>
-      <li>Web sites que recolhem ou partilham informações sobre si</li>
-      <li>Serviços de fornecimento de internet ou empregadores que monitorizam as páginas que você visita</li>
-      <li>Programas maliciosos que monitorizam as teclas em que carrega em troca de ícones expressivos ("smileys")</li>
-      <li>Vigilância de agentes secretos</li>
-      <li>Pessoas que estejam perto de si</li>
-    </ul>
-  </body>
-</html>
diff --git a/core/res/res/raw-pt-rPT/incognito_mode_start_page.html b/core/res/res/raw-pt-rPT/incognito_mode_start_page.html
deleted file mode 100644
index 89a5ab0..0000000
--- a/core/res/res/raw-pt-rPT/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html DIR="LTR">
-  <head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
-    <title>Nova janela de navegação anónima</title>
-  </head>
-  <body>
-    <p><strong>Está no modo de navegação anónima</strong>. As páginas que visualizar nesta janela não vão aparecer nos históricos de pesquisa ou de navegação e não deixarão quaisquer vestígios (por exemplo cookies) no computador depois de fechar a janela. No entanto se transferir ficheiros ou criar marcadores, estes serão preservados.</p>
-
-    <p><strong>Navegar no modo de navegação anónima não afecta o comportamento de outras pessoas, nem o comportamento de servidores ou programas. Tenha cuidado com:</strong></p>
-
-    <ul>
-      <li>Web sites que recolhem ou partilham informações sobre si</li>
-      <li>Serviços de fornecimento de internet ou empregadores que monitorizam as páginas que você visita</li>
-      <li>Programas maliciosos que monitorizam as teclas em que carrega em troca de ícones expressivos ("smileys")</li>
-      <li>Vigilância de agentes secretos</li>
-      <li>Pessoas que estejam perto de si</li>
-    </ul>
-  </body>
-</html>
diff --git a/core/res/res/raw-pt-xlarge/incognito_mode_start_page.html b/core/res/res/raw-pt-xlarge/incognito_mode_start_page.html
deleted file mode 100644
index b301eda..0000000
--- a/core/res/res/raw-pt-xlarge/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html DIR="LTR">
-  <head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
-    <title>Nova janela anônima</title>
-  </head>
-  <body>
-    <p><strong>Você ficou anônimo</strong>. As páginas que você vê nesta janela não aparecerão no histórico do seu navegador ou da sua pesquisa e não deixarão rastros, como cookies, no seu dispositivo depois que você fechar a janela anônima. Quaisquer arquivos que você fizer o download ou favoritos que criar serão preservados.</p>
-
-    <p><strong>Tornar-se anônimo não afeta o comportamento de outras pessoas, servidores ou software. Esteja atento a:</strong></p>
-
-    <ul>
-      <li>Websites que coletam ou compartilham informações sobre você</li>
-      <li>Provedores de serviços de internet ou funcionários que rastreiam as páginas que você visita</li>
-      <li>Softwares maliciosos que rastreiam os seus toques de teclado em troca de ícones gratuitos</li>
-      <li>Vigilância por agentes secretos</li>
-      <li>Pessoas paradas detrás de você</li>
-    </ul>
-  </body>
-</html>
diff --git a/core/res/res/raw-pt/incognito_mode_start_page.html b/core/res/res/raw-pt/incognito_mode_start_page.html
deleted file mode 100644
index b301eda..0000000
--- a/core/res/res/raw-pt/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html DIR="LTR">
-  <head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
-    <title>Nova janela anônima</title>
-  </head>
-  <body>
-    <p><strong>Você ficou anônimo</strong>. As páginas que você vê nesta janela não aparecerão no histórico do seu navegador ou da sua pesquisa e não deixarão rastros, como cookies, no seu dispositivo depois que você fechar a janela anônima. Quaisquer arquivos que você fizer o download ou favoritos que criar serão preservados.</p>
-
-    <p><strong>Tornar-se anônimo não afeta o comportamento de outras pessoas, servidores ou software. Esteja atento a:</strong></p>
-
-    <ul>
-      <li>Websites que coletam ou compartilham informações sobre você</li>
-      <li>Provedores de serviços de internet ou funcionários que rastreiam as páginas que você visita</li>
-      <li>Softwares maliciosos que rastreiam os seus toques de teclado em troca de ícones gratuitos</li>
-      <li>Vigilância por agentes secretos</li>
-      <li>Pessoas paradas detrás de você</li>
-    </ul>
-  </body>
-</html>
diff --git a/core/res/res/raw-ro-xlarge/incognito_mode_start_page.html b/core/res/res/raw-ro-xlarge/incognito_mode_start_page.html
deleted file mode 100644
index 3e499d3..0000000
--- a/core/res/res/raw-ro-xlarge/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html DIR="LTR">
-  <head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
-    <title>Fereastră incognito nouă</title>
-  </head>
-  <body>
-    <p><strong>Navigaţi incognito</strong>. Paginile pe care le afişaţi în această fereastră nu vor apărea în istoricul browserului sau al căutărilor şi nu vor lăsa alte urme, precum cookie-uri, pe dispozitivul dvs. după ce închideţi fereastra incognito. Dar fişierele descărcate şi marcajele create vor fi păstrate.</p>
-
-    <p><strong>Navigarea incognito nu influenţează comportamentul altor persoane, servere sau aplicaţii software. Fiţi atent(ă) la:</strong></p>
-
-    <ul>
-      <li>site-urile web care colectează sau distribuie informaţii despre dvs.;</li>
-      <li>furnizorii de servicii de internet sau angajatorii care urmăresc paginile pe care le accesaţi;</li>
-      <li>aplicaţiile software rău intenţionate care vă urmăresc apăsările pe taste promiţându-vă că vă oferă emoticonuri gratuite;</li>
-      <li>acţiunile de monitorizare efectuate de agenţi secreţi;</li>
-      <li>persoanele din spatele dvs.</li>
-    </ul>
-  </body>
-</html>
diff --git a/core/res/res/raw-ro/incognito_mode_start_page.html b/core/res/res/raw-ro/incognito_mode_start_page.html
deleted file mode 100644
index 3e499d3..0000000
--- a/core/res/res/raw-ro/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html DIR="LTR">
-  <head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
-    <title>Fereastră incognito nouă</title>
-  </head>
-  <body>
-    <p><strong>Navigaţi incognito</strong>. Paginile pe care le afişaţi în această fereastră nu vor apărea în istoricul browserului sau al căutărilor şi nu vor lăsa alte urme, precum cookie-uri, pe dispozitivul dvs. după ce închideţi fereastra incognito. Dar fişierele descărcate şi marcajele create vor fi păstrate.</p>
-
-    <p><strong>Navigarea incognito nu influenţează comportamentul altor persoane, servere sau aplicaţii software. Fiţi atent(ă) la:</strong></p>
-
-    <ul>
-      <li>site-urile web care colectează sau distribuie informaţii despre dvs.;</li>
-      <li>furnizorii de servicii de internet sau angajatorii care urmăresc paginile pe care le accesaţi;</li>
-      <li>aplicaţiile software rău intenţionate care vă urmăresc apăsările pe taste promiţându-vă că vă oferă emoticonuri gratuite;</li>
-      <li>acţiunile de monitorizare efectuate de agenţi secreţi;</li>
-      <li>persoanele din spatele dvs.</li>
-    </ul>
-  </body>
-</html>
diff --git a/core/res/res/raw-ru-xlarge/incognito_mode_start_page.html b/core/res/res/raw-ru-xlarge/incognito_mode_start_page.html
deleted file mode 100644
index ae7b59c..0000000
--- a/core/res/res/raw-ru-xlarge/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html DIR="LTR">
-  <head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
-    <title>Новое окно в режиме инкогнито</title>
-  </head>
-  <body>
-    <p><strong>Вы перешли в режим инкогнито</strong>. Страницы, которые вы просматриваете в окне в режиме инкогнито, не появятся в истории вашего браузера или истории поиска, а также не оставят на вашем компьютере других следов, таких как файлы cookie, когда вы закроете это окно. Тем не менее, все файлы, которые вы загружаете, или закладки, которые вы создаете, останутся в целости и сохранности. </p>
-
-    <p><strong>Переход в режим инкогнито не влияет на поведение других пользователей, серверов или программ. Опасайтесь:</strong></p>
-
-    <ul>
-      <li>Веб-сайтов, которые собирают информацию о вас или передают ее другим</li>
-      <li>Поставщиков услуг Интернета или их сотрудников, которые отслеживают, какие страницы вы посещаете</li>
-      <li>Вредоносного ПО, которое отслеживает нажатие клавиш клавиатуры в обмен на бесплатные смайлики</li>
-      <li>Слежки тайными агентами</li>
-      <li>Людей, которые стоят у вас за спиной</li>
-    </ul>
-  </body>
-</html>
diff --git a/core/res/res/raw-ru/incognito_mode_start_page.html b/core/res/res/raw-ru/incognito_mode_start_page.html
deleted file mode 100644
index ae7b59c..0000000
--- a/core/res/res/raw-ru/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html DIR="LTR">
-  <head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
-    <title>Новое окно в режиме инкогнито</title>
-  </head>
-  <body>
-    <p><strong>Вы перешли в режим инкогнито</strong>. Страницы, которые вы просматриваете в окне в режиме инкогнито, не появятся в истории вашего браузера или истории поиска, а также не оставят на вашем компьютере других следов, таких как файлы cookie, когда вы закроете это окно. Тем не менее, все файлы, которые вы загружаете, или закладки, которые вы создаете, останутся в целости и сохранности. </p>
-
-    <p><strong>Переход в режим инкогнито не влияет на поведение других пользователей, серверов или программ. Опасайтесь:</strong></p>
-
-    <ul>
-      <li>Веб-сайтов, которые собирают информацию о вас или передают ее другим</li>
-      <li>Поставщиков услуг Интернета или их сотрудников, которые отслеживают, какие страницы вы посещаете</li>
-      <li>Вредоносного ПО, которое отслеживает нажатие клавиш клавиатуры в обмен на бесплатные смайлики</li>
-      <li>Слежки тайными агентами</li>
-      <li>Людей, которые стоят у вас за спиной</li>
-    </ul>
-  </body>
-</html>
diff --git a/core/res/res/raw-sk-xlarge/incognito_mode_start_page.html b/core/res/res/raw-sk-xlarge/incognito_mode_start_page.html
deleted file mode 100644
index 5b138f1..0000000
--- a/core/res/res/raw-sk-xlarge/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html DIR="LTR">
-  <head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
-    <title>Nové okno inkognito</title>
-  </head>
-  <body>
-    <p><strong>Ste v režime inkognito</strong> Stránky, ktoré si pozriete v tomto okne, sa nezobrazia v histórii prehliadača ani v histórii vyhľadávania. Po zavretí okna inkognito na zariadení nezostanú ani žiadne iné stopy, ako sú napr. súbory cookie. Napriek tomu však zostanú zachované všetky prevzaté súbory aj záložky, ktoré ste vytvorili.</p>
-
-    <p><strong>Režim inkognito neovplyvňuje správanie iných ľudí, serverov ani softvéru. Dávajte si pozor na:</strong></p>
-
-    <ul>
-      <li>webové stránky, ktoré zbierajú alebo zdieľajú vaše informácie;</li>
-      <li>poskytovateľov internetových služieb alebo zamestnancov, ktorí sledujú vaše navštívené stránky;</li>
-      <li>škodlivý softvér, ktorý sleduje ktoré klávesy stláčate výmenou za smajlíkov zadarmo;</li>
-      <li>sledovanie tajnými agentmi;</li>
-      <li>ľudí, ktorí stoja za vami.</li>
-    </ul>
-  </body>
-</html>
diff --git a/core/res/res/raw-sk/incognito_mode_start_page.html b/core/res/res/raw-sk/incognito_mode_start_page.html
deleted file mode 100644
index 5b138f1..0000000
--- a/core/res/res/raw-sk/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html DIR="LTR">
-  <head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
-    <title>Nové okno inkognito</title>
-  </head>
-  <body>
-    <p><strong>Ste v režime inkognito</strong> Stránky, ktoré si pozriete v tomto okne, sa nezobrazia v histórii prehliadača ani v histórii vyhľadávania. Po zavretí okna inkognito na zariadení nezostanú ani žiadne iné stopy, ako sú napr. súbory cookie. Napriek tomu však zostanú zachované všetky prevzaté súbory aj záložky, ktoré ste vytvorili.</p>
-
-    <p><strong>Režim inkognito neovplyvňuje správanie iných ľudí, serverov ani softvéru. Dávajte si pozor na:</strong></p>
-
-    <ul>
-      <li>webové stránky, ktoré zbierajú alebo zdieľajú vaše informácie;</li>
-      <li>poskytovateľov internetových služieb alebo zamestnancov, ktorí sledujú vaše navštívené stránky;</li>
-      <li>škodlivý softvér, ktorý sleduje ktoré klávesy stláčate výmenou za smajlíkov zadarmo;</li>
-      <li>sledovanie tajnými agentmi;</li>
-      <li>ľudí, ktorí stoja za vami.</li>
-    </ul>
-  </body>
-</html>
diff --git a/core/res/res/raw-sl-xlarge/incognito_mode_start_page.html b/core/res/res/raw-sl-xlarge/incognito_mode_start_page.html
deleted file mode 100644
index 33a8b08..0000000
--- a/core/res/res/raw-sl-xlarge/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html DIR="LTR">
-  <head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
-    <title>Novo okno brez beleženja zgodovine</title>
-  </head>
-  <body>
-    <p><strong>Ste v načinu brez beleženja zgodovine.</strong> Strani, ki si jih ogledate v tem oknu, ne bodo prikazane v zgodovini brskalnika ali zgodovini iskanja, prav tako v vaši napravi ne bodo pustile sledi, kot npr. piškotkov, ko zaprete stran, ki jo imate odprto v tem načinu. Datoteke, ki jih prenesete ali zaznamki, ki jih ustvarite, bodo ohranjeni.</p>
-
-    <p><strong>Funkcije brez beleženja zgodovine ne vplivajo na obnašanje drugih oseb, strežnikov ali programske opreme. Pazite na:</strong></p>
-
-    <ul>
-      <li>Spletna mesta, ki zbirajo informacije o vas ali jih dajejo v skupno rabo.</li>
-      <li>Ponudnike internetnih storitev ali zaposlene, ki spremljajo spletna mesta, ki ste jih obiskali.</li>
-      <li>Zlonamerno programsko opremo, ki spremlja vaše tipkanje, v zameno pa vam ponuja brezplačne čustvene simbole.</li>
-      <li>Nadzor tajnih agentov.</li>
-      <li>Osebe, ki stojijo za vašim hrbtom.</li>
-    </ul>
-  </body>
-</html>
diff --git a/core/res/res/raw-sl/incognito_mode_start_page.html b/core/res/res/raw-sl/incognito_mode_start_page.html
deleted file mode 100644
index 33a8b08..0000000
--- a/core/res/res/raw-sl/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html DIR="LTR">
-  <head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
-    <title>Novo okno brez beleženja zgodovine</title>
-  </head>
-  <body>
-    <p><strong>Ste v načinu brez beleženja zgodovine.</strong> Strani, ki si jih ogledate v tem oknu, ne bodo prikazane v zgodovini brskalnika ali zgodovini iskanja, prav tako v vaši napravi ne bodo pustile sledi, kot npr. piškotkov, ko zaprete stran, ki jo imate odprto v tem načinu. Datoteke, ki jih prenesete ali zaznamki, ki jih ustvarite, bodo ohranjeni.</p>
-
-    <p><strong>Funkcije brez beleženja zgodovine ne vplivajo na obnašanje drugih oseb, strežnikov ali programske opreme. Pazite na:</strong></p>
-
-    <ul>
-      <li>Spletna mesta, ki zbirajo informacije o vas ali jih dajejo v skupno rabo.</li>
-      <li>Ponudnike internetnih storitev ali zaposlene, ki spremljajo spletna mesta, ki ste jih obiskali.</li>
-      <li>Zlonamerno programsko opremo, ki spremlja vaše tipkanje, v zameno pa vam ponuja brezplačne čustvene simbole.</li>
-      <li>Nadzor tajnih agentov.</li>
-      <li>Osebe, ki stojijo za vašim hrbtom.</li>
-    </ul>
-  </body>
-</html>
diff --git a/core/res/res/raw-sr-xlarge/incognito_mode_start_page.html b/core/res/res/raw-sr-xlarge/incognito_mode_start_page.html
deleted file mode 100644
index b1fbcb1..0000000
--- a/core/res/res/raw-sr-xlarge/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html DIR="LTR">
-  <head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
-    <title>Нов прозор без архивирања</title>
-  </head>
-  <body>
-    <p><strong>Ушли сте у режим без архивирања</strong> Странице које гледате у овом прозору се неће појавити у историји прегледања ни историји претраге, нити ће оставити друге трагове, попут колачића, на вашем уређају када затворите овај прозор. Међутим, ако преузмете датотеке или направите обележиваче, они ће бити сачувани.</p>
-
-    <p><strong>Режим без архивирања не утиче на понашање других људи, сервера нити софтвера. Чувајте се:</strong></p>
-
-    <ul>
-      <li>Веб сајтова који прикупљају и деле податке о вама</li>
-      <li>Добављача интернет услуга или запослених који прате странице које посетите</li>
-      <li>Злонамерног софтвера који прати шта куцате</li>
-      <li>Надзора тајних агената</li>
-      <li>Људи који вам стоје иза леђа</li>
-    </ul>
-  </body>
-</html>
diff --git a/core/res/res/raw-sr/incognito_mode_start_page.html b/core/res/res/raw-sr/incognito_mode_start_page.html
deleted file mode 100644
index b1fbcb1..0000000
--- a/core/res/res/raw-sr/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html DIR="LTR">
-  <head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
-    <title>Нов прозор без архивирања</title>
-  </head>
-  <body>
-    <p><strong>Ушли сте у режим без архивирања</strong> Странице које гледате у овом прозору се неће појавити у историји прегледања ни историји претраге, нити ће оставити друге трагове, попут колачића, на вашем уређају када затворите овај прозор. Међутим, ако преузмете датотеке или направите обележиваче, они ће бити сачувани.</p>
-
-    <p><strong>Режим без архивирања не утиче на понашање других људи, сервера нити софтвера. Чувајте се:</strong></p>
-
-    <ul>
-      <li>Веб сајтова који прикупљају и деле податке о вама</li>
-      <li>Добављача интернет услуга или запослених који прате странице које посетите</li>
-      <li>Злонамерног софтвера који прати шта куцате</li>
-      <li>Надзора тајних агената</li>
-      <li>Људи који вам стоје иза леђа</li>
-    </ul>
-  </body>
-</html>
diff --git a/core/res/res/raw-sv-xlarge/incognito_mode_start_page.html b/core/res/res/raw-sv-xlarge/incognito_mode_start_page.html
deleted file mode 100644
index 5ebbb22..0000000
--- a/core/res/res/raw-sv-xlarge/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html DIR="LTR">
-  <head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
-    <title>Nytt inkognitofönster</title>
-  </head>
-  <body>
-    <p><strong>Du använder inkognitoläget</strong>. Sidor som du har läst i detta fönster visas inte i din webbläsarhistorik eller sökhistorik. De lämnar inga spår efter sig, till exempel cookies, i din enhet efter att du stängt inkognitofönstret. Alla filer som du hämtar eller bokmärken du skapar sparas dock.</p>
-
-    <p><strong>Att använda datorn inkognito påverkar inte användare, servrar eller program. Se upp för:</strong></p>
-
-    <ul>
-      <li>Webbplatser som samlar eller delar information om dig</li>
-      <li>Internetleverantörer eller arbetsgivare som spårar var du surfar</li>
-      <li>Skadlig programvara som spårar dina tangenttryckningar som nyckelloggare</li>
-      <li>Övervakning av hemliga agenter</li>
-      <li>Personer som står bakom dig</li>
-    </ul>
-  </body>
-</html>
diff --git a/core/res/res/raw-sv/incognito_mode_start_page.html b/core/res/res/raw-sv/incognito_mode_start_page.html
deleted file mode 100644
index 5ebbb22..0000000
--- a/core/res/res/raw-sv/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html DIR="LTR">
-  <head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
-    <title>Nytt inkognitofönster</title>
-  </head>
-  <body>
-    <p><strong>Du använder inkognitoläget</strong>. Sidor som du har läst i detta fönster visas inte i din webbläsarhistorik eller sökhistorik. De lämnar inga spår efter sig, till exempel cookies, i din enhet efter att du stängt inkognitofönstret. Alla filer som du hämtar eller bokmärken du skapar sparas dock.</p>
-
-    <p><strong>Att använda datorn inkognito påverkar inte användare, servrar eller program. Se upp för:</strong></p>
-
-    <ul>
-      <li>Webbplatser som samlar eller delar information om dig</li>
-      <li>Internetleverantörer eller arbetsgivare som spårar var du surfar</li>
-      <li>Skadlig programvara som spårar dina tangenttryckningar som nyckelloggare</li>
-      <li>Övervakning av hemliga agenter</li>
-      <li>Personer som står bakom dig</li>
-    </ul>
-  </body>
-</html>
diff --git a/core/res/res/raw-th-xlarge/incognito_mode_start_page.html b/core/res/res/raw-th-xlarge/incognito_mode_start_page.html
deleted file mode 100644
index 29c64eb..0000000
--- a/core/res/res/raw-th-xlarge/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html DIR="LTR">
-  <head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
-    <title>หน้าต่างใหม่ที่ไม่ระบุตัวตน</title>
-  </head>
-  <body>
-    <p><strong>คุณได้เข้าสู่โหมดไม่ระบุตัวตนแล้ว</strong> หน้าเว็บที่คุณดูในหน้าต่างนี้จะไม่ปรากฏในประวัติของเบราว์เซอร์หรือประวัติการค้นหาของคุณ และจะไม่ทิ้งร่องรอยอื่นๆ เช่น คุกกี้ ไว้บนอุปกรณ์หลังจากที่คุณปิดหน้าต่างที่ไม่ระบุตัวตนนี้แล้ว อย่างไรก็ตาม ไฟล์ที่คุณดาวน์โหลดหรือบุ๊กมาร์กที่สร้างขึ้นจะถูกเก็บไว้</p>
-
-    <p><strong>การเข้าสู่โหมดไม่ระบุตัวตนจะไม่กระทบต่อการทำงานของบุคคล เซิร์ฟเวอร์ หรือซอฟต์แวร์อื่น โปรดระวัง:</strong></p>
-
-    <ul>
-      <li>เว็บไซต์ที่เก็บหรือแบ่งปันข้อมูลเกี่ยวกับคุณ</li>
-      <li>ผู้ให้บริการอินเทอร์เน็ตหรือนายจ้างที่ติดตามหน้าเว็บที่คุณเข้าชม</li>
-      <li>ซอฟต์แวร์มุ่งร้ายที่ติดตามการกดแป้นพิมพ์โดยมากับของฟรี</li>
-      <li>การตรวจสอบของหน่วยสืบราชการลับ</li>
-      <li>บุคคลที่ยืนอยู่ข้างหลังคุณ</li>
-    </ul>
-  </body>
-</html>
diff --git a/core/res/res/raw-th/incognito_mode_start_page.html b/core/res/res/raw-th/incognito_mode_start_page.html
deleted file mode 100644
index 29c64eb..0000000
--- a/core/res/res/raw-th/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html DIR="LTR">
-  <head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
-    <title>หน้าต่างใหม่ที่ไม่ระบุตัวตน</title>
-  </head>
-  <body>
-    <p><strong>คุณได้เข้าสู่โหมดไม่ระบุตัวตนแล้ว</strong> หน้าเว็บที่คุณดูในหน้าต่างนี้จะไม่ปรากฏในประวัติของเบราว์เซอร์หรือประวัติการค้นหาของคุณ และจะไม่ทิ้งร่องรอยอื่นๆ เช่น คุกกี้ ไว้บนอุปกรณ์หลังจากที่คุณปิดหน้าต่างที่ไม่ระบุตัวตนนี้แล้ว อย่างไรก็ตาม ไฟล์ที่คุณดาวน์โหลดหรือบุ๊กมาร์กที่สร้างขึ้นจะถูกเก็บไว้</p>
-
-    <p><strong>การเข้าสู่โหมดไม่ระบุตัวตนจะไม่กระทบต่อการทำงานของบุคคล เซิร์ฟเวอร์ หรือซอฟต์แวร์อื่น โปรดระวัง:</strong></p>
-
-    <ul>
-      <li>เว็บไซต์ที่เก็บหรือแบ่งปันข้อมูลเกี่ยวกับคุณ</li>
-      <li>ผู้ให้บริการอินเทอร์เน็ตหรือนายจ้างที่ติดตามหน้าเว็บที่คุณเข้าชม</li>
-      <li>ซอฟต์แวร์มุ่งร้ายที่ติดตามการกดแป้นพิมพ์โดยมากับของฟรี</li>
-      <li>การตรวจสอบของหน่วยสืบราชการลับ</li>
-      <li>บุคคลที่ยืนอยู่ข้างหลังคุณ</li>
-    </ul>
-  </body>
-</html>
diff --git a/core/res/res/raw-tl-xlarge/incognito_mode_start_page.html b/core/res/res/raw-tl-xlarge/incognito_mode_start_page.html
deleted file mode 100644
index 6ce5853d..0000000
--- a/core/res/res/raw-tl-xlarge/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html DIR="LTR">
-  <head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
-    <title>Bagong incognito window</title>
-  </head>
-  <body>
-    <p><strong>Nag-incognito ka</strong>. Hindi lalabas sa iyong kasaysayan ng pag-browse at kasaysayan ng paghahanap ang mga pahinang tiningnan mo sa window na ito, at hindi sila mag-iiwan ng ibang bakas, gaya ng cookies, sa iyong device matapos mong isara ang window na incognito. Gayunpaman, pananatiliin ang anumang mga file na iyong na-download o ang iyong mga ginawang bookmark.</p>
-
-    <p><strong>Hindi nakakaapekto ang pagiging incognito sa gawi ng ibang mga tao, server, o software. Maging maingat sa:</strong></p>
-
-    <ul>
-      <li>Mga website na kumokolekta o nagbabahagi ng impormasyong tungkol sa iyo</li>
-      <li>Mga internet service provider o mga employer na  sinusubaybayan ang mga pahinang binibisita mo</li>
-      <li>Malicious software na sinusubaybayan ang iyong mga keystroke kapalit ng mga libreng smiley</li>
-      <li>Pagmamasid ng mga secret agent</li>
-      <li>Mga tao na nakatayo sa likuran mo</li>
-    </ul>
-  </body>
-</html>
diff --git a/core/res/res/raw-tl/incognito_mode_start_page.html b/core/res/res/raw-tl/incognito_mode_start_page.html
deleted file mode 100644
index 6ce5853d..0000000
--- a/core/res/res/raw-tl/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html DIR="LTR">
-  <head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
-    <title>Bagong incognito window</title>
-  </head>
-  <body>
-    <p><strong>Nag-incognito ka</strong>. Hindi lalabas sa iyong kasaysayan ng pag-browse at kasaysayan ng paghahanap ang mga pahinang tiningnan mo sa window na ito, at hindi sila mag-iiwan ng ibang bakas, gaya ng cookies, sa iyong device matapos mong isara ang window na incognito. Gayunpaman, pananatiliin ang anumang mga file na iyong na-download o ang iyong mga ginawang bookmark.</p>
-
-    <p><strong>Hindi nakakaapekto ang pagiging incognito sa gawi ng ibang mga tao, server, o software. Maging maingat sa:</strong></p>
-
-    <ul>
-      <li>Mga website na kumokolekta o nagbabahagi ng impormasyong tungkol sa iyo</li>
-      <li>Mga internet service provider o mga employer na  sinusubaybayan ang mga pahinang binibisita mo</li>
-      <li>Malicious software na sinusubaybayan ang iyong mga keystroke kapalit ng mga libreng smiley</li>
-      <li>Pagmamasid ng mga secret agent</li>
-      <li>Mga tao na nakatayo sa likuran mo</li>
-    </ul>
-  </body>
-</html>
diff --git a/core/res/res/raw-tr-xlarge/incognito_mode_start_page.html b/core/res/res/raw-tr-xlarge/incognito_mode_start_page.html
deleted file mode 100644
index c570cc7..0000000
--- a/core/res/res/raw-tr-xlarge/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html DIR="LTR">
-  <head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
-    <title>Yeni gizli pencere</title>
-  </head>
-  <body>
-    <p><strong>Gizli moda geçtiniz</strong> Bu pencerede görüntülediğiniz sayfalar tarayıcı geçmişinizde veya arama geçmişinizde görünmez ve gizli pencereyi kapatmanızın ardından cihazınızda çerezler gibi izler bırakmaz. Ancak, indirdiğiniz dosyalar ve oluşturduğunuz favoriler korunur.</p>
-
-    <p><strong>Gizli moda geçmeniz diğer kişilerin, sunucuların veya yazılımların davranışlarını etkilemez. Şu konularda dikkatli olun:</strong></p>
-
-    <ul>
-      <li>Hakkınızda bilgi toplayan veya paylaşan web siteleri</li>
-      <li>Ziyaret ettiğiniz sayfaları izleyen şirket çalışanları veya servis sağlayıcıları</li>
-      <li>Ücretsiz ifade simgeleri karşılığında tuş vuruşlarınızı takip eden kötü niyetli yazılımlar</li>
-      <li>Gizli ajanlar tarafından takip edilme</li>
-      <li>Arkanızda dikilip ne yaptığınıza bakan kişiler</li>
-    </ul>
-  </body>
-</html>
diff --git a/core/res/res/raw-tr/incognito_mode_start_page.html b/core/res/res/raw-tr/incognito_mode_start_page.html
deleted file mode 100644
index c570cc7..0000000
--- a/core/res/res/raw-tr/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html DIR="LTR">
-  <head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
-    <title>Yeni gizli pencere</title>
-  </head>
-  <body>
-    <p><strong>Gizli moda geçtiniz</strong> Bu pencerede görüntülediğiniz sayfalar tarayıcı geçmişinizde veya arama geçmişinizde görünmez ve gizli pencereyi kapatmanızın ardından cihazınızda çerezler gibi izler bırakmaz. Ancak, indirdiğiniz dosyalar ve oluşturduğunuz favoriler korunur.</p>
-
-    <p><strong>Gizli moda geçmeniz diğer kişilerin, sunucuların veya yazılımların davranışlarını etkilemez. Şu konularda dikkatli olun:</strong></p>
-
-    <ul>
-      <li>Hakkınızda bilgi toplayan veya paylaşan web siteleri</li>
-      <li>Ziyaret ettiğiniz sayfaları izleyen şirket çalışanları veya servis sağlayıcıları</li>
-      <li>Ücretsiz ifade simgeleri karşılığında tuş vuruşlarınızı takip eden kötü niyetli yazılımlar</li>
-      <li>Gizli ajanlar tarafından takip edilme</li>
-      <li>Arkanızda dikilip ne yaptığınıza bakan kişiler</li>
-    </ul>
-  </body>
-</html>
diff --git a/core/res/res/raw-uk-xlarge/incognito_mode_start_page.html b/core/res/res/raw-uk-xlarge/incognito_mode_start_page.html
deleted file mode 100644
index 8852854..0000000
--- a/core/res/res/raw-uk-xlarge/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html DIR="LTR">
-  <head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
-    <title>Нове анонімне вікно</title>
-  </head>
-  <body>
-    <p><strong>Ви в анонімному режимі</strong>. Сторінки, які ви переглядаєте в цьому вікні, не з’являться в історії веб-переглядача чи в історії пошуку. Вони також не залишать жодних слідів, як-от файлів cookie, у вашому пристрої після того, як ви закриєте анонімне вікно. Однак, завантажені файли та збережені закладки залишаться.</p>
-
-    <p><strong>Анонімний режим не впливає на поведінку інших людей, серверів чи програмного забезпечення. Остерігайтеся:</strong></p>
-
-    <ul>
-      <li>веб-сайтів, які збирають чи поширюють інформацію про вас</li>
-      <li>постачальників інтернет-послуг або роботодавців, які відстежують сторінки, які ви відвідуєте</li>
-      <li>зловмисного програмного забезпечення, яке пропонує безкоштовні смайли, натомість реєструючи клавіші, які ви натискаєте</li>
-      <li>нагляду збоку секретних служб</li>
-      <li>людей за вашою спиною</li>
-    </ul>
-  </body>
-</html>
diff --git a/core/res/res/raw-uk/incognito_mode_start_page.html b/core/res/res/raw-uk/incognito_mode_start_page.html
deleted file mode 100644
index 8852854..0000000
--- a/core/res/res/raw-uk/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html DIR="LTR">
-  <head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
-    <title>Нове анонімне вікно</title>
-  </head>
-  <body>
-    <p><strong>Ви в анонімному режимі</strong>. Сторінки, які ви переглядаєте в цьому вікні, не з’являться в історії веб-переглядача чи в історії пошуку. Вони також не залишать жодних слідів, як-от файлів cookie, у вашому пристрої після того, як ви закриєте анонімне вікно. Однак, завантажені файли та збережені закладки залишаться.</p>
-
-    <p><strong>Анонімний режим не впливає на поведінку інших людей, серверів чи програмного забезпечення. Остерігайтеся:</strong></p>
-
-    <ul>
-      <li>веб-сайтів, які збирають чи поширюють інформацію про вас</li>
-      <li>постачальників інтернет-послуг або роботодавців, які відстежують сторінки, які ви відвідуєте</li>
-      <li>зловмисного програмного забезпечення, яке пропонує безкоштовні смайли, натомість реєструючи клавіші, які ви натискаєте</li>
-      <li>нагляду збоку секретних служб</li>
-      <li>людей за вашою спиною</li>
-    </ul>
-  </body>
-</html>
diff --git a/core/res/res/raw-vi-xlarge/incognito_mode_start_page.html b/core/res/res/raw-vi-xlarge/incognito_mode_start_page.html
deleted file mode 100644
index 9902cde..0000000
--- a/core/res/res/raw-vi-xlarge/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html DIR="LTR">
-  <head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
-    <title>Cửa sổ ẩn danh mới</title>
-  </head>
-  <body>
-    <p><strong>Bạn đã sử dụng cửa sổ ẩn danh</strong>. Các trang bạn xem trong cửa sổ này sẽ không xuất hiện trong lịch sử của trình duyệt hoặc lịch sử tìm kiếm và chúng cũng không để lại dấu vết như cookie trên thiết bị sau khi bạn đóng cửa sổ ẩn danh. Tuy nhiên, mọi tệp bạn tải xuống hoặc mọi dấu trang bạn tạo sẽ được giữ nguyên.</p>
-
-    <p><strong>Sử dụng cửa sổ ẩn danh không ảnh hưởng đến hành vi của người khác, của máy chủ hoặc phần mềm. Hãy cảnh giác với:</strong></p>
-
-    <ul>
-      <li>Các trang web thu thập hoặc chia sẻ thông tin về bạn</li>
-      <li>Nhà cung cấp dịch vụ Internet hoặc ông chủ muốn theo dõi những trang bạn đã truy cập</li>
-      <li>Phần mềm độc hại theo dõi thao tác gõ phím khi nhập các mặt cười</li>
-      <li>Sự theo dõi của các cơ quan tình báo</li>
-      <li>Những người đứng đằng sau bạn</li>
-    </ul>
-  </body>
-</html>
diff --git a/core/res/res/raw-vi/incognito_mode_start_page.html b/core/res/res/raw-vi/incognito_mode_start_page.html
deleted file mode 100644
index 9902cde..0000000
--- a/core/res/res/raw-vi/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html DIR="LTR">
-  <head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
-    <title>Cửa sổ ẩn danh mới</title>
-  </head>
-  <body>
-    <p><strong>Bạn đã sử dụng cửa sổ ẩn danh</strong>. Các trang bạn xem trong cửa sổ này sẽ không xuất hiện trong lịch sử của trình duyệt hoặc lịch sử tìm kiếm và chúng cũng không để lại dấu vết như cookie trên thiết bị sau khi bạn đóng cửa sổ ẩn danh. Tuy nhiên, mọi tệp bạn tải xuống hoặc mọi dấu trang bạn tạo sẽ được giữ nguyên.</p>
-
-    <p><strong>Sử dụng cửa sổ ẩn danh không ảnh hưởng đến hành vi của người khác, của máy chủ hoặc phần mềm. Hãy cảnh giác với:</strong></p>
-
-    <ul>
-      <li>Các trang web thu thập hoặc chia sẻ thông tin về bạn</li>
-      <li>Nhà cung cấp dịch vụ Internet hoặc ông chủ muốn theo dõi những trang bạn đã truy cập</li>
-      <li>Phần mềm độc hại theo dõi thao tác gõ phím khi nhập các mặt cười</li>
-      <li>Sự theo dõi của các cơ quan tình báo</li>
-      <li>Những người đứng đằng sau bạn</li>
-    </ul>
-  </body>
-</html>
diff --git a/core/res/res/raw-xlarge/incognito_mode_start_page.html b/core/res/res/raw-xlarge/incognito_mode_start_page.html
deleted file mode 100644
index 492658d..0000000
--- a/core/res/res/raw-xlarge/incognito_mode_start_page.html
+++ /dev/null
@@ -1,24 +0,0 @@
-<html>
-  <head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no"/>
-    <title>New incognito tab</title>
-  </head>
-  <body>
-    <p><strong>You've gone incognito</strong>. Pages you view in this tab
-      won't appear in your browser history or search history, and they won't
-      leave other traces, like cookies, on your device after you close the
-      incognito tab. Any files you download or bookmarks you create will be
-      preserved, however.</p>
-
-    <p><strong>Going incognito doesn't affect the behavior of other people,
-      servers, or software. Be wary of:</strong></p>
-
-    <ul>
-      <li>Websites that collect or share information about you</li>
-      <li>Internet service providers or employers that track the pages you visit</li>
-      <li>Malicious software that tracks your keystrokes in exchange for free smileys</li>
-      <li>Surveillance by secret agents</li>
-      <li>People standing behind you</li>
-    </ul>
-  </body>
-</html>
diff --git a/core/res/res/raw-zh-rCN-xlarge/incognito_mode_start_page.html b/core/res/res/raw-zh-rCN-xlarge/incognito_mode_start_page.html
deleted file mode 100644
index 2caf8f8b..0000000
--- a/core/res/res/raw-zh-rCN-xlarge/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html DIR="LTR">
-  <head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
-    <title>新建隐身窗口</title>
-  </head>
-  <body>
-    <p><strong>您已进入隐身模式</strong>。当关闭隐身窗口后,您在此窗口中查看的网页将不会出现在您的浏览器历史记录或搜索记录中,也不会在您的设备留下任何踪迹(如 cookie)。但是,您下载的任何文件或您创建的书签会予以保留。</p>
-
-    <p><strong>进入隐身模式不会影响他人、其他服务器或软件的行为。敬请提防:</strong></p>
-
-    <ul>
-      <li>搜集并分享有关您的信息的网站</li>
-      <li>跟踪您所访问的网页的互联网服务提供商或雇主</li>
-      <li>跟踪您的键盘输入内容以换取免费表情符号的恶意软件</li>
-      <li>对您进行监视的秘密代理</li>
-      <li>站在您身后的人</li>
-    </ul>
-  </body>
-</html>
diff --git a/core/res/res/raw-zh-rCN/incognito_mode_start_page.html b/core/res/res/raw-zh-rCN/incognito_mode_start_page.html
deleted file mode 100644
index 2caf8f8b..0000000
--- a/core/res/res/raw-zh-rCN/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html DIR="LTR">
-  <head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
-    <title>新建隐身窗口</title>
-  </head>
-  <body>
-    <p><strong>您已进入隐身模式</strong>。当关闭隐身窗口后,您在此窗口中查看的网页将不会出现在您的浏览器历史记录或搜索记录中,也不会在您的设备留下任何踪迹(如 cookie)。但是,您下载的任何文件或您创建的书签会予以保留。</p>
-
-    <p><strong>进入隐身模式不会影响他人、其他服务器或软件的行为。敬请提防:</strong></p>
-
-    <ul>
-      <li>搜集并分享有关您的信息的网站</li>
-      <li>跟踪您所访问的网页的互联网服务提供商或雇主</li>
-      <li>跟踪您的键盘输入内容以换取免费表情符号的恶意软件</li>
-      <li>对您进行监视的秘密代理</li>
-      <li>站在您身后的人</li>
-    </ul>
-  </body>
-</html>
diff --git a/core/res/res/raw-zh-rTW-xlarge/incognito_mode_start_page.html b/core/res/res/raw-zh-rTW-xlarge/incognito_mode_start_page.html
deleted file mode 100644
index 54eb40b..0000000
--- a/core/res/res/raw-zh-rTW-xlarge/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html DIR="LTR">
-  <head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
-    <title>新的無痕式視窗</title>
-  </head>
-  <body>
-    <p><strong>您已開啟無痕式視窗</strong>。透過這個視窗開啟的網頁都不會出現在瀏覽器記錄和搜尋記錄中,而且您關閉此類視窗之後,裝置上並不會保留任何相關記錄 (例如 cookie)。不過系統會保存您的下載檔案和書籤。</p>
-
-    <p><strong>無痕式視窗無法掌控人、伺服器和軟體的行為,所以請小心下列的人事物:</strong></p>
-
-    <ul>
-      <li>會收集或分享您的相關資訊的網站</li>
-      <li>會追蹤您造訪網頁的網路服務供應商或雇主</li>
-      <li>以免費下載為誘因引誘您點擊的連結,其中通常隱藏鍵盤記錄惡意軟體</li>
-      <li>情報特務的監控</li>
-      <li>站在您身後的人</li>
-    </ul>
-  </body>
-</html>
diff --git a/core/res/res/raw-zh-rTW/incognito_mode_start_page.html b/core/res/res/raw-zh-rTW/incognito_mode_start_page.html
deleted file mode 100644
index 54eb40b..0000000
--- a/core/res/res/raw-zh-rTW/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html DIR="LTR">
-  <head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
-    <title>新的無痕式視窗</title>
-  </head>
-  <body>
-    <p><strong>您已開啟無痕式視窗</strong>。透過這個視窗開啟的網頁都不會出現在瀏覽器記錄和搜尋記錄中,而且您關閉此類視窗之後,裝置上並不會保留任何相關記錄 (例如 cookie)。不過系統會保存您的下載檔案和書籤。</p>
-
-    <p><strong>無痕式視窗無法掌控人、伺服器和軟體的行為,所以請小心下列的人事物:</strong></p>
-
-    <ul>
-      <li>會收集或分享您的相關資訊的網站</li>
-      <li>會追蹤您造訪網頁的網路服務供應商或雇主</li>
-      <li>以免費下載為誘因引誘您點擊的連結,其中通常隱藏鍵盤記錄惡意軟體</li>
-      <li>情報特務的監控</li>
-      <li>站在您身後的人</li>
-    </ul>
-  </body>
-</html>
diff --git a/core/res/res/raw/incognito_mode_start_page.html b/core/res/res/raw/incognito_mode_start_page.html
deleted file mode 100644
index 5d7a3fb..0000000
--- a/core/res/res/raw/incognito_mode_start_page.html
+++ /dev/null
@@ -1,24 +0,0 @@
-<html>
-  <head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no"/>
-    <title>New incognito window</title>
-  </head>
-  <body>
-    <p><strong>You've gone incognito</strong>. Pages you view in this window
-      won't appear in your browser history or search history, and they won't
-      leave other traces, like cookies, on your device after you close the
-      incognito window. Any files you download or bookmarks you create will be
-      preserved, however.</p>
-
-    <p><strong>Going incognito doesn't affect the behavior of other people,
-      servers, or software. Be wary of:</strong></p>
-
-    <ul>
-      <li>Websites that collect or share information about you</li>
-      <li>Internet service providers or employers that track the pages you visit</li>
-      <li>Malicious software that tracks your keystrokes in exchange for free smileys</li>
-      <li>Surveillance by secret agents</li>
-      <li>People standing behind you</li>
-    </ul>
-  </body>
-</html>
diff --git a/core/res/res/values-mcc302-mnc220/config.xml b/core/res/res/values-mcc302-mnc220/config.xml
index f2933b7..d638b89 100644
--- a/core/res/res/values-mcc302-mnc220/config.xml
+++ b/core/res/res/values-mcc302-mnc220/config.xml
@@ -44,11 +44,11 @@
 
     <!-- Values for GPS configuration (Telus) -->
     <string-array translatable="false" name="config_gpsParameters">
-        <item>SUPL_HOST=supl.google.com</item>
+        <item>SUPL_HOST=supl.telusmobility.com</item>
         <item>SUPL_PORT=7275</item>
-        <item>XTRA_SERVER_1=http://xtrapath1.izatcloud.net/xtra2.bin</item>
-        <item>XTRA_SERVER_2=http://xtrapath2.izatcloud.net/xtra2.bin</item>
-        <item>XTRA_SERVER_3=http://xtrapath3.izatcloud.net/xtra2.bin</item>
+        <item>XTRA_SERVER_1=http://xtrapath1.izatcloud.net/xtra3grc.bin</item>
+        <item>XTRA_SERVER_2=http://xtrapath2.izatcloud.net/xtra3grc.bin</item>
+        <item>XTRA_SERVER_3=http://xtrapath3.izatcloud.net/xtra3grc.bin</item>
         <item>NTP_SERVER=north-america.pool.ntp.org</item>
         <item>SUPL_MODE=1</item>
         <item>SUPL_VER=0x20000</item>
@@ -57,8 +57,8 @@
         <item>A_GLONASS_POS_PROTOCOL_SELECT=0</item>
         <item>ERR_ESTIMATE=0</item>
         <item>INTERMEDIATE_POS=0</item>
-        <item>GPS_LOCK=3</item>
-        <item>SUPL_ES=1</item>
+        <item>GPS_LOCK=0</item>
+        <item>SUPL_ES=0</item>
     </string-array>
 
 </resources>
diff --git a/core/res/res/values-mcc302-mnc221/config.xml b/core/res/res/values-mcc302-mnc221/config.xml
index 28b5545..1444250 100644
--- a/core/res/res/values-mcc302-mnc221/config.xml
+++ b/core/res/res/values-mcc302-mnc221/config.xml
@@ -34,11 +34,11 @@
 
     <!-- Values for GPS configuration (Telus) -->
     <string-array translatable="false" name="config_gpsParameters">
-        <item>SUPL_HOST=supl.google.com</item>
+        <item>SUPL_HOST=supl.telusmobility.com</item>
         <item>SUPL_PORT=7275</item>
-        <item>XTRA_SERVER_1=http://xtrapath1.izatcloud.net/xtra2.bin</item>
-        <item>XTRA_SERVER_2=http://xtrapath2.izatcloud.net/xtra2.bin</item>
-        <item>XTRA_SERVER_3=http://xtrapath3.izatcloud.net/xtra2.bin</item>
+        <item>XTRA_SERVER_1=http://xtrapath1.izatcloud.net/xtra3grc.bin</item>
+        <item>XTRA_SERVER_2=http://xtrapath2.izatcloud.net/xtra3grc.bin</item>
+        <item>XTRA_SERVER_3=http://xtrapath3.izatcloud.net/xtra3grc.bin</item>
         <item>NTP_SERVER=north-america.pool.ntp.org</item>
         <item>SUPL_MODE=1</item>
         <item>SUPL_VER=0x20000</item>
@@ -47,8 +47,8 @@
         <item>A_GLONASS_POS_PROTOCOL_SELECT=0</item>
         <item>ERR_ESTIMATE=0</item>
         <item>INTERMEDIATE_POS=0</item>
-        <item>GPS_LOCK=3</item>
-        <item>SUPL_ES=1</item>
+        <item>GPS_LOCK=0</item>
+        <item>SUPL_ES=0</item>
     </string-array>
 
 </resources>
diff --git a/core/res/res/values-mcc302-mnc370/config.xml b/core/res/res/values-mcc302-mnc370/config.xml
index ec402fb..05265c7 100644
--- a/core/res/res/values-mcc302-mnc370/config.xml
+++ b/core/res/res/values-mcc302-mnc370/config.xml
@@ -47,9 +47,9 @@
     <string-array translatable="false" name="config_gpsParameters">
         <item>SUPL_HOST=supl.google.com</item>
         <item>SUPL_PORT=7275</item>
-        <item>XTRA_SERVER_1=http://xtrapath1.izatcloud.net/xtra2.bin</item>
-        <item>XTRA_SERVER_2=http://xtrapath2.izatcloud.net/xtra2.bin</item>
-        <item>XTRA_SERVER_3=http://xtrapath3.izatcloud.net/xtra2.bin</item>
+        <item>XTRA_SERVER_1=http://xtrapath1.izatcloud.net/xtra3grc.bin</item>
+        <item>XTRA_SERVER_2=http://xtrapath2.izatcloud.net/xtra3grc.bin</item>
+        <item>XTRA_SERVER_3=http://xtrapath3.izatcloud.net/xtra3grc.bin</item>
         <item>NTP_SERVER=north-america.pool.ntp.org</item>
         <item>SUPL_MODE=1</item>
         <item>SUPL_VER=0x20000</item>
@@ -58,8 +58,8 @@
         <item>A_GLONASS_POS_PROTOCOL_SELECT=0</item>
         <item>ERR_ESTIMATE=0</item>
         <item>INTERMEDIATE_POS=0</item>
-        <item>GPS_LOCK=3</item>
-        <item>SUPL_ES=1</item>
+        <item>GPS_LOCK=0</item>
+        <item>SUPL_ES=0</item>
     </string-array>
 
 </resources>
diff --git a/core/res/res/values-mcc302-mnc610/config.xml b/core/res/res/values-mcc302-mnc610/config.xml
index 73604a3..0af2c39 100644
--- a/core/res/res/values-mcc302-mnc610/config.xml
+++ b/core/res/res/values-mcc302-mnc610/config.xml
@@ -31,9 +31,9 @@
     <string-array translatable="false" name="config_gpsParameters">
         <item>SUPL_HOST=supl.google.com</item>
         <item>SUPL_PORT=7275</item>
-        <item>XTRA_SERVER_1=http://xtrapath1.izatcloud.net/xtra2.bin</item>
-        <item>XTRA_SERVER_2=http://xtrapath2.izatcloud.net/xtra2.bin</item>
-        <item>XTRA_SERVER_3=http://xtrapath3.izatcloud.net/xtra2.bin</item>
+        <item>XTRA_SERVER_1=http://xtrapath1.izatcloud.net/xtra3grc.bin</item>
+        <item>XTRA_SERVER_2=http://xtrapath2.izatcloud.net/xtra3grc.bin</item>
+        <item>XTRA_SERVER_3=http://xtrapath3.izatcloud.net/xtra3grc.bin</item>
         <item>NTP_SERVER=north-america.pool.ntp.org</item>
         <item>SUPL_MODE=1</item>
         <item>SUPL_VER=0x20000</item>
@@ -42,7 +42,7 @@
         <item>A_GLONASS_POS_PROTOCOL_SELECT=0</item>
         <item>ERR_ESTIMATE=0</item>
         <item>INTERMEDIATE_POS=0</item>
-        <item>GPS_LOCK=3</item>
-        <item>SUPL_ES=1</item>
+        <item>GPS_LOCK=0</item>
+        <item>SUPL_ES=0</item>
     </string-array>
 </resources>
diff --git a/core/res/res/values-mcc302-mnc640/config.xml b/core/res/res/values-mcc302-mnc640/config.xml
index 8597c65..e005bc0 100644
--- a/core/res/res/values-mcc302-mnc640/config.xml
+++ b/core/res/res/values-mcc302-mnc640/config.xml
@@ -27,9 +27,9 @@
     <string-array translatable="false" name="config_gpsParameters">
         <item>SUPL_HOST=supl.google.com</item>
         <item>SUPL_PORT=7275</item>
-        <item>XTRA_SERVER_1=http://xtrapath1.izatcloud.net/xtra2.bin</item>
-        <item>XTRA_SERVER_2=http://xtrapath2.izatcloud.net/xtra2.bin</item>
-        <item>XTRA_SERVER_3=http://xtrapath3.izatcloud.net/xtra2.bin</item>
+        <item>XTRA_SERVER_1=http://xtrapath1.izatcloud.net/xtra3grc.bin</item>
+        <item>XTRA_SERVER_2=http://xtrapath2.izatcloud.net/xtra3grc.bin</item>
+        <item>XTRA_SERVER_3=http://xtrapath3.izatcloud.net/xtra3grc.bin</item>
         <item>NTP_SERVER=north-america.pool.ntp.org</item>
         <item>SUPL_MODE=1</item>
         <item>SUPL_VER=0x20000</item>
@@ -38,7 +38,7 @@
         <item>A_GLONASS_POS_PROTOCOL_SELECT=0</item>
         <item>ERR_ESTIMATE=0</item>
         <item>INTERMEDIATE_POS=0</item>
-        <item>GPS_LOCK=3</item>
-        <item>SUPL_ES=1</item>
+        <item>GPS_LOCK=0</item>
+        <item>SUPL_ES=0</item>
     </string-array>
 </resources>
diff --git a/core/res/res/values-mcc302-mnc720/config.xml b/core/res/res/values-mcc302-mnc720/config.xml
index 8b4ed30..7a3540a 100644
--- a/core/res/res/values-mcc302-mnc720/config.xml
+++ b/core/res/res/values-mcc302-mnc720/config.xml
@@ -49,9 +49,9 @@
     <string-array translatable="false" name="config_gpsParameters">
         <item>SUPL_HOST=supl.google.com</item>
         <item>SUPL_PORT=7275</item>
-        <item>XTRA_SERVER_1=http://xtrapath1.izatcloud.net/xtra2.bin</item>
-        <item>XTRA_SERVER_2=http://xtrapath2.izatcloud.net/xtra2.bin</item>
-        <item>XTRA_SERVER_3=http://xtrapath3.izatcloud.net/xtra2.bin</item>
+        <item>XTRA_SERVER_1=http://xtrapath1.izatcloud.net/xtra3grc.bin</item>
+        <item>XTRA_SERVER_2=http://xtrapath2.izatcloud.net/xtra3grc.bin</item>
+        <item>XTRA_SERVER_3=http://xtrapath3.izatcloud.net/xtra3grc.bin</item>
         <item>NTP_SERVER=north-america.pool.ntp.org</item>
         <item>SUPL_MODE=1</item>
         <item>SUPL_VER=0x20000</item>
@@ -60,8 +60,8 @@
         <item>A_GLONASS_POS_PROTOCOL_SELECT=0</item>
         <item>ERR_ESTIMATE=0</item>
         <item>INTERMEDIATE_POS=0</item>
-        <item>GPS_LOCK=3</item>
-        <item>SUPL_ES=1</item>
+        <item>GPS_LOCK=0</item>
+        <item>SUPL_ES=0</item>
     </string-array>
 
 </resources>
diff --git a/core/res/res/values-notround-watch/config_material.xml b/core/res/res/values-notround-watch/config_material.xml
new file mode 100644
index 0000000..a99674f
--- /dev/null
+++ b/core/res/res/values-notround-watch/config_material.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2016 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<!-- These resources are around just to allow their values to be customized
+     for different hardware and product builds, only for Material theme.  Do not translate.
+
+     NOTE: The naming convention is "config_camelCaseValue".  -->
+
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- Gravity that should be used for dialog text styles. Equivalent to: Gravity.START | Gravity.TOP -->
+    <integer name="config_dialogTextGravity">0x00800033</integer>
+</resources>
diff --git a/core/res/res/values-notround-watch/styles_material.xml b/core/res/res/values-notround-watch/styles_material.xml
deleted file mode 100644
index cd8521f4..0000000
--- a/core/res/res/values-notround-watch/styles_material.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2016 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources>
-    <style name="TextAppearance.Material.AlertDialogMessage" parent="TextAppearance.Material.Body1"/>
-</resources>
diff --git a/core/res/res/values-round-watch/config_material.xml b/core/res/res/values-round-watch/config_material.xml
index bf445ef..1179870 100644
--- a/core/res/res/values-round-watch/config_material.xml
+++ b/core/res/res/values-round-watch/config_material.xml
@@ -19,4 +19,10 @@
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <!-- Don't clip on round screens so the list can scroll past the rounded edges. -->
     <bool name="config_preferenceFragmentClipToPadding">false</bool>
+
+    <!-- Gravity that should be used for dialog text styles. Equivalent to: Gravity.CENTER_HORIZONTAL | Gravity.TOP -->
+    <integer name="config_dialogTextGravity">0x00000031</integer>
+
+    <!-- The amount to offset when scrolling to a selection in an AlertDialog -->
+    <dimen name="config_alertDialogSelectionScrollOffset">@dimen/screen_percentage_15</dimen>
 </resources>
diff --git a/core/res/res/values-w180dp-notround-watch/dimens_material.xml b/core/res/res/values-w180dp-notround-watch/dimens_material.xml
new file mode 100644
index 0000000..79acf84
--- /dev/null
+++ b/core/res/res/values-w180dp-notround-watch/dimens_material.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2016 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources>
+    <dimen name="text_size_display_4_material">80sp</dimen>
+    <dimen name="text_size_display_3_material">50sp</dimen>
+    <dimen name="text_size_display_2_material">40sp</dimen>
+    <dimen name="text_size_display_1_material">30sp</dimen>
+    <dimen name="text_size_headline_material">20sp</dimen>
+    <dimen name="text_size_title_material">18sp</dimen>
+    <dimen name="text_size_subhead_material">18sp</dimen>
+    <dimen name="text_size_title_material_toolbar">18dp</dimen>
+    <dimen name="text_size_subtitle_material_toolbar">18dp</dimen>
+    <dimen name="text_size_menu_material">18sp</dimen>
+    <dimen name="text_size_menu_header_material">16sp</dimen>
+    <dimen name="text_size_body_2_material">16sp</dimen>
+    <dimen name="text_size_body_1_material">16sp</dimen>
+    <dimen name="text_size_caption_material">14sp</dimen>
+    <dimen name="text_size_button_material">16sp</dimen>
+
+    <dimen name="text_size_large_material">18sp</dimen>
+    <dimen name="text_size_medium_material">16sp</dimen>
+    <dimen name="text_size_small_material">14sp</dimen>
+</resources>
diff --git a/core/res/res/values-w210dp-round-watch/dimens_material.xml b/core/res/res/values-w210dp-round-watch/dimens_material.xml
new file mode 100644
index 0000000..79acf84
--- /dev/null
+++ b/core/res/res/values-w210dp-round-watch/dimens_material.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2016 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources>
+    <dimen name="text_size_display_4_material">80sp</dimen>
+    <dimen name="text_size_display_3_material">50sp</dimen>
+    <dimen name="text_size_display_2_material">40sp</dimen>
+    <dimen name="text_size_display_1_material">30sp</dimen>
+    <dimen name="text_size_headline_material">20sp</dimen>
+    <dimen name="text_size_title_material">18sp</dimen>
+    <dimen name="text_size_subhead_material">18sp</dimen>
+    <dimen name="text_size_title_material_toolbar">18dp</dimen>
+    <dimen name="text_size_subtitle_material_toolbar">18dp</dimen>
+    <dimen name="text_size_menu_material">18sp</dimen>
+    <dimen name="text_size_menu_header_material">16sp</dimen>
+    <dimen name="text_size_body_2_material">16sp</dimen>
+    <dimen name="text_size_body_1_material">16sp</dimen>
+    <dimen name="text_size_caption_material">14sp</dimen>
+    <dimen name="text_size_button_material">16sp</dimen>
+
+    <dimen name="text_size_large_material">18sp</dimen>
+    <dimen name="text_size_medium_material">16sp</dimen>
+    <dimen name="text_size_small_material">14sp</dimen>
+</resources>
diff --git a/core/res/res/values-round-watch/styles_material.xml b/core/res/res/values-w225dp/dimens_material.xml
similarity index 76%
rename from core/res/res/values-round-watch/styles_material.xml
rename to core/res/res/values-w225dp/dimens_material.xml
index a2f3c02..aa822a3 100644
--- a/core/res/res/values-round-watch/styles_material.xml
+++ b/core/res/res/values-w225dp/dimens_material.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?>
+<?xml version="1.0" encoding="utf-8"?>
 <!-- Copyright (C) 2016 The Android Open Source Project
 
      Licensed under the Apache License, Version 2.0 (the "License");
@@ -14,7 +14,7 @@
      limitations under the License.
 -->
 <resources>
-    <style name="TextAppearance.Material.AlertDialogMessage" parent="TextAppearance.Material.Body1">
-        <item name="textAlignment">center</item>
-    </style>
+    <dimen name="screen_percentage_05">11.25dp</dimen>
+    <dimen name="screen_percentage_10">22.5dp</dimen>
+    <dimen name="screen_percentage_15">33.75dp</dimen>
 </resources>
diff --git a/core/res/res/values-watch/colors_material.xml b/core/res/res/values-watch/colors_material.xml
index 45eb981..54eece4 100644
--- a/core/res/res/values-watch/colors_material.xml
+++ b/core/res/res/values-watch/colors_material.xml
@@ -22,5 +22,5 @@
 
     <color name="primary_material_dark">#4D4D4D</color>
 
-    <color name="button_material_dark">#ff999999</color>
+    <color name="button_material_dark">#ff919699</color>
 </resources>
diff --git a/core/res/res/values-watch/config.xml b/core/res/res/values-watch/config.xml
index 919519e..7c05b7a 100644
--- a/core/res/res/values-watch/config.xml
+++ b/core/res/res/values-watch/config.xml
@@ -57,4 +57,9 @@
 
     <!-- Use a custom transition for RemoteViews. -->
     <bool name="config_overrideRemoteViewsActivityTransition">true</bool>
+
+    <!-- Default value for android:focusableInTouchMode for some framework scrolling containers.
+         ListView/GridView are notably absent since this is their default anyway.
+         Set to true for watch devices. -->
+    <bool name="config_focusScrollContainersInTouchMode">true</bool>
 </resources>
diff --git a/core/res/res/values-watch/config_material.xml b/core/res/res/values-watch/config_material.xml
index 81b53e7..104d122 100644
--- a/core/res/res/values-watch/config_material.xml
+++ b/core/res/res/values-watch/config_material.xml
@@ -29,7 +29,4 @@
 
     <!-- Always overscan by default to ensure onApplyWindowInsets will always be called. -->
     <bool name="config_windowOverscanByDefault">true</bool>
-
-    <!-- Due to the smaller screen size, have dialog titles occupy more than 1 line. -->
-    <integer name="config_dialogWindowTitleMaxLines">3</integer>
 </resources>
diff --git a/core/res/res/values-watch/dimens_material.xml b/core/res/res/values-watch/dimens_material.xml
index d579434..b48cde6 100644
--- a/core/res/res/values-watch/dimens_material.xml
+++ b/core/res/res/values-watch/dimens_material.xml
@@ -14,5 +14,29 @@
      limitations under the License.
 -->
 <resources>
+    <dimen name="text_size_display_4_material">71sp</dimen>
+    <dimen name="text_size_display_3_material">44sp</dimen>
+    <dimen name="text_size_display_2_material">36sp</dimen>
+    <dimen name="text_size_display_1_material">27sp</dimen>
+    <dimen name="text_size_headline_material">18sp</dimen>
+    <dimen name="text_size_title_material">16sp</dimen>
+    <dimen name="text_size_subhead_material">16sp</dimen>
+    <dimen name="text_size_title_material_toolbar">16dp</dimen>
+    <dimen name="text_size_subtitle_material_toolbar">16dp</dimen>
+    <dimen name="text_size_menu_material">16sp</dimen>
+    <dimen name="text_size_menu_header_material">14sp</dimen>
+    <dimen name="text_size_body_2_material">14sp</dimen>
+    <dimen name="text_size_body_1_material">14sp</dimen>
+    <dimen name="text_size_caption_material">12sp</dimen>
+    <dimen name="text_size_button_material">14sp</dimen>
+
+    <dimen name="text_size_large_material">16sp</dimen>
+    <dimen name="text_size_medium_material">14sp</dimen>
+    <dimen name="text_size_small_material">12sp</dimen>
+
     <item name="text_line_spacing_multiplier_material" format="float" type="dimen">1.2</item>
+
+    <!-- Date and time picker legacy dimens -->
+    <dimen name="picker_top_margin">1dip</dimen>
+    <dimen name="picker_bottom_margin">1dip</dimen>
 </resources>
diff --git a/core/res/res/values-watch/integers.xml b/core/res/res/values-watch/integers.xml
new file mode 100644
index 0000000..46ed97d
--- /dev/null
+++ b/core/res/res/values-watch/integers.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2012, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+<resources>
+  <!-- Specifies date picker mode to be 'spinner' -->
+  <integer name="date_picker_mode_material">1</integer>
+
+  <!-- Specifies time picker mode to be 'spinner' -->
+  <integer name="time_picker_mode_material">1</integer>
+</resources>
diff --git a/core/res/res/values-watch/styles_material.xml b/core/res/res/values-watch/styles_material.xml
index f5735e6..d09119f 100644
--- a/core/res/res/values-watch/styles_material.xml
+++ b/core/res/res/values-watch/styles_material.xml
@@ -61,12 +61,19 @@
         <item name="divider">@empty</item>
     </style>
 
+    <style name="TextAppearance.Material.ListItem" parent="TextAppearance.Material.Body1" />
+    <style name="TextAppearance.Material.ListItemSecondary" parent="TextAppearance.Material.Caption" />
+
     <style name="Widget.Material.TextView" parent="Widget.TextView">
         <item name="breakStrategy">balanced</item>
     </style>
 
     <style name="Widget.Material.ButtonBar" parent="Widget.Material.BaseButtonBar" />
 
+    <style name="TextAppearance.Material.NumberPicker" parent="TextAppearance.Material.Body1">
+        <item name="textSize">@dimen/text_size_medium_material</item>
+    </style>
+
     <!-- Alert dialog button bar button -->
     <style name="Widget.Material.Button.ButtonBar.AlertDialog" parent="Widget.Material.Button.Borderless.Small">
         <item name="paddingStart">@dimen/list_item_padding_start_material</item>
@@ -82,13 +89,21 @@
         <item name="solidColor">@color/transparent</item>
         <item name="selectionDivider">@drawable/numberpicker_selection_divider</item>
         <item name="selectionDividerHeight">2dp</item>
-        <item name="selectionDividersDistance">48dp</item>
-        <item name="internalMinWidth">64dp</item>
-        <item name="internalMaxHeight">180dp</item>
+        <item name="selectionDividersDistance">24dp</item>
+        <item name="internalMinWidth">32dp</item>
+        <item name="internalMaxHeight">90dp</item>
         <item name="virtualButtonPressedDrawable">?selectableItemBackground</item>
         <item name="descendantFocusability">blocksDescendants</item>
     </style>
 
+    <style name="DialogWindowTitle.Material">
+        <item name="maxLines">3</item>
+        <item name="scrollHorizontally">false</item>
+        <item name="textAppearance">@style/TextAppearance.Material.DialogWindowTitle</item>
+        <item name="gravity">@integer/config_dialogTextGravity</item>
+        <item name="ellipsize">end</item>
+    </style>
+
     <!-- DO NOTE TRANSLATE Spans within this text are applied to style composing regions
     within an EditText widget. The text content is ignored and not used.
     Note: This is @color/material_deep_teal_200, cannot use @color references here. -->
diff --git a/core/res/res/values-watch/themes_material.xml b/core/res/res/values-watch/themes_material.xml
index 4ae4367..84bc25f 100644
--- a/core/res/res/values-watch/themes_material.xml
+++ b/core/res/res/values-watch/themes_material.xml
@@ -59,4 +59,17 @@
         <item name="colorBackgroundCacheHint">@color/background_cache_hint_selector_material_light</item>
         <item name="windowIsFloating">false</item>
     </style>
+
+    <!-- Force all settings themes to use normal Material theme. -->
+    <style name="Theme.Material.Settings" parent="Theme.Material"/>
+    <style name="Theme.Material.Settings.NoActionBar" parent="Theme.Material"/>
+    <style name="Theme.Material.Settings.BaseDialog" parent="Theme.Material.Dialog"/>
+    <style name="Theme.Material.Settings.Dialog" parent="Theme.Material.Settings.BaseDialog"/>
+    <style name="Theme.Material.Settings.Dialog.BaseAlert" parent="Theme.Material.Dialog.BaseAlert"/>
+    <style name="Theme.Material.Settings.Dialog.Alert" parent="Theme.Material.Settings.Dialog.BaseAlert"/>
+    <style name="Theme.Material.Settings.DialogWhenLarge" parent="Theme.Material.DialogWhenLarge"/>
+    <style name="Theme.Material.Settings.DialogWhenLarge.NoActionBar" parent="Theme.Material.DialogWhenLarge.NoActionBar"/>
+    <style name="Theme.Material.Settings.Dialog.Presentation" parent="Theme.Material.Dialog.Presentation"/>
+    <style name="Theme.Material.Settings.SearchBar" parent="Theme.Material.SearchBar"/>
+    <style name="Theme.Material.Settings.CompactMenu" parent="Theme.Material.CompactMenu"/>
 </resources>
diff --git a/core/res/res/values/attrs.xml b/core/res/res/values/attrs.xml
index 0a96ba3..0561131 100644
--- a/core/res/res/values/attrs.xml
+++ b/core/res/res/values/attrs.xml
@@ -2057,6 +2057,8 @@
             <!-- Controller for micro specific layout. -->
             <enum name="micro" value="1" />
         </attr>
+        <!-- @hide Offset when scrolling to a selection. -->
+        <attr name="selectionScrollOffset" format="dimension" />
     </declare-styleable>
 
     <!-- @hide -->
diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml
index 55a87ee..2b8cc98 100644
--- a/core/res/res/values/config.xml
+++ b/core/res/res/values/config.xml
@@ -202,7 +202,7 @@
 
     <!-- The threshold angle for any motion detection in auto-power save modes.
          In hundreths of a degree. -->
-    <integer name="config_autoPowerModeThresholdAngle">200</integer>
+    <integer name="config_autoPowerModeThresholdAngle">10</integer>
 
     <!-- The sensor id of an "any motion" sensor used in auto-power save modes.
          0 indicates this sensor is not available. -->
@@ -546,9 +546,12 @@
          Software implementation will be used if config_hardware_auto_brightness_available is not set -->
     <bool name="config_automatic_brightness_available">false</bool>
 
-    <!-- Fast brightness animation ramp rate -->
+    <!-- Fast brightness animation ramp rate in brightness units per second-->
     <integer translatable="false" name="config_brightness_ramp_rate_fast">200</integer>
 
+    <!-- Slow brightness animation ramp rate in brightness units per second-->
+    <integer translatable="false" name="config_brightness_ramp_rate_slow">40</integer>
+
     <!-- Don't name config resources like this.  It should look like config_annoyDianne -->
     <bool name="config_annoy_dianne">true</bool>
 
@@ -803,6 +806,12 @@
     -->
     <integer name="config_longPressOnBackBehavior">0</integer>
 
+    <!-- Control the behavior when the user panic presses the back button.
+            0 - Nothing
+            1 - Go to home
+    -->
+    <integer name="config_backPanicBehavior">0</integer>
+
     <!-- Control the behavior when the user short presses the power button.
             0 - Nothing
             1 - Go to sleep (doze)
@@ -1130,6 +1139,40 @@
     <integer-array name="config_autoBrightnessKeyboardBacklightValues">
     </integer-array>
 
+    <!-- Array of hysteresis constraint values for brightening, represented as tenths of a
+         percent. The length of this array is assumed to be one greater than
+         config_dynamicHysteresisLuxLevels. The brightening threshold is calculated as
+         lux * (1.0f + CONSTRAINT_VALUE). When the current lux is higher than this threshold,
+         the screen brightness is recalculated. See the config_dynamicHysteresisLuxLevels
+         description for how the constraint value is chosen. -->
+    <integer-array name="config_dynamicHysteresisBrightLevels">
+        <item>100</item>
+    </integer-array>
+
+    <!-- Array of hysteresis constraint values for darkening, represented as tenths of a
+         percent. The length of this array is assumed to be one greater than
+         config_dynamicHysteresisLuxLevels. The darkening threshold is calculated as
+         lux * (1.0f - CONSTRAINT_VALUE). When the current lux is lower than this threshold,
+         the screen brightness is recalculated. See the config_dynamicHysteresisLuxLevels
+         description for how the constraint value is chosen. -->
+    <integer-array name="config_dynamicHysteresisDarkLevels">
+        <item>200</item>
+    </integer-array>
+
+    <!-- Array of ambient lux threshold values. This is used for determining hysteresis constraint
+         values by calculating the index to use for lookup and then setting the constraint value
+         to the corresponding value of the array. The new brightening hysteresis constraint value
+         is the n-th element of config_dynamicHysteresisBrightLevels, and the new darkening
+         hysteresis constraint value is the n-th element of config_dynamicHysteresisDarkLevels.
+
+         The (zero-based) index is calculated as follows: (MAX is the largest index of the array)
+         condition                      calculated index
+         value < lux[0]                 0
+         lux[n] <= value < lux[n+1]     n+1
+         lux[MAX] <= value              MAX+1 -->
+    <integer-array name="config_dynamicHysteresisLuxLevels">
+    </integer-array>
+
     <!-- Amount of time it takes for the light sensor to warm up in milliseconds.
          For this time after the screen turns on, the Power Manager
          will not debounce light sensor readings -->
@@ -1751,6 +1794,10 @@
     <!-- Amount of time in ms the user needs to press the relevant key to bring up the global actions dialog -->
     <integer name="config_globalActionsKeyTimeout">500</integer>
 
+    <!-- Distance that should be scrolled in response to a {@link MotionEvent#ACTION_SCROLL event}
+         with an axis value of 1. -->
+    <dimen name="config_scrollFactor">64dp</dimen>
+
     <!-- Maximum number of grid columns permitted in the ResolverActivity
          used for picking activities to handle an intent. -->
     <integer name="config_maxResolverActivityColumns">3</integer>
@@ -2532,6 +2579,14 @@
     <string-array translatable="false" name="config_defaultFirstUserRestrictions">
     </string-array>
 
+    <!-- Default value for android:focusableInTouchMode for some framework scrolling containers.
+         ListView/GridView are notably absent since this is their default anyway.
+         Set to true for watch devices. -->
+    <bool name="config_focusScrollContainersInTouchMode">false</bool>
+
+    <string name="config_networkOverLimitComponent" translatable="false">com.android.systemui/com.android.systemui.net.NetworkOverLimitActivity</string>
+    <string name="config_dataUsageSummaryComponent" translatable="false">com.android.settings/com.android.settings.Settings$DataUsageSummaryActivity</string>
+
     <!-- A array of regex to treat a SMS as VVM SMS if the message body matches.
          Each item represents an entry, which consists of two parts:
          a comma (,) separated list of MCCMNC the regex applies to, followed by a semicolon (;), and
diff --git a/core/res/res/values/config_material.xml b/core/res/res/values/config_material.xml
index a37be83..29494db 100644
--- a/core/res/res/values/config_material.xml
+++ b/core/res/res/values/config_material.xml
@@ -32,9 +32,9 @@
     <!-- True if windowOverscan should be on by default. -->
     <bool name="config_windowOverscanByDefault">false</bool>
 
-    <!-- Max number of lines for the dialog title. -->
-    <integer name="config_dialogWindowTitleMaxLines">1</integer>
-
     <!-- True if preference fragment should clip to padding. -->
     <bool name="config_preferenceFragmentClipToPadding">true</bool>
+
+    <!-- The amount to offset when scrolling to a selection in an AlertDialog -->
+    <dimen name="config_alertDialogSelectionScrollOffset">0dp</dimen>
 </resources>
diff --git a/core/res/res/values/dimens_material.xml b/core/res/res/values/dimens_material.xml
index f96cef9..ae31165 100644
--- a/core/res/res/values/dimens_material.xml
+++ b/core/res/res/values/dimens_material.xml
@@ -189,4 +189,8 @@
     <dimen name="day_picker_button_margin_top">0dp</dimen>
 
     <dimen name="datepicker_view_animator_height">226dp</dimen>
+
+    <!-- Date and time picker legacy dimens -->
+    <dimen name="picker_top_margin">16dip</dimen>
+    <dimen name="picker_bottom_margin">16dip</dimen>
 </resources>
diff --git a/core/res/res/values/integers.xml b/core/res/res/values/integers.xml
index 71ac2f4..2b69c75b 100644
--- a/core/res/res/values/integers.xml
+++ b/core/res/res/values/integers.xml
@@ -26,5 +26,12 @@
 
     <integer name="date_picker_mode">1</integer>
     <integer name="time_picker_mode">1</integer>
+
+    <!-- Specifies date picker mode to be 'calendar' -->
+    <integer name="date_picker_mode_material">2</integer>
+
+    <!-- Specifies time picker mode to be 'clock' -->
+    <integer name="time_picker_mode_material">2</integer>
+
     <integer name="date_picker_header_max_lines_material">2</integer>
 </resources>
diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml
index 9002ed4..171e261 100644
--- a/core/res/res/values/strings.xml
+++ b/core/res/res/values/strings.xml
@@ -1957,7 +1957,7 @@
     <string name="lockscreen_access_pattern_cleared">Pattern cleared</string>
     <!-- Accessibility description sent when user adds a dot to the pattern. [CHAR LIMIT=NONE]  -->
     <string name="lockscreen_access_pattern_cell_added">Cell added</string>
-    <!-- Accessibility description sent when user adds a dot to the pattern. Announces the 
+    <!-- Accessibility description sent when user adds a dot to the pattern. Announces the
     actual cell when headphones are connected [CHAR LIMIT=NONE]  -->
     <string name="lockscreen_access_pattern_cell_added_verbose">
             Cell <xliff:g id="cell_index" example="3">%1$s</xliff:g> added</string>
@@ -2037,6 +2037,12 @@
     <!-- Button to restart the device after the factory test. -->
     <string name="factorytest_reboot">Reboot</string>
 
+    <!-- Do not translate.  timepicker mode, overridden for watch -->
+    <string name="time_picker_mode" translatable="false">"clock"</string>
+
+    <!-- Do not translate.  datepicker mode, overridden for watch -->
+    <string name="date_picker_mode" translatable="false">"calendar"</string>
+
     <!-- Do not translate.  WebView User Agent string -->
     <string name="web_user_agent" translatable="false">Mozilla/5.0 (Linux; U; <xliff:g id="x">Android %s</xliff:g>)
         AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 <xliff:g id="mobile">%s</xliff:g>Safari/534.30</string>
diff --git a/core/res/res/values/styles.xml b/core/res/res/values/styles.xml
index 762cf31..937428b 100644
--- a/core/res/res/values/styles.xml
+++ b/core/res/res/values/styles.xml
@@ -649,11 +649,13 @@
     <style name="Widget.ScrollView">
         <item name="scrollbars">vertical</item>
         <item name="fadingEdge">vertical</item>
+        <item name="focusableInTouchMode">@bool/config_focusScrollContainersInTouchMode</item>
     </style>
 
     <style name="Widget.HorizontalScrollView">
         <item name="scrollbars">horizontal</item>
         <item name="fadingEdge">horizontal</item>
+        <item name="focusableInTouchMode">@bool/config_focusScrollContainersInTouchMode</item>
     </style>
 
     <style name="Widget.ListView" parent="Widget.AbsListView">
diff --git a/core/res/res/values/styles_material.xml b/core/res/res/values/styles_material.xml
index 4435537..224e3b7 100644
--- a/core/res/res/values/styles_material.xml
+++ b/core/res/res/values/styles_material.xml
@@ -255,6 +255,8 @@
         <item name="textColor">?attr/textColorPrimary</item>
     </style>
 
+    <style name="TextAppearance.Material.NumberPicker" parent="TextAppearance.Material.Body1"/>
+
     <!-- Deprecated text styles -->
 
     <style name="TextAppearance.Material.Inverse">
@@ -475,6 +477,9 @@
         <item name="textColor">#66000000</item>
     </style>
 
+    <style name="TextAppearance.Material.ListItem" parent="TextAppearance.Material.Subhead" />
+    <style name="TextAppearance.Material.ListItemSecondary" parent="TextAppearance.Material.Body1" />
+
     <style name="Widget.Material.Notification.ProgressBar" parent="Widget.Material.Light.ProgressBar.Horizontal" />
 
     <style name="Widget.Material.Notification.MessagingText" parent="Widget.Material.Light.TextView">
@@ -684,7 +689,7 @@
     </style>
 
     <style name="Widget.Material.TimePicker">
-        <item name="timePickerMode">clock</item>
+        <item name="timePickerMode">@integer/time_picker_mode_material</item>
         <item name="legacyLayout">@layout/time_picker_legacy_material</item>
         <!-- Attributes for new-style TimePicker. -->
         <item name="internalLayout">@layout/time_picker_material</item>
@@ -698,7 +703,7 @@
     </style>
 
     <style name="Widget.Material.DatePicker">
-        <item name="datePickerMode">calendar</item>
+        <item name="datePickerMode">@integer/date_picker_mode_material</item>
         <item name="legacyLayout">@layout/date_picker_legacy_holo</item>
         <item name="calendarViewShown">true</item>
         <!-- Attributes for new-style DatePicker. -->
@@ -1208,6 +1213,7 @@
         <item name="multiChoiceItemLayout">@layout/select_dialog_multichoice_material</item>
         <item name="singleChoiceItemLayout">@layout/select_dialog_singlechoice_material</item>
         <item name="controllerType">@integer/config_alertDialogController</item>
+        <item name="selectionScrollOffset">@dimen/config_alertDialogSelectionScrollOffset</item>
     </style>
 
     <style name="AlertDialog.Material.Light" />
@@ -1246,7 +1252,7 @@
     <style name="DialogWindowTitleBackground.Material.Light" />
 
     <style name="DialogWindowTitle.Material">
-        <item name="maxLines">@integer/config_dialogWindowTitleMaxLines</item>
+        <item name="maxLines">1</item>
         <item name="scrollHorizontally">true</item>
         <item name="textAppearance">@style/TextAppearance.Material.DialogWindowTitle</item>
     </style>
diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml
index 67ab8cb..16da4b1 100644
--- a/core/res/res/values/symbols.xml
+++ b/core/res/res/values/symbols.xml
@@ -375,6 +375,7 @@
   <java-symbol type="integer" name="config_immersive_mode_confirmation_panic" />
   <java-symbol type="integer" name="config_longPressOnPowerBehavior" />
   <java-symbol type="integer" name="config_longPressOnBackBehavior" />
+  <java-symbol type="integer" name="config_backPanicBehavior" />
   <java-symbol type="integer" name="config_lowMemoryKillerMinFreeKbytesAdjust" />
   <java-symbol type="integer" name="config_lowMemoryKillerMinFreeKbytesAbsolute" />
   <java-symbol type="integer" name="config_max_pan_devices" />
@@ -415,6 +416,7 @@
   <java-symbol type="dimen" name="config_viewConfigurationTouchSlop" />
   <java-symbol type="dimen" name="config_viewMinFlingVelocity" />
   <java-symbol type="dimen" name="config_viewMaxFlingVelocity" />
+  <java-symbol type="dimen" name="config_scrollFactor" />
   <java-symbol type="dimen" name="default_app_widget_padding_bottom" />
   <java-symbol type="dimen" name="default_app_widget_padding_left" />
   <java-symbol type="dimen" name="default_app_widget_padding_right" />
@@ -1407,7 +1409,6 @@
   <java-symbol type="raw" name="color_fade_vert" />
   <java-symbol type="raw" name="color_fade_frag" />
   <java-symbol type="raw" name="accessibility_gestures" />
-  <java-symbol type="raw" name="incognito_mode_start_page" />
   <java-symbol type="raw" name="loaderror" />
   <java-symbol type="raw" name="nodomain" />
 
@@ -1643,6 +1644,9 @@
   <java-symbol type="array" name="config_autoBrightnessKeyboardBacklightValues" />
   <java-symbol type="array" name="config_autoBrightnessLcdBacklightValues" />
   <java-symbol type="array" name="config_autoBrightnessLevels" />
+  <java-symbol type="array" name="config_dynamicHysteresisBrightLevels" />
+  <java-symbol type="array" name="config_dynamicHysteresisDarkLevels" />
+  <java-symbol type="array" name="config_dynamicHysteresisLuxLevels" />
   <java-symbol type="array" name="config_protectedNetworks" />
   <java-symbol type="array" name="config_statusBarIcons" />
   <java-symbol type="array" name="config_tether_bluetooth_regexs" />
@@ -1764,6 +1768,7 @@
   <java-symbol type="integer" name="config_undockedHdmiRotation" />
   <java-symbol type="integer" name="config_virtualKeyQuietTimeMillis" />
   <java-symbol type="integer" name="config_brightness_ramp_rate_fast" />
+  <java-symbol type="integer" name="config_brightness_ramp_rate_slow" />
   <java-symbol type="layout" name="am_compat_mode_dialog" />
   <java-symbol type="layout" name="launch_warning" />
   <java-symbol type="layout" name="safe_mode" />
@@ -2658,6 +2663,10 @@
   <!-- Colon separated list of package names that should be granted DND access -->
   <java-symbol type="string" name="config_defaultDndAccessPackages" />
 
+  <!-- For NetworkPolicyManagerService -->
+  <java-symbol type="string" name="config_networkOverLimitComponent" />
+  <java-symbol type="string" name="config_dataUsageSummaryComponent" />
+
   <java-symbol type="string" name="lockscreen_storage_locked" />
 
   <!-- Used for MimeIconUtils. -->
diff --git a/core/res/res/values/themes_material.xml b/core/res/res/values/themes_material.xml
index 7e2867d..0eb4c8d 100644
--- a/core/res/res/values/themes_material.xml
+++ b/core/res/res/values/themes_material.xml
@@ -114,9 +114,9 @@
         <item name="listPreferredItemHeightSmall">48dip</item>
         <item name="listPreferredItemHeightLarge">80dip</item>
         <item name="dropdownListPreferredItemHeight">?attr/listPreferredItemHeightSmall</item>
-        <item name="textAppearanceListItem">@style/TextAppearance.Material.Subhead</item>
-        <item name="textAppearanceListItemSmall">@style/TextAppearance.Material.Subhead</item>
-        <item name="textAppearanceListItemSecondary">@style/TextAppearance.Material.Body1</item>
+        <item name="textAppearanceListItem">@style/TextAppearance.Material.ListItem</item>
+        <item name="textAppearanceListItemSmall">@style/TextAppearance.Material.ListItem</item>
+        <item name="textAppearanceListItemSecondary">@style/TextAppearance.Material.ListItemSecondary</item>
         <item name="listPreferredItemPaddingLeft">@dimen/list_item_padding_horizontal_material</item>
         <item name="listPreferredItemPaddingRight">@dimen/list_item_padding_horizontal_material</item>
         <item name="listPreferredItemPaddingStart">@dimen/list_item_padding_start_material</item>
@@ -475,9 +475,9 @@
         <item name="listPreferredItemHeightSmall">48dip</item>
         <item name="listPreferredItemHeightLarge">80dip</item>
         <item name="dropdownListPreferredItemHeight">?attr/listPreferredItemHeightSmall</item>
-        <item name="textAppearanceListItem">@style/TextAppearance.Material.Subhead</item>
-        <item name="textAppearanceListItemSmall">@style/TextAppearance.Material.Subhead</item>
-        <item name="textAppearanceListItemSecondary">@style/TextAppearance.Material.Body1</item>
+        <item name="textAppearanceListItem">@style/TextAppearance.Material.ListItem</item>
+        <item name="textAppearanceListItemSmall">@style/TextAppearance.Material.ListItem</item>
+        <item name="textAppearanceListItemSecondary">@style/TextAppearance.Material.ListItemSecondary</item>
         <item name="listPreferredItemPaddingLeft">@dimen/list_item_padding_horizontal_material</item>
         <item name="listPreferredItemPaddingRight">@dimen/list_item_padding_horizontal_material</item>
         <item name="listPreferredItemPaddingStart">@dimen/list_item_padding_start_material</item>
diff --git a/core/res/res/xml-watch/default_zen_mode_config.xml b/core/res/res/xml-watch/default_zen_mode_config.xml
index 26af10c..938cc0c 100644
--- a/core/res/res/xml-watch/default_zen_mode_config.xml
+++ b/core/res/res/xml-watch/default_zen_mode_config.xml
@@ -17,8 +17,8 @@
 
 <!-- Default configuration for zen mode.  See android.service.notification.ZenModeConfig. -->
 <zen version="2">
-    <!-- Allow starred contacts to go through only. Repeated calls on.
-         Calls, messages, reminders, events off.-->
-    <allow from="2" repeatCallers="true" calls="false" messages="false" reminders="false"
+    <!-- Allow starred contacts to go through only.
+    Repeated calls, calls, messages, reminders, events off. -->
+    <allow from="2" repeatCallers="false" calls="false" messages="false" reminders="false"
            events="false"/>
 </zen>
diff --git a/docs/html/jd_collections.js b/docs/html/jd_collections.js
deleted file mode 100644
index 3ceddf2..0000000
--- a/docs/html/jd_collections.js
+++ /dev/null
@@ -1,1935 +0,0 @@
-/*
- * THIS FILE IS DEPRECATED.
- *
- * Please add and edit resource collections in jd_extras_<lang>.js
- * where lang matches the language code appropriate for the resource.
- * Last sync'd with jd_extras_<lang>.js on 29 Apr 2016.
- *
- */
-var RESOURCE_COLLECTIONS = {
-  "index/carousel": {
-    "title": "",
-    "resources": [
-      "about/versions/lollipop.html"
-    ]
-  },
-  "index/primary": {
-    "title": "",
-    "resources": [
-      "training/building-wearables.html",
-      "training/material/index.html",
-      "studio/index.html"
-    ]
-  },
-  "index/secondary/carousel": {
-    "title": "",
-    "resources": [
-      "http://www.youtube.com/watch?v=9m6MoBM-sFI",
-      "http://www.youtube.com/watch?v=Pms0pcyPbAM",
-      "http://www.youtube.com/watch?v=e7t3svG9PTk",
-      "http://www.youtube.com/watch?v=J3IvOfvH1ys"
-    ]
-  },
-  "index/multiscreen": {
-    "title": "",
-    "resources": [
-      "wear/index.html",
-      "tv/index.html",
-      "auto/index.html"
-    ]
-  },
-  "index/primary/zhcn": {
-    "title": "",
-    "resources": [
-      "intl/zh-cn/resources.html",
-      "intl/zh-cn/distribute/tools/launch-checklist.html",
-      "intl/zh-cn/distribute/tools/localization-checklist.html"
-    ]
-  },
-  "design/landing/latest": {
-    "title": "",
-    "resources": [
-      "https://www.youtube.com/watch?v=p4gmvHyuZzw",
-      "https://www.youtube.com/watch?v=YaG_ljfzeUw",
-      "https://www.youtube.com/watch?v=XOcCOBe8PTc"
-    ]
-  },
-  "design/landing/materialdesign": {
-    "title": "",
-    "resources": [
-      "https://www.google.com/design/spec/animation/",
-      "https://www.google.com/design/spec/style/",
-      "https://www.google.com/design/spec/layout/",
-      "https://www.google.com/design/spec/components/",
-      "https://www.google.com/design/spec/patterns/",
-      "https://www.google.com/design/spec/usability/"
-    ]
-  },
-  "design/landing/pureandroid": {
-    "title": "",
-    "resources": [
-      "design/get-started/creative-vision.html",
-      "design/material/index.html",
-      "training/material/index.html",
-      "design/patterns/pure-android.html",
-      "design/patterns/new.html",
-      "design/devices.html"
-    ]
-  },
-  "design/landing/resources": {
-    "title": "",
-    "resources": [
-      "https://www.google.com/design/spec/resources/color-palettes.html",
-      "https://www.google.com/design/spec/resources/layout-templates.html",
-      "https://www.google.com/design/spec/resources/sticker-sheets-icons.html",
-      "https://www.google.com/design/spec/resources/roboto-noto-fonts.html",
-      "https://www.google.com/design/icons/index.html",
-      "design/downloads/index.html#Wear"
-    ]
-  },
-  "develop/landing/mainlinks": {
-    "title": "",
-    "resources": [
-      "tools/studio/index.html",
-      "samples/new/index.html",
-      "tools/projects/templates.html"
-    ]
-  },
-  "develop/landing/latest": {
-    "title": "",
-    "resources": [
-      "https://android-developers.blogspot.com/2015/04/new-android-code-samples.html",
-      "https://android-developers.blogspot.com/2015/04/android-support-library-221.html",
-      "https://android-developers.blogspot.com/2015/03/a-new-reference-app-for-multi-device.html"
-    ]
-  },
-  "develop/landing/devpatterns": {
-    "title": "",
-    "resources": [
-      "https://www.youtube.com/watch?v=kmUGLURRPkI",
-      "https://www.youtube.com/watch?v=HGElAW224dE",
-      "https://www.youtube.com/watch?v=zQekzaAgIlQ"
-    ]
-  },
-  "develop/landing/performance": {
-    "title": "",
-    "resources": [
-      "https://www.youtube.com/watch?v=fEEulSk1kNY",
-      "https://www.youtube.com/watch?v=-3ry8PxcJJA",
-      "https://www.youtube.com/watch?v=_kKTGK-Cb_4"
-    ]
-  },
-  "develop/landing/buildwithgoogle": {
-    "title": "",
-    "resources": [
-    ]
-  },
-  "develop/landing/ubicomp": {
-    "title": "",
-    "resources": [
-      "https://www.youtube.com/watch?v=AK38PJZmIW8&list=PLWz5rJ2EKKc-kIrPiq098QH9dOle-fLef",
-      "https://www.youtube.com/watch?v=6K_jxccHv5M&index=1&list=PLOU2XLYxmsILFBfx66ens76VMLMEPJAB0",
-      "https://www.youtube.com/watch?v=ctiaVxgclsg&list=PLWz5rJ2EKKc9BdE_PSLNIGjXXr3h_orXM"
-    ]
-  },
-  "develop/landing/tools": {
-    "title": "",
-    "resources": [
-      "https://www.youtube.com/watch?v=K2dodTXARqc&list=PLWz5rJ2EKKc8I9gHTMh5yKkwRRGE8BjbQ",
-      "https://www.youtube.com/watch?v=cD7NPxuuXYY&list=PLWz5rJ2EKKc8I9gHTMh5yKkwRRGE8BjbQ",
-      "https://www.youtube.com/watch?v=JLLnhwtDoHw&list=PLWz5rJ2EKKc8I9gHTMh5yKkwRRGE8BjbQ",
-      "https://www.youtube.com/watch?v=2I6fuD20qlY&list=PLWz5rJ2EKKc8I9gHTMh5yKkwRRGE8BjbQ",
-      "https://www.youtube.com/watch?v=5Be2mJzP-Uw&list=PLWz5rJ2EKKc9e0d55YHgJFHXNZbGHEXJX"
-    ]
-  },
-  "preview/landing/resources": {
-    "title": "",
-    "resources": [
-      "preview/overview.html",
-      "preview/api-overview.html",
-      "preview/behavior-changes.html",
-      "preview/setup-sdk.html",
-      "preview/samples.html",
-      "preview/support.html"
-    ]
-  },
-  "preview/landing/more": {
-    "title": "",
-    "resources": [
-      "https://www.youtube.com/watch?v=CsulIu3UaUM",
-      "preview/features/multi-window.html",
-      "preview/features/notification-updates.html",
-      "preview/features/background-optimization.html",
-      "preview/features/data-saver.html",
-      "preview/features/direct-boot.html",
-      "preview/features/icu4j-framework.html",
-      "preview/features/multilingual-support.html",
-      "preview/features/scoped-folder-access.html",
-      "preview/features/picture-in-picture.html",
-      "preview/features/tv-recording-api.html"
-    ]
-  },
-  "wear/preview/landing": {
-    "title": "",
-    "resources": [
-      "wear/preview/api-overview.html",
-      "wear/preview/downloads.html",
-      "wear/preview/start.html"
-    ]
-  },
-  "wear/preview/landing/resources": {
-    "title": "",
-    "resources": [
-      "wear/preview/features/complications.html",
-      "wear/preview/features/notifications.html",
-      "wear/preview/features/ui-nav-actions.html"
-    ]
-  },
-  "google/landing/services": {
-    "title": "",
-    "resources": [
-      "https://developers.google.com/analytics/devguides/collection/android/",
-      "https://developers.google.com/maps/documentation/android/",
-      "https://developers.google.com/identity/sign-in/android/",
-      "https://developers.google.com/mobile-ads-sdk/download",
-      "https://developers.google.com/cloud-messaging/gcm",
-      "https://developers.google.com/app-indexing/"
-    ]
-  },
-  "google/landing/videos": {
-    "title": "",
-    "resources": [
-      "https://www.youtube.com/watch?v=M3Udfu6qidk&list=PLWz5rJ2EKKc9Qk1_iCZNbBp6adYnJf9Vf",
-      "https://www.youtube.com/watch?v=FOn64iqlphk&list=PLWz5rJ2EKKc9Qk1_iCZNbBp6adYnJf9Vf",
-      "https://www.youtube.com/watch?v=F0Kh_RnSM0w&list=PLWz5rJ2EKKc9Qk1_iCZNbBp6adYnJf9Vf",
-      "https://www.youtube.com/watch?v=fvtMtfCuEpw&list=PLWz5rJ2EKKc9Qk1_iCZNbBp6adYnJf9Vf"
-    ]
-  },
-  "google/landing/googleplay": {
-    "title": "",
-    "resources": [
-      "google/play/billing/index.html",
-      "google/play/billing/billing_subscriptions.html",
-      "google/play/developer-api.html"
-    ]
-  },
-  "develop/landing/courses": {
-    "title": "",
-    "resources": [
-      "https://www.udacity.com/course/ud849",
-      "https://www.udacity.com/course/ud853",
-      "https://www.udacity.com/course/ud825",
-      "https://www.udacity.com/android",
-      "https://www.udacity.com/course/ud855",
-      "https://www.udacity.com/course/ud875A",
-      "https://www.udacity.com/course/ud875B",
-      "https://www.udacity.com/course/ud875C",
-      "https://www.udacity.com/course/ud876--1",
-      "https://www.udacity.com/course/ud876--2",
-      "https://www.udacity.com/course/ud876--3",
-      "https://www.udacity.com/course/ud876--4",
-      "https://www.udacity.com/course/ud876--5",
-      "https://www.udacity.com/course/ud862",
-      "https://www.udacity.com/course/ud837",
-      "https://www.udacity.com/course/ud867"
-    ]
-  },
-  "distribute/landing/carousel": {
-    "title": "",
-    "resources": [
-    "distribute/googleplay/guide.html",
-    "https://www.youtube.com/watch?v=JrR6o5tYMWQ",
-    "https://www.youtube.com/watch?v=B6ydLpkhq04&list=PLOU2XLYxmsIKLNUPiFCWVtcO7mZRZ9MmS",
-    "https://www.youtube.com/watch?v=yJisuP94lHU",
-    ]
-  },
-  "distribute/landing/googleplay": {
-    "title": "",
-    "resources": [
-      "distribute/googleplay/about.html",
-      "distribute/googleplay/developer-console.html",
-      "distribute/googleplay/index.html#opportunities"
-    ]
-  },
-  "distribute/landing/more": {
-    "title": "",
-    "resources": [
-      "distribute/users/promote-with-ads.html",
-      "distribute/monetize/ads.html",
-      "distribute/analyze/index.html",
-      "distribute/engage/deep-linking.html",
-      "distribute/engage/easy-signin.html",
-      "https://cloud.google.com/docs/"
-    ]
-  },
-  "distribute/edu/videos/stories": {
-    "title": "",
-    "resources": [
-      "https://www.youtube.com/watch?v=Idu7VcTTXfk",
-      "https://www.youtube.com/watch?v=iokH4SAIfRw"
-    ]
-  },
-  "distribute/edu/videos/bestpractices": {
-    "title": "",
-    "resources": [
-      "https://www.youtube.com/watch?v=iulXz8QTD1g",
-      "https://www.youtube.com/watch?v=IKhU180eJMo",
-      "https://www.youtube.com/watch?v=_AZ6UcPz-_g",
-      "https://www.youtube.com/watch?v=Eh2adsAyTKc"
-    ]
-  },
-  "distribute/edu/videos/experience": {
-    "title": "",
-    "resources": [
-      "https://youtu.be/vzvpcEffvaE"
-    ]
-  },
-/*  "launch/static": {
-    "title": "",
-    "resources": [
-      "https://www.youtube.com/watch?v=1RIz-cmTQB4",
-      "https://www.youtube.com/watch?v=MVBMWDzyHAI",
-      "https://android-developers.blogspot.com/2013/11/app-translation-service-now-available.html",
-      "https://android-developers.blogspot.com/2013/10/more-visibility-for-tablet-apps-in.html",
-      "https://android-developers.blogspot.com/2013/11/bring-your-apps-into-classroom-with.html",
-      "distribute/essentials/quality/tablets.html",
-      "distribute/users/build-buzz.html",
-      "distribute/monetize/premium.html",
-      "distribute/monetize/freemium.html",
-      "distribute/monetize/ads.html",
-      "distribute/essentials/best-practices/apps.html",
-      "distribute/essentials/best-practices/games.html",
-      "distribute/users/know-your-user.html",
-      "distribute/googleplay/developer-console.html"
-    ]
-  }, */
-  "launch/static/ja": {
-    "title": "",
-    "resources": [
-      "https://www.youtube.com/watch?v=xelYnWcYkuE",
-      "https://www.youtube.com/playlist?list=PLCOC_kP3nqGIHEgwm9mybvA04Vn4Cg9nn",
-      "https://googledevjp.blogspot.jp/2014/12/android-wear.html",
-      "https://googledevjp.blogspot.jp/2014/12/android-studio-10.html",
-      "https://googledevjp.blogspot.jp/2014/12/google-play-65.html",
-      "intl/ja/distribute/googleplay/developer-console.html#alpha-beta",
-      "intl/ja/distribute/googleplay/guide.html",
-      "intl/ja/distribute/essentials/quality/core.html",
-      "https://support.google.com/googleplay/android-developer/answer/4430948?hl=ja",
-      "intl/ja/support.html",
-      "intl/ja/distribute/essentials/quality/wear.html",
-      "intl/ja/training/tv/start/index.html",
-      "https://googleforwork-japan.blogspot.jp/2014/12/gcp-google-cloud-platform-rpg-gcp.html",
-      "intl/ja/distribute/monetize/ads.html"
-    ]
-  },
-  "launch/static/ko": {
-    "title": "",
-    "resources": [
-      "https://www.youtube.com/watch?v=7X9Ue0Nfdh4&index=2&list=PL_WJkTbDHdBksDBRoqfeyLchEQqBAOlNl",
-      "https://www.youtube.com/watch?v=83FpwuschCQ",
-      "https://googledevkr.blogspot.com/2014/11/android50guidefordevelopers.html",
-      "https://googledevkr.blogspot.com/2014/10/material-design-on-android-checklist.html",
-      "https://googledevkr.blogspot.com/2014/10/appcompat-v21-material-design-for-pre.html",
-      "intl/ko/distribute/googleplay/developer-console.html#alpha-beta",
-      "intl/ko/distribute/googleplay/guide.html",
-      "intl/ko/distribute/essentials/quality/core.html",
-      "https://support.google.com/googleplay/android-developer/answer/4430948?hl=ko",
-      "intl/ko/support.html",
-      "intl/ko/distribute/essentials/quality/wear.html",
-      "intl/ko/tv/index.html",
-      "intl/ko/google/play-services/games.html",
-      "intl/ko/distribute/monetize/ads.html"
-    ]
-  },
-  "distribute/gp/gplanding": {
-    "resources": [
-      "distribute/googleplay/about.html",
-      "distribute/googleplay/start.html",
-      "distribute/googleplay/developer-console.html"
-    ]
-  },
-  "distribute/gp/gpfelanding": {
-    "resources": [
-      "distribute/googleplay/wear.html",
-      "distribute/googleplay/tv.html",
-      "distribute/googleplay/auto.html",
-      "distribute/googleplay/families/about.html",
-      "distribute/googleplay/work/about.html",
-      "distribute/googleplay/edu/about.html",
-      "distribute/googleplay/cast.html",
-      "distribute/googleplay/cardboard.html",
-      "distribute/googleplay/guide.html"
-    ]
-  },
-  "distribute/googleplay/gpfw": {
-    "resources": [
-      "https://www.android.com/work/",
-      "https://www.youtube.com/watch?v=jQWB_-o1kz4&list=PLOU2XLYxmsIKAK2Bhv19H2THwF-22O5WX",
-      "work/index.html"
-    ]
-  },
-  "distribute/essentials": {
-    "resources": [
-      "distribute/essentials/quality/core.html",
-      "distribute/essentials/quality/tablets.html",
-      "distribute/essentials/quality/tv.html",
-      "distribute/essentials/quality/wear.html",
-      "distribute/essentials/quality/auto.html",
-      "distribute/essentials/quality/billions.html"
-    ]
-  },
-  "distribute/essentials/zhcn": {
-    "resources": [
-      "intl/zh-cn/distribute/essentials/quality/core.html",
-      "intl/zh-cn/distribute/essentials/quality/tablets.html",
-      "distribute/essentials/quality/tv.html",
-      "distribute/essentials/quality/wear.html",
-      "https://developers.google.com/edu/guidelines",
-      "distribute/essentials/optimizing-your-app.html"
-    ]
-  },
-  "distribute/users": {
-    "title": "",
-    "resources": [
-      "distribute/users/your-listing.html",
-      "distribute/users/promote-with-ads.html",
-      "distribute/googleplay/index.html#opportunities",
-      "distribute/analyze/improve-roi.html",
-      "distribute/users/expand-to-new-markets.html",
-      "distribute/analyze/index.html",
-      "distribute/users/app-invites.html",
-      "distribute/users/ota-installs.html",
-      "distribute/users/youtube.html",
-      "distribute/users/house-ads.html",
-      "distribute/users/experiments.html",
-      "distribute/users/user-acquisition.html",
-      "distribute/users/banners.html",
-      "distribute/users/beta.html"
-    ]
-  },
-  "distribute/engagelanding": {
-    "resources": [
-      "distribute/engage/intents.html",
-      "distribute/engage/widgets.html",
-      "distribute/engage/translate.html",
-      "distribute/engage/notifications.html",
-      "distribute/engage/deep-linking.html",
-      "distribute/engage/ads.html",
-      "distribute/engage/game-services.html",
-      "distribute/engage/easy-signin.html",
-      "distribute/analyze/build-better-apps.html",
-      "distribute/engage/gcm.html",
-      "distribute/engage/beta.html",
-      "distribute/engage/nearby.html"
-    ]
-  },
-  "distribute/monetize": {
-    "resources": [
-      "distribute/monetize/premium.html",
-      "distribute/monetize/freemium.html",
-      "distribute/monetize/subscriptions.html",
-      "distribute/monetize/ads.html",
-      "distribute/monetize/ecommerce.html",
-      "distribute/monetize/payments.html",
-      "distribute/monetize/conversions.html",
-      "distribute/analyze/understand-user-value.html",
-    ]
-  },
-  "distribute/analyzelanding": {
-    "resources": [
-      "distribute/analyze/start.html",
-      "distribute/analyze/measure.html",
-      "distribute/analyze/understand-user-value.html",
-      "distribute/analyze/improve-roi.html",
-      "distribute/analyze/build-better-apps.html",
-      "distribute/analyze/google-services.html"
-    ]
-  },
-  "distribute/analyzestart": {
-    "resources": [
-      "https://analyticsacademy.withgoogle.com/course04",
-      "google/play-services/index.html",
-      "https://developers.google.com/analytics/solutions/mobile-implementation-guide",
-      "https://developers.google.com/analytics/devguides/collection/android/",
-      "https://www.google.com/tagmanager/",
-      "https://github.com/googleanalytics/google-analytics-plugin-for-unity"
-    ]
-  },
-  "distribute/analyzemeasure": {
-    "resources": [
-
-      "https://developers.google.com/analytics/solutions/mobile-implementation-guide",
-      "https://developers.google.com/analytics/devguides/collection/android/v4/enhanced-ecommerce",
-      "https://support.google.com/analytics/answer/1032415",
-      "https://developers.google.com/analytics/devguides/collection/android/v4/events",
-      "https://developers.google.com/analytics/devguides/collection/android/v4/customdimsmets",
-      "https://developers.google.com/analytics/devguides/collection/android/v4/user-id"
-    ]
-  },
-  "distribute/analyzeunderstand": {
-    "resources": [
-      "https://developers.google.com/analytics/devguides/collection/android/v4/display-features",
-      "https://support.google.com/analytics/answer/3123906",
-      "https://support.google.com/analytics/answer/2568874?ref_topic=6012392",
-      "https://developers.google.com/analytics/devguides/collection/android/v4/enhanced-ecommerce",
-      "https://support.google.com/analytics/answer/1032415",
-    ]
-  },
-  "distribute/analyzeimprove": {
-    "resources": [
-
-      "https://developers.google.com/analytics/devguides/collection/android/v4/campaigns",
-      "https://support.google.com/analytics/answer/2956981",
-      "https://support.google.com/analytics/answer/1033961",
-      "https://developers.google.com/analytics/devguides/collection/android/v4/campaigns#google-play-url-builder",
-      "https://developers.google.com/analytics/solutions/mobile-campaign-deep-link"
-    ]
-  },
-  "distribute/analyzebuild": {
-    "resources": [
-      "https://support.google.com/tagmanager/answer/6003007",
-      "https://support.google.com/analytics/answer/2785577",
-      "https://support.google.com/analytics/answer/1151300"
-    ]
-  },
-  "distribute/analyzeact": {
-    "resources": [
-      "https://support.google.com/analytics/answer/2611268",
-      "https://support.google.com/analytics/answer/1033961",
-      "https://support.google.com/admob/answer/3508177",
-      "https://support.google.com/analytics/answer/2956981",
-      "https://support.google.com/tagmanager/answer/6003007"
-    ]
-  },
-  "distribute/essentials/guidelines": {
-    "title": "",
-    "resources": [
-      "distribute/essentials/quality/core.html",
-      "distribute/essentials/quality/tablets.html",
-      "distribute/essentials/quality/wear.html",
-      "distribute/essentials/quality/tv.html",
-      "distribute/essentials/quality/auto.html",
-      "distribute/essentials/quality/billions.html"
-    ]
-  },
-  "distribute/essentials/tools": {
-    "title": "",
-    "resources": [
-      "distribute/tools/launch-checklist.html",
-      "distribute/tools/localization-checklist.html",
-      "https://support.google.com/googleplay/android-developer",
-      "distribute/tools/promote/brand.html",
-      "distribute/tools/promote/device-art.html",
-      "https://play.google.com/intl/en_us/badges/",
-      "distribute/tools/promote/linking.html",
-      "distribute/tools/open-distribution.html",
-      "about/dashboards/index.html"
-    ]
-  },
-  "distribute/tools/checklists": {
-    "title": "",
-    "resources": [
-      "distribute/tools/launch-checklist.html",
-      "distribute/tools/localization-checklist.html"
-    ]
-  },
-  "distribute/tools/checklists/zhcn": {
-    "title": "",
-    "resources": [
-      "intl/zh-cn/distribute/tools/launch-checklist.html",
-      "intl/zh-cn/distribute/tools/localization-checklist.html"
-    ]
-  },
-  "distribute/tools/promote": {
-    "resources": [
-      "distribute/tools/promote/device-art.html",
-      "https://play.google.com/intl/en_us/badges/",
-      "distribute/tools/promote/linking.html"
-    ]
-  },
-  "distribute/tools/promote/zhcn": {
-    "resources": [
-      "intl/zh-cn/distribute/tools/promote/device-art.html",
-      "https://play.google.com/intl/en_us/badges/",
-      "intl/zh-cn/distribute/tools/promote/linking.html"
-    ]
-  },
-  "distribute/tools/support": {
-    "title": "Google Play",
-    "resources": [
-      "https://support.google.com/googleplay/android-developer",
-      "https://support.google.com/googleplay/android-developer/answer/4430948",
-      "support.html"
-    ]
-  },
-  "distribute/tools/support/zhcn": {
-    "title": "Google Play",
-    "resources": [
-      "https://support.google.com/googleplay/android-developer?hl=zh-Hans",
-      "https://support.google.com/googleplay/android-developer/answer/4430948?hl=zh-Hans",
-      "support.html"
-    ]
-  },
-  "distribute/tools/news": {
-    "title": "",
-    "resources": [
-      "https://android-developers.blogspot.com/",
-      "https://plus.google.com/+AndroidDevelopers/"
-    ]
-  },
-  "distribute/tools/more": {
-    "title": "Google Play",
-    "resources": [
-      "distribute/tools/promote/brand.html",
-      "distribute/tools/open-distribution.html",
-      "about/dashboards/index.html"
-    ]
-  },
-  "distribute/tools/more/zhcn": {
-    "title": "Google Play",
-    "resources": [
-      "intl/zh-cn/distribute/tools/promote/brand.html",
-      "distribute/tools/open-distribution.html",
-      "about/dashboards/index.html"
-    ]
-  },
-  "distribute/googleplay": {
-    "title": "Google Play",
-    "resources": [
-      "distribute/googleplay/developer-console.html",
-      "distribute/essentials/best-practices/apps.html",
-      "distribute/tools/launch-checklist.html",
-      "distribute/essentials/best-practices/games.html",
-    ]
-  },
-  "distribute/googleplay/gettingstarted": {
-    "title": "Get Started",
-    "resources": [
-      "distribute/googleplay/developer-console.html",
-      "https://support.google.com/googleplay/android-developer/answer/113468",
-      "https://support.google.com/googleplay/android-developer/answer/138294",
-      "https://support.google.com/googleplay/android-developer"
-    ]
-  },
-  "distribute/googleplay/developerconsole/related": {
-    "title": "Developer Console",
-    "resources": [
-      "google/play/billing/index.html",
-      "https://support.google.com/googleplay/android-developer/answer/138294"
-    ]
-  },
-  "distribute/googleplay/beta": {
-    "title": "Alpha and Beta Testing",
-    "resources": [
-      "https://support.google.com/googleplay/android-developer/answer/3131213",
-      "https://support.google.com/googleplay/android-developer/answer/3131213#games",
-      "distribute/googleplay/experiments.html"
-    ]
-  },
-  "distribute/googleplay/experiments/successes": {
-    "title": "Store Listing Experiment successes",
-    "resources": [
-    ]
-  },
-  "distribute/googleplay/experiments/related": {
-    "title": "Store Listing Experiments",
-    "resources": [
-      "https://support.google.com/googleplay/android-developer/answer/6227309",
-      "https://www.youtube.com/watch?v=B6ydLpkhq04",
-      "https://support.google.com/tagmanager/answer/6003007"
-    ]
-  },
-  "distribute/googleplay/banners/related": {
-    "title": "App Install Banners",
-    "resources": [
-      "https://developers.google.com/web/updates/2015/03/increasing-engagement-with-app-install-banners-in-chrome-for-android#native"
-    ]
-  },
-  "distribute/googleplay/useracquisition/related": {
-    "title": "User Acquisition",
-    "resources": [
-      "https://support.google.com/googleplay/android-developer/answer/6263332"
-    ]
-  },
-  "distribute/googleplay/cast": {
-    "title": "Google Cast",
-    "resources": [
-      "https://developers.google.com/cast/docs/ux_guidelines",
-      "https://developers.google.com/cast/docs/android_sender",
-      "https://www.github.com/googlecast"
-    ]
-  },
-  "distribute/googleplay/cardboard": {
-    "title": "Google Cast",
-    "resources": [
-      "https://www.google.com/get/cardboard/get-cardboard/",
-      "https://developers.google.com/cardboard/android/download",
-      "https://www.google.com/design/spec-vr"
-    ]
-  },
-  "distribute/googleplay/gpfe/highlight": {
-    "title": "About Google Play for Education",
-    "resources": [
-      "https://youtu.be/vzvpcEffvaE"
-    ]
-  },
-  "distribute/googleplay/gpfe/dev/about": {
-    "title": "About Google Play for Education / Developers",
-    "resources": [
-      "distribute/googleplay/edu/start.html",
-      "https://developers.google.com/edu/guidelines",
-      "https://developers.google.com/edu/faq",
-      "distribute/essentials/quality/tablets.html",
-      "https://developers.google.com/edu/",
-      "https://www.google.com/edu/tablets/#tablets-family"
-    ]
-  },
-  "distribute/googleplay/gpfe/dev": {
-    "title": "About Google Play for Education / Developers",
-    "resources": [
-      "distribute/googleplay/edu/about.html",
-      "https://developers.google.com/edu/guidelines",
-      "distribute/essentials/quality/tablets.html",
-      "distribute/googleplay/developer-console.html",
-      "https://play.google.com/about/developer-distribution-agreement-addendum.html",
-    ]
-  },
-  "distribute/googleplay/aboutgpfe/educators/about": {
-    "title": "About Google Play for Education / Educators",
-    "resources": [
-      "https://www.google.com/edu/tablets/",
-      "https://www.youtube.com/watch?v=haEmsMo0f3w"
-    ]
-  },
-  "distribute/googleplay/aboutgpfe/educators": {
-    "title": "About Google Play for Education / Educators",
-    "resources": [
-      "https://www.google.com/edu/tablets/",
-      "https://youtu.be/vzvpcEffvaE"
-    ]
-  },
-  "distribute/googleplay/gettingstartedgpfe/educators": {
-    "title": "About Google Play for Education / Educators",
-    "resources": [
-      "https://www.google.com/edu/tablets/",
-      "https://youtu.be/vzvpcEffvaE"
-    ]
-  },
-  "distribute/essentials/eduessentials/developers": {
-    "title": "",
-    "resources": [
-      "distribute/googleplay/developer-console.html",
-      "distribute/googleplay/edu/start.html",
-      "https://developers.google.com/edu/faq"
-    ]
-  },
-  "distribute/essentials/eduessentials/educators": {
-    "title": "",
-    "resources": [
-      "https://www.google.com/edu/tablets/",
-      "distribute/essentials/quality/tablets.html",
-    ]
-  },
-  "distribute/essentials/optimizing": {
-    "title": "Optimizing Your App",
-    "resources": [
-      "design/index.html",
-      "training/articles/perf-anr.html",
-      "https://android-developers.blogspot.com/2013/10/improved-app-insight-by-linking-google.html"
-     ]
-  },
-  "distribute/users/appinvites": {
-    "title": "",
-    "resources": [
-      "https://developers.google.com/app-invites/",
-      "https://developers.google.com/identity/sign-in/android/",
-      "https://developers.google.com/app-indexing/"
-    ]
-  },
-  "distribute/users/knowyouruser": {
-    "title": "",
-    "resources": [
-      "distribute/essentials/optimizing-your-app.html",
-      "http://www.youtube.com/watch?v=RRelFvc6Czo",
-      "distribute/stories/games/rvappstudios-zombie.html"
-    ]
-  },
-  "distribute/users/promotewithads": {
-    "title": "",
-    "resources": [
-      "https://support.google.com/adwords/answer/6032059",
-      "https://support.google.com/adwords/answer/6032073",
-      "https://support.google.com/adwords/answer/6167164",
-      "https://support.google.com/adwords/answer/6167162"
-    ]
-  },
-  "distribute/users/nearby": {
-    "title": "",
-    "resources": [
-      "https://developers.google.com/nearby/",
-      "https://www.youtube.com/watch?v=hultDpBS22s",
-      "https://developers.google.com/beacons"
-    ]
-  },
-  "distribute/users/buildbuzz": {
-    "title": "",
-    "resources": [
-      "https://play.google.com/intl/en_us/badges/",
-      "distribute/tools/promote/linking.html",
-      "distribute/tools/promote/device-art.html",
-      "https://plus.google.com/+GooglePlay"
-    ]
-  },
-  "distribute/users/createagreatlisting": {
-    "title": "",
-    "resources": [
-      "https://support.google.com/googleplay/android-developer/answer/1078870",
-      "https://android-developers.blogspot.com/2011/10/android-market-featured-image.html",
-      "distribute/tools/launch-checklist.html",
-      "https://android-developers.blogspot.com/2013/07/making-beautiful-android-app-icons.html",
-      "https://android-developers.blogspot.com/2012/12/localize-your-promotional-graphics-on.html",
-      "https://android-developers.blogspot.com/2013/10/making-your-app-content-more-accessible.html"
-    ]
-  },
-  "distribute/users/buildcommunity": {
-    "title": "",
-    "resources": [
-      "distribute/googleplay/developer-console.html",
-      "https://support.google.com/groups/answer/46601",
-      "https://support.google.com/plus/topic/2888488",
-      "https://www.youtube.com/yt/dev/"
-    ]
-  },
-  "distribute/users/appindexing": {
-    "title": "",
-    "resources": [
-      "https://developers.google.com/app-indexing/",
-      "https://developers.google.com/app-indexing/webmasters/details",
-      "distribute/engage/deep-linking.html",
-      "training/app-indexing/index.html"
-    ]
-  },
-  "distribute/users/otas": {
-    "title": "",
-    "resources": [
-      "https://developers.google.com/identity/sign-in/android/",
-      "https://developers.google.com/+/features/play-installs",
-      "https://developers.google.com/+/features/analytics"
-    ]
-  },
-  "distribute/users/houseads": {
-    "title": "",
-    "resources": [
-      "https://support.google.com/admob/topic/2784623",
-      "https://developers.google.com/mobile-ads-sdk/download",
-      "https://support.google.com/googleplay/android-developer/topic/2985714",
-      "https://analyticsacademy.withgoogle.com/mobile-app",
-      "https://support.google.com/analytics/answer/2611404",
-      "https://support.google.com/admob/answer/3111064"
-    ]
-  },
-  "distribute/users/youtube": {
-    "title": "",
-    "resources": [
-      "https://support.google.com/youtube/answer/6140493",
-      "https://support.google.com/youtube/answer/2797387"
-    ]
-  },
-  "distribute/toolsreference/bestpractices/apps": {
-    "title": "",
-    "resources": [
-      "distribute/googleplay/developer-console.html",
-      "https://android-developers.blogspot.com/"
-    ]
-  },
-  "distribute/toolsreference/bestpractices/games": {
-    "title": "",
-    "resources": [
-      "google/play-services/games.html",
-      "https://android-developers.blogspot.com/",
-      "distribute/googleplay/developer-console.html",
-      "https://www.youtube.com/watch?v=1RIz-cmTQB4"
-    ]
-  },
-  "distribute/essentials/corequalityguidelines/visualdesign": {
-    "title": "",
-    "resources": [
-      "design/index.html",
-      "design/patterns/navigation.html",
-      "design/patterns/actionbar.html",
-      "design/style/iconography.html"
-    ]
-  },
-  "distribute/essentials/corequalityguidelines/functionality": {
-    "title": "",
-    "resources": [
-      "https://android-developers.blogspot.com/2011/11/making-android-games-that-play-nice.html",
-      "guide/components/tasks-and-back-stack.html",
-      "training/basics/activity-lifecycle/recreating.html"
-    ]
-  },
-  "distribute/essentials/tvqualityguidelines/visualdesign": {
-    "title": "",
-    "resources": [
-      "design/tv/index.html",
-      "training/tv/start/index.html"
-    ]
-  },
-  "distribute/essentials/tvqualityguidelines/functionality": {
-    "title": "",
-    "resources": [
-      "training/tv/start/hardware.html",
-      "training/tv/games/index.html"
-    ]
-  },
-  "distribute/essentials/wearqualityguidelines/visualdesign": {
-    "title": "",
-    "resources": [
-      "design/wear/index.html",
-      "training/building-wearables.html",
-      "training/wearables/ui/index.html"
-    ]
-  },
-  "distribute/essentials/wearqualityguidelines/functionality": {
-    "title": "",
-    "resources": [
-      "training/wearables/notifications/index.html",
-      "training/wearables/apps/index.html",
-      "training/wearables/notifications/voice-input.html"
-    ]
-  },
-    "distribute/essentials/autoqualityguidelines/visualdesign": {
-    "title": "",
-    "resources": [
-      "training/auto/messaging/index.html",
-      "training/auto/start/index.html"
-    ]
-  },
-  "distribute/essentials/core/performance": {
-    "title": "",
-    "resources": [
-      "https://android-developers.blogspot.com/2010/12/new-gingerbread-api-strictmode.html",
-      "training/articles/perf-anr.html",
-      "https://android-developers.blogspot.com/2010/07/multithreading-for-performance.html"
-    ]
-  },
-  "distribute/essentials/core/play": {
-    "title": "",
-    "resources": [
-      "distribute/tools/launch-checklist.html",
-      "https://play.google.com/about/developer-content-policy.html?hl=zh-Hans",
-      "https://support.google.com/googleplay/android-developer/answer/188189?hl=zh-Hans",
-      "https://support.google.com/googleplay/android-developer/answer/1078870?hl=zh-Hans",
-      "https://android-developers.blogspot.com/2011/10/android-market-featured-image.html",
-      "https://support.google.com/googleplay/android-developer/answer/113477?hl=zh-Hans"
-    ]
-  },
-  "distribute/essentials/core/play/zhcn": {
-    "title": "",
-    "resources": [
-      "intl/zh-cn/distribute/tools/launch-checklist.html",
-      "https://play.google.com/about/developer-content-policy.html",
-      "https://support.google.com/googleplay/android-developer/answer/188189?hl=zh-Hans",
-      "https://support.google.com/googleplay/android-developer/answer/1078870?hl=zh-Hans",
-      "https://android-developers.blogspot.com/2011/10/android-market-featured-image.html",
-      "https://support.google.com/googleplay/android-developer/answer/113477?hl=zh-Hans"
-    ]
-  },
-  "distribute/essentials/tabletguidelines/optimize": {
-    "title": "",
-    "resources": [
-      "design/style/metrics-grids.html",
-      "design/style/devices-displays.html",
-      "guide/practices/screens_support.html",
-      //"guide/practices/screens_support.html#ConfigurationExamples",
-    ]
-  },
-  "distribute/essentials/tabletguidelines/extrascreen": {
-    "title": "",
-    "resources": [
-      "design/patterns/multi-pane-layouts.html",
-      "training/design-navigation/multiple-sizes.html",
-      "training/multiscreen/index.html",
-    ]
-  },
-  "distribute/essentials/tabletguidelines/assets": {
-    "title": "",
-    "resources": [
-      "design/style/iconography.html",
-      "guide/topics/resources/providing-resources.html",
-      "guide/practices/screens_support.html",
-      "training/basics/supporting-devices/screens.html"
-    ]
-  },
-  "distribute/essentials/tabletguidelines/fonts": {
-    "title": "",
-    "resources": [
-      "design/style/metrics-grids.html",
-      "design/style/typography.html",
-      "guide/practices/screens_support.html",
-      "training/multiscreen/screendensities.html"
-    ]
-  },
-  "distribute/essentials/tabletguidelines/widgets": {
-    "title": "",
-    "resources": [
-      "guide/topics/appwidgets/index.html#MetaData",
-      "guide/topics/appwidgets/index.html",
-      "design/patterns/widgets.html"
-    ]
-  },
-  "distribute/essentials/tabletguidelines/versions": {
-    "title": "",
-    "resources": [
-      "guide/topics/manifest/uses-sdk-element.html#ApiLevels",
-      "guide/topics/manifest/uses-sdk-element.html",
-      "training/basics/supporting-devices/platforms.html"
-    ]
-  },
-  "distribute/essentials/tabletguidelines/hardware": {
-    "title": "",
-    "resources": [
-      "guide/topics/manifest/uses-feature-element.html",
-      "guide/topics/manifest/uses-feature-element.html#testing"
-    ]
-  },
- "distribute/essentials/tabletguidelines/tabletscreens": {
-    "title": "",
-    "resources": [
-      "guide/practices/screens_support.html#DeclaringScreenSizeSupport",
-      "guide/practices/screens_support.html"
-    ]
-  },
-  "distribute/essentials/tabletguidelines/showcase": {
-    "title": "",
-    "resources": [
-      "distribute/tools/launch-checklist.html",
-      "https://play.google.com/apps/publish/",
-      "https://play.google.com/intl/en_us/badges/",
-      "distribute/tools/promote/device-art.html"
-    ]
-  },
-  "distribute/essentials/tabletguidelines/showcase/zhcn": {
-    "title": "",
-    "resources": [
-      "intl/zh-cn/distribute/tools/launch-checklist.html",
-      "https://play.google.com/apps/publish/?hl=zh-Hans",
-      "https://play.google.com/intl/en_us/badges/",
-      "intl/zh-cn/distribute/tools/promote/device-art.html"
-    ]
-  },
-  "distribute/essentials/tabletguidelines/googleplay": {
-    "title": "",
-    "resources": [
-      "https://android-developers.blogspot.com/2013/10/more-visibility-for-tablet-apps-in.html",
-      "google/play/filters.html"
-    ]
-  },
- "distribute/essentials/billionsquality/connectivity": {
-    "title": "",
-    "resources": [
-      "training/basics/network-ops/managing.html",
-      "training/monitoring-device-state/connectivity-monitoring.html",
-      "guide/topics/providers/content-providers.html"
-    ]
-  },
-  "distribute/essentials/billionsquality/capability": {
-    "title": "",
-    "resources": [
-      "guide/practices/screens_support.html",
-      "training/multiscreen/screendensities.html",
-      "training/articles/memory.html"
-    ]
-  },
-  "distribute/essentials/billionsquality/cost": {
-    "title": "",
-    "resources": [
-      "https://medium.com/@wkalicinski/smallerapk-part-6-image-optimization-zopfli-webp-4c462955647d#.23hlddo3x",
-      "training/basics/network-ops/managing.html"
-    ]
-  },
-  "distribute/essentials/billionsquality/consumption": {
-    "title": "",
-    "resources": [
-      "training/efficient-downloads/efficient-network-access.html",
-      "training/monitoring-device-state/index.html"
-    ]
-  },
-  "distribute/essentials/billionsquality/content": {
-    "title": "",
-    "resources": [
-      "training/material/animations.html#Touch",
-      "training/articles/perf-anr.html",
-      "training/improving-layouts/index.html"
-    ]
-  },
-  "distribute/essentials/tabletguidelines": {
-    "title": "",
-    "resources": [
-      "distribute/essentials/quality/core.html",
-      "https://android-developers.blogspot.com/2013/10/more-visibility-for-tablet-apps-in.html",
-      "distribute/tools/launch-checklist.html",
-      "distribute/tools/promote/device-art.html"
-    ]
-  },
-  "distribute/getusers/notifications": {
-    "title": "",
-    "resources": [
-      "distribute/engage/gcm.html",
-      "https://play.google.com/about/developer-content-policy.html"
-    ]
-  },
-  "distribute/engage/analytics": {
-    "title": "",
-    "resources": [
-      "https://www.google.com/analytics/mobile/",
-      "https://android-developers.blogspot.com/2013/10/improved-app-insight-by-linking-google.html",
-      "https://developers.google.com/analytics/devguides/collection/android/"
-    ]
-  },
-  "distribute/engage/widgets": {
-    "title": "",
-    "resources": [
-      "design/patterns/widgets.html",
-      "guide/topics/appwidgets/index.html"
-    ]
-  },
-  "distribute/engage/translate": {
-    "title": "",
-    "resources": [
-      "https://support.google.com/l10n/answer/6359997"
-    ]
-  },
-  "distribute/engage/reengage": {
-    "title": "",
-    "resources": [
-      "https://support.google.com/adwords/answer/6032073",
-      "distribute/engage/deep-linking.html",
-      "https://support.google.com/adwords/answer/6167162",
-      "distribute/users/promote-with-ads.html"
-    ]
-  },
-  "distribute/engage/appindexing": {
-    "title": "",
-    "resources": [
-      "distribute/engage/intents.html",
-      "distribute/engage/deep-linking.html",
-      "training/app-indexing/index.html"
-    ]
-  },
-  "distribute/engage/intents": {
-    "title": "",
-    "resources": [
-      "guide/components/intents-filters.html",
-      "distribute/engage/deep-linking.html",
-      "distribute/engage/ads.html"
-    ]
-  },
-  "distribute/getusers/expandnewmarkets": {
-    "title": "",
-    "resources": [
-      "distribute/tools/localization-checklist.html",
-      "https://support.google.com/googleplay/android-developer/table/3541286",
-      "https://play.google.com/intl/en_us/badges/",
-      "distribute/tools/promote/device-art.html",
-      "https://www.youtube.com/watch?v=SkHHPf3EdzE"
-    ]
-  },
-  "distribute/engage/gcm": {
-    "title": "",
-    "resources": [
-      "https://developers.google.com/cloud-messaging/gcm",
-      "https://developers.google.com/cloud-messaging/android/client",
-    ]
-  },
-  "distribute/engage/gamesservices/related": {
-    "title": "",
-    "resources": [
-      "https://developers.google.com/games/services/",
-      "distribute/analyze/start.html",
-      "distribute/googleplay/cardboard.html",
-      "https://www.google.com/admob/"
-    ]
-  },
-  "distribute/engage/gplus": {
-    "title": "",
-    "resources": [
-      "distribute/users/ota-installs.html",
-      "https://developers.google.com/identity/sign-in/android/people",
-      "https://developers.google.com/+/mobile/android/"
-    ]
-  },
-  "distribute/engage/community": {
-    "title": "",
-    "resources": [
-      "distribute/users/build-community.html",
-      "distribute/engage/video.html"
-    ]
-  },
-  "distribute/engage/deeplinks": {
-    "title": "",
-    "resources": [
-      "distribute/engage/easy-signin.html",
-      "https://developers.google.com/app-indexing/",
-      "https://developers.google.com/+/mobile/android/share/interactive-post"
-    ]
-  },
-  "distribute/engage/appupdates": {
-    "title": "",
-    "resources": [
-      "distribute/essentials/optimizing-your-app.html",
-      "distribute/tools/launch-checklist.html",
-      "distribute/googleplay/developer-console.html"
-    ]
-  },
-  "distribute/engage/video/more": {
-    "title": "",
-    "resources": [
-      "https://www.youtube.com/yt/dev/",
-      "distribute/essentials/best-practices/games.html",
-      "https://www.youtube.com/watch?v=RRelFvc6Czo"
-    ]
-  },
-  "distribute/engage/community": {
-    "title": "",
-    "resources": [
-      "distribute/users/build-community.html",
-      "distribute/engage/video.html"
-    ]
-  },
-  "distribute/engage/kiwi": {
-    "title": "",
-    "resources": [
-      "https://www.youtube.com/watch?v=WWArLD6nqrk"
-    ]
-  },
-  "distribute/toolsreference/gpfefaq": {
-    "title": "",
-    "resources": [
-      "https://www.google.com/edu/tablets/",
-      "distribute/googleplay/edu/start.html",
-      "https://play.google.com/about/developer-distribution-agreement-addendum.html",
-      "distribute/essentials/quality/core.html",
-      "distribute/essentials/quality/tablets.html"
-    ]
-  },
-  "distribute/toolsreference/localizationchecklist/identifylocales": {
-    "title": "",
-    "resources": [
-      "https://support.google.com/googleplay/android-developer/answer/138294"
-    ]
-  },
-  "distribute/toolsreference/localizationchecklist/identifylocales/zhcn": {
-    "title": "",
-    "resources": [
-      "https://support.google.com/googleplay/android-developer/answer/138294?hl=zh-Hans"
-    ]
-  },
-  "distribute/tools/loc/designforloc": {
-    "title": "",
-    "resources": [
-      "https://android-developers.blogspot.com/2013/03/native-rtl-support-in-android-42.html",
-      "guide/topics/resources/string-resource.html#Plurals",
-      "guide/topics/resources/string-resource.html",
-      "reference/java/util/Locale.html"
-    ]
-  },
-  "distribute/toolsreference/localizationchecklist/managestrings": {
-    "title": "",
-    "resources": [
-      "guide/topics/resources/string-resource.html",
-      "design/style/writing.html",
-      "https://en.wikipedia.org/wiki/XLIFF"
-    ]
-  },
-  "distribute/toolsreference/localizationchecklist/managestrings/zhcn": {
-    "title": "",
-    "resources": [
-      "guide/topics/resources/string-resource.html",
-      "intl/zh-cn/design/style/writing.html",
-      "https://en.wikipedia.org/wiki/XLIFF"
-    ]
-  },
-  "distribute/toolsreference/localizationchecklist/preplaunch": {
-    "title": "",
-    "resources": [
-      "https://play.google.com/intl/en_us/badges/",
-      "distribute/tools/promote/device-art.html"
-    ]
-  },
-  "distribute/toolsreference/localizationchecklist/preplaunch/zhcn": {
-    "title": "",
-    "resources": [
-      "https://play.google.com/intl/en_us/badges/",
-      "intl/zh-cn/distribute/tools/promote/device-art.html"
-    ]
-  },
-  "distribute/toolsreference/localizationchecklist/supportlaunch": {
-    "title": "",
-    "resources": [
-      "distribute/tools/launch-checklist.html",
-    ]
-  },
-  "distribute/toolsreference/localizationchecklist/supportlaunch/zhcn": {
-    "title": "",
-    "resources": [
-      "intl/zh-cn/distribute/tools/launch-checklist.html",
-    ]
-  },
-  "distribute/toolsreference/launchchecklist/understanding": {
-    "title": "",
-    "resources": [
-      "tools/publishing/publishing_overview.html",
-      "tools/publishing/preparing.html"
-    ]
-  },
-  "distribute/toolsreference/launchchecklist/policies": {
-    "title": "",
-    "resources": [
-      "https://support.google.com/googleplay/android-developer/answer/4430948",
-      "https://support.google.com/googleplay/android-developer/topic/2364761",
-      "https://support.google.com/googleplay/android-developer"
-    ]
-  },
-  "distribute/toolsreference/launchchecklist/quality": {
-    "title": "",
-    "resources": [
-      "distribute/essentials/quality/core.html",
-      "distribute/essentials/quality/tablets.html",
-      "https://developers.google.com/edu/guidelines"
-    ]
-  },
-  "distribute/toolsreference/launchchecklist/rating": {
-    "title": "",
-    "resources": [
-      "https://support.google.com/googleplay/android-developer/answer/188189",
-    ]
-  },
-  "distribute/toolsreference/launchchecklist/country": {
-    "title": "",
-    "resources": [
-      "https://support.google.com/googleplay/android-developer/answer/138294"
-    ]
-  },
-  "distribute/toolsreference/launchchecklist/size": {
-    "title": "",
-    "resources": [
-      "google/play/expansion-files.html",
-      "tools/help/proguard.html"
-    ]
-  },
-  "distribute/toolsreference/launchchecklist/platform": {
-    "title": "",
-    "resources": [
-      "guide/practices/screens_support.html",
-      "about/dashboards/index.html",
-      "guide/topics/manifest/uses-sdk-element.html"
-    ]
-  },
-  "distribute/toolsreference/launchchecklist/price": {
-    "title": "",
-    "resources": [
-      "https://support.google.com/googleplay/android-developer/table/3541286",
-    ]
-  },
-  "distribute/toolsreference/launchchecklist/purchasemethod": {
-    "title": "",
-    "resources": [
-      "google/play/billing/index.html",
-      "google/play/billing/billing_subscriptions.html"
-    ]
-  },
-  "distribute/toolsreference/launchchecklist/setprice": {
-    "title": "",
-    "resources": [
-      "https://support.google.com/googleplay/android-developer/answer/1169947",
-      "https://support.google.com/googleplay/android-developer/answer/138412",
-      "https://support.google.com/googleplay/android-developer/answer/112622",
-      "https://support.google.com/googleplay/android-developer/answer/138000"
-    ]
-  },
-  "distribute/toolsreference/launchchecklist/localization": {
-    "title": "",
-    "resources": [
-      "distribute/tools/localization-checklist.html",
-      "https://support.google.com/l10n/answer/6359997"
-    ]
-  },
-  "distribute/toolsreference/launchchecklist/graphics": {
-    "title": "",
-    "resources": [
-      "https://support.google.com/googleplay/android-developer/answer/1078870",
-      "https://android-developers.blogspot.com/2011/10/android-market-featured-image.html"
-    ]
-  },
-  "distribute/toolsreference/launchchecklist/productdetails": {
-    "title": "",
-    "resources": [
-      "https://support.google.com/googleplay/android-developer/answer/113475",
-      "https://support.google.com/googleplay/android-developer/answer/1078870"
-    ]
-  },
-  "distribute/toolsreference/launchchecklist/badges": {
-    "title": "",
-    "resources": [
-      "https://play.google.com/intl/en_us/badges/",
-      "distribute/tools/promote/linking.html"
-    ]
-  },
-  "distribute/toolsreference/launchchecklist/finalchecks": {
-    "title": "",
-    "resources": [
-      "https://play.google.com/about/developer-content-policy.html",
-      "https://support.google.com/googleplay/android-developer/answer/113476",
-      "support.html"
-    ]
-  },
-  "distribute/toolsreference/launchchecklist/afterlaunch": {
-    "title": "",
-    "resources": [
-      "https://support.google.com/googleplay/android-developer/answer/113477",
-      "https://support.google.com/googleplay/android-developer/answer/1153479",
-      "https://support.google.com/payments/answer/2741495",
-      "distribute/essentials/optimizing-your-app.html"
-    ]
-  },
-  "distribute/toolsreference/launchchecklist/understanding/zhcn": {
-    "title": "",
-    "resources": [
-      "intl/zh-cn/tools/publishing/publishing_overview.html",
-      "intl/zh-cn/tools/publishing/preparing.html"
-    ]
-  },
-  "distribute/toolsreference/launchchecklist/policies/zhcn": {
-    "title": "",
-    "resources": [
-      "https://support.google.com/googleplay/android-developer/answer/4430948?hl=zh-Hans",
-      "https://support.google.com/googleplay/android-developer/topic/2364761?hl=zh-Hans",
-      "https://support.google.com/googleplay/android-developer?hl=zh-Hans"
-    ]
-  },
-  "distribute/toolsreference/launchchecklist/quality/zhcn": {
-    "title": "",
-    "resources": [
-      "intl/zh-cn/distribute/essentials/quality/core.html",
-      "intl/zh-cn/distribute/essentials/quality/tablets.html",
-      "https://developers.google.com/edu/guidelines?hl=zh-Hans"
-    ]
-  },
-
-  "distribute/toolsreference/launchchecklist/rating/zhcn": {
-    "title": "",
-    "resources": [
-      "https://support.google.com/googleplay/android-developer/answer/188189?hl=zh-Hans",
-    ]
-  },
-  "distribute/toolsreference/launchchecklist/country/zhcn": {
-    "title": "",
-    "resources": [
-      "https://support.google.com/googleplay/android-developer/answer/138294?hl=zh-Hans"
-    ]
-  },
-  "distribute/toolsreference/launchchecklist/size/zhcn": {
-    "title": "",
-    "resources": [
-      "google/play/expansion-files.html",
-      "intl/zh-cn/tools/help/proguard.html"
-    ]
-  },
-  "distribute/toolsreference/launchchecklist/price/zhcn": {
-    "title": "",
-    "resources": [
-      "https://support.google.com/googleplay/android-developer/table/3541286?hl=zh-Hans",
-    ]
-  },
-  "distribute/toolsreference/launchchecklist/purchasemethod/zhcn": {
-    "title": "",
-    "resources": [
-      "intl/zh-cn/google/play/billing/index.html",
-      "google/play/billing/billing_subscriptions.html"
-    ]
-  },
-  "distribute/toolsreference/launchchecklist/setprice/zhcn": {
-    "title": "",
-    "resources": [
-      "https://support.google.com/googleplay/android-developer/answer/1169947?hl=zh-Hans",
-      "https://support.google.com/googleplay/android-developer/answer/138412?hl=zh-Hans",
-      "https://support.google.com/googleplay/android-developer/answer/112622?hl=zh-Hans",
-      "https://support.google.com/googleplay/android-developer/answer/138000?hl=zh-Hans"
-    ]
-  },
-  "distribute/stories/localization": {
-    "title": "",
-    "resources": [
-      "distribute/stories/games/rvappstudios-zombie.html",
-      "distribute/stories/games/g4a-indian-rummy.html",
-      "distribute/stories/apps/sayhi.html"
-    ]
-  },
-  "distribute/toolsreference/launchchecklist/localization/zhcn": {
-    "title": "",
-    "resources": [
-      "intl/zh-cn/distribute/tools/localization-checklist.html",
-    ]
-  },
-  "distribute/toolsreference/launchchecklist/graphics/zhcn": {
-    "title": "",
-    "resources": [
-      "https://support.google.com/googleplay/android-developer/answer/1078870?hl=zh-Hans",
-      "https://android-developers.blogspot.com/2011/10/android-market-featured-image.html"
-    ]
-  },
-  "distribute/toolsreference/launchchecklist/productdetails/zhcn": {
-    "title": "",
-    "resources": [
-      "https://support.google.com/googleplay/android-developer/answer/113475?hl=zh-Hans",
-      "https://support.google.com/googleplay/android-developer/answer/1078870?hl=zh-Hans"
-    ]
-  },
-  "distribute/toolsreference/launchchecklist/badges/zhcn": {
-    "title": "",
-    "resources": [
-      "https://play.google.com/intl/en_us/badges/",
-      "intl/zh-cn/distribute/tools/promote/linking.html"
-    ]
-  },
-  "distribute/toolsreference/launchchecklist/finalchecks/zhcn": {
-    "title": "",
-    "resources": [
-      "https://play.google.com/about/developer-content-policy.html",
-      "https://support.google.com/googleplay/android-developer/answer/113476?hl=zh-Hans",
-      "support.html"
-    ]
-  },
-  "distribute/toolsreference/launchchecklist/afterlaunch/zhcn": {
-    "title": "",
-    "resources": [
-      "https://support.google.com/googleplay/android-developer/answer/113477?hl=zh-Hans",
-      "https://support.google.com/googleplay/android-developer/answer/1153479?hl=zh-Hans",
-      "https://support.google.com/payments/answer/2741495?hl=zh-Hans",
-      "distribute/essentials/optimizing-your-app.html"
-    ]
-  },
-  "distribute/monetize/premium": {
-    "title": "",
-    "resources": [
-      "google/play/billing/index.html",
-      "https://support.google.com/googleplay/android-developer/answer/4407611"
-    ]
-  },
-  "distribute/monetize/freemium": {
-    "title": "",
-    "resources": [
-      "google/play/billing/index.html",
-      "https://support.google.com/googleplay/android-developer/answer/4407611"
-    ]
-  },
-  "distribute/monetize/subscriptions": {
-    "title": "",
-    "resources": [
-      "google/play/billing/billing_subscriptions.html",
-      "https://support.google.com/googleplay/android-developer/answer/4407611"
-    ]
-  },
-  "distribute/monetize/ecommerce": {
-    "title": "",
-    "resources": [
-      "https://developers.google.com/wallet/instant-buy/",
-      "https://support.google.com/googleplay/android-developer/answer/4407611"
-    ]
-  },
-  "distribute/monetize/advertising": {
-    "title": "",
-    "resources": [
-      "https://www.google.com/ads/admob/#subid=us-en-et-dac",
-      "https://www.google.com/doubleclick/publishers/small-business/index.html",
-      "https://support.google.com/googleplay/android-developer/topic/2985714",
-      "training/monetization/ads-and-ux.html"
-    ]
-  },
-  "distribute/monetize/admob": {
-    "title": "",
-    "resources": [
-      "https://support.google.com/admob/topic/2784623",
-      "https://admob.blogspot.com/",
-      "https://analyticsacademy.withgoogle.com/mobile-app",
-      "https://www.udacity.com/courses/ud876-3"
-    ]
-  },
-  "distribute/monetize/paymentmethods": {
-    "title": "",
-    "resources": [
-      "https://play.google.com/about/giftcards/",
-      "https://support.google.com/googleplay/answer/2651410"
-    ]
-  },
-  "distribute/monetize/conversions": {
-    "title": "",
-    "resources": [
-      "https://support.google.com/adwords/answer/2471188",
-      "https://developers.google.com/app-conversion-tracking/",
-      "https://support.google.com/analytics/answer/2611404",
-      "https://support.google.com/adwords/answer/1704341"
-    ]
-  },
-  "autolanding": {
-    "title": "",
-    "resources": [
-      "auto/index.html",
-      "design/auto/index.html",
-      "training/auto/index.html"
-    ]
-  },
-  "tvlanding": {
-    "title": "",
-    "resources": [
-      "tv/index.html",
-      "design/tv/index.html",
-      "training/tv/index.html"
-    ]
-  },
-  "wearlanding": {
-    "title": "",
-    "resources": [
-      "design/wear/index.html",
-      "training/building-wearables.html",
-      "training/wearables/ui/index.html"
-    ]
-  },
-  "design/auto/auto_ui_guidelines": {
-    "title": "",
-    "resources": [
-      "shareables/auto/AndroidAuto-audio-apps.pdf",
-      "shareables/auto/AndroidAuto-messaging-apps.pdf",
-      "shareables/auto/AndroidAuto-custom-colors.pdf"
-    ]
-  },
-  "training/auto/overview": {
-    "title": "",
-    "resources": [
-      "training/auto/start/index.html",
-      "design/auto/index.html",
-      "shareables/auto/AndroidAuto-custom-colors.pdf"
-    ]
-  },
-  "training/auto/messaging": {
-    "title": "",
-    "resources": [
-      "training/auto/messaging/index.html",
-      "shareables/auto/AndroidAuto-messaging-apps.pdf",
-      "samples/MessagingService/index.html"
-    ]
-  },
-  "training/auto/media": {
-    "title": "",
-    "resources": [
-      "training/auto/audio/index.html",
-      "shareables/auto/AndroidAuto-audio-apps.pdf",
-      "samples/MediaBrowserService/index.html"
-    ]
-  },
-  "training/auto/distribute": {
-    "title": "",
-    "resources": [
-      "distribute/essentials/quality/auto.html",
-      "distribute/googleplay/auto.html"
-    ]
-  },
-  "training/testing/overview": {
-    "title": "",
-    "resources": [
-      "training/testing/start/index.html",
-      "tools/testing/testing_android.html",
-      "https://www.youtube.com/watch?v=vdasFFfXKOY"
-    ]
-  },
-  "training/testing/tools": {
-    "title": "",
-    "resources": [
-      "tools/testing-support-library/index.html",
-      "tools/help/monkey.html",
-      "tools/help/monkeyrunner_concepts.html",
-      "tools/testing/testing_otheride.html",
-      "https://source.android.com/devices/tech/debug/dumpsys.html"
-    ]
-  },
-  "training/testing/techniques": {
-    "title": "",
-    "resources": [
-      "training/testing/ui-testing/index.html",
-      "training/testing/unit-testing/index.html",
-      "training/testing/performance.html"
-    ]
-  },
-  "training/testing/resources": {
-    "title": "",
-    "resources": [
-      "https://github.com/googlesamples/android-testing",
-      "https://www.youtube.com/watch?v=2I6fuD20qlY",
-      "https://codelabs.developers.google.com/codelabs/android-testing/index.html",
-      "https://github.com/googlesamples/android-testing-templates",
-      "https://google.github.io/android-testing-support-library"
-    ]
-  },
-  "distribute/stories/games": {
-    "title": "",
-    "resources": [
-      "https://storage.googleapis.com/androiddevelopers/shareables/stories/Glu_Deerhunter2014_gpgs.pdf",
-      "https://storage.googleapis.com/androiddevelopers/shareables/stories/ConcreteSoftware_PBABowling_gpgs.pdf",
-      "https://storage.googleapis.com/androiddevelopers/shareables/stories/Dragonplay_DragonplaySlots_gpgs.pdf",
-      "https://storage.googleapis.com/androiddevelopers/shareables/stories/Gameloft_Asphalt8_gpgs.pdf",
-      "https://storage.googleapis.com/androiddevelopers/shareables/stories/Glu_EternityWarriors3_gpgs.pdf",
-      "https://storage.googleapis.com/androiddevelopers/shareables/stories/HotheadGames_RivalsatWar_gpgs.pdf",
-      "https://storage.googleapis.com/androiddevelopers/shareables/stories/TMSOFT_Compulsive_gpgs.pdf",
-      "https://storage.googleapis.com/androiddevelopers/shareables/stories/Noodlecake_SuperStickmanGolf2_gpgs.pdf",
-      "https://storage.googleapis.com/androiddevelopers/shareables/stories/TinyRebel_DoctorWhoLegacy_gpgs.pdf",
-      "https://storage.googleapis.com/androiddevelopers/shareables/stories/Senri_LeosFortune_gpgs.pdf"
-    ]
-  },
-  "overview/zhcn/1": {
-    "title": "",
-    "resources": [
-      "intl/zh-cn/distribute/essentials/quality/core.html",
-      "intl/zh-cn/distribute/essentials/quality/tablets.html",
-      "intl/zh-cn/distribute/tools/launch-checklist.html",
-      "intl/zh-cn/tools/publishing/publishing_overview.html",
-      "intl/zh-cn/distribute/tools/localization-checklist.html"
-    ]
-  },
-    "overview/zhcn/2": {
-    "title": "",
-    "resources": [
-      "intl/zh-cn/google/play/billing/index.html",
-      "intl/zh-cn/google/play/billing/api.html",
-      "intl/zh-cn/google/play/billing/billing_admin.html",
-      "intl/zh-cn/google/play/billing/billing_testing.html",
-      "intl/zh-cn/google/play/billing/billing_best_practices.html"
-    ]
-  },
-  "overview/zhcn/3": {
-    "title": "",
-    "resources": [
-      "https://play.google.com/intl/en_us/badges/",
-
-      "intl/zh-cn/distribute/tools/promote/device-art.html",
-      "intl/zh-cn/distribute/tools/promote/linking.html",
-      "intl/zh-cn/distribute/tools/promote/brand.html",
-      "intl/zh-cn/tools/help/proguard.html"
-    ]
-  },
-  "overview/zhcn/4": {
-    "title": "",
-    "resources": [
-      "intl/zh-cn/design/style/writing.html",
-      "intl/zh-cn/training/basics/fragments/fragment-ui.html",
-      "intl/zh-cn/training/multiscreen/index.html",
-      "intl/zh-cn/training/monitoring-device-state/index.html"
-    ]
-  },
-  "overview/carousel/zhcn": {
-    "title": "",
-    "resources": [
-      "https://www.youtube.com/watch?v=vGV7FHGzpFU",
-      "https://www.youtube.com/watch?v=aqc3ZOTzpdk",
-      "https://www.youtube.com/watch?v=jaNrJ8uyLSc"
-    ]
-  },
-  "overview/1": {
-    "title": "",
-    "resources": [
-      "distribute/essentials/quality/core.html",
-      "distribute/essentials/quality/tablets.html",
-      "distribute/tools/launch-checklist.html",
-      "tools/publishing/publishing_overview.html",
-      "distribute/tools/localization-checklist.html"
-    ]
-  },
-    "overview/2": {
-    "title": "",
-    "resources": [
-      "google/play/billing/index.html",
-      "google/play/billing/api.html",
-      "google/play/billing/billing_admin.html",
-      "google/play/billing/billing_testing.html",
-      "google/play/billing/billing_best_practices.html"
-    ]
-  },
-  "overview/3": {
-    "title": "",
-    "resources": [
-      "https://play.google.com/intl/en_us/badges/",
-      "distribute/tools/promote/device-art.html",
-      "distribute/tools/promote/linking.html",
-      "distribute/tools/promote/brand.html",
-      "tools/help/proguard.html"
-    ]
-  },
-  "overview/4": {
-    "title": "",
-    "resources": [
-      "design/style/writing.html",
-      "training/basics/fragments/fragment-ui.html",
-      "training/multiscreen/index.html",
-      "training/monitoring-device-state/index.html"
-    ]
-  },
-"tools/help/log": {
-    "title": "",
-    "resources": [
-       "tools/help/am-logcat.html"
-    ]
-  },
-"tools/help/monitor": {
-    "title": "",
-    "resources": [
-       "tools/help/am-memory.html",
-       "tools/help/am-cpu.html",
-       "tools/help/am-gpu.html",
-       "tools/help/am-network.html"
-    ]
-  },
- "tools/help/data": {
-    "title": "",
-    "resources": [
-       "tools/help/am-hprof.html",
-       "tools/help/am-allocation.html",
-       "tools/help/am-methodtrace.html",
-       "tools/help/am-sysinfo.html"
-    ]
-  },
-  "tools/help/shot": {
-    "title": "",
-    "resources": [
-       "tools/help/am-screenshot.html",
-       "tools/help/am-video.html"
-    ]
-  },
-  "tools/performance/rendering": {
-    "title": "",
-    "resources": [
-       "tools/performance/debug-gpu-overdraw/index.html",
-       "tools/performance/profile-gpu-rendering/index.html",
-       "tools/performance/hierarchy-viewer/setup.html",
-       "tools/performance/hierarchy-viewer/index.html",
-       "tools/performance/hierarchy-viewer/profiling.html"
-    ]
-  },
-  "tools/performance/memory": {
-    "title": "",
-    "resources": [
-       "tools/performance/memory-monitor/index.html",
-       "tools/performance/heap-viewer/index.html",
-       "tools/performance/allocation-tracker/index.html",
-       "tools/performance/comparison.html"
-    ]
-  },
-  "tools/performance/cpu": {
-    "title": "",
-    "resources": [
-       "tools/performance/traceview/index.html",
-       "tools/performance/systrace/index.html"
-    ]
-  },
-  "tools/performance/battery": {
-    "title": "",
-    "resources": [
-       "tools/performance/batterystats-battery-historian/index.html",
-       "tools/performance/batterystats-battery-historian/charts.html"
-    ]
-  },
-  "marshmallow/landing/resources": {
-    "title": "",
-    "resources": [
-       "about/versions/marshmallow/android-6.0-changes.html",
-       "about/versions/marshmallow/android-6.0.html",
-       "about/versions/marshmallow/samples.html"
-    ]
-  },
-  "marshmallow/landing/videos": {
-    "title": "",
-    "resources": [
-       "https://youtu.be/U9tw5ypqEN0",
-       "https://youtu.be/N72ksDKrX6c",
-       "https://youtu.be/iZqDdvhTZj0",
-       "https://www.youtube.com/watch?v=vcSj8ln-BlE",
-       "https://youtu.be/LQoohRwojmw",
-       "https://www.youtube.com/watch?v=VOn7VrTRlA4",
-       "https://youtu.be/5sCQjeGoE7M",
-       "https://www.youtube.com/watch?v=C8lUdPVSzDk",
-       "https://www.youtube.com/watch?v=HXacyy0HSW0",
-       "https://www.youtube.com/watch?v=OW1A4XFRuyc",
-       "https://www.youtube.com/watch?v=j3QC6hcpy90",
-       "https://www.youtube.com/watch?v=f17qe9vZ8RM",
-       "https://www.youtube.com/watch?v=ndBdf1_oOGA"
-    ]
-  },
-  "marshmallow/landing/more": {
-    "title": "",
-    "resources": [
-      "training/permissions/requesting.html",
-      "training/backup/autosyncapi.html",
-      "training/monitoring-device-state/doze-standby.html",
-      "training/app-links/index.html",
-      "training/articles/assistant.html",
-      "training/testing/performance.html",
-      "https://developers.google.com/android/nexus/images"
-    ]
-  },
-  "tools/landing/resources": {
-    "title": "",
-    "resources": [
-    "tools/studio/index.html",
-    "tools/studio/studio-features.html",
-    "studio/intro/index.html",
-    ]
-  },
-  "tools/landing/latest": {
-    "title": "",
-    "resources": [
-    "https://medium.com/google-developers/how-often-should-you-update-android-studio-db25785c488e#.8blbql35x",
-    "http://android-developers.blogspot.com/2016/04/android-studio-2-0.html",
-    "https://medium.com/google-developers/writing-more-code-by-writing-less-code-with-android-studio-live-templates-244f648d17c7#.hczcm02du",
-    ]
-  },
-  "work/landing/primary": {
-    "title": "",
-    "resources": [
-      "work/overview.html",
-      "work/guide.html",
-      "https://www.google.com/work/android/developers/applyDevHub/",
-      "work/managed-configurations.html",
-      "work/cosu.html",
-      "work/managed-profiles.html"
-    ]
-  },
-  "work/landing/resources": {
-    "title": "",
-    "resources": [
-      "https://developers.google.com/android/work/",
-      "https://www.google.com/work/android/",
-      "https://developers.google.com/android/work/build-dpc",
-      "https://www.youtube.com/watch?v=jQWB_-o1kz4&list=PLOU2XLYxmsIKAK2Bhv19H2THwF-22O5WX",
-      "https://www.youtube.com/watch?v=Za0OQo8DRM4",
-      "https://www.youtube.com/watch?v=dH41OutAMNM&list=PLOU2XLYxmsIKAK2Bhv19H2THwF-22O5WX"
-    ]
-  },
-  "work/apps": {
-    "title": "",
-    "resources": [
-      "work/managed-profiles.html",
-      "work/managed-configurations.html",
-      "work/cosu.html",
-      "https://www.youtube.com/watch?v=39NkpWkaH8M&index=2&list=PLOU2XLYxmsIKAK2Bhv19H2THwF-22O5WX",
-      "samples/AppRestrictionSchema/index.html",
-      "samples/AppRestrictionEnforcer/index.html"
-    ]
-  },
-  "work/admin": {
-    "title": "",
-    "resources": [
-      "https://developers.google.com/android/work/build-dpc",
-      "samples/BasicManagedProfile/index.html",
-      "https://www.youtube.com/watch?v=j3QC6hcpy90"
-    ]
-  }
-};
diff --git a/docs/html/jd_extras.js b/docs/html/jd_extras.js
deleted file mode 100644
index 44ccafa..0000000
--- a/docs/html/jd_extras.js
+++ /dev/null
@@ -1,4120 +0,0 @@
-/*
- * THIS FILE IS DEPRECATED.
- *
- * Please add and edit resource collections in jd_extras_<lang>.js
- * where lang matches the language code appropriate for the resource.
- * Last sync'd with jd_extras_<lang>.js on 29 Apr 2016.
- *
- */
-DISTRIBUTE_RESOURCES = DISTRIBUTE_RESOURCES.concat([
- /* TODO Remove standard resources from here, such as below
- */
-  {
-    "title":"Writing More Code by Writing Less Code with Android Studio Live Templates",
-    "titleFriendly":"",
-    "summary":"Unless you’re getting paid by the keystroke, no one wants to write repetitive boilerplate code.",
-    "url":"https://medium.com/google-developers/writing-more-code-by-writing-less-code-with-android-studio-live-templates-244f648d17c7#.hczcm02du",
-    "group":"",
-    "keywords": [],
-    "tags": ['studio'],
-    "image":"https://cdn-images-1.medium.com/max/800/1*JkrYXGs1AxZAbK0sCLrJAQ.gif",
-    "type":"medium"
-  },
-  {
-    "title":"How Often Should You Update Android Studio?",
-    "titleFriendly":"",
-    "summary":"One of the beauties of Android Studio is how quickly is evolves and improves.",
-    "url":"https://medium.com/google-developers/how-often-should-you-update-android-studio-db25785c488e#.8blbql35x",
-    "group":"",
-    "keywords": [],
-    "tags": ['studio'],
-    "image":"https://cdn-images-1.medium.com/max/2000/1*chMiA9mGa_FBUOoesHHk3Q.png",
-    "type":"medium"
-  },
-  {
-    "title":"SmallerAPK, Part 6: Image optimization, Zopfli & WebP",
-    "category":"",
-    "summary":"Series of posts on minimizing your APK size.",
-    "url":"https://medium.com/@wkalicinski/smallerapk-part-6-image-optimization-zopfli-webp-4c462955647d#.23hlddo3x",
-    "group":"",
-    "keywords": [],
-    "tags": [],
-    "image":"https://cdn-images-1.medium.com/max/2000/1*chMiA9mGa_FBUOoesHHk3Q.png",
-    "type":"medium"
-  },
-  {
-    "title":"Measure your app’s user acquisition channels",
-    "titleFriendly":"",
-    "summary":"Get details on how to use the Developer Console User Acquisitions reports to discover where your users come from.",
-    "url":"https://support.google.com/googleplay/android-developer/answer/6263332",
-    "group":"",
-    "keywords": [],
-    "tags": [],
-    "image":"images/play_dev.jpg",
-    "type":"google"
-  },
-  {
-    "title":"Set up native app install banners in Chrome",
-    "titleFriendly":"",
-    "summary":"Get the details you need to add your native app or game to your site’s web app manifest file.",
-    "url":"https://developers.google.com/web/updates/2015/03/increasing-engagement-with-app-install-banners-in-chrome-for-android#native",
-    "group":"",
-    "keywords": [],
-    "tags": [],
-    "image":"images/play_dev.jpg",
-    "type":"google"
-  },
-  {
-    "title":"Optimize your store listing pages with experiments",
-    "titleFriendly":"",
-    "summary":"You can run experiments to find the most effective graphics and localized text for your app.",
-    "url":"https://support.google.com/googleplay/android-developer/answer/6227309",
-    "group":"",
-    "keywords": [],
-    "tags": [],
-    "image":"images/play_dev.jpg",
-    "type":"google"
-  },
-  {
-    "title":"Content Experiments for Mobile Apps",
-    "titleFriendly":"",
-    "summary":"Google Analytics Content Experiments allows you to test multiple variations of a given web page.",
-    "url":"https://support.google.com/tagmanager/answer/6003007",
-    "group":"",
-    "keywords": [],
-    "tags": [],
-    "image":"images/play_dev.jpg",
-    "type":"google"
-  },
-  {
-    "title":"Store Listing Experiments for Google Play",
-    "titleFriendly":"",
-    "summary":"Learn how to use Google Play’s new store listing optimization feature to get more installs of your app.",
-    "url":"https://www.youtube.com/watch?v=B6ydLpkhq04",
-    "group":"",
-    "keywords": [],
-    "tags": [],
-    "image":"https://i1.ytimg.com/vi/B6ydLpkhq04/maxresdefault.jpg",
-    "type":"video"
-  },
-  {
-    "title":"Use alpha/beta testing & staged rollouts",
-    "titleFriendly":"",
-    "summary":"Using the Google Play Developer Console, you can choose groups of users to test different versions of your app.",
-    "url":"https://support.google.com/googleplay/android-developer/answer/3131213",
-    "group":"",
-    "keywords": [],
-    "tags": [],
-    "image":"images/play_dev.jpg",
-    "type":"google"
-  },
-  {
-    "title":"Quizlet Developer Story",
-    "titleFriendly":"",
-    "summary":"Quizlet is an extremely popular online learning tool for students. See how they optimized for the classroom with Android and the power of Google Play for Education.",
-    "url":"https://www.youtube.com/watch?v=Idu7VcTTXfk",
-    "group":"",
-    "keywords": [],
-    "tags": [
-      "#gpfe",
-      "#googleplay"
-    ],
-    "image":"https://i1.ytimg.com/vi/Idu7VcTTXfk/maxresdefault.jpg",
-    "type":"video"
-  },
-  {
-    "title":"What's New in GPFE",
-    "titleFriendly":"",
-    "summary":"Learn about the vision and philosophy behind Google Play for Education",
-    "url":"https://www.youtube.com/watch?v=IKhU180eJMo",
-    "group":"",
-    "keywords": [],
-    "tags": [
-      "#gpfe",
-      "#googleplay"
-    ],
-    "image":"https://i1.ytimg.com/vi/IKhU180eJMo/maxresdefault.jpg",
-    "type":"video"
-  },
-  {
-    "title":"Get started with Google Cast",
-    "titleFriendly":"",
-    "summary":"Build multi-screen experiences, let the user send video and audio content to TVs and speakers.",
-    "url":"https://developers.google.com/cast/docs/ux_guidelines",
-    "group":"",
-    "keywords": ["cast", "chromecast", "video", "audio"],
-    "tags": [],
-    "image":"images/cards/card-cast_2x.jpg",
-    "type":"Guide"
-  },
-  {
-    "title":"Android Sender Applications",
-    "titleFriendly":"",
-    "summary":"Get an overview of how your Android app can act as a Google Cast sender app.",
-    "url":"https://developers.google.com/cast/docs/android_sender",
-    "group":"",
-    "keywords": ["cast", "sender"],
-    "tags": [],
-    "image":"images/cards/card-cast_2x.jpg",
-    "type":"Guide"
-  },
-  {
-    "title":"Cast sample apps",
-    "titleFriendly":"",
-    "summary":"Get example Google Cast applications for both senders and receivers.",
-    "url":"https://www.github.com/googlecast",
-    "group":"",
-    "keywords": ["cast", "samples"],
-    "tags": [],
-    "image":"images/cards/card-cast_2x.jpg",
-    "type":"Samples"
-  },
-  {
-    "title":"Get Cardboard",
-    "titleFriendly":"",
-    "summary":"Get your own Cardboard, today. Buy one from a manufacturer or build your own, and start developing.",
-    "url":"https://www.google.com/get/cardboard/get-cardboard/",
-    "group":"",
-    "keywords": ["carboard","vr"],
-    "tags": [],
-    "image":"images/cards/card-cardboard_2x.png",
-    "type":"Guide"
-  },
-    {
-    "title":"Download the Cardboard SDK",
-    "titleFriendly":"",
-    "summary":"Grab the Cardboard libraries from GitHub and start creating VR apps in your favorite development environment.",
-    "url":"https://developers.google.com/cardboard/android/download",
-    "group":"",
-    "keywords": ["carboard","vr"],
-    "tags": [],
-    "image":"images/cards/card-cardboard_2x.png",
-    "type":"Guide"
-  },
-  {
-    "title":"Cardboard design guidelines",
-    "titleFriendly":"",
-    "summary":"Focus on overall usability and avoiding common VR pitfalls while creating an immersive experience of your own.",
-    "url":"https://www.google.com/design/spec-vr",
-    "group":"",
-    "keywords": ["carboard","vr"],
-    "tags": [],
-    "image":"images/cards/card-cardboard_2x.png",
-    "type":"Design"
-  },
-  {
-    "title":"Maps",
-    "titleFriendly":"",
-    "summary":"Give users the map that more than a billion people use every month.",
-    "url":"https://developers.google.com/maps/documentation/android/",
-    "group":"",
-    "keywords": ["maps"],
-    "tags": [],
-    "image":"images/google/gps-maps.png",
-    "type":"Guide"
-  },
-    {
-    "title":"Places API",
-    "titleFriendly":"",
-    "summary":"give your users contextual information about where they are, when they’re there.",
-    "url":"https://developers.google.com/places/android/",
-    "group":"",
-    "keywords": ["places","location", "context"],
-    "tags": [],
-    "image":"images/cards/card-places_2x.png",
-    "type":"Guide"
-  },
-  {
-    "title":"GCM Client for Android",
-    "titleFriendly":"",
-    "summary":"Send push notifications and pubsub from your server to Android devices around the world.",
-    "url":"https://developers.google.com/cloud-messaging/android/client",
-    "group":"",
-    "keywords": ["push","gcm"],
-    "tags": [],
-    "image":"images/cards/card-google-cloud-messaging_16-9_2x.png",
-    "type":"Guide"
-  },
-  {
-    "title":"Google Cloud Messaging",
-    "titleFriendly":"",
-    "summary":"Learn about GCM and the kinds of services you can offer to users through push notifications",
-    "url":"https://developers.google.com/cloud-messaging/gcm",
-    "group":"",
-    "keywords": ["push","gcm"],
-    "tags": [],
-    "image":"images/cards/card-google-cloud-messaging_16-9_2x.png",
-    "type":"Guide"
-  },
-  {
-    "title":"ClassDojo Developer Story",
-    "titleFriendly":"",
-    "summary":"ClassDojo is a classroom tool that helps teachers improve behavior in their classrooms quickly and easily. See how they optimized for the classroom with Android and the power of Google Play for Education.",
-    "url":"https://www.youtube.com/watch?v=iokH4SAIfRw",
-    "group":"",
-    "keywords": [],
-    "tags": [
-      "#gpfe",
-      "#googleplay"
-    ],
-    "image":"https://i1.ytimg.com/vi/iokH4SAIfRw/maxresdefault.jpg",
-    "type":"video"
-  },
-  {
-    "title":"Plan for Success",
-    "titleFriendly":"",
-    "summary":"5 tips from developers on creating great EDU apps.",
-    "url":"https://www.youtube.com/watch?v=Eh2adsAyTKc",
-    "group":"",
-    "keywords": [],
-    "tags": [
-      "#gpfe",
-      "#googleplay"
-    ],
-    "image":"https://i1.ytimg.com/vi/Eh2adsAyTKc/maxresdefault.jpg",
-    "type":"video"
-  },
-  {
-    "title":"Optimizing Apps for Education",
-    "titleFriendly":"",
-    "summary":"Learn how to optimize your app for teachers and students.",
-    "url":"https://www.youtube.com/watch?v=_AZ6UcPz-_g",
-    "group":"",
-    "keywords": [],
-    "tags": [
-      "#gpfe",
-      "#googleplay"
-    ],
-    "image":"https://i1.ytimg.com/vi/_AZ6UcPz-_g/maxresdefault.jpg",
-    "type":"video"
-  },
-  {
-    "title":"Ideas and Tools for Building Innovative Education Apps",
-    "titleFriendly":"",
-    "summary":"Are you hungry to build an awesome app for education but don't quite know where to start? Come hear about apps that teachers want, and the APIs you're going to need to build them! In particular, we'll talk about app ideas that combine APIs for Google Drive, Google Login, Android Single Task Mode and more to build transformative Educational apps that will delight educators and kids in and out of the classroom.",
-    "url":"https://www.youtube.com/watch?v=iulXz8QTD1g",
-    "group":"",
-    "keywords": [],
-    "tags": [
-      "#gpfe",
-      "#googleplay"
-    ],
-    "image":"https://i1.ytimg.com/vi/iulXz8QTD1g/maxresdefault.jpg",
-    "type":"video"
-  },
-  {
-    "title":"DesignBytes: Intro To Material Design",
-    "titleFriendly":"",
-    "summary":"These days, UI designers need to be thinking about phones, tablets, laptops, TVs, smartwatches, and beyond. In this DesignByte we talk about how Google designers have been working on making cross-platform and multi-screen design easier. We wanted to build a design system that felt at home on every screen, from the smallest watch to the largest TV.",
-    "url":"https://www.youtube.com/watch?v=p4gmvHyuZzw",
-    "group":"",
-    "keywords": [],
-    "tags": [
-    ],
-    "image":"https://i1.ytimg.com/vi/p4gmvHyuZzw/maxresdefault.jpg",
-    "type":"video"
-  },
-  {
-    "title":"DesignBytes: Paper and Ink: The Materials that Matter",
-    "titleFriendly":"",
-    "summary":"Join Rich Fulcher to learn about the materials of material design. See how virtual paper and ink form the foundation of your tactile user interface and master the rules that govern their behaviour.",
-    "url":"https://www.youtube.com/watch?v=YaG_ljfzeUw",
-    "group":"",
-    "keywords": [],
-    "tags": [
-    ],
-    "image":"https://i1.ytimg.com/vi/YaG_ljfzeUw/maxresdefault.jpg",
-    "type":"video"
-  },
-  {
-    "title":"DesignBytes: Material Design in the Google I/O App",
-    "titleFriendly":"",
-    "summary":"Roman Nurik shares details on the design process for the Google I/O 2014 app. To check out the app's source code, visit github.com/google/iosched.",
-    "url":"https://www.youtube.com/watch?v=XOcCOBe8PTc",
-    "group":"",
-    "keywords": [],
-    "tags": [
-    ],
-    "image":"https://i1.ytimg.com/vi/XOcCOBe8PTc/maxresdefault.jpg",
-    "type":"video"
-  },
-  {
-    "title":"Toolbars for a flexible Action Bar & more",
-    "titleFriendly":"",
-    "summary":"Toolbars are a flexible View you can add to your Android app which provides many of the same APIs as the system provided Action Bar, but can also do so much more such as reacting to scrolling or being integrated directly into your layouts.",
-    "url":"https://www.youtube.com/watch?v=kmUGLURRPkI",
-    "group":"",
-    "keywords": [],
-    "tags": [
-    ],
-    "image":"https://i1.ytimg.com/vi/kmUGLURRPkI/maxresdefault.jpg",
-    "type":"video"
-  },
-  {
-    "title":"Protecting Implicit Intents with Runtime Checks",
-    "titleFriendly":"",
-    "summary":"Make sure you protect your implicit intents with a simple runtime check.",
-    "url":"https://www.youtube.com/watch?v=HGElAW224dE",
-    "group":"",
-    "keywords": [],
-    "tags": [
-    ],
-    "image":"https://i1.ytimg.com/vi/HGElAW224dE/maxresdefault.jpg",
-    "type":"video"
-  },
-  {
-    "title":"Tabs and ViewPager",
-    "titleFriendly":"",
-    "summary":"Showing multiple screens or pages of content is easy with the help of ViewPager and a PagerAdapter. Combining that with tabs make for an effective top level navigation strategy for your app or for moving between content at the same level of hierarchy within your app.",
-    "url":"https://www.youtube.com/watch?v=zQekzaAgIlQ",
-    "group":"",
-    "keywords": [],
-    "tags": [
-    ],
-    "image":"https://i1.ytimg.com/vi/zQekzaAgIlQ/maxresdefault.jpg",
-    "type":"video"
-  },
-  {
-    "title":"Battery Drain and Networking",
-    "titleFriendly":"",
-    "summary":"Let’s take a moment to make something insanely clear: As far as battery is concerned, NETWORKING is the biggest, baddest, dirtiest offender there is. And optimizing performance here isn’t easy. Since the chip isn’t always awake and draining power, means you can optimize how it wakes up, sends traffic, and saves battery.",
-    "url":"https://www.youtube.com/watch?v=fEEulSk1kNY",
-    "group":"",
-    "keywords": [],
-    "tags": [
-    ],
-    "image":"https://i1.ytimg.com/vi/fEEulSk1kNY/maxresdefault.jpg",
-    "type":"video"
-  },
-  {
-    "title":"Batching Background Work Until Later",
-    "titleFriendly":"",
-    "summary":"Yes, your app is special. But when it comes to battery use, sometimes it’s better to be part of the crowd. Why not spread the battery blame around a bit? Ian Ni-Lewis shows you how ridiculously easy it is to go from battery hog to team player in this video.",
-    "url":"https://www.youtube.com/watch?v=-3ry8PxcJJA",
-    "group":"",
-    "keywords": [],
-    "tags": [
-    ],
-    "image":"https://i1.ytimg.com/vi/-3ry8PxcJJA/maxresdefault.jpg",
-    "type":"video"
-  },
-  {
-    "title":"The Performance Lifecycle",
-    "titleFriendly":"",
-    "summary":"Performance problems surface in your application at the least-wanted times (like right before you’re about to ship your first build). But don’t freak out: There’s a simple process that you can follow to help get your performance back under control.",
-    "url":"https://www.youtube.com/watch?v=_kKTGK-Cb_4",
-    "group":"",
-    "keywords": [],
-    "tags": [
-    ],
-    "image":"https://i1.ytimg.com/vi/_kKTGK-Cb_4/maxresdefault.jpg",
-    "type":"video"
-  },
-  {
-    "title":"Introduction to Android Studio",
-    "titleFriendly":"",
-    "summary":"Learn why you should migrate your projects to Android Studio now and how it can help you be more productive as a developer. Rich layout editor, handy suggestions and fixes, new Android project view - these are just some of the things you can expect from the IDE, which is built on the successful IntelliJ IDEA.",
-    "url":"https://www.youtube.com/watch?v=K2dodTXARqc&list=PLWz5rJ2EKKc8I9gHTMh5yKkwRRGE8BjbQ",
-    "group":"",
-    "keywords": ["studio", "tools"],
-    "tags": [
-    ],
-    "image":"https://i1.ytimg.com/vi/K2dodTXARqc/maxresdefault.jpg",
-    "type":"video"
-  },
-
-  {
-    "title":"Google Play Services 7.5",
-    "titleFriendly":"",
-    "summary":"This update brings App Invites, topics to GCM, GCMNetworkManager, Cast Remote Display API, Smart Lock for Passwords, Maps API for Android Wear, Google Fit extensions and more.",
-    "url":"https://www.youtube.com/watch?v=M3Udfu6qidk&list=PLWz5rJ2EKKc9Qk1_iCZNbBp6adYnJf9Vf",
-    "group":"",
-    "keywords": ["google play services"],
-    "tags": [
-    ],
-    "image":"https://i1.ytimg.com/vi/M3Udfu6qidk/maxresdefault.jpg",
-    "type":"video"
-  },
-  {
-    "title":"Google Play Services 7.3",
-    "titleFriendly":"",
-    "summary":"This update brings the ability to connect multiple wearables simultaneously to a single phone. There are also some great new updates to Google Fit, including nutrition types, and to Location.",
-    "url":"https://www.youtube.com/watch?v=FOn64iqlphk&list=PLWz5rJ2EKKc9Qk1_iCZNbBp6adYnJf9Vf",
-    "group":"",
-    "keywords": ["google play services"],
-    "tags": [
-    ],
-    "image":"https://i1.ytimg.com/vi/FOn64iqlphk/maxresdefault.jpg",
-    "type":"video"
-  },
-  {
-    "title":"Google Play Services 6.5",
-    "titleFriendly":"",
-    "summary":"Google Play services 6.5 includes new features in Google Maps, Google Drive and Google Wallet as well as the recently launched Google Fit API. ",
-    "url":"https://www.youtube.com/watch?v=fvtMtfCuEpw&list=PLWz5rJ2EKKc9Qk1_iCZNbBp6adYnJf9Vf",
-    "group":"",
-    "keywords": ["google play services"],
-    "tags": [
-    ],
-    "image":"https://i1.ytimg.com/vi/fvtMtfCuEpw/maxresdefault.jpg",
-    "type":"video"
-  },
-    {
-    "title":"Google Play Services 7.0",
-    "titleFriendly":"",
-    "summary":"Google Play services 7.0 is here! we've added the Places API, made enhancements to Location and Google Fit, and you can also remote control your Android TV through the new Nearby Connections API.",
-    "url":"https://www.youtube.com/watch?v=F0Kh_RnSM0w&list=PLWz5rJ2EKKc9Qk1_iCZNbBp6adYnJf9Vf",
-    "group":"",
-    "keywords": ["google play services"],
-    "tags": [
-    ],
-    "image":"https://i1.ytimg.com/vi/F0Kh_RnSM0w/maxresdefault.jpg",
-    "type":"video"
-  },
-  {
-    "title":"Running a Successful Games Business with Google",
-    "titleFriendly":"",
-    "summary":"Sure, we all want to make the next great gaming masterpiece. But we also want to feed our families and/or dogs. Join Bob Meese from the Google Play team as he gives you some key pointers on how to make sure you're best taking advantage of Google Play and running a successful games business.",
-    "url":"https://www.youtube.com/watch?v=tDmnGNkTtlE",
-    "group":"",
-    "keywords": [],
-    "tags": [
-    ],
-    "image":"https://i1.ytimg.com/vi/tDmnGNkTtlE/maxresdefault.jpg",
-    "type":"video"
-  },
-  {
-    "title":"Introduction to Android TV",
-    "titleFriendly":"",
-    "summary":"Android TV brings the Android platform to the living room with rich content and entertaining app experiences. In this video, Timothy introduces the design philosophy and developer components that make building TV experiences easier than ever before.",
-    "url":"https://www.youtube.com/watch?v=6K_jxccHv5M&index=1&list=PLOU2XLYxmsILFBfx66ens76VMLMEPJAB0",
-    "group":"",
-    "keywords": ["tv"],
-    "tags": [
-    ],
-    "image":"https://i1.ytimg.com/vi/6K_jxccHv5M/maxresdefault.jpg",
-    "type":"video"
-  },
-  {
-    "title":"Introduction to Android Auto",
-    "titleFriendly":"",
-    "summary":"Android Auto brings the Android platform to the car in a way that's optimized for the driving experience. It's the same platform you already use for phones, tablets, televisions, wearables, and more. ",
-    "url":"https://www.youtube.com/watch?v=ctiaVxgclsg&list=PLWz5rJ2EKKc9BdE_PSLNIGjXXr3h_orXM",
-    "group":"",
-    "keywords": ["auto"],
-    "tags": [
-    ],
-    "image":"https://i1.ytimg.com/vi/ctiaVxgclsg/maxresdefault.jpg",
-    "type":"video"
-  },
-  {
-    "title":"Debugging and testing in Android Studio",
-    "titleFriendly":"",
-    "summary":"This video introduces the state of unit testing support in Studio and Google’s new Android Testing Support Library for functional UI testing and running instrumented tests on a device.",
-    "url":"https://www.youtube.com/watch?v=2I6fuD20qlY",
-    "group":"",
-    "keywords": ["testing"],
-    "tags": [
-    ],
-    "image":"https://i1.ytimg.com/vi/2I6fuD20qlY/maxresdefault.jpg",
-    "type":"video"
-  },
-  {
-    "title":"Android Testing (Android Dev Summit 2015)",
-    "titleFriendly":"",
-    "summary":"Overview of the testing tools and frameworks provided by Google and how they can help you to iterate more quickly and maintain a more healthy codebase.",
-    "url":"https://www.youtube.com/watch?v=vdasFFfXKOY",
-    "group":"",
-    "keywords": ["testing"],
-    "tags": [
-    ],
-    "image":"https://i1.ytimg.com/vi/vdasFFfXKOY/maxresdefault.jpg",
-    "type":"video"
-  },
-  {
-    "title":"dumpsys",
-    "titleFriendly":"",
-    "summary":"A tool that runs on the device and provides information about the status of system services.",
-    "url":"https://source.android.com/devices/tech/debug/dumpsys.html",
-    "group":"",
-    "keywords": ["testing"],
-    "tags": [
-    ],
-    "image":"",
-    "type":"google"
-  },
-  {
-    "title":"Android Testing Samples",
-    "titleFriendly":"",
-    "summary":"A collection of samples demonstrating different frameworks and techniques for automated testing.",
-    "url":"https://github.com/googlesamples/android-testing",
-    "group":"",
-    "keywords": ["testing"],
-    "tags": [
-    ],
-    "image":"images/testing/testing-icon.png",
-    "type":"Samples"
-  },
-  {
-    "title":"Android Testing Templates",
-    "titleFriendly":"",
-    "summary":"A collection of Google's Android testing tools and frameworks, all integrated in a single application project.",
-    "url":"https://github.com/googlesamples/android-testing-templates",
-    "group":"",
-    "keywords": ["testing"],
-    "tags": [
-    ],
-    "image":"images/testing/testing-icon.png",
-    "type":"Samples"
-  },
-   {
-    "title":"Android Testing Support Library (GitHub)",
-    "titleFriendly":"",
-    "summary":"A resource page on GitHub for the Android Testing Support Library.",
-    "url":"https://google.github.io/android-testing-support-library",
-    "group":"",
-    "keywords": ["testing"],
-    "tags": [
-    ],
-    "image":"images/testing/testing-icon.png",
-    "type":"Samples"
-  },
-  {
-    "title":"Android Testing Codelab",
-    "titleFriendly":"",
-    "summary":"This codelab shows how to build an Android app from the ground up in Android Studio, using a Model View Presenter architecture, Unit Tests and Instrumentation Tests.",
-    "url":"https://codelabs.developers.google.com/codelabs/android-testing/index.html",
-    "group":"",
-    "keywords": ["testing"],
-    "tags": [
-    ],
-    "image":"images/testing/testing-icon.png",
-    "type":"google"
-  },
-  {
-    "title":"Developer Registration",
-    "titleFriendly":"",
-    "summary":"Additional information about the registration process.",
-    "url":"https://support.google.com/googleplay/android-developer/answer/113468",
-    "group":"",
-    "keywords": [],
-    "tags": [],
-    "image":"images/play_dev.jpg",
-    "type":"google"
-  },
-  {
-    "title": "Google Play Distribution and Seller Countries",
-    "titleFriendly":"",
-    "summary": "List of countries and territories where you can distribute your apps in Google Play.",
-    "url":"https://support.google.com/googleplay/android-developer/answer/138294",
-    "group":"",
-    "keywords": [],
-    "tags": [],
-    "image":"images/play_dev.jpg",
-    "type":"google"
-  },
-  {
-    "title": "支持向Google Play用户发布应用的地区",
-    "lang": "zh-cn",
-    "titleFriendly":"",
-    "summary": "支持向Google Play用户发布应用的国家/地区。",
-    "url":"https://support.google.com/googleplay/android-developer/answer/138294?hl=zh-Hans",
-    "group":"",
-    "keywords": [],
-    "tags": [],
-    "image":"images/play_dev.jpg",
-    "type":"google"
-  },
-  {
-    "title":"Google Play Content Policies",
-    "titleFriendly":"",
-    "summary":"Details on policies relating to your developer account and app distribution is governed.",
-    "url":"https://support.google.com/googleplay/android-developer/topic/3453577",
-    "group":"",
-    "keywords": [],
-    "tags": ["#developersupport"],
-    "image":"images/play_dev.jpg",
-    "type":"google"
-  },
-  {
-    "title":"Google Play Badge Generator",
-    "titleFriendly":"",
-    "summary":"Build badges for your app in just a few clicks, or download hi-res badge assets localized for a variety of languages.",
-    "url":"https://play.google.com/intl/en_us/badges/",
-    "group":"",
-    "keywords": [],
-    "tags": ["#developersupport"],
-    "image":"images/gp-badges-set.png",
-    "type":"google"
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": ["#developersupport #termsandpolicies"],
-    "url": "https://support.google.com/googleplay/android-developer/answer/4407611",
-    "timestamp": 1194884220000,
-    "image": 'images/play_dev.jpg',
-    "title": "Google Play Terms and Policies",
-    "summary": "Developer terms and policies that apply when you distribute apps in Google Play.",
-    "keywords": [],
-    "type": "distribute",
-    "titleFriendly": ""
-  },
-  {
-    "title":"Google Play Policy Center",
-    "titleFriendly":"",
-    "summary":"A central resource for you to learn about Google Play policies and guidelines.",
-    "url":"https://support.google.com/googleplay/android-developer/answer/4430948",
-    "group":"",
-    "keywords": [],
-    "tags": [],
-    "image":"https://storage.googleapis.com/support-kms-prod/SNP_712EA2784949DDF085C46E3BE7B1DC618A09_4389397_en_v0",
-    "type":"google"
-  },
-  {
-    "title":"Google Play应用政策中心",
-    "titleFriendly":"",
-    "summary":"一个方便你了解Google Play政策和指南的中心资源。",
-    "url":"https://support.google.com/googleplay/android-developer/answer/4430948?hl=zh-Hans",
-    "group":"",
-    "keywords": [],
-    "tags": [],
-    "image":"https://storage.googleapis.com/support-kms-prod/SNP_712EA2784949DDF085C46E3BE7B1DC618A09_4389397_en_v0",
-    "type":"google"
-  },
-  {
-    "title":"Developer Help Center",
-    "titleFriendly":"",
-    "summary":"Complete details on getting started, publishing, troubleshooting, and more.",
-    "url":"https://support.google.com/googleplay/android-developer",
-    "group":"",
-    "keywords": [],
-    "tags": [],
-    "image":"images/cards/google-play_2x.png",
-    "type":"google"
-  },
-  {
-    "title":"开发者帮助中心",
-    "titleFriendly":"",
-    "summary":"完整资料帮助开发者新手入手,发布,故障排除,等等",
-    "url":"https://support.google.com/googleplay/android-developer?hl=zh-Hans",
-    "group":"",
-    "keywords": [],
-    "tags": [],
-    "image":"images/play_dev.jpg",
-    "type":"google"
-  },
-  {
-    "title":"Google for Education",
-    "titleFriendly":"",
-    "summary":"Find out more about how Google can support your work with apps and tablets.",
-    "url":"https://www.google.com/edu/tablets/",
-    "group":"",
-    "keywords": [],
-    "tags": [],
-    "image":"distribute/images/gp-edu-apps-image.jpg",
-    "type":"google"
-  },
-  {
-    "title":"Keeping Your App Responsive",
-    "titleFriendly":"",
-    "summary":"This document describes how the Android system determines whether an application is not responding and provides guidelines for ensuring that your application stays responsive.",
-    "url":"training/articles/perf-anr.html",
-    "group":"",
-    "keywords": [],
-    "tags": [],
-    "image":"",
-    "type":"google"
-  },
-  {
-    "title":"Google Play Game Services",
-    "titleFriendly":"",
-    "summary":"Make your games social with Google Play game services. Add achievements, leaderboards, real-time multiplayer, and other popular features using the Google Play game services SDK.",
-    "url":"https://developers.google.com/games/services/",
-    "group":"",
-    "keywords": ["games","play games"],
-    "tags": [],
-    "image":"images/google/gps-play_games_logo.png",
-    "type":"google"
-  },
-  {
-    "title":"Get Started with Analytics",
-    "titleFriendly":"",
-    "summary":"Get advanced insight into how players discover and play your games.",
-    "url":"distribute/analyze/start.html",
-    "group":"",
-    "keywords": ["analytics"],
-    "tags": [],
-    "image": "images/cards/analytics-mobile_2x.jpg",
-    "type": "distribute"
-  },
-  {
-    "title":"Build VR with Google Cardboard",
-    "titleFriendly":"",
-    "summary":"Turn any phone into a virtual reality headset with a Cardboard viewer and experiment with adding virtual reality to your games with the Cardboard SDK.",
-    "url":"distribute/googleplay/cardboard.html",
-    "group":"",
-    "keywords": ["cardboard"],
-    "tags": [],
-    "image":"images/cards/card-cardboard_2x.png",
-    "type": "distribute"
-  },
-  {
-    "title":"Monetize your apps intelligently",
-    "titleFriendly":"",
-    "summary":"Generate revenue from your free games with ads tailored to match your game's look and feel.",
-    "url":"https://www.google.com/admob/",
-    "group":"",
-    "keywords": ["AdMob"],
-    "tags": [],
-    "image":"images/cards/admob-analytics_2x.png",
-    "type": "distribute"
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [
-      "versions", "blog", "googleplay"
-    ],
-    "url": "https://android-developers.blogspot.com/",
-    "timestamp": 1004884220000,
-    "image": "images/blog.jpg",
-    "title": "Android Developers Blog",
-    "summary": "Follow the latest news on Android design, development, and distribution.",
-    "keywords": [],
-    "type": "blog",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://android-developers.blogspot.com/2011/11/making-android-games-that-play-nice.html",
-    "timestamp": 1194884220000,
-    "image": null,
-    "title": "Making Android Apps that Play Nice",
-    "summary": "Audio lifecycle and expected audio behaviors for Android apps.",
-    "keywords": [],
-    "type": "blog",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://android-developers.blogspot.com/2010/07/multithreading-for-performance.html",
-    "timestamp": 1194884220000,
-    "image": null,
-    "title": "Multithreading for Performance",
-    "summary": "Ways to improve performance through multi-threading.",
-    "keywords": [],
-    "type": "blog",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://play.google.com/about/developer-content-policy.html",
-    "timestamp": 1194884220000,
-    "image": "images/play_dev.jpg",
-    "title": "Developer Program Policies",
-    "summary": "Guidelines acceptable content in Google Play. Please read and understand the policies before publishing.",
-    "keywords": [],
-    "type": "google",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://support.google.com/googleplay/android-developer/answer/188189",
-    "timestamp": 1194884220000,
-    "image": "images/play_dev.jpg",
-    "title": "Rating your application content for Google Play",
-    "summary": "How to choose the appropriate content ratings level for your apps.",
-    "keywords": [],
-    "type": "support",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": ["devices", "nexus", "testing"],
-    "url": "https://developers.google.com/android/nexus/images",
-    "timestamp": 1194884220000,
-    "image": "images/cards/card-download_16-9_2x.png",
-    "title": "Factory Images for Nexus Devices",
-    "summary": "System image files for Android 6.0 and other Android releases.",
-    "keywords": ["nexus, downloads"],
-    "type": "support",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "zh-cn",
-    "group": "",
-    "tags": [],
-    "url": "https://support.google.com/googleplay/android-developer/answer/188189?hl=zh-Hans",
-    "timestamp": 1194884220000,
-    "image": "images/play_dev.jpg",
-    "title": "针对Google Play为你的应用内容分级",
-    "summary": "如何为你的应用内容分级。",
-    "keywords": [],
-    "type": "support",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://android-developers.blogspot.com/2011/10/android-market-featured-image.html",
-    "timestamp": 1194884220000,
-    "image": "images/play_dev.jpg",
-    "title": "Google Play Featured Image Guidelines",
-    "summary": "How to create attractive, effective Featured Images for your apps.",
-    "keywords": [],
-    "type": "support",
-    "titleFriendly": ""
-  },
-{
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://support.google.com/googleplay/android-developer/answer/113477",
-    "timestamp": 1194884220000,
-    "image": "images/play_dev.jpg",
-    "title": "Supporting your users",
-    "summary": "Options for supporting users.",
-    "keywords": [],
-    "type": "support",
-    "titleFriendly": ""
-  },
-{
-    "lang": "zh-cn",
-    "group": "",
-    "tags": [],
-    "url": "https://support.google.com/googleplay/android-developer/answer/113477?hl=zh-Hans",
-    "timestamp": 1194884220000,
-    "image": "images/play_dev.jpg",
-    "title": "为用户提供支持",
-    "summary": "为用户提供支持的各种选择。",
-    "keywords": [],
-    "type": "support",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "guide/practices/screens_support.html#ConfigurationExamples",
-    "timestamp": 1194884220000,
-    "image": null,
-    "title": "Configuration examples",
-    "summary": "How to declare layouts and other resources for specific screen sizes.",
-    "keywords": [],
-    "type": "design",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "training/design-navigation/multiple-sizes.html",
-    "timestamp": 1194884220000,
-    "image": null,
-    "title": "Planning for Multiple Touchscreen Sizes",
-    "summary": "",
-    "keywords": [],
-    "type": "design",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "training/multiscreen/index.html",
-    "timestamp": 1194884220000,
-    "image": null,
-    "title": "Designing for Multiple Screens",
-    "summary": "Designing an intuitive, effective navigation for tablets and other devices.",
-    "keywords": [],
-    "type": "design",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "guide/topics/resources/providing-resources.html",
-    "timestamp": 1194884220000,
-    "image": null,
-    "title": "Providing Resources",
-    "summary": "Layouts and drawable resources for specific ranges of device screens.",
-    "keywords": [],
-    "type": "design",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "training/basics/supporting-devices/screens.html",
-    "timestamp": 1194884220000,
-    "image": null,
-    "title": "Supporting Different Screens",
-    "summary": "Optimizing the user experience for different screen sizes and densities.",
-    "keywords": [],
-    "type": "design",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "guide/topics/appwidgets/index.html#MetaData",
-    "timestamp": 1194884220000,
-    "image": null,
-    "title": "Adding the AppWidgetProviderInfo Metadata",
-    "summary": "How to set the height and width dimensions of a widget.",
-    "keywords": [],
-    "type": "design",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "guide/topics/manifest/uses-sdk-element.html#ApiLevels",
-    "timestamp": 1194884220000,
-    "image": null,
-    "title": "Android API Levels",
-    "summary": "Introduction to API levels and how they relate to compatibility.",
-    "keywords": [],
-    "type": "guide",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "guide/practices/screens_support.html#DeclaringScreenSizeSupport",
-    "timestamp": 1194884220000,
-    "image": null,
-    "title": "Declaring screen size support",
-    "summary": "How to declare support for screen sizes in your app\'s manifest.",
-    "keywords": [],
-    "type": "guide",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "training/material/animations.html#Touch",
-    "timestamp": 1194884220000,
-    "image": null,
-    "title": "Customize Touch Feedback",
-    "summary": "Provide visual confirmation when users interact with your UI.",
-    "keywords": [],
-    "type": "develop",
-    "category": "guide"
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "guide/topics/manifest/uses-feature-element.html#testing",
-    "timestamp": 1194884220000,
-    "image": null,
-    "title": "Checking for hardware feature requirements",
-    "summary": "Determining an app’s hardware and software requirements.",
-    "keywords": [],
-    "type": "guide",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://play.google.com/apps/publish/",
-    "timestamp": 1194884220000,
-    "image": null,
-    "title": "Google Play Developer Console",
-    "summary": "The tools console for publishing your app.",
-    "keywords": [],
-    "type": "guide",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "zh-cn",
-    "group": "",
-    "tags": [],
-    "url": "https://play.google.com/apps/publish/?hl=zh-Hans",
-    "timestamp": 1194884220000,
-    "image": null,
-    "title": "Google Play 开发者控制台",
-    "summary": "发布应用的开发者控制台",
-    "keywords": [],
-    "type": "guide",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://youtu.be/SkHHPf3EdzE",
-    "timestamp": 1194884220000,
-    "image": "https://i1.ytimg.com/vi/SkHHPf3EdzE/maxresdefault.jpg",
-    "title": "Level Up Your Android Game",
-    "summary": "Learn how to take your game to the next level on Google Play.",
-    "keywords": [],
-    "type": "guide",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://developers.google.com/+/mobile/android/share/interactive-post",
-    "timestamp": 1194884220000,
-    "image": 'images/google/gps-googleplus.png',
-    "title": "Sharing interactive posts to Google+ from your Android app",
-    "summary": "Interactive posts provide an easy and prominent way to allow users to share your site or app with their friends and invite them to take a specific action.",
-    "keywords": ["Interactive", "Google+"],
-    "type": "guide",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://play.google.com/about/developer-distribution-agreement.html",
-    "timestamp": 1194884220000,
-    "image": "images/play_dev.jpg",
-    "title": "Developer Distribution Agreement",
-    "summary": "Terms for distributing and selling apps and in-app products in Google Play.",
-    "keywords": [],
-    "type": "guide",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://support.google.com/googleplay/android-developer/answer/113417",
-    "timestamp": 1194884220000,
-    "image": null,
-    "title": "Inappropriate content in comments and applications",
-    "summary": "More details on what content is appropriate.",
-    "keywords": [],
-    "type": "guide",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://support.google.com/legal/troubleshooter/1114905",
-    "timestamp": 1194884220000,
-    "image": null,
-    "title": "Removing content from Google",
-    "summary": "Find how how to request the removal of content that infringes on your trademark.",
-    "keywords": [],
-    "type": "guide",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://play.google.com/about/developer-distribution-agreement-addendum.html",
-    "timestamp": 1194884220000,
-    "image": "images/play_dev.jpg",
-    "title": "Google Play for Education Addendum",
-    "summary": "Review the education-specific requirements.",
-    "keywords": [],
-    "type": "guide",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://android-developers.blogspot.com/2013/03/native-rtl-support-in-android-42.html",
-    "timestamp": null,
-    "image": null,
-    "title": "Native RTL Support in Android 4.2",
-    "summary": "Blog post that explains how to support RTL in your UI.",
-    "keywords": [],
-    "type": "guide",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "guide/topics/resources/string-resource.html#Plurals",
-    "timestamp": 1194884220000,
-    "image": null,
-    "title": "Quantity Strings (Plurals)",
-    "summary": "How to work with string plurals according to rules of grammar in a given locale.",
-    "keywords": [],
-    "type": "guide",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "reference/java/util/Locale.html",
-    "timestamp": 1194884220000,
-    "image": null,
-    "title": "Locale",
-    "summary": "Determine what CLDR data or version of the Unicode spec a particular Android platform version uses.",
-    "keywords": [],
-    "type": "guide",
-    "titleFriendly": ""
-  },
-    {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "guide/topics/resources/string-resource.html",
-    "timestamp": 1194884220000,
-    "image": null,
-    "title": "String Resources",
-    "summary": "Explains how to use string resources in your UI.",
-    "keywords": [],
-    "type": "guide",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "distribute/tools/localization-checklist.html#strings",
-    "timestamp": 1194884220000,
-    "image": null,
-    "title": "Manage strings for localization",
-    "summary": "Guidance on having your strings translation ready.",
-    "keywords": [],
-    "type": "guide",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "tools/publishing/publishing_overview.html",
-    "timestamp": 1194884220000,
-    "image": null,
-    "title": "General Publishing Overview",
-    "summary": "Start here for an overview of publishing options for Android apps.",
-    "keywords": [],
-    "type": "guide",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "tools/publishing/preparing.html",
-    "timestamp": 1194884220000,
-    "image": null,
-    "title": "Preparing for Release",
-    "summary": "Developer documentation on how to build the signed, release-ready APK. This process is the same for all Android apps.",
-    "keywords": [],
-    "type": "guide",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "distribute/googleplay/policies/index.html",
-    "timestamp": 1194884220000,
-    "image": "images/play_dev.jpg",
-    "title": "Google Play Policies and Guidelines",
-    "summary": "An overview of Google Play policies for spam, intellectual property, and ads, with examples of common problems.",
-    "keywords": [],
-    "type": "guide",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://support.google.com/googleplay/android-developer/topic/2364761",
-    "timestamp": 1194884220000,
-    "image": "images/play_dev.jpg",
-    "title": "Policy and Best Practices",
-    "summary": "Help Center document describing various content policies and processes.",
-    "keywords": [],
-    "type": "distribute",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "zh-cn",
-    "group": "",
-    "tags": [],
-    "url": "https://support.google.com/googleplay/android-developer/topic/2364761?hl=zh-Hans",
-    "timestamp": 1194884220000,
-    "image": "images/play_dev.jpg",
-    "title": "政策和最佳做法",
-    "summary": "内容政策和流程",
-    "keywords": [],
-    "type": "distribute",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "google/play/expansion-files.html",
-    "timestamp": 1194884220000,
-    "image": null,
-    "title": "APK Expansion Files",
-    "summary": "Developer documentation describing APK Expansion Files and how to support them in your app.",
-    "keywords": [],
-    "type": "guide",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "tools/help/proguard.html",
-    "timestamp": 1194884220000,
-    "image": null,
-    "title": "ProGuard",
-    "summary": "Developer documentation describing how to use ProGuard to shrink, optimize, and obfuscate your code prior to release.",
-    "keywords": [],
-    "type": "guide",
-    "titleFriendly": ""
-  },
-  {
-    "title":"Dashboards",
-    "titleFriendly":"",
-    "summary":"This page provides information about the relative number of devices that share a certain characteristic, such as Android version or screen size. This information may help you prioritize efforts for supporting different devices by revealing which devices…",
-    "url":"about/dashboards/index.html",
-    "group":"",
-    "keywords": ["android","dashboard","platforms","versions"],
-    "tags": ["#ecosystem","#versions","#whatsnew"],
-    "image":"https://chart.googleapis.com/chart?chl=GL%201.1%20only%7CGL%202.0%7CGL%203.0&chf=bg%2Cs%2C00000000&chd=t%3A0.1%2C93.5%2C6.4&chco=c4df9b%2C6fad0c&chs=400x250&cht=p",
-    "lang":"en",
-    "type":"about"
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://developers.google.com/wallet/instant-buy/",
-    "timestamp": 1194884220000,
-    "image": "",
-    "title": "Android Pay APIs",
-    "summary": "Developer documentation describing Instant Buy and how to support it in your apps.",
-    "keywords": [],
-    "type": "guide",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://support.google.com/googleplay/android-developer/answer/1169947",
-    "timestamp": 1194884220000,
-    "image": "images/play_dev.jpg",
-    "title": "Selling Apps in Multiple Currencies",
-    "summary": "Help Center document describing how pricing works in Google Play.",
-    "keywords": [],
-    "type": "guide",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://support.google.com/googleplay/android-developer/answer/1169947?hl=zh-Hans",
-    "timestamp": 1194884220000,
-    "image": "images/play_dev.jpg",
-    "title": "以多种货币销售应用",
-    "summary": "如何在Google Play为应用定价",
-    "keywords": [],
-    "type": "guide",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://support.google.com/googleplay/android-developer/answer/138412",
-    "timestamp": 1194884220000,
-    "image": "images/play_dev.jpg",
-    "title": "Prices and supported currencies",
-    "summary": "Help Center document listing supported currencies for pricing your apps.",
-    "keywords": [],
-    "type": "guide",
-    "titleFriendly": ""
-  },
-    {
-    "lang": "zh-cn",
-    "group": "",
-    "tags": [],
-    "url": "https://support.google.com/googleplay/android-developer/answer/138412?hl=zh-Hans",
-    "timestamp": 1194884220000,
-    "image": "images/play_dev.jpg",
-    "title": "各国家/地区获许定价范围和货币",
-    "summary": "各国家/地区获许定价范围和货币列表",
-    "keywords": [],
-    "type": "guide",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://support.google.com/googleplay/android-developer/answer/112622",
-    "timestamp": 1194884220000,
-    "image": "images/play_dev.jpg",
-    "title": "Transaction Fees",
-    "summary": "Help Center document describing transaction fees for priced apps and in-app products.",
-    "keywords": [],
-    "type": "guide",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "zh-cn",
-    "group": "",
-    "tags": [],
-    "url": "https://support.google.com/googleplay/android-developer/answer/112622?hl=zh-Hans",
-    "timestamp": 1194884220000,
-    "image": "images/play_dev.jpg",
-    "title": "交易费用",
-    "summary": "销售的应用和应用内产品的交易费。",
-    "keywords": [],
-    "type": "guide",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://support.google.com/googleplay/android-developer/answer/138000",
-    "timestamp": 1194884220000,
-    "image": "images/play_dev.jpg",
-    "title": "Specifying tax rates",
-    "summary": "Help Center document describing how to set tax rates for different countries.",
-    "keywords": [],
-    "type": "guide",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "zh-cn",
-    "group": "",
-    "tags": [],
-    "url": "https://support.google.com/googleplay/android-developer/answer/138000?hl=zh-Hans",
-    "timestamp": 1194884220000,
-    "image": "images/play_dev.jpg",
-    "title": "税率",
-    "summary": "如何设置不同国家/地区的税率",
-    "keywords": [],
-    "type": "guide",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "guide/topics/resources/localization.html",
-    "timestamp": 1194884220000,
-    "image": "images/play_dev.jpg",
-    "title": "Localizing with Resources",
-    "summary": "Developer guide to localizing resources in your app.",
-    "keywords": [],
-    "type": "guide",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://support.google.com/googleplay/android-developer/answer/113475",
-    "timestamp": 1194884220000,
-    "image": "images/play_dev.jpg",
-    "title": "Category types",
-    "summary": "Help Center document listing available categories for apps.",
-    "keywords": [],
-    "type": "guide",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "zh-cn",
-    "group": "",
-    "tags": [],
-    "url": "https://support.google.com/googleplay/android-developer/answer/113475?hl=zh-Hans",
-    "timestamp": 1194884220000,
-    "image": "images/play_dev.jpg",
-    "title": "类别",
-    "summary": "应用的类别列表。",
-    "keywords": [],
-    "type": "guide",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://support.google.com/googleplay/android-developer/answer/113476",
-    "timestamp": 1194884220000,
-    "image": "images/play_dev.jpg",
-    "title": "Updates",
-    "summary": "Requirements for app updates in Google Play.",
-    "keywords": [],
-    "type": "guide",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "zh-cn",
-    "group": "",
-    "tags": [],
-    "url": "https://support.google.com/googleplay/android-developer/answer/113476?hl=zh-Hans",
-    "timestamp": 1194884220000,
-    "image": "images/play_dev.jpg",
-    "title": "更新应用",
-    "summary": "更新Google Play应用的要求。",
-    "keywords": [],
-    "type": "guide",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://support.google.com/googleplay/android-developer/answer/1153479",
-    "timestamp": 1194884220000,
-    "image": null,
-    "title": "In-app Billing",
-    "summary": "Help Center document describing how to correctly set up In-app Billing.",
-    "keywords": [],
-    "type": "guide",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "zh-cn",
-    "group": "",
-    "tags": [],
-    "url": "https://support.google.com/googleplay/android-developer/answer/1153479?hl=zh-Hans",
-    "timestamp": 1194884220000,
-    "image": null,
-    "title": "应用内结算",
-    "summary": "如何正确设置应用内商品和订阅结算。",
-    "keywords": [],
-    "type": "guide",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [
-      "#gpfe",
-      "#googleplay"
-    ],
-    "url": "https://youtu.be/vzvpcEffvaE",
-    "timestamp": 1383243492000,
-    "image": "https://i1.ytimg.com/vi/vzvpcEffvaE/maxresdefault.jpg",
-    "title": "Introducing Tablets with Google Play for Education",
-    "summary": "Schools in Hillsborough, New Jersey were among the first to try out Nexus 7 tablets with Google Play for Education. See the difference it made for students, teachers, and administrators.",
-    "keywords": [],
-    "type": "video",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [
-      "#engagement",
-    ],
-    "url": "https://www.youtube.com/yt/dev/",
-    "timestamp": 1383243492000,
-    "image": "https://www.youtube.com/yt/dev/media/images/yt-dev-home-hero.jpg",
-    "title": "YouTube for Developers",
-    "summary": "The YouTube APIs and Tools enable you to integrate YouTube's video content and functionality into your website, app, or device.",
-    "keywords": [],
-    "type": "youtube",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [
-      "#engagement",
-    ],
-    "url": "https://www.google.com/analytics/mobile/",
-    "timestamp": 1383243492000,
-    "image": "images/cards/analytics-mobile_2x.jpg",
-    "title": "Mobile App Analytics",
-    "summary": "Mobile App Analytics measures what matters most at all key stages: from first discovery and download to in-app purchases. ",
-    "keywords": ["analytics,user behavior"],
-    "type": "Guide",
-    "titleFriendly": ""
-  },
-
-
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [
-      "#gcm",
-    ],
-    "url": "https://www.youtube.com/watch?v=y76rjidm8cU",
-    "timestamp": 1383243492000,
-    "image": "https://1.bp.blogspot.com/-IF-1-1kA0sg/UYwTidxdi3I/AAAAAAAAAEU/ellLeQ-E1vs/s800/google-io-lockup-2.png",
-    "title": "Google Cloud Messaging at I/O 2013",
-    "summary": "Google Cloud Messaging allows your services to efficiently send data to applications on Android devices. See what's new, and learn how to use GCM to make your apps more efficient.",
-    "keywords": ["gcm"],
-    "type": "youtube",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [
-      "#gcm",
-    ],
-    "url": "https://developer.chrome.com/apps/cloudMessagingV2",
-    "timestamp": 1383243492000,
-    "image": "images/kk-chromium-icon.png",
-    "title": "Google Cloud Messaging for Chrome",
-    "summary": "Google Cloud Messaging for Chrome (GCM) is a service for signed-in Chrome users that helps developers send message data from servers to their Chrome apps and extensions.",
-    "keywords": ["gcm"],
-    "type": "guide",
-    "titleFriendly": ""
-  },
-
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [
-      "#sdkupdates"
-    ],
-    "url": "https://android-developers.blogspot.com/2013/07/making-beautiful-android-app-icons.html",
-    "timestamp": 1194884220000,
-    "image": null,
-    "title": "Make Beautiful Android App Icons",
-    "summary": "Follow these in-depth launcher icon tips on the Android Developers blog.",
-    "keywords": [],
-    "type": "blog",
-    "titleFriendly": ""
-  },
-     {
-    "lang": "en",
-    "group": "",
-    "tags": [
-      "#sdkupdates"
-    ],
-    "url": "https://android-developers.blogspot.com/2012/12/localize-your-promotional-graphics-on.html",
-    "timestamp": 1194884220000,
-    "image": null,
-    "title": "Localize Your Promotional Graphics",
-    "summary": "Learn how to capitalise on international audiences.",
-    "keywords": [],
-    "type": "blog",
-    "titleFriendly": ""
-  },
-   {
-    "lang": "en",
-    "group": "",
-    "tags": [
-      "#sdkupdates"
-    ],
-    "url": "https://android-developers.blogspot.com/2013/10/making-your-app-content-more-accessible.html",
-    "timestamp": 1194884220000,
-    "image": null,
-    "title": "Make your App Content more Accessible with App Linking",
-    "summary": "About using search and deep linking to get more users.",
-    "keywords": [],
-    "type": "blog",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://developers.google.com/+/mobile/android/share/interactive-post",
-    "timestamp": 1194884220000,
-    "image": 'images/google/gps-googleplus.png',
-    "title": "Sharing interactive posts to Google+ from your Android app",
-    "summary": "Interactive posts provide an easy and prominent way to allow users to share your site or app with their friends and invite them to take a specific action.",
-    "keywords": ["Interactive", "Google+"],
-    "type": "guide",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://developers.google.com/+/mobile/android/",
-    "timestamp": 1194884220000,
-    "image": 'images/google/gps-googleplus.png',
-    "title": "Google+ Platform",
-    "summary": "Find out about features such as interactive posts, Hangouts, accessing basic user details and their social graphs to make your app more personal.",
-    "keywords": ["Google+"],
-    "type": "guide",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://support.google.com/googleplay/android-developer/answer/2528691",
-    "timestamp": 1194884220000,
-    "image": "images/play_dev.jpg",
-    "title": "How to add multiple user accounts to your Developer Console for testing and more.",
-    "summary": "",
-    "keywords": [],
-    "type": "guide",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://developers.google.com/+/mobile/android/share/deep-link",
-    "timestamp": 1194884220000,
-    "image": null,
-    "title": "Adding deep linking to Google+ posts shared from your Android app",
-    "summary": "",
-    "keywords": [],
-    "type": "guide",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "google/play/licensing/index.html",
-    "timestamp": 1194884220000,
-    "image": null,
-    "title": "Application Licensing",
-    "summary": "Information on the features of Google Play to protect your apps’ licences.",
-    "keywords": [],
-    "type": "guide",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "design/style/writing.html",
-    "timestamp": 1194884220000,
-    "image": null,
-    "title": "Writing Style",
-    "summary": "Android Design guidelines for voice and style in your UI.",
-    "keywords": [],
-    "type": "guide",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://en.wikipedia.org/wiki/XLIFF",
-    "timestamp": 1194884220000,
-    "image": null,
-    "title": "XML Localisation Interchange File Format (XLIFF)",
-    "summary": "Background information on XLIFF.",
-    "keywords": [],
-    "type": "guide",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://support.google.com/googleplay/android-developer/answer/1078870",
-    "timestamp": 1194884220000,
-    "image": "images/play_dev.jpg",
-    "title": "Graphic Assets for your Application",
-    "summary": "Details about the graphics you can add to your product listing.",
-    "keywords": [],
-    "type": "guide",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "zh-cn",
-    "group": "",
-    "tags": [],
-    "url": "https://support.google.com/googleplay/android-developer/answer/1078870?hl=zh-Hans",
-    "timestamp": 1194884220000,
-    "image": "images/play_dev.jpg",
-    "title": "为你的应用的图片资源",
-    "summary": "如何在你的应用的商品详情页面上添加图片资源。",
-    "keywords": [],
-    "type": "guide",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://support.google.com/payments/answer/2741495",
-    "timestamp": null,
-    "image": null,
-    "title": "Issuing Refunds",
-    "summary": "Help Center document describing how to issue refunds.",
-    "keywords": [],
-    "type": "guide",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "zh-cn",
-    "group": "",
-    "tags": [],
-    "url": "https://support.google.com/payments/answer/2741495?hl=zh-Hans",
-    "timestamp": null,
-    "image": null,
-    "title": "退回訂單款項",
-    "summary": "如何退还已收取的订单款项。",
-    "keywords": [],
-    "type": "guide",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://android-developers.blogspot.com/2013/11/bring-your-apps-into-classroom-with.html",
-    "timestamp": null,
-    "image": "distribute/images/gp-edu-apps-image.jpg",
-    "title": "Google play for education",
-    "summary": " ",
-    "keywords": [],
-    "type": "distribute",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": ["localization", "pricing", "developer support"],
-    "url": "https://support.google.com/googleplay/android-developer/table/3541286",
-    "timestamp": null,
-    "image": "images/play_dev.jpg",
-    "title": "Supported locations for distributing your apps in Google Play",
-    "summary": "Countries and regions where you can distribute your app in Google Play.",
-    "keywords": [],
-    "type": "distribute",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "zh-cn",
-    "group": "",
-    "tags": ["localization", "pricing", "developer support"],
-    "url": "https://support.google.com/googleplay/android-developer/table/3541286?hl=zh-Hans",
-    "timestamp": null,
-    "image": "images/play_dev.jpg",
-    "title": "支持向Google Play用户发布应用的地区",
-    "summary": "支持向Google Play用户发布应用的国家/地区。",
-    "keywords": [],
-    "type": "distribute",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": ["games", "localization", "quality"],
-    "url": "https://www.youtube.com/watch?v=SkHHPf3EdzE",
-    "timestamp": null,
-    "image": "https://developers.google.com/apps/images/io_2013/google-io-logo.png",
-    "title": "Level Up Your Android Game",
-    "summary": "Learn how to take your game to the next level in this Google I/O session.",
-    "keywords": [],
-    "type": "distribute",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": ["support"],
-    "url": "https://support.google.com/groups/answer/46601",
-    "timestamp": null,
-    "image": null,
-    "title": "Google Groups",
-    "summary": "Create a group for your community.",
-    "keywords": [],
-    "type": "distribute",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": ["support"],
-    "url": "https://support.google.com/plus/topic/2888488",
-    "timestamp": null,
-    "image": null,
-    "title": "Google+ Communities",
-    "summary": "Host a Google+ community for testers or users.",
-    "keywords": [],
-    "type": "distribute",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": ["monetize", "ads"],
-    "url": "https://www.google.com/doubleclick/publishers/small-business/index.html",
-    "timestamp": null,
-    "image": "https://www.google.com/doubleclick/publishers/small-business/images/define_ad.png",
-    "title": "DoubleClick for Publishers",
-    "summary": "A free ad management solution that helps growing publishers sell, schedule, deliver, and measure all of their digital ad inventory.",
-    "keywords": ["ads"],
-    "type": "distribute",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": ["monetize", "ads"],
-    "url": "https://support.google.com/googleplay/android-developer/topic/2985714",
-    "timestamp": null,
-    "image":"images/play_dev.jpg",
-    "title": "Policy Center: Ads",
-    "summary": "Introduction to ads and system interference policies in Google Play.",
-    "keywords": ["ads"],
-    "type": "distribute",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://support.google.com/analytics/answer/2611404",
-    "timestamp": null,
-    "image": "images/cards/analytics-mobile_2x.jpg",
-    "title": "Create Audience lists in Google Analytics",
-    "summary": "Find out how to use your analytics data to discover high value users and create remarketing audiences to use in AdMob.",
-    "keywords": ["ads, analytics, monetize"],
-    "type": "distribute",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://admob.blogspot.com/",
-    "timestamp": null,
-    "image": "images/cards/analytics-mobile_2x.jpg",
-    "title": "Inside Admob",
-    "summary": "Google’s official blog for news, tips, and information on the AdMob developer platform.",
-    "keywords": ["ads, analytics, monetize"],
-    "type": "distribute",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://support.google.com/admob/answer/3111064",
-    "timestamp": null,
-    "image": "distribute/images/advertising.jpg",
-    "title": "AdMob in-app conversion tracking",
-    "summary": "Use in-app conversion tracking to attribute revenue back to your IAP promotion campaigns and determine which ones earn you the most.",
-    "keywords": ["ads, analytics, conversions"],
-    "type": "distribute",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": ["monetize", "giftcards"],
-    "url": "https://play.google.com/about/giftcards/",
-    "timestamp": null,
-    "image": "images/gp-balance.png",
-    "title": "Google Play Gift Cards",
-    "summary": "Buy Google Play gift cards online or at a variety of retail stores.",
-    "keywords": ["gift card"],
-    "type": "distribute",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": ["monetize", "paymentmethods"],
-    "url": "https://support.google.com/googleplay/answer/2651410",
-    "timestamp": null,
-    "image": "images/play_dev.jpg",
-    "title": "Google Play accepted payment methods",
-    "summary": "Support details on the payment methods supported in Google Play.",
-    "keywords": ["gift card"],
-    "type": "distribute",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://support.google.com/adwords/answer/2471188",
-    "timestamp": null,
-    "image": "images/play_dev.jpg",
-    "title": "AdWords Conversion Optimizer",
-    "summary": "Learn how Conversion Optimizer works to find the users who are most likely to convert and to serve them your conversion ads.",
-    "keywords": [],
-    "type": "distribute",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://developers.google.com/app-conversion-tracking/",
-    "timestamp": null,
-    "image": "images/play_dev.jpg",
-    "title": "Track conversions with the AdWords SDK or server API",
-    "summary": "Use the lightweight AdWords app SDK or server-to-server API to track remarketing conversions.",
-    "keywords": [],
-    "type": "distribute",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://support.google.com/analytics/answer/2611404",
-    "timestamp": null,
-    "image": "images/play_dev.jpg",
-    "title": "Create Remarketing Audiences in Google Analytics",
-    "summary": "Learn how to use preconfigured audiences created by the Analytics team or create your own to use in your conversion campaigns.",
-    "keywords": [],
-    "type": "distribute",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://support.google.com/adwords/answer/1704341",
-    "timestamp": null,
-    "image": "images/play_dev.jpg",
-    "title": "Link your Google Analytics and AdWords accounts",
-    "summary": "Gain greater insight into how AdWords is driving app engagement and conversions, and use this insight to improve your ads and app.",
-    "keywords": [],
-    "type": "distribute",
-    "titleFriendly": ""
-  },
-
-  {
-    "lang": "en",
-    "group": "",
-    "tags": ["plus", "social"],
-    "url": "https://plus.google.com/+AndroidDevelopers/",
-    "timestamp": null,
-    "image": "images/plus.jpg",
-    "title": "+Android Developers",
-    "summary": "Sharing news, ideas, and techniques for success.",
-    "keywords": ["+AndroidDevelopers"],
-    "type": "Google+",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": ["plus", "social"],
-    "url": "https://plus.google.com/+GooglePlay",
-    "timestamp": null,
-    "image": "https://lh4.googleusercontent.com/-IKezweZlcXI/AAAAAAAAAAI/AAAAAAABOvg/uK8Z0jekVE4/s120-c/photo.jpg",
-    "title": "+Google Play",
-    "summary": "News and discussion about Google Play, apps, and other content in Google+.",
-    "keywords": ["+GooglePlay"],
-    "type": "Google+",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": ["support", "android"],
-    "url": "support.html",
-    "timestamp": null,
-    "image": null,
-    "title": "Developer Support",
-    "summary": "Links to community and support resources for Android developers.",
-    "keywords": ["support"],
-    "type": "Google+",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://developers.google.com/analytics/devguides/collection/android/",
-    "timestamp": null,
-    "image": "images/cards/analytics-mobile_2x.jpg",
-    "title": "Mobile App Analytics SDK",
-    "summary": "Measure everything about your app. Get started with the Google Analytics SDK for Android.",
-    "keywords": ["analytics, user behavior"],
-    "type": "sdk",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://developers.google.com/edu/guidelines",
-    "timestamp": null,
-    "image": "https://developer.android.com/distribute/images/edu-guidelines.jpg",
-    "title": "Education Guidelines",
-    "summary": "These guidelines and requirements help you develop great apps for students, which offer compelling content and an intuitive user experience on Android tablets.",
-    "keywords": [],
-    "type": "",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "zh-cn",
-    "group": "",
-    "tags": [],
-    "url": "https://developers.google.com/edu/guidelines?hl=zh-Hans",
-    "timestamp": null,
-    "image": "https://developer.android.com/distribute/images/edu-guidelines.jpg",
-    "title": "Education Guidelines",
-    "summary": "These guidelines and requirements help you develop great apps for students, which offer compelling content and an intuitive user experience on Android tablets.",
-    "keywords": [],
-    "type": "",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://developers.google.com/edu/faq",
-    "timestamp": null,
-    "image": "https://developer.android.com/distribute/images/gpfe-faq.jpg",
-    "title": "Education FAQ",
-    "summary": "Answers to common questions you might have about Google Play for Education.",
-    "keywords": [],
-    "type": "",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://developers.google.com/edu/",
-    "timestamp": null,
-    "image": "https://developers.google.com/edu/images/home-android.png",
-    "title": "Chrome Apps in Google Play for Education",
-    "summary": "Find out more about Chrome apps in Google Play for Education.",
-    "keywords": [],
-    "type": "",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://www.google.com/edu/tablets/#tablets-family",
-    "timestamp": null,
-    "image": "https://www.google.com/edu/images/tablets/big-tablet.png",
-    "title": "Google Play for Education Tablets",
-    "summary": "Google Play for Education leverages a diverse set up tablets approved for the classroom which may help inform you how to build educational apps.",
-    "keywords": [],
-    "type": "",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://storage.googleapis.com/androiddevelopers/shareables/stories/Glu_Deerhunter2014_gpgs.pdf",
-    "timestamp": null,
-    "image": "https://storage.googleapis.com/androiddevelopers/shareables/stories/Glu_Deerhunter2014_gpgs.png",
-    "title": "Deer Hunter 2014 by Glu &mdash; Sign-in",
-    "summary": "Glu finds that Google Play Game Services helps improve the user experience which leads to increased player happiness. They also find that Play Games Services signed in users tend to play longer and have a higher lifetime value.",
-    "keywords": ["stories"],
-    "type": "Case Study Deck",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://storage.googleapis.com/androiddevelopers/shareables/stories/ConcreteSoftware_PBABowling_gpgs.pdf",
-    "timestamp": null,
-    "image": "https://storage.googleapis.com/androiddevelopers/shareables/stories/ConcreteSoftware_PBABowling_gpgs.png",
-    "title": "PBA® Bowling Challenge by Concrete Software &mdash; Quests",
-    "summary": "Concrete Software finds that Google Play Game Services' quests are a great way to create new content for users that leads to higher engagement.",
-    "keywords": ["stories"],
-    "type": "Case Study Deck",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://storage.googleapis.com/androiddevelopers/shareables/stories/Dragonplay_DragonplaySlots_gpgs.pdf",
-    "timestamp": null,
-    "image": "https://storage.googleapis.com/androiddevelopers/shareables/stories/Dragonplay_DragonplaySlots_gpgs.png",
-    "title": "Dragonplay Slots by Dragonplay &mdash; Sign-in",
-    "summary": "Dragonplay finds that players who sign in with Google Play Games services tend to be high quality users who were highly engaged. They also tend to be easier to convert to paying users.",
-    "keywords": ["stories"],
-    "type": "Case Study Deck",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://storage.googleapis.com/androiddevelopers/shareables/stories/Gameloft_Asphalt8_gpgs.pdf",
-    "timestamp": null,
-    "image": "https://storage.googleapis.com/androiddevelopers/shareables/stories/Gameloft_Asphalt8_gpgs.png",
-    "title": "Asphalt 8 by Gameloft &mdash; Friends invitations",
-    "summary": "Gameloft finds that Google Play Game Services users are more engaged than the average Android user and more likely to convert to paying players.",
-    "keywords": ["stories"],
-    "type": "Case Study Deck",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://storage.googleapis.com/androiddevelopers/shareables/stories/Glu_EternityWarriors3_gpgs.pdf",
-    "timestamp": null,
-    "image": "https://storage.googleapis.com/androiddevelopers/shareables/stories/Glu_EternityWarriors3_gpgs.png",
-    "title": "Eternity Warriors 3 by Glu &mdash; Gifting",
-    "summary": "Glu finds that Google Play Game Services gifting outperforms other implementations (including those with incentives) because of its seamless flow and consistent performance.",
-    "keywords": ["stories"],
-    "type": "Case Study Deck",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://storage.googleapis.com/androiddevelopers/shareables/stories/HotheadGames_RivalsatWar_gpgs.pdf",
-    "timestamp": null,
-    "image": "https://storage.googleapis.com/androiddevelopers/shareables/stories/HotheadGames_RivalsatWar_gpgs.jpg",
-    "title": "Rivals at War: Firefight by Hothead Games &mdash; Leaderboards",
-    "summary": "Hothead Games is planning to include Google Play Game Services features in all their games going forwards after seeing that players that signed in with Play Games Services tend to show higher retention and a higher average revenue.",
-    "keywords": ["stories"],
-    "type": "Case Study Deck",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://storage.googleapis.com/androiddevelopers/shareables/stories/TMSOFT_Compulsive_gpgs.pdf",
-    "timestamp": null,
-    "image": "https://storage.googleapis.com/androiddevelopers/shareables/stories/TMSOFT_Compulsive_gpgs.png",
-    "title": "Compulsive by TMSOFT &mdash; Cross-platform",
-    "summary": "TMSOFT finds that users who authenticate with Play Games Services on Android and iOS play Compulsive twice as much and purchase in-app products over four times as much.",
-    "keywords": ["stories"],
-    "type": "Case Study Deck",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://storage.googleapis.com/androiddevelopers/shareables/stories/Noodlecake_SuperStickmanGolf2_gpgs.pdf",
-    "timestamp": null,
-    "image": "https://storage.googleapis.com/androiddevelopers/shareables/stories/Noodlecake_SuperStickmanGolf2_gpgs.png",
-    "title": "Super Stickman Golf 2 by Noodlecake Studios &mdash; Multiplayer",
-    "summary": "Noodlecake Studios finds that Google Play Game Services’ multiplayer feature helps reduce attrition.",
-    "keywords": ["stories"],
-    "type": "Case Study Deck",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://storage.googleapis.com/androiddevelopers/shareables/stories/TinyRebel_DoctorWhoLegacy_gpgs.pdf",
-    "timestamp": null,
-    "image": "https://storage.googleapis.com/androiddevelopers/shareables/stories/TinyRebelGames_DrWhoLegacy_pgps.png",
-    "title": "Dr. Doctor Who: Legacy by Tiny Rebel Games &mdash; Achievements",
-    "summary": "After integrating achievements and cloud services from Google Play Game Services, Tiny Rebel Games saw a dramatic increase in daily revenues as a result of an increase in daily installs and an increase in the average revenue per install.",
-    "keywords": ["stories"],
-    "type": "Case Study Deck",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://storage.googleapis.com/androiddevelopers/shareables/stories/Senri_LeosFortune_gpgs.pdf",
-    "timestamp": null,
-    "image": "https://storage.googleapis.com/androiddevelopers/shareables/stories/Senri_LeosFortune_gpgs.png",
-    "title": "Leo’s Fortune by 1337 &amp; Senri &mdash; Saved games",
-    "summary": "1337 + Senri finds that Google Play Game Services is easy to integrate and provides essential game functions like cloud saved games, achievements and leaderboards which have a very large adoption rate amongst players.",
-    "keywords": ["stories"],
-    "type": "Case Study Deck",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": ["play,protips"],
-    "url": "shareables/distribute/secrets_play/v2/web/secrets_to_app_success_v2_en.pdf",
-    "timestamp": 1447437450,
-    "image": "images/distribute/secrets_v2_banner.jpg",
-    "title": "The Secrets to App Success on Google Play",
-    "summary": "Get the updated guide full of useful features, tips, and best practices that will help you grow a successful app or game business on Google Play.",
-    "keywords": ["secrets, success, play, google"],
-    "type": "Book",
-    "category": "distribute"
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "shareables/auto/AndroidAuto-audio-apps.pdf",
-    "timestamp": null,
-    "image": "auto/images/assets/icons/media_app_playback.png",
-    "title": "Android Auto Audio Apps UI Guidelines",
-    "summary": "Guidelines for designing audio apps that work with Auto. ",
-    "keywords": ["design", "Auto", "Automotive"],
-    "type": "Design",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "shareables/auto/AndroidAuto-messaging-apps.pdf",
-    "timestamp": null,
-    "image": "auto/images/assets/icons/messaging_app_notifications.png",
-    "title": "Android Auto Messaging Apps UI Guidelines",
-    "summary": "Guidelines for designing messaging apps that work with Auto. ",
-    "keywords": ["design", "Auto", "Automotive"],
-    "type": "Design",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "shareables/auto/AndroidAuto-custom-colors.pdf",
-    "timestamp": null,
-    "image": "auto/images/ui/gearhead_generic_UI.png",
-    "title": "Android Auto Color Customization UI Guidelines",
-    "summary": "Guidelines for color-customizing apps that work with Auto. ",
-    "keywords": ["design", "Auto", "Automotive"],
-    "type": "Design",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "http://www.youtube.com/watch?v=RRelFvc6Czo",
-    "timestamp": null,
-    "image": "https://i1.ytimg.com/vi/RRelFvc6Czo/maxresdefault.jpg",
-    "title": "Android Developer Story: Smule",
-    "summary": "The creators of AutoRap, Magic Piano, and Songify talk about their experiences launching on Android and the explosive global growth they've seen on Google Play.",
-    "keywords": ["success", "users"],
-    "type": "video",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://developers.google.com/analytics/solutions/mobile-implementation-guide",
-    "timestamp": null,
-    "image": "images/cards/analytics-mobile_2x.jpg",
-    "title": "Mobile Analytics Implementation Guide",
-    "summary": "Learn how you can implement additional Google Analytics features to better understand your users and their behavior.",
-    "keywords": ["analytics", "Play", "users"],
-    "type": "guide",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://www.google.com/tagmanager/",
-    "timestamp": null,
-    "image": "https://www.google.com/tagmanager/images/gtm-hero-illustration-small.png",
-    "title": "Google Tag Manager",
-    "summary": "Google Tag Manager enables you to change configuration values in your mobile apps using the Google Tag Manager interface, without having to rebuild and resubmit application binaries to app marketplaces.",
-    "keywords": ["analytics", "tagmanager"],
-    "type": "guide",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://analyticsacademy.withgoogle.com/course04",
-    "timestamp": null,
-    "image": "images/cards/analytics-mobile_2x.jpg",
-    "title": "Mobile App Analytics Fundamentals",
-    "summary": "This self-paced online course on mobile app measurement shows you how Google Analytics data can help you make your app more discoverable and profitable.",
-    "keywords": ["analytics"],
-    "type": "Open Source Project",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://github.com/googleanalytics/google-analytics-plugin-for-unity",
-    "timestamp": null,
-    "image": "images/cards/analytics-mobile_2x.jpg",
-    "title": "Analytics Plugin for Unity",
-    "summary": "If you're building games with Unity, you can now implement Analytics once and ship it on multiple platforms automatically.",
-    "keywords": ["analytics", "unity"],
-    "type": "Open Source Project",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://developers.google.com/analytics/devguides/collection/android/v4/enhanced-ecommerce",
-    "timestamp": null,
-    "image": "images/cards/analytics-mobile_2x.jpg",
-    "title": "In-App Purchases & Ecommerce",
-    "summary": "If your app sells virtual or real goods, ecommerce tracking can help you understand what behaviors lead to purchases.",
-    "keywords": ["analytics, ecommerce"],
-    "type": "Guide",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://support.google.com/analytics/answer/1032415",
-    "timestamp": null,
-    "image": "images/cards/analytics-mobile_2x.jpg",
-    "title": "Goals",
-    "summary": "Track important actions in your app as goals and measure performance against your objectives.",
-    "keywords": ["analytics"],
-    "type": "Guide",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://support.google.com/analytics/answer/2568874?ref_topic=6012392",
-    "timestamp": null,
-    "image": "images/cards/analytics-mobile_2x.jpg",
-    "title": "Active Users",
-    "summary": "The active user report displays your 1-day, 7-day, 14-day and 30-day trailing active users next to each other, to help you analyze performance over time.",
-    "keywords": ["analytics"],
-    "type": "Guide",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://developers.google.com/analytics/devguides/collection/android/v4/events",
-    "timestamp": null,
-    "image": "images/cards/analytics-mobile_2x.jpg",
-    "title": "Events",
-    "summary": "Events let you measure granular in-app activities and understand user journeys.",
-    "keywords": ["analytics"],
-    "type": "Guide",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://developers.google.com/analytics/devguides/collection/android/v4/customdimsmets",
-    "timestamp": null,
-    "image": "images/cards/analytics-mobile_2x.jpg",
-    "title": "Custom Dimensions",
-    "summary": "Custom dimensions enable the association of metadata with hits, users, and sessions in Google Analytics.",
-    "keywords": ["analytics"],
-    "type": "Guide",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://developers.google.com/analytics/devguides/collection/android/v4/user-id",
-    "timestamp": null,
-    "image": "images/cards/analytics-mobile_2x.jpg",
-    "title": "User ID",
-    "summary": "The User ID feature enables Google Analytics to measure user activities that span across devices.",
-    "keywords": ["analytics"],
-    "type": "Guide",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://developers.google.com/analytics/devguides/collection/android/v4/display-features",
-    "timestamp": null,
-    "image": "images/cards/analytics-mobile_2x.jpg",
-    "title": "Demographic Reporting",
-    "summary": "By enabling display features, you can see just how different user segments engage and monetize.",
-    "keywords": ["analytics"],
-    "type": "Guide",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://support.google.com/analytics/answer/3123906",
-    "timestamp": null,
-    "image": "images/cards/analytics-mobile_2x.jpg",
-    "title": "User Segmentation",
-    "summary": "Segments let you compare metrics for different subsets of users to identify trends and opportunities for your apps.",
-    "keywords": ["analytics"],
-    "type": "Guide",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://developers.google.com/analytics/devguides/collection/android/v4/campaigns",
-    "timestamp": null,
-    "image": "images/cards/analytics-mobile_2x.jpg",
-    "title": "Campaign Tracking",
-    "summary": "Measuring campaigns in Google Analytics enables the attribution of campaigns and traffic sources to user activity within your app.",
-    "keywords": ["analytics"],
-    "type": "Guide",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://support.google.com/analytics/answer/2956981",
-    "timestamp": null,
-    "image": "images/play_dev.jpg",
-    "title": "Google Play Integration",
-    "summary": "By linking Analytics and the Play Developer Console, you can gain additional insights into the acquisition flow.",
-    "keywords": ["play, analytics"],
-    "type": "Guide",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://support.google.com/analytics/answer/1033961",
-    "timestamp": null,
-    "image": "images/cards/analytics-mobile_2x.jpg",
-    "title": "AdWords Integration",
-    "summary": "Link Analytics and AdWords to see the entire picture of customer behavior, from ad click or impression through your site to conversion. ",
-    "keywords": ["adwords, analytics"],
-    "type": "Guide",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://developers.google.com/analytics/devguides/collection/android/v4/campaigns#google-play-url-builder",
-    "timestamp": null,
-    "image": "images/cards/analytics-mobile_2x.jpg",
-    "title": "Campaign URL builder for Google Play",
-    "summary": "Easily create your URLs to track install campaigns.",
-    "keywords": ["play, analytics"],
-    "type": "Guide",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://support.google.com/tagmanager/answer/6003007",
-    "timestamp": null,
-    "image": "https://www.google.com/tagmanager/images/gtm-hero-illustration-small.png",
-    "title": "In-App A/B Testing",
-    "summary": "With content experiments in Google Tag Manager you can test multiple variations of your app to find which works best.",
-    "keywords": ["tagmanager"],
-    "type": "Guide",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://support.google.com/analytics/answer/2785577",
-    "timestamp": null,
-    "image": "images/cards/analytics-mobile_2x.jpg",
-    "title": "Behavior Flow",
-    "summary": "The Behavior Flow report visualizes the path users traveled from one Screen or Event to the next. This report can help you discover what content keeps users engaged with your app.",
-    "keywords": ["analytics"],
-    "type": "Guide",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://support.google.com/analytics/answer/1151300",
-    "timestamp": null,
-    "image": "images/cards/analytics-mobile_2x.jpg",
-    "title": "Custom Reports",
-    "summary": "Custom Reports let you create your own reports in your Google Analytics account.",
-    "keywords": ["analytics"],
-    "type": "Guide",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://support.google.com/analytics/answer/2611268",
-    "timestamp": null,
-    "image": "images/cards/analytics-mobile_2x.jpg",
-    "title": "Audience Lists &amp; Remarketing",
-    "summary": "Remarketing with Google Analytics lets you deliver targeted ads to users who've already been to your site or app. You can even base those ads on the behavior those users displayed during their sessions.",
-    "keywords": ["analytics"],
-    "type": "Guide",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://support.google.com/admob/answer/3508177",
-    "timestamp": null,
-    "image": "images/cards/analytics-mobile_2x.jpg",
-    "title": "AdMob Integration",
-    "summary": "With Google Analytics in AdMob, you can view Google Analytics data for your linked apps from within your AdMob account.",
-    "keywords": ["analytics"],
-    "type": "Guide",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://developers.google.com/analytics/solutions/mobile-campaign-deep-link",
-    "timestamp": null,
-    "image": "images/cards/analytics-mobile_2x.jpg",
-    "title": "Deep-Linking",
-    "summary": "Google Analytics gives you a full view of how returning users are interacting with your app, for a holistic view beyond the install.",
-    "keywords": ["analytics"],
-    "type": "Guide",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://support.google.com/admob/answer/3508177",
-    "timestamp": null,
-    "image": "images/cards/analytics-mobile_2x.jpg",
-    "title": "AdMob Integration",
-    "summary": "With Google Analytics in AdMob, you can view Google Analytics data for your linked apps from within your AdMob account.",
-    "keywords": ["analytics"],
-    "type": "Guide",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://support.google.com/analytics/answer/2568874",
-    "timestamp": null,
-    "image": "images/cards/analytics-mobile_2x.jpg",
-    "title": "Active User Report",
-    "summary": "Active user report displays your 1-day, 7-day, 14-day and 30-day trailing active users next to each other, to help you run benchmark analyses of their performance over time.",
-    "keywords": ["analytics"],
-    "type": "Guide",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://www.google.com/design/spec/animation/",
-    "timestamp": null,
-    "image": "images/cards/material-animation_2x.png",
-    "title": "Animation",
-    "summary": "",
-    "keywords": [],
-    "type": "material design",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://www.google.com/design/spec/style/",
-    "timestamp": null,
-    "image": "images/cards/material-style_2x.jpg",
-    "title": "Style",
-    "summary": "",
-    "keywords": [],
-    "type": "material design",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://www.google.com/design/spec/layout/",
-    "timestamp": null,
-    "image": "images/cards/material-layout_2x.png",
-    "title": "Layout",
-    "summary": "",
-    "keywords": [],
-    "type": "material design",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://www.google.com/design/spec/components/",
-    "timestamp": null,
-    "image": "images/cards/material-components_2x.jpg",
-    "title": "Components",
-    "summary": "",
-    "keywords": [],
-    "type": "material design",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://www.google.com/design/spec/patterns/",
-    "timestamp": null,
-    "image": "images/cards/material-patterns_2x.png",
-    "title": "Patterns",
-    "summary": "",
-    "keywords": [],
-    "type": "material design",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://www.google.com/design/spec/usability/",
-    "timestamp": null,
-    "image": "images/cards/material-usability_2x.png",
-    "title": "Usability",
-    "summary": "",
-    "keywords": [],
-    "type": "material design",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://www.google.com/design/spec/resources/color-palettes.html",
-    "timestamp": null,
-    "image": "images/cards/material-color-palette_2x.jpg",
-    "title": "Color Palettes",
-    "summary": "",
-    "keywords": [],
-    "type": "material design",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://www.google.com/design/spec/resources/layout-templates.html",
-    "timestamp": null,
-    "image": "images/cards/material-layout-template_2x.jpg",
-    "title": "Layout Templates",
-    "summary": "",
-    "keywords": [],
-    "type": "material design",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://www.google.com/design/spec/resources/sticker-sheets-icons.html",
-    "timestamp": null,
-    "image": "images/cards/material-sticker-sheet_2x.jpg",
-    "title": "Sticker Sheets & Icons",
-    "summary": "",
-    "keywords": [],
-    "type": "material design",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://www.google.com/design/spec/resources/roboto-noto-fonts.html",
-    "timestamp": null,
-    "image": "images/cards/material-typography_2x.jpg",
-    "title": "Typography: Roboto and Noto Sans fonts",
-    "summary": "",
-    "keywords": [],
-    "type": "materialdesign",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [
-      "icons",
-      "material",
-      "iconography"
-    ],
-    "url": "https://www.google.com/design/icons/index.html",
-    "timestamp": null,
-    "image": "images/cards/card-material-icons-16x9_2x.jpg",
-    "title": "Material icon collection",
-    "summary": "",
-    "keywords": ["icons"],
-    "type": "material design",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://support.google.com/adwords/answer/6032059",
-    "timestamp": null,
-    "image": "distribute/images/advertising.jpg",
-    "title": "Setting up Mobile App Install Ads",
-    "summary": "With Mobile app installs campaigns on the Search and Display Networks, and TrueView for mobile app promotion on YouTube, you can create custom app install ads that run exclusively on phones and tablets.",
-    "keywords": ["marketing", "admob"],
-    "type": "distribute",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://developers.google.com/nearby/",
-    "timestamp": null,
-    "image": "images/play_dev.jpg",
-    "title": "Create features based on proximity",
-    "summary": "Build simple interactions between nearby devices and people.",
-    "keywords": ["nearby", "engage"],
-    "type": "distribute",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://www.youtube.com/watch?v=hultDpBS22s",
-    "timestamp": null,
-    "image": "images/play_dev.jpg",
-    "title": "Use Nearby Messages to collaborate",
-    "summary": "Nearby Messages is perfect for setting up ad-hoc groups, collaborative sessions, or sharing resources with people in a co-located space.",
-    "keywords": ["nearby", "engage"],
-    "type": "distribute",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://developers.google.com/beacons",
-    "timestamp": null,
-    "image": "images/play_dev.jpg",
-    "title": "Mark up the world using beacons",
-    "summary": "Give your users better location and proximity experiences by providing a strong context signal for their devices in the form of Bluetooth low energy (BLE) beacons with Eddystone.",
-    "keywords": ["nearby", "engage"],
-    "type": "distribute",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://support.google.com/adwords/answer/6167164",
-    "timestamp": null,
-    "image": "distribute/images/advertising.jpg",
-    "title": "Best practices for Mobile App Engagement",
-    "summary": "Learn how to market to your user base to drive re-engagement with your app. ",
-    "keywords": ["marketing", "admob"],
-    "type": "distribute",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [
-      "marketing",
-      "engagement",
-      "adwords1"
-    ],
-    "url": "https://support.google.com/adwords/answer/6032073",
-    "timestamp": null,
-    "image": "https://www.gstatic.com/images/icons/material/product/2x/adwords_64dp.png",
-    "title": "Setting up Mobile App Engagement Ads",
-    "summary": "Mobile app engagement campaigns are a great choice for advertisers focused on connecting with people who already have their app.",
-    "keywords": [
-      "marketing",
-      "engagement",
-      "adwords"
-    ],
-    "type": "distribute",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [
-      "marketing",
-      "engagement",
-      "translate"
-    ],
-    "url": "https://support.google.com/l10n/answer/6359997",
-    "timestamp": null,
-    "image": "images/play_dev.jpg",
-    "title": "Use the App Translation Service",
-    "summary": "The App Translation Service is a human translation service. It makes it easy to order translations for app UI strings, Play Store text, in-app purchase products, and universal app campaign ads.",
-    "keywords": [
-      "marketing",
-      "engagement",
-      "translate"
-    ],
-    "type": "distribute",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [
-      "marketing",
-      "engagement"
-    ],
-    "url": "https://support.google.com/adwords/answer/6167162",
-    "timestamp": null,
-    "image": "https://www.gstatic.com/images/icons/material/product/2x/adwords_64dp.png",
-    "title": "Best Practices for Mobile App Installs",
-    "summary": "Getting your mobile app discovered can be challenging. Learn how to drive downloads of your app and grow a valuable user base.",
-    "keywords": ["marketing", "adwords"],
-    "type": "distribute",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://support.google.com/admob/topic/2784623",
-    "timestamp": null,
-    "image": "distribute/images/advertising.jpg",
-    "title": "Set up your AdMob account",
-    "summary": "Setting up your AdMob account in the right way will help you get the most value, check out the Setup and Basics guide.",
-    "keywords": ["marketing", "admob"],
-    "type": "distribute",
-    "titleFriendly": ""
-    },
-    {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://analyticsacademy.withgoogle.com/mobile-app",
-    "timestamp": null,
-    "image": "distribute/images/advertising.jpg",
-    "title": "Analytics Academy for Mobile Apps",
-    "summary": "Learn how to use Google Analytics to make your app more discoverable and profitable.",
-    "keywords": ["marketing", "analytics"],
-    "type": "distribute",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://www.udacity.com/courses/ud876-3",
-    "timestamp": null,
-    "image": "distribute/images/advertising.jpg",
-    "title": "Learn how to show ads in your Android app",
-    "summary": "Take this online course to learn how to use AdMob to display ads in your Android app.",
-    "keywords": ["marketing", "analytics"],
-    "type": "distribute",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://developers.google.com/mobile-ads-sdk/download",
-    "timestamp": null,
-    "image": "distribute/images/advertising.jpg",
-    "title": "Admob Ads",
-    "summary": "Use the Mobile Ads SDK to start showing AdMob ads in your apps.",
-    "keywords": ["marketing", "adwords"],
-    "type": "Guide",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://support.google.com/admob/",
-    "timestamp": null,
-    "image": "distribute/images/advertising.jpg",
-    "title": "AdMob Help Center",
-    "summary": "For setup assistance, general info, and fixes for specific problems check out the AdMob Help Center.",
-    "keywords": ["admob"],
-    "type": "distribute",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://support.google.com/admob/answer/2753860",
-    "timestamp": null,
-    "image": "distribute/images/advertising.jpg",
-    "title": "AdMob Policy Guidelines",
-    "summary": "Learn about best practices for displaying AdMob ads in your apps to maximize revenue.",
-    "keywords": ["admob"],
-    "type": "distribute",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://developers.google.com/app-invites/",
-    "timestamp": 1383243492000,
-    "image": "images/cards/google-search_2x.png",
-    "title": "Set up App Invites",
-    "summary": "Bring new users to your apps with personal recommendations, incentives, and offers.",
-    "keywords": ["invites", "appinvites", "engagement", "getusers"],
-    "type": "guide",
-    "titleFriendly": ""
-  },
-
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://developers.google.com/app-indexing/",
-    "timestamp": 1383243492000,
-    "image": "images/cards/google-search_2x.png",
-    "title": "Set Up App Indexing",
-    "summary": "Surface your app content in Google seaerch. Deep link direct to your apps.",
-    "keywords": ["search", "appindexing", "engagement", "getusers"],
-    "type": "guide",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://developers.google.com/app-indexing/webmasters/details",
-    "timestamp": null,
-    "image": "images/cards/google-search_2x.png",
-    "title": "Index your app",
-    "summary": "Index your app today by adding deep links and verifying its official web site to ensure it starts appearing in Google Search results. ",
-    "keywords": ["appindexing","search","getusers"],
-    "type": "distribute",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://developers.google.com/identity/sign-in/android/people",
-    "timestamp": 1383243492000,
-    "image": "images/cards/google-sign-in_2x.png",
-    "title": "Get user profile details",
-    "summary": "After users sign-in with Google, you can access their age range, language, and public profile information.",
-    "keywords": ["signin", "identity", "google"],
-    "type": "guide",
-    "titleFriendly": ""
-  },
-
-
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://developers.google.com/identity/sign-in/android/",
-    "timestamp": "",
-    "image": "images/cards/google-sign-in_2x.png",
-    "title": "Google Sign-In",
-    "summary": "Discover how you can enhance user experiences on your website or in your app using information provided by their Google identity.",
-    "keywords": ["signin", "identity", "google"],
-    "type": "guide",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://developers.google.com/+/features/play-installs",
-    "timestamp": 1383243492000,
-    "image": "images/cards/google-sign-in_2x.png",
-    "title": "Over-the-air installs",
-    "summary": "Follow this step-by-step guide to quickly add Google Sign-in and over-the-air app installs to your website.",
-    "keywords": ["signin", "google", "installs"],
-    "type": "guide",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [],
-    "url": "https://developers.google.com/+/features/analytics",
-    "timestamp": 1383243492000,
-    "image": 'images/google/gps-googleplus.png',
-    "title": "Google+ Insights",
-    "summary": "Measure impressions of the over-the-air install prompt, resulting installs, and success rate by day, week, and month.",
-    "keywords": ["signin", "identity"],
-    "type": "guide",
-    "titleFriendly": ""
-  },
-
- // Online courses
-
- {
-    "title":"UX Design for Mobile Developers",
-    "titleFriendly":"",
-    "summary":"Learn how to design a 5-star app.",
-    "url":"https://www.udacity.com/course/ud849",
-    "group":"",
-    "keywords": ["mobile","ux","design"],
-    "tags": ["courses, start"],
-    "image":"images/cards/courses/mobile_ux_course.jpg",
-    "lang":"en",
-    "type":"online course"
-  },
-  {
-    "title":"Developing Android Apps",
-    "titleFriendly":"",
-    "summary":"Learn Android and build an app!",
-    "url":"https://www.udacity.com/course/ud853",
-    "group":"",
-    "keywords": ["android", "start","firstapp","sdk"],
-    "tags": ["courses, start"],
-    "image":"images/cards/courses/android_fundamentals_course.jpg",
-    "lang":"en",
-    "type":"online course"
-  },
-  {
-    "title":"Android Performance",
-    "titleFriendly":"",
-    "summary":"Optimize your apps for speed and usability.",
-    "url":"https://www.udacity.com/course/ud825",
-    "group":"",
-    "keywords": ["android, performance","battery"],
-    "tags": ["courses, performance"],
-    "image":"images/cards/courses/android_performance_course.jpg",
-    "lang":"en",
-    "type":"online course"
-  },
-  {
-    "title":"Enroll in the Android Nanodegree",
-    "titleFriendly":"",
-    "summary":"Enroll in the Android Nanodegree to build the skills to work as an Android developer.",
-    "url":"https://www.udacity.com/android",
-    "group":"",
-    "keywords": ["android, nanodegree"],
-    "tags": ["courses"],
-    "image":"images/cards/courses/android_nanodegree.png",
-    "lang":"en",
-    "type":"online course"
-  },
-  {
-    "title":"Advanced Android App Development",
-    "titleFriendly":"",
-    "summary":"Productionize and publish your apps.",
-    "url":"https://www.udacity.com/course/ud855",
-    "group":"",
-    "keywords": ["android, experts"],
-    "tags": ["courses, expert"],
-    "image":"images/cards/courses/advanced_android_course.jpg",
-    "lang":"en",
-    "type":"online course"
-  },
-  {
-    "title":"Material Design for Android Developers",
-    "titleFriendly":"",
-    "summary":"Learn how to make your apps material.",
-    "url":"https://www.udacity.com/course/ud862",
-    "group":"",
-    "keywords": ["android, design, pure, material"],
-    "tags": ["courses, start, material"],
-    "image":"images/cards/courses/android_design_course.jpg",
-    "lang":"en",
-    "type":"online course"
-  },
-  {
-    "title":"Android for Beginners",
-    "titleFriendly":"",
-    "summary":"Make your first Android app, even if you don't write code.",
-    "url":"https://www.udacity.com/course/ud837",
-    "group":"",
-    "keywords": ["android, sdk, firstapp"],
-    "tags": ["courses, start"],
-    "image":"images/cards/courses/beginning_android_course.jpg",
-    "lang":"en",
-    "type":"online course"
-  },
-  {
-    "title":"Gradle for Android and Java",
-    "titleFriendly":"",
-    "summary":"Build better apps through automation",
-    "url":"https://www.udacity.com/course/ud867",
-    "group":"",
-    "keywords": ["gradle","studio", "sdk"],
-    "tags": ["courses, gradle, sdk"],
-    "image":"images/cards/courses/gradle_course.jpg",
-    "lang":"en",
-    "type":"online course"
-  },
-  {
-    "title":"Add Location and Context to your app",
-    "titleFriendly":"",
-    "summary":"Make Your Android App Location Aware.",
-    "url":"https://www.udacity.com/course/ud876-1",
-    "group":"",
-    "keywords": ["google services, context, location"],
-    "tags": ["courses, google, location, context"],
-    "image":"images/cards/courses/android_location_course.png",
-    "lang":"en",
-    "type":"online course"
-  },
-  {
-    "title":"Analytics and Tag Manager for Android",
-    "titleFriendly":"",
-    "summary":"Use Analytics and Tag Manager in Your Apps.",
-    "url":"https://www.udacity.com/course/ud876-2",
-    "group":"",
-    "keywords": ["google services, analytics, tag manager"],
-    "tags": ["courses, google, analytics"],
-    "image":"images/cards/courses/android_analytics_course.png",
-    "lang":"en",
-    "type":"online course"
-  },
-  {
-    "title":"AdMob for Android",
-    "titleFriendly":"",
-    "summary":"Monetize Your App by Displaying Ads.",
-    "url":"https://www.udacity.com/course/ud876-3",
-    "group":"",
-    "keywords": ["monetize, google services, ads, admob"],
-    "tags": ["courses, google, ads, admob"],
-    "image":"images/cards/courses/admob_course.png",
-    "lang":"en",
-    "type":"online course"
-  },
-  {
-    "title":"Add Maps to your Android app",
-    "titleFriendly":"",
-    "summary":"Use maps, cameras, markers and more in your app.",
-    "url":"https://www.udacity.com/course/ud876-4",
-    "group":"",
-    "keywords": ["google, maps, marker, camera"],
-    "tags": ["courses, google, maps"],
-    "image":"images/cards/courses/android_maps_course.png",
-    "lang":"en",
-    "type":"online course"
-  },
-  {
-    "title":"Add Sign-in to your Android app",
-    "titleFriendly":"",
-    "summary":"Build a Seamless Sign-In Experience.",
-    "url":"https://www.udacity.com/course/ud876-5",
-    "group":"",
-    "keywords": ["google services, signin, authorization"],
-    "tags": ["courses, google, auth"],
-    "image":"images/cards/courses/android_identity_course.png",
-    "lang":"en",
-    "type":"online course"
-  },
-  {
-    "title":"Android Wear Development",
-    "titleFriendly":"",
-    "summary":"Extend your Apps to Android Smartwatches.",
-    "url":"https://www.udacity.com/course/ud875A",
-    "group":"",
-    "keywords": ["wear, wearables, smartwatch"],
-    "tags": ["courses, wear, wearable"],
-    "image":"images/cards/courses/android_wear_course.jpg",
-    "lang":"en",
-    "type":"online course"
-  },
-  {
-    "title":"Android TV and Google Cast Development",
-    "titleFriendly":"",
-    "summary":"Extend your Apps to the Big Screen.",
-    "url":"https://www.udacity.com/course/ud875B",
-    "group":"",
-    "keywords": ["cast, living room"],
-    "tags": ["courses, cast, tv"],
-    "image":"images/cards/courses/android_tv_cast_course.jpg",
-    "lang":"en",
-    "type":"online course"
-  },
-  {
-    "title":"Android Auto Development",
-    "titleFriendly":"",
-    "summary":"Put your apps in the driver's seat.",
-    "url":"https://www.udacity.com/course/ud875C",
-    "group":"",
-    "keywords": ["auto"],
-    "tags": ["courses, auto"],
-    "image":"images/cards/courses/android_auto_course.jpg",
-    "lang":"en",
-    "type":"online course"
-  },
-
-
- // TODO remove this?
-  {
-    "title":"Android Wear Materials",
-    "titleFriendly":"",
-    "summary":"Drag and drop your way to beautifully designed Android Wear apps.",
-    "url":"design/downloads/index.html#Wear",
-    "group":"",
-    "keywords": ["icons","stencils","color swatches"],
-    "tags": ["icons","stencils","colorswatches"],
-    "image":"images/cards/android-wear-materials_2x.jpg",
-    "lang":"en",
-    "type":"design"
-  },
-  {
-    "title":"Watch Faces for Android Wear",
-    "titleFriendly":"",
-    "summary":"Watch faces let you customize the most prominent UI feature of Android wearables. The API is simple enough for rapid development and flexible enough to build something awesome.",
-    "url":"https://www.youtube.com/watch?v=AK38PJZmIW8&list=PLWz5rJ2EKKc-kIrPiq098QH9dOle-fLef",
-    "group":"",
-    "keywords": ["wear", "wearable", "watch face"],
-    "tags": [],
-    "image":"https://i1.ytimg.com/vi/AK38PJZmIW8/maxresdefault.jpg",
-    "lang":"en",
-    "type":"video"
-  },
-  {
-    "title":"Android Support Library",
-    "titleFriendly":"",
-    "summary":"These essential components help you build a great app that works on the huge variety of Android devices, faster.",
-    "url":"https://www.youtube.com/watch?v=3PIc-DuEU2s&list=PLWz5rJ2EKKc9e0d55YHgJFHXNZbGHEXJX",
-    "group":"",
-    "keywords": ["support", "compatibility"],
-    "tags": [],
-    "image":"https://i1.ytimg.com/vi/3PIc-DuEU2s/maxresdefault.jpg",
-    "lang":"en",
-    "type":"Video"
-  },
-  {
-    "title":"Consistent Design with the AppCompat Support Library",
-    "titleFriendly":"",
-    "summary":"Getting a great looking app doesn't have to be hard: AppCompat, part of the Android Support Library, gives you a consistent design baseline that works on all Android 2.1 or higher devices.",
-    "url":"https://www.youtube.com/watch?v=5Be2mJzP-Uw&list=PLWz5rJ2EKKc9e0d55YHgJFHXNZbGHEXJX",
-    "group":"",
-    "keywords": ["support", "compatibility","design-code"],
-    "tags": [],
-    "image":"https://i1.ytimg.com/vi/5Be2mJzP-Uw/maxresdefault.jpg",
-    "lang":"en",
-    "type":"Video"
-  },
-  {
-    "title":"Introducing Gradle",
-    "titleFriendly":"",
-    "summary":"Android Studio uses an entirely new and flexible Gradle-based build system. You will be able to create multiple build variants for a single project, manage library dependencies and always be sure that your application builds correctly across different environments.",
-    "url":"https://www.youtube.com/watch?v=cD7NPxuuXYY&list=PLWz5rJ2EKKc8I9gHTMh5yKkwRRGE8BjbQ",
-    "group":"",
-    "keywords": ["tools", "studio","gradle"],
-    "tags": [],
-    "image":"https://i1.ytimg.com/vi/cD7NPxuuXYY/maxresdefault.jpg",
-    "lang":"en",
-    "type":"Video"
-  },
-  {
-    "title":"Android Studio Layout Editor",
-    "titleFriendly":"",
-    "summary":"Android Studio includes a rich, visual layout editor that helps developers create better user interfaces. It eliminates the need to deploy the APK on a real device with each change, making iterations faster and helping eliminate common errors earlier in the development process.",
-    "url":"https://www.youtube.com/watch?v=JLLnhwtDoHw&list=PLWz5rJ2EKKc8I9gHTMh5yKkwRRGE8BjbQ",
-    "group":"",
-    "keywords": ["tools", "studio","layout"],
-    "tags": [],
-    "image":"https://i1.ytimg.com/vi/JLLnhwtDoHw/maxresdefault.jpg",
-    "lang":"en",
-    "type":"Video"
-  },
-  {
-    "title":"Debugging and testing in Android Studio",
-    "titleFriendly":"",
-    "summary":"Learn about new debugger features in Android Studio 1.2: value inlining, quick access to referring objects and a Java .class decompiler, just to name a few. See some new tools and views that let you monitor the CPU and memory performance of your app from within the IDE. ",
-    "url":"https://www.youtube.com/watch?v=2I6fuD20qlY&list=PLWz5rJ2EKKc8I9gHTMh5yKkwRRGE8BjbQ",
-    "group":"",
-    "keywords": ["tools", "studio","debugging","profiling","performance"],
-    "tags": [],
-    "image":"https://i1.ytimg.com/vi/2I6fuD20qlY/maxresdefault.jpg",
-    "lang":"en",
-    "type":"Video"
-  },
-  {
-    "title":"Scale with Google Cloud Platform",
-    "titleFriendly":"",
-    "summary":"Build, test, and deploy applications on Google's highly-scalable and reliable infrastructure for your web, mobile and backend solutions.",
-    "url":"https://cloud.google.com/docs/",
-    "group":"",
-    "keywords": [],
-    "tags": [],
-    "image":"images/cards/cloud-platform_2x.png",
-    "lang":"en",
-    "type":"distribute"
-  },
-  {
-    "title":"Opportunities & Programs",
-    "titleFriendly":"",
-    "summary":"Take advantage of the many ways you can distribute your app to consumers, students, and businesses through Google Play.",
-    "url":"distribute/googleplay/index.html#opportunities",
-    "group":"",
-    "keywords": [],
-    "tags": [],
-    "image":"images/cards/program-edu_2x.jpg",
-    "lang":"en",
-    "type":"distribute"
-  },
-  {
-    "title":"Join the Android for Work DevHub",
-    "titleFriendly":"",
-    "summary":"The Android for Work DevHub is a place to help developers keep up with Android in the workplace.",
-    "url":"https://www.google.com/work/android/developers/applyDevHub/",
-    "group":"",
-    "keywords": ["work", "enterprise", "isv", "devhub"],
-    "tags": [],
-    "image":"images/work/cards/work-devhub_600px.png",
-    "lang":"en",
-    "type":"Community"
-  },
-  {
-    "title":"Enterprise Mobility Managers",
-    "titleFriendly":"",
-    "summary":"Integrate Android for Work into your enterprise mobility management (EMM) solution.",
-    "url":"https://developers.google.com/android/work/",
-    "group":"",
-    "keywords": ["work", "enterprise", "emm"],
-    "tags": [],
-    "image":"images/work/cards/work-cloud_600px.png",
-    "lang":"en",
-    "type":"guide"
-  },
-  {
-    "title":"Learn More About Android for Work",
-    "titleFriendly":"",
-    "summary":"Android for Work makes your favorite phones and tablets the perfect business tools.",
-    "url":"https://www.google.com/work/android/",
-    "group":"",
-    "keywords": ["work", "enterprise", "emm"],
-    "tags": [],
-    "image":"images/work/cards/work-profile_600px.png",
-    "lang":"en",
-    "type":"about"
-  },
-  {
-    "title":"Build a Device Policy Controller",
-    "titleFriendly":"",
-    "summary":"Create and administer a managed profile on an employee's device.",
-    "url":"https://developers.google.com/android/work/build-dpc",
-    "group":"",
-    "keywords": ["work", "enterprise", "emm"],
-    "tags": [],
-    "image":"images/work/cards/work-folder_600px.png",
-    "lang":"en",
-    "type":"guide"
-  },
-  {
-    "title":"Android for Work for Developers",
-    "titleFriendly":"",
-    "summary":"Watch the videos in this playlist to understand more about Android for Work and get tips on developing enterprise apps.",
-    "url":"https://www.youtube.com/watch?v=jQWB_-o1kz4&list=PLOU2XLYxmsIKAK2Bhv19H2THwF-22O5WX",
-    "group":"",
-    "keywords": ["work", "enterprise", "emm"],
-    "tags": [],
-    "image":"https://i1.ytimg.com/vi/jQWB_-o1kz4/maxresdefault.jpg",
-    "lang":"en",
-    "type":"youtube"
-  },
-  {
-    "title":"App Configurations, Testing and Launchers",
-    "titleFriendly":"",
-    "summary":"With Android for Work you can make your apps remotely configurable. We also cover how to test your app in a managed environment.",
-    "url":"https://www.youtube.com/watch?v=39NkpWkaH8M&index=2&list=PLOU2XLYxmsIKAK2Bhv19H2THwF-22O5WX",
-    "group":"",
-    "keywords": ["work", "enterprise", "emm"],
-    "tags": [],
-    "image":"https://i1.ytimg.com/vi/39NkpWkaH8M/maxresdefault.jpg",
-    "lang":"en",
-    "type":"youtube"
-  },
-  {
-    "title":"Building an Enterprise Ready App",
-    "titleFriendly":"",
-    "summary":"A holistic view of Android for Work for developers.",
-    "url":"https://www.youtube.com/watch?v=dH41OutAMNM&list=PLOU2XLYxmsIKAK2Bhv19H2THwF-22O5WX",
-    "group":"",
-    "keywords": ["work", "enterprise", "emm"],
-    "tags": [],
-    "image":"https://i1.ytimg.com/vi/dH41OutAMNM/maxresdefault.jpg",
-    "lang":"en",
-    "type":"youtube"
-  },
-  {
-    "title":"Android for Work: Single Use Devices",
-    "titleFriendly":"",
-    "summary":"Single-purpose computers are everywhere, and Android can meet that need.",
-    "url":"https://www.youtube.com/watch?v=j3QC6hcpy90",
-    "group":"",
-    "keywords": ["work", "enterprise", "emm"],
-    "tags": [],
-    "image":"https://i1.ytimg.com/vi/j3QC6hcpy90/maxresdefault.jpg",
-    "lang":"en",
-    "type":"youtube"
-  },
-  {
-    "title":"Your Apps at Work",
-    "titleFriendly":"",
-    "summary":"In this Google I/O 2016 session we’ll give you details for making your app more attractive to businesses.",
-    "url":"https://www.youtube.com/watch?v=Za0OQo8DRM4",
-    "group":"",
-    "keywords": ["work", "enterprise", "emm"],
-    "tags": [],
-    "image":"https://i1.ytimg.com/vi/Za0OQo8DRM4/maxresdefault.jpg",
-    "lang":"en",
-    "type":"youtube"
-  },
-  {
-    "title":"Discover YouTube cards",
-    "titleFriendly":"",
-    "summary":"Find out more about YouTube cards, the options available, and how to use them to get the most from your YouTube content.",
-    "url":"https://support.google.com/youtube/answer/6140493",
-    "group":"",
-    "keywords": ["youtube", "video", "users", "installs"],
-    "tags": [],
-    "image":"images/cards/card-youtube_2x.png",
-    "lang":"en",
-    "type":"distribute"
-  },
-    {
-    "title":"What is YouTube account good standing?",
-    "titleFriendly":"",
-    "summary":"Learn what it means for an account to be in good standing from the YouTube Help Center.",
-    "url":"https://support.google.com/youtube/answer/2797387",
-    "group":"",
-    "keywords": ["youtube", "video", "users", "installs"],
-    "tags": [],
-    "image":"images/cards/card-youtube_2x.png",
-    "lang":"en",
-    "type":"distribute"
-  },
-  {
-    "title":"What’s New in Android N Developer Preview",
-    "titleFriendly":"",
-    "summary":"Learn all about the new features in the Android N Preview.",
-    "url":"https://www.youtube.com/watch?v=CsulIu3UaUM",
-    "group":"",
-    "keywords": ["n preview"],
-    "tags": [],
-    "image":"https://i1.ytimg.com/vi/CsulIu3UaUM/maxresdefault.jpg",
-    "lang":"en",
-    "type":"Video"
-  },
-  {
-    "title":"Developing for Android 6.0 (Marshmallow)",
-    "titleFriendly":"",
-    "summary":"This video covers how to get started with the preview, important APIs to test and how to provide feedback on the preview.",
-    "url":"https://www.youtube.com/watch?v=yYU4DHLwoRk",
-    "group":"",
-    "keywords": ["Marshmallow"],
-    "tags": [],
-    "image":"https://i1.ytimg.com/vi/yYU4DHLwoRk/maxresdefault.jpg",
-    "lang":"en",
-    "type":"Video"
-  },
-  {
-    "title":"Google I/O 2015 - What's new in Android",
-    "titleFriendly":"",
-    "summary":"This session will highlight the most exciting new developer features of the Android platform.",
-    "url":"https://www.youtube.com/watch?v=ndBdf1_oOGA",
-    "group":"",
-    "keywords": ["Marshmallow"],
-    "tags": [],
-    "image":"https://i1.ytimg.com/vi/ndBdf1_oOGA/maxresdefault.jpg",
-    "lang":"en",
-    "type":"Video"
-  },
-  {
-    "title":"Fingerprint and payments APIs",
-    "titleFriendly":"",
-    "summary":"New fingerprint and payments APIs are introduced in M, to enable enhanced UX and security for online purchasing, banking, and retail payments.",
-    "url":"https://www.youtube.com/watch?v=VOn7VrTRlA4",
-    "group":"",
-    "keywords": ["Marshmallow"],
-    "tags": [],
-    "image":"https://i1.ytimg.com/vi/VOn7VrTRlA4/maxresdefault.jpg",
-    "lang":"en",
-    "type":"Video"
-  },
-  {
-    "title":"Introduction to Voice Interaction API",
-    "titleFriendly":"",
-    "summary":"This video covers how to use the Voice Interaction API to support system or custom voice actions.",
-    "url":"https://www.youtube.com/watch?v=OW1A4XFRuyc",
-    "group":"",
-    "keywords": ["Marshmallow"],
-    "tags": [],
-    "image":"https://i1.ytimg.com/vi/OW1A4XFRuyc/maxresdefault.jpg",
-    "lang":"en",
-    "type":"Video"
-  },
-  {
-    "title":"Android Auto Backup for Apps",
-    "titleFriendly":"",
-    "summary":"Android Backup is the automatic, cloud-based backup and restore of users’ apps when they set up a new device.",
-    "url":"https://www.youtube.com/watch?v=HXacyy0HSW0",
-    "group":"",
-    "keywords": ["Marshmallow"],
-    "tags": [],
-    "image":"https://i1.ytimg.com/vi/HXacyy0HSW0/maxresdefault.jpg",
-    "lang":"en",
-    "type":"Video"
-  },
-  {
-    "title":"New APIs in M for Android for Work",
-    "titleFriendly":"",
-    "summary":"Android M extends Android for Work functionality with a new set of APIs for Enterprise Mobility Management providers to offer new features and policy controls to IT Departments.",
-    "url":"https://www.youtube.com/watch?v=vcSj8ln-BlE",
-    "group":"",
-    "keywords": ["Marshmallow"],
-    "tags": [],
-    "image":"https://i1.ytimg.com/vi/vcSj8ln-BlE/maxresdefault.jpg",
-    "lang":"en",
-    "type":"Video"
-  },
-  {
-    "title":"Runtime Permissions in Android 6.0 Marshmallow",
-    "titleFriendly":"",
-    "summary":"Learn how to integrate runtime permissions into your Android app.",
-    "url":"https://www.youtube.com/watch?v=C8lUdPVSzDk",
-    "group":"",
-    "keywords": ["Marshmallow"],
-    "tags": [],
-    "image":"https://i1.ytimg.com/vi/C8lUdPVSzDk/maxresdefault.jpg",
-    "lang":"en",
-    "type":"Video"
-  },
-  {
-    "title":"Introduction to Doze",
-    "titleFriendly":"",
-    "summary":"An overview of Doze and how to make sure that your app behaves as expected both in and out of Doze mode. ",
-    "url":"https://youtu.be/N72ksDKrX6c",
-    "group":"",
-    "keywords": ["Marshmallow"],
-    "tags": [],
-    "image":"https://i1.ytimg.com/vi/N72ksDKrX6c/maxresdefault.jpg",
-    "lang":"en",
-    "type":"Video"
-  },
-  {
-    "title":"The Nexus 5X, Nexus 6P and Android Marshmallow",
-    "titleFriendly":"",
-    "summary":"The new Nexus 5X and Nexus 6P along with some of the most significant developer features in the latest Android release,.",
-    "url":"https://youtu.be/U9tw5ypqEN0",
-    "group":"",
-    "keywords": ["Marshmallow"],
-    "tags": [],
-    "image":"https://i1.ytimg.com/vi/U9tw5ypqEN0/maxresdefault.jpg",
-    "lang":"en",
-    "type":"Video"
-  },
-  {
-    "title":"Asking For Permission Fine",
-    "titleFriendly":"",
-    "summary":"Picking the right way and time to ask for a permission is critical to it being granted. ",
-    "url":"https://youtu.be/iZqDdvhTZj0",
-    "group":"",
-    "keywords": ["Marshmallow"],
-    "tags": [],
-    "image":"https://i1.ytimg.com/vi/iZqDdvhTZj0/maxresdefault.jpg",
-    "lang":"en",
-    "type":"Video"
-  },
-  {
-    "title":"Data Binding Library",
-    "titleFriendly":"",
-    "summary":"Data Binding Library is a way to write declarative layouts and minimize the glue code necessary to bind your application logic and layouts. ",
-    "url":"https://youtu.be/5sCQjeGoE7M",
-    "group":"",
-    "keywords": ["Marshmallow"],
-    "tags": [],
-    "image":"https://i1.ytimg.com/vi/5sCQjeGoE7M/maxresdefault.jpg",
-    "lang":"en",
-    "type":"Video"
-  },
-  {
-    "title":"App Links",
-    "titleFriendly":"",
-    "summary":"App Links is a new feature of Android Marshmallow that brings a faster way of opening website links for domains that you own.",
-    "url":"https://youtu.be/LQoohRwojmw",
-    "group":"",
-    "keywords": ["Marshmallow"],
-    "tags": [],
-    "image":"https://i1.ytimg.com/vi/LQoohRwojmw/maxresdefault.jpg",
-    "lang":"en",
-    "type":"Video"
-  },
-  {
-    "title":"Android M Permissions",
-    "titleFriendly":"",
-    "summary":"An introduction to Android M runtime permissions in Android M from Google I/O 2015. ",
-    "url":"https://www.youtube.com/watch?v=f17qe9vZ8RM",
-    "group":"",
-    "keywords": ["Marshmallow"],
-    "tags": [],
-    "image":"https://i1.ytimg.com/vi/f17qe9vZ8RM/maxresdefault.jpg",
-    "lang":"en",
-    "type":"Video"
-  },
-  {
-    "lang": "ja",
-    "title": "Gaming Everywhere",
-    "titleFriendly": "",
-    "summary": "東京ゲームショウ 2014 の基調講演より。",
-    "url": "https://www.youtube.com/watch?v=xelYnWcYkuE",
-    "group": "",
-    "keywords": [],
-    "tags": [],
-    "image": "https://img.youtube.com/vi/xelYnWcYkuE/hqdefault.jpg",
-    "type": "youtube"
-  },
-  {
-    "lang": "ja",
-    "title": "Playtime Tokyo",
-    "titleFriendly": "",
-    "summary": "アプリビジネスのノウハウを各担当者が講演しました。",
-    "url": "https://www.youtube.com/playlist?list=PLCOC_kP3nqGIHEgwm9mybvA04Vn4Cg9nn",
-    "group": "",
-    "keywords": [],
-    "tags": [],
-    "image": "https://img.youtube.com/vi/lJdjY3z6-LY/hqdefault.jpg",
-    "type": "youtube"
-  },
-  {
-    "lang": "ja",
-    "title": "Android Wear 関連の動画に日本語字幕が付きました",
-    "titleFriendly": "",
-    "summary": "",
-    "url": "https://googledevjp.blogspot.jp/2014/12/android-wear.html",
-    "group": "",
-    "keywords": [],
-    "tags": [],
-    "image": "https://i1.ytimg.com/vi/4JcDYkgqksY/maxresdefault.jpg",
-    "type": "blog"
-  },
-  {
-    "lang": "ja",
-    "title": "Android Studio 1.0 をリリースしました",
-    "titleFriendly": "",
-    "summary": "",
-    "url": "https://googledevjp.blogspot.jp/2014/12/android-studio-10.html",
-    "group": "",
-    "keywords": [],
-    "tags": [],
-    "image": "https://3.bp.blogspot.com/-1hV3sD1At74/VIaQSWBasUI/AAAAAAAABAU/9vYLJMsmMuQ/s1600/studio-logo.png",
-    "type": "blog"
-  },
-  {
-    "lang": "ja",
-    "title": "Google Play 開発者サービス 6.5 のご紹介",
-    "titleFriendly": "",
-    "summary": "",
-    "url": "https://googledevjp.blogspot.jp/2014/12/google-play-65.html",
-    "group": "",
-    "keywords": [],
-    "tags": [],
-    "image": "https://1.bp.blogspot.com/-4BNREC0Jojo/VGo7ahW35wI/AAAAAAAABAc/9thZl94F6fY/s1600/GMS%2B-%2BRelease%2BBlog%2BNacho%2B-%2BMap%2BToolbar.png",
-    "type": "blog"
-  },
-  {
-    "lang": "ja",
-    "title": "Alpha and Beta Testing",
-    "titleFriendly": "",
-    "summary": "アプリのローンチにまつわるリスクを最小限にするために必須のツールです。[英語コンテンツ]",
-    "url": "intl/ja/distribute/googleplay/developer-console.html#alpha-beta",
-    "group": "",
-    "keywords": [],
-    "tags": [],
-    "image": "images/gp-dc-ab.png",
-    "type": "distribute"
-  },
-  {
-    "lang": "ja",
-    "title": "Finding Success on Google Play",
-    "titleFriendly": "",
-    "summary": "Google Play での成功の秘訣がこの一冊に。[英語コンテンツ]",
-    "url": "intl/ja/distribute/googleplay/guide.html",
-    "group": "",
-    "keywords": [],
-    "tags": [],
-    "image": "distribute/images/play_dev_guide_b.jpg",
-    "type": "distribute"
-  },
-  {
-    "lang": "ja",
-    "title": "Core App Quality",
-    "titleFriendly": "",
-    "summary": "",
-    "url": "intl/ja/distribute/essentials/quality/core.html",
-    "group": "",
-    "keywords": [],
-    "tags": [],
-    "image": "images/gp-core-quality.png",
-    "type": "distribute"
-  },
-  {
-    "lang": "ja",
-    "title": "Google Play アプリ ポリシー センター",
-    "titleFriendly": "",
-    "summary": "",
-    "url": "https://support.google.com/googleplay/android-developer/answer/4430948?hl=ja",
-    "group": "",
-    "keywords": [],
-    "tags": [],
-    "image": "https://storage.googleapis.com/support-kms-prod/SNP_712EA2784949DDF085C46E3BE7B1DC618A09_4389356_en_v0",
-    "type": "distribute"
-  },
-  {
-    "lang": "ja",
-    "title": "Developer Support",
-    "titleFriendly": "",
-    "summary": "",
-    "url": "intl/ja/support.html",
-    "group": "",
-    "keywords": [],
-    "tags": [],
-    "image": "",
-    "type": "distribute"
-  },
-  {
-    "lang": "ja",
-    "title": "Wear App Quality",
-    "titleFriendly": "",
-    "summary": "いよいよウェアラブルの時代が到来。[英語コンテンツ]",
-    "url": "intl/ja/distribute/essentials/quality/wear.html",
-    "group": "",
-    "keywords": [],
-    "tags": [],
-    "image": "distribute/images/gp-wear-quality.png",
-    "type": "distribute"
-  },
-  {
-    "lang": "ja",
-    "title": "Google Cloud Platform が支える、新感覚リアルタイム RPG ユニゾンリーグ - 株式会社エイチームの GCP 導入事例",
-    "titleFriendly": "",
-    "summary": "スケーラブルなバックエンドを実現する Google Cloud Platform の最新導入事例。",
-    "url": "https://googleforwork-japan.blogspot.jp/2014/12/gcp-google-cloud-platform-rpg-gcp.html",
-    "group": "",
-    "keywords": [],
-    "tags": [],
-    "image": "https://3.bp.blogspot.com/-xp7KoPkbne4/VI_PfoFil3I/AAAAAAAAA3U/-k1UZ0zjCBc/s1600/unison-league.jpeg",
-    "type": "distribute"
-  },
-  {
-    "lang": "ja",
-    "title": "Monetize with Ads",
-    "titleFriendly": "",
-    "summary": "アプリ内広告成功のコツがここに。[英語コンテンツ]",
-    "url": "intl/ja/distribute/monetize/ads.html",
-    "group": "",
-    "keywords": [],
-    "tags": [],
-    "image": "distribute/images/advertising.jpg",
-    "type": "distribute"
-  },
-  {
-    "lang": "ko",
-    "title": "구글 플레이 2015년 비전",
-    "titleFriendly": "",
-    "summary": "G-Star 구글 컨퍼런스",
-    "url": "https://www.youtube.com/watch?v=7X9Ue0Nfdh4&index=2&list=PL_WJkTbDHdBksDBRoqfeyLchEQqBAOlNl",
-    "group": "",
-    "keywords": [],
-    "tags": [],
-    "image": "https://img.youtube.com/vi/7X9Ue0Nfdh4/hqdefault.jpg",
-    "type": "youtube"
-  },
-  {
-    "lang": "ko",
-    "title": "구글 플레이 게임",
-    "titleFriendly": "",
-    "summary": "게임 프로필, 퀘스트, 세이브드 게임 등의 신기능 소개",
-    "url": "https://www.youtube.com/watch?v=83FpwuschCQ",
-    "group": "",
-    "keywords": [],
-    "tags": [],
-    "image": "https://img.youtube.com/vi/83FpwuschCQ/hqdefault.jpg",
-    "type": "youtube"
-  },
-  {
-    "lang": "ko",
-    "title": "안드로이드 5.0 롤리팝을 맞이하는 개발자를 위한 안내서",
-    "titleFriendly": "",
-    "summary": "",
-    "url": "https://googledevkr.blogspot.com/2014/11/android50guidefordevelopers.html",
-    "group": "",
-    "keywords": [],
-    "tags": [],
-    "image": "https://lh5.googleusercontent.com/0Gx4Ob_WvIgNOMv3hVMuUm4O7KuSWyxCEFIvy39_6fgXh2q2azqjZf3bpZoEk-LMW-K8GwYMfyYfMUAwp38hhPQ6WFNnddhN2E2_GF3-XBQI_qjhISviz10h_mGgDWsZKA",
-    "type": "blog"
-  },
-  {
-    "lang": "ko",
-    "title": "안드로이드 앱을 위한 머티리얼 디자인 체크 리스트",
-    "titleFriendly": "",
-    "summary": "",
-    "url": "https://googledevkr.blogspot.com/2014/10/material-design-on-android-checklist.html",
-    "group": "",
-    "keywords": [],
-    "tags": [],
-    "image": "https://lh4.googleusercontent.com/JKoxeDdmsj6gYHV8rmp96U1jHj7FKeMzGBaaFu35kXp5EpJR9Ei9MQFAYghjwJoycdgydw-FZTuFNY8pDx63MWhy37rKC96ajoDXEMzvo9W0sj5yC2-uSYJdhpazVOP2cA",
-    "type": "blog"
-  },
-  {
-    "lang": "ko",
-    "title": "App Compat 라이브러리",
-    "titleFriendly": "",
-    "summary": "",
-    "url": "https://googledevkr.blogspot.com/2014/10/appcompat-v21-material-design-for-pre.html",
-    "group": "",
-    "keywords": [],
-    "tags": [],
-    "image": "https://2.bp.blogspot.com/-7fF9ayZ6PgI/U9iFpk5FNEI/AAAAAAAAAs0/4P4SCvdB_4M/s640/image00.png",
-    "type": "blog"
-  },
-  {
-    "lang": "ko",
-    "title": "Alpha and Beta Testing",
-    "titleFriendly": "",
-    "summary": "출시 전에 완벽한 사전 테스트 [영문]",
-    "url": "intl/ko/distribute/googleplay/developer-console.html#alpha-beta",
-    "group": "",
-    "keywords": [],
-    "tags": [],
-    "image": "images/gp-dc-ab.png",
-    "type": "distribute"
-  },
-  {
-    "lang": "ko",
-    "title": "Finding Success on Google Play",
-    "titleFriendly": "",
-    "summary": "구글 플레이에서 성공하는 비결 [영문]",
-    "url": "intl/ko/distribute/googleplay/guide.html",
-    "group": "",
-    "keywords": [],
-    "tags": [],
-    "image": "distribute/images/play_dev_guide_b.jpg",
-    "type": "distribute"
-  },
-  {
-    "lang": "ko",
-    "title": "Core App Quality",
-    "titleFriendly": "",
-    "summary": "고품질 안드로이드 앱 개발 가이드 [영문]",
-    "url": "intl/ko/distribute/essentials/quality/core.html",
-    "group": "",
-    "keywords": [],
-    "tags": [],
-    "image": "images/gp-core-quality.png",
-    "type": "distribute"
-  },
-  {
-    "lang": "ko",
-    "title": "Policy Guidelines and Practices",
-    "titleFriendly": "",
-    "summary": "숙지해야할 중요한 정책 [영문]",
-    "url": "https://support.google.com/googleplay/android-developer/answer/4430948?hl=ko",
-    "group": "",
-    "keywords": [],
-    "tags": [],
-    "image": "https://storage.googleapis.com/support-kms-prod/SNP_712EA2784949DDF085C46E3BE7B1DC618A09_4389356_en_v0",
-    "type": "distribute"
-  },
-  {
-    "lang": "ko",
-    "title": "Developer Support",
-    "titleFriendly": "",
-    "summary": "개발자 지원 센터 활용 [영문]",
-    "url": "intl/ko/support.html",
-    "group": "",
-    "keywords": [],
-    "tags": [],
-    "image": "https://lh3.googleusercontent.com/-mGTYed3Uh-E/AAAAAAAAAAI/AAAAAAAAF58/qNYbk4mMhI0/s120-c/photo.jpg",
-    "type": "distribute"
-  },
-  {
-    "lang": "ko",
-    "title": "Wear App Quality",
-    "titleFriendly": "",
-    "summary": "웨어러블 앱 개발 가이드 [영문]",
-    "url": "intl/ko/distribute/essentials/quality/wear.html",
-    "group": "",
-    "keywords": [],
-    "tags": [],
-    "image": "distribute/images/gp-wear-quality.png",
-    "type": "distribute"
-  },
-  {
-    "lang": "ko",
-    "title": "Android TV 어플리케이션 개발",
-    "titleFriendly": "",
-    "summary": "앱과 게임을 거실에서 가족과 함께 [영문]",
-    "url": "intl/ko/tv/index.html",
-    "group": "",
-    "keywords": [],
-    "tags": [],
-    "image": "design/tv/images/atv-home.jpg",
-    "type": "distribute"
-  },
-  {
-    "lang": "ko",
-    "title": "구글 플레이 게임 서비스",
-    "titleFriendly": "",
-    "summary": "다양한 구글 플레이 게임 서비스 기능 알아보기 [영문]",
-    "url": "intl/ko/google/play-services/games.html",
-    "group": "",
-    "keywords": [],
-    "tags": [],
-    "image": "https://developers.google.com/games/services/images/gamescreen3.jpg",
-    "type": "distribute"
-  },
-  {
-    "lang": "ko",
-    "title": "Monetize with Ads",
-    "titleFriendly": "",
-    "summary": "광고로 수익 창출하기 [영문]",
-    "url": "intl/ko/distribute/monetize/ads.html",
-    "group": "",
-    "keywords": [],
-    "tags": [],
-    "image": "distribute/images/advertising.jpg",
-    "type": "distribute"
-  },
-  {
-    "url":"https://www.youtube.com/watch?v=QDM52bblwlg",
-    "image": "images/distribute/hero-family-discovery.jpg",
-    "title": "Introducing the new family discovery experience on Google Play",
-    "summary": "Help families create little moments on Google Play. Opt-in your apps now.",
-    "tags":["families","googleplay"],
-    "type":"youtube"
-  },
-  {
-    "url":"https://www.youtube.com/watch?v=wcjqBSei3a0&list=PLOU2XLYxmsIKLNUPiFCWVtcO7mZRZ9MmS",
-    "image": "https://i1.ytimg.com/vi/wcjqBSei3a0/maxresdefault.jpg",
-    "title": "Developers connecting the world through Google Play",
-    "summary": "The mobile ecosystem is empowering developers to make good on the dream of connecting the world through technology to improve people's lives.",
-    "tags":["io15","googleplay"],
-    "keywords":["Google I/O 2015","io"],
-    "type":"youtube"
-  },
-  {
-    "url":"https://www.youtube.com/watch?v=B6ydLpkhq04&list=PLOU2XLYxmsIKLNUPiFCWVtcO7mZRZ9MmS",
-    "image": "https://i1.ytimg.com/vi/B6ydLpkhq04/maxresdefault.jpg",
-    "title": "Store Listing Experiments for Google Play",
-    "summary": "Learn how to use Google Play’s new store listing optimization feature to get more installs of your app, and how to test different graphics and text to find out which options perform the best. ",
-    "tags":["io15","googleplay","store listing"],
-    "tags":["google i/o","google play","store listing"],
-    "type":"youtube"
-  },
-  {
-    "url":"https://www.youtube.com/watch?v=jyO3-rF4Mu0&list=PLOU2XLYxmsIKLNUPiFCWVtcO7mZRZ9MmS",
-    "image": "https://i1.ytimg.com/vi/jyO3-rF4Mu0/maxresdefault.jpg",
-    "title": "Growing games with Google",
-    "summary": "The games industry has never been more promising and full of opportunities. This talk covers how Google is helping developers across a broad range of existing and emerging platforms.",
-    "tags":["io15","android", "googleplay","games"],
-    "keywords":["Google I/O","google play","games"],
-    "type":"youtube"
-  },
-  {
-    "url":"https://www.youtube.com/watch?v=yJisuP94lHU",
-    "image": "images/distribute/hero-playtime-opener.jpg",
-    "title": "Playtime 2015: Innovation happens everywhere",
-    "type":"Video",
-    "tags":["googleplay"],
-    "summary": "Watch the opening video from Google Play's annual event series, Playtime, which celebrates inspirational developers who are changing the world around them.",
-  },
-{
-    "url":"https://www.youtube.com/watch?v=JrR6o5tYMWQ",
-    "image": "images/distribute/hero-acquisition-devbyte.jpg",
-    "title": "User acquisition and tracking on Google Play",
-    "type" : "Video",
-    "tags" : "users,googleplay,googleio",
-    "summary": "Learn how to get new users, using Universal app campaigns directly within the Google Play Developer Console to increase your installs from ads, and find out how your acquisition channels perform.",
-  },
-]);
-
-var CAROUSEL_OVERRIDE = {
-  "distribute/googleplay/guide.html": {
-    "image": "images/distribute/hero-secrets-to-app-success.jpg",
-    "title": "The Secrets to App Success on Google Play",
-    "summary": "Get the updated guide full of useful features, tips, and best practices that will help you grow a successful app or game business on Google Play.",
-  },
-  "about/versions/lollipop.html": {
-    "image": "images/home/hero-lollipop_2x.png",
-    "heroColor": "#263238",
-    "heroInvert": true,
-    "title": "Android 5.0 Lollipop",
-    "summary": "The Android 5.0 update adds a variety of new features for your apps, such as notifications on the lock screen, an all-new camera API, OpenGL ES 3.1, the new naterial design interface, and much more.",
-  },
-  "http://www.youtube.com/watch?v=Pms0pcyPbAM": {
-    "url":"https://www.youtube.com/watch?v=Pms0pcyPbAM&list=PLWz5rJ2EKKc9ofd2f-_-xmUi07wIGZa1c]",
-    "image": "images/distribute/hero-carousel-giftedmom.jpg",
-    "title": "Gifted Mom reaches more mothers across Africa with Android",
-    "type":"youtube",
-    "summary": "Gifted Mom is an app developed in Cameroon which provides users with critical information about pregnancy, breastfeeding and child vaccinations. Hear the creators explain how they built their business on Google Play.",
-  },
-  "http://www.youtube.com/watch?v=9m6MoBM-sFI": {
-    "url":"https://www.youtube.com/watch?v=9m6MoBM-sFI&list=PLWz5rJ2EKKc9ofd2f-_-xmUi07wIGZa1c&index=3",
-    "image": "images/distribute/hero-carousel-sgn.jpg",
-    "title": "SGN increases installs with Store Listing Experiments",
-    "type" : "youtube",
-    "summary": "Watch mobile game developer SGN talk about how using Store Listing Experiments to test multiple variants across their portfolio of games helped improve their ROI, conversion rates and gamer retention.",
-  },
-  "http://www.youtube.com/watch?v=e7t3svG9PTk": {
-    "url":"https://www.youtube.com/watch?v=e7t3svG9PTk&index=2&list=PLWz5rJ2EKKc9ofd2f-_-xmUi07wIGZa1c",
-    "image": "images/distribute/hero-carousel-djit.jpg",
-    "title": "DJiT builds higher quality experiences on Android",
-    "type" : "youtube",
-    "summary": "Learn how Music app developer DJiT create higher quality apps with improved latency on Android Marshmallow, as well as other Android and Google Play features.",
-  },
-  "http://www.youtube.com/watch?v=J3IvOfvH1ys": {
-    "url":"https://www.youtube.com/watch?v=J3IvOfvH1ys&list=PLWz5rJ2EKKc9ofd2f-_-xmUi07wIGZa1c&index=1",
-    "image": "images/distribute/hero-carousel-wego.jpg",
-    "title": "Wego increases user retention with material design",
-    "type" : "youtube",
-    "summary": "Hear how online travel marketplace Wego, increased monthly user retention by 300% and reduced uninstall rates by up to 25% with material design.",
-  },
-  "https://www.youtube.com/watch?v=QDM52bblwlg": {
-    "url":"distribute/googleplay/families/about.html",
-    "image": "images/distribute/hero-family-discovery.jpg",
-    "title": "Designed for families",
-    "summary": "Introducing the new family discovery experience in Google Play. Your apps can benefit from enhanced discoverability and maintain their existing categories, rankings, and reviews elsewhere in the store. Opt-in your apps today.",
-    "type":"distribute",
-  },
-  "https://www.youtube.com/watch?v=wcjqBSei3a0&list=PLOU2XLYxmsIKLNUPiFCWVtcO7mZRZ9MmS": {
-    "url":"https://www.youtube.com/watch?v=wcjqBSei3a0&list=PLOU2XLYxmsIKLNUPiFCWVtcO7mZRZ9MmS",
-    "image": "images/distribute/hero-IO15-google-play.jpg",
-    "title": "Connecting the world through Google Play",
-    "tags":["io15"],
-    "summary": "In this this Google I/O talk, hear how the mobile ecosystem is empowering developers to connect the world through technology and improve people's lives.",
-  },
-  "https://www.youtube.com/watch?v=B6ydLpkhq04&list=PLOU2XLYxmsIKLNUPiFCWVtcO7mZRZ9MmS": {
-    "image": "images/distribute/hero-store-listing-experience.jpg",
-    "title": "Using Google Play store listing experiments",
-    "tags":["io15"],
-    "summary": "Learn how to use Google Play store listing experiments to get more installs in this Google I/O talk. Test different graphics and text to find out which options perform the best. ",
-  },
-  "https://www.youtube.com/watch?v=jyO3-rF4Mu0&list=PLOU2XLYxmsIKLNUPiFCWVtcO7mZRZ9MmS": {
-    "image": "images/distribute/hero-IO15-growing-games.jpg",
-    "title": "Growing games with Google",
-    "tags":["io15"],
-    "summary": "The games industry has never been more promising and full of opportunities. This talk from Google I/O 2015 covers how Google is helping developers across a broad range of existing and emerging platforms.",
-  }
-};
diff --git a/docs/html/sdk/1.0_r1/installing.jd b/docs/html/sdk/1.0_r1/installing.jd
index 38c2a1a..eb02742 100644
--- a/docs/html/sdk/1.0_r1/installing.jd
+++ b/docs/html/sdk/1.0_r1/installing.jd
@@ -1,3 +1,4 @@
+excludeFromSuggestions=true
 @jd:body
 
 <script type="text/javascript">
diff --git a/docs/html/sdk/1.0_r1/requirements.jd b/docs/html/sdk/1.0_r1/requirements.jd
index 96fdcb26..41774f0 100644
--- a/docs/html/sdk/1.0_r1/requirements.jd
+++ b/docs/html/sdk/1.0_r1/requirements.jd
@@ -1,3 +1,4 @@
+excludeFromSuggestions=true
 @jd:body
 
 <script type="text/javascript">
diff --git a/docs/html/sdk/1.0_r2/installing.jd b/docs/html/sdk/1.0_r2/installing.jd
index 38c2a1a..eb02742 100644
--- a/docs/html/sdk/1.0_r2/installing.jd
+++ b/docs/html/sdk/1.0_r2/installing.jd
@@ -1,3 +1,4 @@
+excludeFromSuggestions=true
 @jd:body
 
 <script type="text/javascript">
diff --git a/docs/html/sdk/1.0_r2/requirements.jd b/docs/html/sdk/1.0_r2/requirements.jd
index 96fdcb26..41774f0 100644
--- a/docs/html/sdk/1.0_r2/requirements.jd
+++ b/docs/html/sdk/1.0_r2/requirements.jd
@@ -1,3 +1,4 @@
+excludeFromSuggestions=true
 @jd:body
 
 <script type="text/javascript">
diff --git a/docs/html/sdk/1.1_r1/installing.jd b/docs/html/sdk/1.1_r1/installing.jd
index 38c2a1a..eb02742 100644
--- a/docs/html/sdk/1.1_r1/installing.jd
+++ b/docs/html/sdk/1.1_r1/installing.jd
@@ -1,3 +1,4 @@
+excludeFromSuggestions=true
 @jd:body
 
 <script type="text/javascript">
diff --git a/docs/html/sdk/1.1_r1/requirements.jd b/docs/html/sdk/1.1_r1/requirements.jd
index 96fdcb26..41774f0 100644
--- a/docs/html/sdk/1.1_r1/requirements.jd
+++ b/docs/html/sdk/1.1_r1/requirements.jd
@@ -1,3 +1,4 @@
+excludeFromSuggestions=true
 @jd:body
 
 <script type="text/javascript">
diff --git a/docs/html/sdk/1.5_r1/installing.jd b/docs/html/sdk/1.5_r1/installing.jd
index 38c2a1a..eb02742 100644
--- a/docs/html/sdk/1.5_r1/installing.jd
+++ b/docs/html/sdk/1.5_r1/installing.jd
@@ -1,3 +1,4 @@
+excludeFromSuggestions=true
 @jd:body
 
 <script type="text/javascript">
diff --git a/docs/html/sdk/1.5_r1/requirements.jd b/docs/html/sdk/1.5_r1/requirements.jd
index 96fdcb26..41774f0 100644
--- a/docs/html/sdk/1.5_r1/requirements.jd
+++ b/docs/html/sdk/1.5_r1/requirements.jd
@@ -1,3 +1,4 @@
+excludeFromSuggestions=true
 @jd:body
 
 <script type="text/javascript">
diff --git a/docs/html/sdk/1.5_r2/installing.jd b/docs/html/sdk/1.5_r2/installing.jd
index 38c2a1a..eb02742 100644
--- a/docs/html/sdk/1.5_r2/installing.jd
+++ b/docs/html/sdk/1.5_r2/installing.jd
@@ -1,3 +1,4 @@
+excludeFromSuggestions=true
 @jd:body
 
 <script type="text/javascript">
diff --git a/docs/html/sdk/1.5_r2/requirements.jd b/docs/html/sdk/1.5_r2/requirements.jd
index 96fdcb26..41774f0 100644
--- a/docs/html/sdk/1.5_r2/requirements.jd
+++ b/docs/html/sdk/1.5_r2/requirements.jd
@@ -1,3 +1,4 @@
+excludeFromSuggestions=true
 @jd:body
 
 <script type="text/javascript">
diff --git a/docs/html/sdk/1.5_r3/installing.jd b/docs/html/sdk/1.5_r3/installing.jd
index 38c2a1a..eb02742 100644
--- a/docs/html/sdk/1.5_r3/installing.jd
+++ b/docs/html/sdk/1.5_r3/installing.jd
@@ -1,3 +1,4 @@
+excludeFromSuggestions=true
 @jd:body
 
 <script type="text/javascript">
diff --git a/docs/html/sdk/1.5_r3/requirements.jd b/docs/html/sdk/1.5_r3/requirements.jd
index 96fdcb26..41774f0 100644
--- a/docs/html/sdk/1.5_r3/requirements.jd
+++ b/docs/html/sdk/1.5_r3/requirements.jd
@@ -1,3 +1,4 @@
+excludeFromSuggestions=true
 @jd:body
 
 <script type="text/javascript">
diff --git a/docs/html/sdk/1.6_r1/installing.jd b/docs/html/sdk/1.6_r1/installing.jd
index 38c2a1a..eb02742 100644
--- a/docs/html/sdk/1.6_r1/installing.jd
+++ b/docs/html/sdk/1.6_r1/installing.jd
@@ -1,3 +1,4 @@
+excludeFromSuggestions=true
 @jd:body
 
 <script type="text/javascript">
diff --git a/docs/html/sdk/1.6_r1/requirements.jd b/docs/html/sdk/1.6_r1/requirements.jd
index 96fdcb26..41774f0 100644
--- a/docs/html/sdk/1.6_r1/requirements.jd
+++ b/docs/html/sdk/1.6_r1/requirements.jd
@@ -1,3 +1,4 @@
+excludeFromSuggestions=true
 @jd:body
 
 <script type="text/javascript">
diff --git a/libs/hwui/Readback.cpp b/libs/hwui/Readback.cpp
index 55f823d..0ab247d 100644
--- a/libs/hwui/Readback.cpp
+++ b/libs/hwui/Readback.cpp
@@ -136,7 +136,7 @@
             EGL_NATIVE_BUFFER_ANDROID, clientBuffer, attrs);
 
     if (sourceImage == EGL_NO_IMAGE_KHR) {
-        ALOGW("Error creating image (%#x)", eglGetError());
+        ALOGW("eglCreateImageKHR failed (%#x)", eglGetError());
         return CopyResult::UnknownError;
     }
     GLuint sourceTexId;
@@ -147,7 +147,8 @@
 
     GLenum status = GL_NO_ERROR;
     while ((status = glGetError()) != GL_NO_ERROR) {
-        ALOGW("Error creating image (%#x)", status);
+        ALOGW("glEGLImageTargetTexture2DOES failed (%#x)", status);
+        eglDestroyImageKHR(display, sourceImage);
         return CopyResult::UnknownError;
     }
 
@@ -183,6 +184,13 @@
     caches.textureState().deleteTexture(texture);
     renderState.deleteFramebuffer(fbo);
 
+    sourceTexture.deleteTexture();
+    // All we're flushing & finishing is the deletion of the texture since
+    // copyTextureInto already did a major flush & finish as an implicit
+    // part of glReadPixels, so this shouldn't pose any major stalls.
+    glFinish();
+    eglDestroyImageKHR(display, sourceImage);
+
     GL_CHECKPOINT(MODERATE);
 
     return CopyResult::Success;
diff --git a/libs/hwui/renderthread/CanvasContext.cpp b/libs/hwui/renderthread/CanvasContext.cpp
index dcaec42..70b9a43 100644
--- a/libs/hwui/renderthread/CanvasContext.cpp
+++ b/libs/hwui/renderthread/CanvasContext.cpp
@@ -633,6 +633,9 @@
     prepareTree(info, frameInfo, systemTime(CLOCK_MONOTONIC), node);
     if (info.out.canDrawThisFrame) {
         draw();
+    } else {
+        // wait on fences so tasks don't overlap next frame
+        waitOnFences();
     }
 }
 
diff --git a/libs/hwui/renderthread/CanvasContext.h b/libs/hwui/renderthread/CanvasContext.h
index 3eef29b..e182175 100644
--- a/libs/hwui/renderthread/CanvasContext.h
+++ b/libs/hwui/renderthread/CanvasContext.h
@@ -168,6 +168,8 @@
 
     ANDROID_API int64_t getFrameNumber();
 
+    void waitOnFences();
+
 private:
     friend class RegisterFrameCallbackTask;
     // TODO: Replace with something better for layer & other GL object
@@ -178,8 +180,6 @@
 
     void freePrefetchedLayers(TreeObserver* observer);
 
-    void waitOnFences();
-
     bool isSwapChainStuffed();
 
     EGLint mLastFrameWidth = 0;
diff --git a/libs/hwui/renderthread/DrawFrameTask.cpp b/libs/hwui/renderthread/DrawFrameTask.cpp
index c9c07b3..e3b6dc6 100644
--- a/libs/hwui/renderthread/DrawFrameTask.cpp
+++ b/libs/hwui/renderthread/DrawFrameTask.cpp
@@ -104,6 +104,9 @@
 
     if (CC_LIKELY(canDrawThisFrame)) {
         context->draw();
+    } else {
+        // wait on fences so tasks don't overlap next frame
+        context->waitOnFences();
     }
 
     if (!canUnblockUiThread) {
diff --git a/packages/DocumentsUI/src/com/android/documentsui/FilesActivity.java b/packages/DocumentsUI/src/com/android/documentsui/FilesActivity.java
index ae8938d..b82f8dd 100644
--- a/packages/DocumentsUI/src/com/android/documentsui/FilesActivity.java
+++ b/packages/DocumentsUI/src/com/android/documentsui/FilesActivity.java
@@ -401,13 +401,8 @@
                 return true;
             }
 
-            final Intent intent = getIntent();
-            final boolean launchedExternally = intent != null && intent.getData() != null
-                    && mState.action == State.ACTION_BROWSE;
-
-            // Open the Close drawer if it is closed and we're at the top of a root, but only when
-            // not launched by another app.
-            if (size <= 1 && !launchedExternally) {
+            // Open the Close drawer if it is closed and we're at the top of a root.
+            if (size <= 1) {
                 mDrawer.setOpen(true);
                 // Remember so we don't just close it again if back is pressed again.
                 mDrawerLastFiddled = System.currentTimeMillis();
diff --git a/packages/DocumentsUI/src/com/android/documentsui/LocalPreferences.java b/packages/DocumentsUI/src/com/android/documentsui/LocalPreferences.java
index b3db037..d2e9885 100644
--- a/packages/DocumentsUI/src/com/android/documentsui/LocalPreferences.java
+++ b/packages/DocumentsUI/src/com/android/documentsui/LocalPreferences.java
@@ -22,7 +22,6 @@
 import android.annotation.Nullable;
 import android.content.Context;
 import android.content.SharedPreferences;
-import android.content.SharedPreferences.Editor;
 import android.os.UserHandle;
 import android.preference.PreferenceManager;
 
@@ -86,15 +85,6 @@
     public @interface PermissionStatus {}
 
     /**
-     * Clears all preferences associated with a given package.
-     *
-     * <p>Typically called when a package is removed or when user asked to clear its data.
-     */
-    static void clearPackagePreferences(Context context, String packageName) {
-        clearScopedAccessPreferences(context, packageName);
-    }
-
-    /**
      * Methods below are used to keep track of denied user requests on scoped directory access so
      * the dialog is not offered when user checked the 'Do not ask again' box
      *
@@ -118,23 +108,6 @@
       getPrefs(context).edit().putInt(key, status).apply();
     }
 
-    private static void clearScopedAccessPreferences(Context context, String packageName) {
-        final String keySubstring = "|" + packageName + "|";
-        final SharedPreferences prefs = getPrefs(context);
-        Editor editor = null;
-        for (final String key : prefs.getAll().keySet()) {
-            if (key.contains(keySubstring)) {
-                if (editor == null) {
-                    editor = prefs.edit();
-                }
-                editor.remove(key);
-            }
-        }
-        if (editor != null) {
-            editor.apply();
-        }
-    }
-
     private static String getScopedAccessDenialsKey(String packageName, String uuid,
             String directory) {
         final int userId = UserHandle.myUserId();
diff --git a/packages/DocumentsUI/src/com/android/documentsui/PackageReceiver.java b/packages/DocumentsUI/src/com/android/documentsui/PackageReceiver.java
index fd1183f..aef63af 100644
--- a/packages/DocumentsUI/src/com/android/documentsui/PackageReceiver.java
+++ b/packages/DocumentsUI/src/com/android/documentsui/PackageReceiver.java
@@ -23,7 +23,7 @@
 import android.net.Uri;
 
 /**
- * Cleans up {@link RecentsProvider} and {@link LocalPreferences} when packages are removed.
+ * Clean up {@link RecentsProvider} when packages are removed.
  */
 public class PackageReceiver extends BroadcastReceiver {
     @Override
@@ -31,19 +31,15 @@
         final ContentResolver resolver = context.getContentResolver();
 
         final String action = intent.getAction();
-        final Uri data = intent.getData();
-        final String packageName = data == null ? null : data.getSchemeSpecificPart();
-
         if (Intent.ACTION_PACKAGE_FULLY_REMOVED.equals(action)) {
             resolver.call(RecentsProvider.buildRecent(), RecentsProvider.METHOD_PURGE, null, null);
-            if (packageName != null) {
-                LocalPreferences.clearPackagePreferences(context, packageName);
-            }
+
         } else if (Intent.ACTION_PACKAGE_DATA_CLEARED.equals(action)) {
-            if (packageName != null) {
+            final Uri data = intent.getData();
+            if (data != null) {
+                final String packageName = data.getSchemeSpecificPart();
                 resolver.call(RecentsProvider.buildRecent(), RecentsProvider.METHOD_PURGE_PACKAGE,
                         packageName, null);
-                LocalPreferences.clearPackagePreferences(context, packageName);
             }
         }
     }
diff --git a/packages/PrintSpooler/res/values-zh-rCN/strings.xml b/packages/PrintSpooler/res/values-zh-rCN/strings.xml
index d4e7963..3debf8e 100644
--- a/packages/PrintSpooler/res/values-zh-rCN/strings.xml
+++ b/packages/PrintSpooler/res/values-zh-rCN/strings.xml
@@ -60,7 +60,7 @@
       <item quantity="one">找到 <xliff:g id="COUNT_0">%1$s</xliff:g> 台打印机</item>
     </plurals>
     <string name="printer_extended_description_template" msgid="1366699227703381874">"<xliff:g id="PRINT_SERVICE_LABEL">%1$s</xliff:g> - <xliff:g id="PRINTER_DESCRIPTION">%2$s</xliff:g>"</string>
-    <string name="printer_info_desc" msgid="7181988788991581654">"此打印机的详细信息"</string>
+    <string name="printer_info_desc" msgid="7181988788991581654">"关于此打印机的更多信息"</string>
     <string name="could_not_create_file" msgid="3425025039427448443">"无法创建文件"</string>
     <string name="print_services_disabled_toast" msgid="9089060734685174685">"部分打印服务已停用"</string>
     <string name="print_searching_for_printers" msgid="6550424555079932867">"正在搜索打印机"</string>
diff --git a/packages/SettingsLib/res/values-af/strings.xml b/packages/SettingsLib/res/values-af/strings.xml
index 11235ef..c16e08a 100644
--- a/packages/SettingsLib/res/values-af/strings.xml
+++ b/packages/SettingsLib/res/values-af/strings.xml
@@ -341,5 +341,4 @@
     <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"Grootste"</string>
     <string name="screen_zoom_summary_custom" msgid="5611979864124160447">"Gepasmaak (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
     <string name="help_feedback_label" msgid="6815040660801785649">"Hulp en terugvoer"</string>
-    <string name="content_description_menu_button" msgid="8182594799812351266">"Kieslys"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-am/strings.xml b/packages/SettingsLib/res/values-am/strings.xml
index dbfd5d8..6e9dcd7 100644
--- a/packages/SettingsLib/res/values-am/strings.xml
+++ b/packages/SettingsLib/res/values-am/strings.xml
@@ -341,5 +341,4 @@
     <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"በጣም ተለቅ ያለ"</string>
     <string name="screen_zoom_summary_custom" msgid="5611979864124160447">"ብጁ (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
     <string name="help_feedback_label" msgid="6815040660801785649">"እገዛ እና ግብረመልስ"</string>
-    <string name="content_description_menu_button" msgid="8182594799812351266">"ምናሌ"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-ar/strings.xml b/packages/SettingsLib/res/values-ar/strings.xml
index 092cf63..ee579dc 100644
--- a/packages/SettingsLib/res/values-ar/strings.xml
+++ b/packages/SettingsLib/res/values-ar/strings.xml
@@ -341,5 +341,4 @@
     <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"أكبر مستوى"</string>
     <string name="screen_zoom_summary_custom" msgid="5611979864124160447">"مخصص (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
     <string name="help_feedback_label" msgid="6815040660801785649">"المساعدة والتعليقات"</string>
-    <string name="content_description_menu_button" msgid="8182594799812351266">"القائمة"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-az-rAZ/strings.xml b/packages/SettingsLib/res/values-az-rAZ/strings.xml
index 2e58ae9..60d0169 100644
--- a/packages/SettingsLib/res/values-az-rAZ/strings.xml
+++ b/packages/SettingsLib/res/values-az-rAZ/strings.xml
@@ -341,5 +341,4 @@
     <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"Ən böyük"</string>
     <string name="screen_zoom_summary_custom" msgid="5611979864124160447">"Fərdi (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
     <string name="help_feedback_label" msgid="6815040660801785649">"Yardım və rəy"</string>
-    <string name="content_description_menu_button" msgid="8182594799812351266">"Menyu"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-b+sr+Latn/strings.xml b/packages/SettingsLib/res/values-b+sr+Latn/strings.xml
index 1f0ed53..060a5fb 100644
--- a/packages/SettingsLib/res/values-b+sr+Latn/strings.xml
+++ b/packages/SettingsLib/res/values-b+sr+Latn/strings.xml
@@ -341,5 +341,4 @@
     <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"Najveći"</string>
     <string name="screen_zoom_summary_custom" msgid="5611979864124160447">"Prilagođeni (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
     <string name="help_feedback_label" msgid="6815040660801785649">"Pomoć i povratne informacije"</string>
-    <string name="content_description_menu_button" msgid="8182594799812351266">"Meni"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-be-rBY/strings.xml b/packages/SettingsLib/res/values-be-rBY/strings.xml
index b8de297..03de8ba 100644
--- a/packages/SettingsLib/res/values-be-rBY/strings.xml
+++ b/packages/SettingsLib/res/values-be-rBY/strings.xml
@@ -341,5 +341,4 @@
     <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"Найвялікшы"</string>
     <string name="screen_zoom_summary_custom" msgid="5611979864124160447">"Карыстальніцкі (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
     <string name="help_feedback_label" msgid="6815040660801785649">"Даведка і водгукі"</string>
-    <string name="content_description_menu_button" msgid="8182594799812351266">"Меню"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-bg/strings.xml b/packages/SettingsLib/res/values-bg/strings.xml
index 683a4d9..f6596dc 100644
--- a/packages/SettingsLib/res/values-bg/strings.xml
+++ b/packages/SettingsLib/res/values-bg/strings.xml
@@ -341,5 +341,4 @@
     <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"Най-голямо"</string>
     <string name="screen_zoom_summary_custom" msgid="5611979864124160447">"Персонализирано (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
     <string name="help_feedback_label" msgid="6815040660801785649">"Помощ и отзиви"</string>
-    <string name="content_description_menu_button" msgid="8182594799812351266">"Меню"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-bn-rBD/strings.xml b/packages/SettingsLib/res/values-bn-rBD/strings.xml
index 9ba656f..4a11198 100644
--- a/packages/SettingsLib/res/values-bn-rBD/strings.xml
+++ b/packages/SettingsLib/res/values-bn-rBD/strings.xml
@@ -341,5 +341,4 @@
     <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"বৃহত্তম"</string>
     <string name="screen_zoom_summary_custom" msgid="5611979864124160447">"কাস্টম (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
     <string name="help_feedback_label" msgid="6815040660801785649">"সহায়তা ও মতামত"</string>
-    <string name="content_description_menu_button" msgid="8182594799812351266">"মেনু"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-bs-rBA/strings.xml b/packages/SettingsLib/res/values-bs-rBA/strings.xml
index f2c7323..a11bf32 100644
--- a/packages/SettingsLib/res/values-bs-rBA/strings.xml
+++ b/packages/SettingsLib/res/values-bs-rBA/strings.xml
@@ -146,9 +146,9 @@
     <string name="vpn_settings_not_available" msgid="956841430176985598">"VPN postavke nisu dostupne za ovog korisnika"</string>
     <string name="tethering_settings_not_available" msgid="6765770438438291012">"Postavke za privezivanje nisu dostupne za ovog korisnika"</string>
     <string name="apn_settings_not_available" msgid="7873729032165324000">"Postavke za naziv pristupne tačke nisu dostupne za ovog korisnika"</string>
-    <string name="enable_adb" msgid="7982306934419797485">"Otklanjanje grešaka putem uređaja spojenog na USB"</string>
+    <string name="enable_adb" msgid="7982306934419797485">"USB otklanjanje grešaka"</string>
     <string name="enable_adb_summary" msgid="4881186971746056635">"Način rada za uklanjanje grešaka kada je povezan USB"</string>
-    <string name="clear_adb_keys" msgid="4038889221503122743">"Ukini odobrenja otklanjanja grešaka putem uređaja spojenog na USB"</string>
+    <string name="clear_adb_keys" msgid="4038889221503122743">"Ukini odobrenja otklanjanja grešaka USB-om"</string>
     <string name="bugreport_in_power" msgid="7923901846375587241">"Prečica za izvještaj o greškama"</string>
     <string name="bugreport_in_power_summary" msgid="1778455732762984579">"Prikaži tipku za prijavu grešaka u izborniku za potrošnju energije"</string>
     <string name="keep_screen_on" msgid="1146389631208760344">"Ostani aktivan"</string>
@@ -185,9 +185,9 @@
     <string name="allow_mock_location_summary" msgid="317615105156345626">"Dozvoli lažne lokacije"</string>
     <string name="debug_view_attributes" msgid="6485448367803310384">"Omogući pregled atributa prikaza"</string>
     <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"Uvijek drži mobilne podatke aktivnim, čak i kada je Wi-Fi je aktivan (za brzo prebacivanje između mreža)."</string>
-    <string name="adb_warning_title" msgid="6234463310896563253">"Omogućiti otklanjanje grešaka putem uređaja spojenog na USB?"</string>
-    <string name="adb_warning_message" msgid="7316799925425402244">"Otklanjanje grešaka putem uređaja spojenog na USB je namijenjeno samo u svrhe razvoja aplikacija. Koristite ga za kopiranje podataka između računara i uređaja, instaliranje aplikacija na uređaj bez obavještenja te čitanje podataka iz zapisnika."</string>
-    <string name="adb_keys_warning_message" msgid="5659849457135841625">"Opozvati pristup otklanjanju grešaka putem uređaja spojenog na USB za sve računare koje ste prethodno ovlastili?"</string>
+    <string name="adb_warning_title" msgid="6234463310896563253">"Omogućiti USB otklanjanje grešaka?"</string>
+    <string name="adb_warning_message" msgid="7316799925425402244">"USB otklanjanje grešaka je namijenjeno samo u svrhe razvoja aplikacija. Koristite ga za kopiranje podataka između računara i uređaja, instaliranje aplikacija na uređaj bez obavještenja te čitanje podataka iz zapisnika."</string>
+    <string name="adb_keys_warning_message" msgid="5659849457135841625">"Opozvati pristup otklanjanju grešaka USB-om za sve računare koje ste prethodno ovlastili?"</string>
     <string name="dev_settings_warning_title" msgid="7244607768088540165">"Dopustiti postavke za razvoj?"</string>
     <string name="dev_settings_warning_message" msgid="2298337781139097964">"Ove postavke su namijenjene samo za svrhe razvoja. Mogu izazvati pogrešno ponašanje uređaja i aplikacija na njemu."</string>
     <string name="verify_apps_over_usb_title" msgid="4177086489869041953">"Verifikuj aplikacije putem USB-a"</string>
@@ -341,5 +341,4 @@
     <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"Najveće"</string>
     <string name="screen_zoom_summary_custom" msgid="5611979864124160447">"Prilagodi (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
     <string name="help_feedback_label" msgid="6815040660801785649">"Pomoć i povratne informacije"</string>
-    <string name="content_description_menu_button" msgid="8182594799812351266">"Meni"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-ca/strings.xml b/packages/SettingsLib/res/values-ca/strings.xml
index 332daf3..fb7180a 100644
--- a/packages/SettingsLib/res/values-ca/strings.xml
+++ b/packages/SettingsLib/res/values-ca/strings.xml
@@ -111,7 +111,7 @@
     <string name="tts_play_example_summary" msgid="8029071615047894486">"Reprodueix una breu demostració de síntesi de veu"</string>
     <string name="tts_install_data_title" msgid="4264378440508149986">"Instal·la dades de veu"</string>
     <string name="tts_install_data_summary" msgid="5742135732511822589">"Instal·la les dades de veu necessàries per a la síntesi de veu"</string>
-    <string name="tts_engine_security_warning" msgid="8786238102020223650">"Pot ser que aquest motor de síntesi de la parla pugui recopilar tot el text que es dirà en veu alta, incloses les dades personals, com ara les contrasenyes i els números de les targetes de crèdit. Ve del motor <xliff:g id="TTS_PLUGIN_ENGINE_NAME">%s</xliff:g>. Vols activar l\'ús d\'aquest motor de síntesi de la parla?"</string>
+    <string name="tts_engine_security_warning" msgid="8786238102020223650">"Pot ser que aquest motor de síntesi de la parla pugui recopilar tot el text que es dirà en veu alta, incloses les dades personals, com ara les contrasenyes i els números de les targetes de crèdit. Ve del motor <xliff:g id="TTS_PLUGIN_ENGINE_NAME">%s</xliff:g>. Voleu activar l\'ús d\'aquest motor de síntesi de la parla?"</string>
     <string name="tts_engine_network_required" msgid="1190837151485314743">"Aquest idioma requereix una connexió de xarxa activa per a la sortida de síntesi de veu."</string>
     <string name="tts_default_sample_string" msgid="4040835213373086322">"Això és un exemple de síntesi de veu"</string>
     <string name="tts_status_title" msgid="7268566550242584413">"Estat de l\'idioma predeterminat"</string>
@@ -341,5 +341,4 @@
     <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"Màxim"</string>
     <string name="screen_zoom_summary_custom" msgid="5611979864124160447">"Personalitzat (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
     <string name="help_feedback_label" msgid="6815040660801785649">"Ajuda i suggeriments"</string>
-    <string name="content_description_menu_button" msgid="8182594799812351266">"Menú"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-cs/strings.xml b/packages/SettingsLib/res/values-cs/strings.xml
index d0dbe74..361ba1f 100644
--- a/packages/SettingsLib/res/values-cs/strings.xml
+++ b/packages/SettingsLib/res/values-cs/strings.xml
@@ -341,5 +341,4 @@
     <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"Největší"</string>
     <string name="screen_zoom_summary_custom" msgid="5611979864124160447">"Vlastní (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
     <string name="help_feedback_label" msgid="6815040660801785649">"Nápověda a zpětná vazba"</string>
-    <string name="content_description_menu_button" msgid="8182594799812351266">"Nabídka"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-da/strings.xml b/packages/SettingsLib/res/values-da/strings.xml
index 3c4b955..98f41fc 100644
--- a/packages/SettingsLib/res/values-da/strings.xml
+++ b/packages/SettingsLib/res/values-da/strings.xml
@@ -341,5 +341,4 @@
     <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"Størst"</string>
     <string name="screen_zoom_summary_custom" msgid="5611979864124160447">"Tilpasset (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
     <string name="help_feedback_label" msgid="6815040660801785649">"Hjælp og feedback"</string>
-    <string name="content_description_menu_button" msgid="8182594799812351266">"Menu"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-de/strings.xml b/packages/SettingsLib/res/values-de/strings.xml
index 0fca8b9..c9da6c9 100644
--- a/packages/SettingsLib/res/values-de/strings.xml
+++ b/packages/SettingsLib/res/values-de/strings.xml
@@ -341,5 +341,4 @@
     <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"Am größten"</string>
     <string name="screen_zoom_summary_custom" msgid="5611979864124160447">"Benutzerdefiniert (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
     <string name="help_feedback_label" msgid="6815040660801785649">"Hilfe &amp; Feedback"</string>
-    <string name="content_description_menu_button" msgid="8182594799812351266">"Menü"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-el/strings.xml b/packages/SettingsLib/res/values-el/strings.xml
index da1b03c..05e4e64 100644
--- a/packages/SettingsLib/res/values-el/strings.xml
+++ b/packages/SettingsLib/res/values-el/strings.xml
@@ -341,5 +341,4 @@
     <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"Μεγαλύτερα"</string>
     <string name="screen_zoom_summary_custom" msgid="5611979864124160447">"Προσαρμοσμένη (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
     <string name="help_feedback_label" msgid="6815040660801785649">"Βοήθεια και σχόλια"</string>
-    <string name="content_description_menu_button" msgid="8182594799812351266">"Μενού"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-en-rAU/strings.xml b/packages/SettingsLib/res/values-en-rAU/strings.xml
index 70fa5017..799802b 100644
--- a/packages/SettingsLib/res/values-en-rAU/strings.xml
+++ b/packages/SettingsLib/res/values-en-rAU/strings.xml
@@ -341,5 +341,4 @@
     <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"Largest"</string>
     <string name="screen_zoom_summary_custom" msgid="5611979864124160447">"Custom (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
     <string name="help_feedback_label" msgid="6815040660801785649">"Help &amp; feedback"</string>
-    <string name="content_description_menu_button" msgid="8182594799812351266">"Menu"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-en-rGB/strings.xml b/packages/SettingsLib/res/values-en-rGB/strings.xml
index 70fa5017..799802b 100644
--- a/packages/SettingsLib/res/values-en-rGB/strings.xml
+++ b/packages/SettingsLib/res/values-en-rGB/strings.xml
@@ -341,5 +341,4 @@
     <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"Largest"</string>
     <string name="screen_zoom_summary_custom" msgid="5611979864124160447">"Custom (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
     <string name="help_feedback_label" msgid="6815040660801785649">"Help &amp; feedback"</string>
-    <string name="content_description_menu_button" msgid="8182594799812351266">"Menu"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-en-rIN/strings.xml b/packages/SettingsLib/res/values-en-rIN/strings.xml
index 70fa5017..799802b 100644
--- a/packages/SettingsLib/res/values-en-rIN/strings.xml
+++ b/packages/SettingsLib/res/values-en-rIN/strings.xml
@@ -341,5 +341,4 @@
     <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"Largest"</string>
     <string name="screen_zoom_summary_custom" msgid="5611979864124160447">"Custom (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
     <string name="help_feedback_label" msgid="6815040660801785649">"Help &amp; feedback"</string>
-    <string name="content_description_menu_button" msgid="8182594799812351266">"Menu"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-es-rUS/strings.xml b/packages/SettingsLib/res/values-es-rUS/strings.xml
index 63a5d87..08e739a 100644
--- a/packages/SettingsLib/res/values-es-rUS/strings.xml
+++ b/packages/SettingsLib/res/values-es-rUS/strings.xml
@@ -341,5 +341,4 @@
     <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"Máximo"</string>
     <string name="screen_zoom_summary_custom" msgid="5611979864124160447">"Personalizado (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
     <string name="help_feedback_label" msgid="6815040660801785649">"Ayuda y comentarios"</string>
-    <string name="content_description_menu_button" msgid="8182594799812351266">"Menú"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-es/strings.xml b/packages/SettingsLib/res/values-es/strings.xml
index 6b67b11..3d2f6c1 100644
--- a/packages/SettingsLib/res/values-es/strings.xml
+++ b/packages/SettingsLib/res/values-es/strings.xml
@@ -341,5 +341,4 @@
     <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"Lo más grande posible"</string>
     <string name="screen_zoom_summary_custom" msgid="5611979864124160447">"Personalizado (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
     <string name="help_feedback_label" msgid="6815040660801785649">"Ayuda y sugerencias"</string>
-    <string name="content_description_menu_button" msgid="8182594799812351266">"Menú"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-et-rEE/strings.xml b/packages/SettingsLib/res/values-et-rEE/strings.xml
index de9255a..a7b0f64 100644
--- a/packages/SettingsLib/res/values-et-rEE/strings.xml
+++ b/packages/SettingsLib/res/values-et-rEE/strings.xml
@@ -341,5 +341,4 @@
     <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"Suurim"</string>
     <string name="screen_zoom_summary_custom" msgid="5611979864124160447">"Kohandatud (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
     <string name="help_feedback_label" msgid="6815040660801785649">"Abi ja tagasiside"</string>
-    <string name="content_description_menu_button" msgid="8182594799812351266">"Menüü"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-eu-rES/strings.xml b/packages/SettingsLib/res/values-eu-rES/strings.xml
index bd8c11d..f476511 100644
--- a/packages/SettingsLib/res/values-eu-rES/strings.xml
+++ b/packages/SettingsLib/res/values-eu-rES/strings.xml
@@ -341,5 +341,4 @@
     <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"Handiena"</string>
     <string name="screen_zoom_summary_custom" msgid="5611979864124160447">"Pertsonalizatua (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
     <string name="help_feedback_label" msgid="6815040660801785649">"Laguntza eta iritziak"</string>
-    <string name="content_description_menu_button" msgid="8182594799812351266">"Menua"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-fa/strings.xml b/packages/SettingsLib/res/values-fa/strings.xml
index 027987f..4491851 100644
--- a/packages/SettingsLib/res/values-fa/strings.xml
+++ b/packages/SettingsLib/res/values-fa/strings.xml
@@ -341,5 +341,4 @@
     <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"بزرگ‌ترین"</string>
     <string name="screen_zoom_summary_custom" msgid="5611979864124160447">"سفارشی (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
     <string name="help_feedback_label" msgid="6815040660801785649">"راهنما و بازخورد"</string>
-    <string name="content_description_menu_button" msgid="8182594799812351266">"منو"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-fi/strings.xml b/packages/SettingsLib/res/values-fi/strings.xml
index a988ccf..cdef968 100644
--- a/packages/SettingsLib/res/values-fi/strings.xml
+++ b/packages/SettingsLib/res/values-fi/strings.xml
@@ -341,5 +341,4 @@
     <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"Suurin"</string>
     <string name="screen_zoom_summary_custom" msgid="5611979864124160447">"Muokattu (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
     <string name="help_feedback_label" msgid="6815040660801785649">"Ohje ja palaute"</string>
-    <string name="content_description_menu_button" msgid="8182594799812351266">"Valikko"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-fr-rCA/strings.xml b/packages/SettingsLib/res/values-fr-rCA/strings.xml
index e22e938..958b8fd 100644
--- a/packages/SettingsLib/res/values-fr-rCA/strings.xml
+++ b/packages/SettingsLib/res/values-fr-rCA/strings.xml
@@ -341,5 +341,4 @@
     <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"La plus grande"</string>
     <string name="screen_zoom_summary_custom" msgid="5611979864124160447">"Personnalisée (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
     <string name="help_feedback_label" msgid="6815040660801785649">"Aide et commentaires"</string>
-    <string name="content_description_menu_button" msgid="8182594799812351266">"Menu"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-fr/strings.xml b/packages/SettingsLib/res/values-fr/strings.xml
index e4a34d6..cf08f3b 100644
--- a/packages/SettingsLib/res/values-fr/strings.xml
+++ b/packages/SettingsLib/res/values-fr/strings.xml
@@ -341,5 +341,4 @@
     <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"Le plus grand"</string>
     <string name="screen_zoom_summary_custom" msgid="5611979864124160447">"Personnalisé (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
     <string name="help_feedback_label" msgid="6815040660801785649">"Aide et commentaires"</string>
-    <string name="content_description_menu_button" msgid="8182594799812351266">"Menu"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-gl-rES/strings.xml b/packages/SettingsLib/res/values-gl-rES/strings.xml
index 10a3957..cdc4581 100644
--- a/packages/SettingsLib/res/values-gl-rES/strings.xml
+++ b/packages/SettingsLib/res/values-gl-rES/strings.xml
@@ -341,5 +341,4 @@
     <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"O máis grande"</string>
     <string name="screen_zoom_summary_custom" msgid="5611979864124160447">"Personalizado (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
     <string name="help_feedback_label" msgid="6815040660801785649">"Axuda e suxestións"</string>
-    <string name="content_description_menu_button" msgid="8182594799812351266">"Menú"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-gu-rIN/strings.xml b/packages/SettingsLib/res/values-gu-rIN/strings.xml
index 0f3079d..1b40e01 100644
--- a/packages/SettingsLib/res/values-gu-rIN/strings.xml
+++ b/packages/SettingsLib/res/values-gu-rIN/strings.xml
@@ -341,5 +341,4 @@
     <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"સૌથી મોટું"</string>
     <string name="screen_zoom_summary_custom" msgid="5611979864124160447">"કસ્ટમ (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
     <string name="help_feedback_label" msgid="6815040660801785649">"સહાય અને પ્રતિસાદ"</string>
-    <string name="content_description_menu_button" msgid="8182594799812351266">"મેનુ"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-hi/strings.xml b/packages/SettingsLib/res/values-hi/strings.xml
index 5407c21..8dfbb4a 100644
--- a/packages/SettingsLib/res/values-hi/strings.xml
+++ b/packages/SettingsLib/res/values-hi/strings.xml
@@ -341,5 +341,4 @@
     <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"सबसे बड़ा"</string>
     <string name="screen_zoom_summary_custom" msgid="5611979864124160447">"कस्टम (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
     <string name="help_feedback_label" msgid="6815040660801785649">"सहायता और फ़ीडबैक"</string>
-    <string name="content_description_menu_button" msgid="8182594799812351266">"मेनू"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-hr/strings.xml b/packages/SettingsLib/res/values-hr/strings.xml
index e52f441..07e4925 100644
--- a/packages/SettingsLib/res/values-hr/strings.xml
+++ b/packages/SettingsLib/res/values-hr/strings.xml
@@ -341,5 +341,4 @@
     <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"Najveće"</string>
     <string name="screen_zoom_summary_custom" msgid="5611979864124160447">"Prilagođeno (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
     <string name="help_feedback_label" msgid="6815040660801785649">"Pomoć i povratne informacije"</string>
-    <string name="content_description_menu_button" msgid="8182594799812351266">"Izbornik"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-hu/strings.xml b/packages/SettingsLib/res/values-hu/strings.xml
index ac4a43c..0d8ec26 100644
--- a/packages/SettingsLib/res/values-hu/strings.xml
+++ b/packages/SettingsLib/res/values-hu/strings.xml
@@ -341,5 +341,4 @@
     <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"Legnagyobb"</string>
     <string name="screen_zoom_summary_custom" msgid="5611979864124160447">"Egyéni (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
     <string name="help_feedback_label" msgid="6815040660801785649">"Súgó és visszajelzés"</string>
-    <string name="content_description_menu_button" msgid="8182594799812351266">"Menü"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-hy-rAM/strings.xml b/packages/SettingsLib/res/values-hy-rAM/strings.xml
index e26d4cb..cb12fbf 100644
--- a/packages/SettingsLib/res/values-hy-rAM/strings.xml
+++ b/packages/SettingsLib/res/values-hy-rAM/strings.xml
@@ -38,7 +38,7 @@
     <string name="bluetooth_disconnecting" msgid="8913264760027764974">"Անջատվում է..."</string>
     <string name="bluetooth_connecting" msgid="8555009514614320497">"Միանում է..."</string>
     <string name="bluetooth_connected" msgid="6038755206916626419">"Միացված է"</string>
-    <string name="bluetooth_pairing" msgid="1426882272690346242">"Զուգակցում..."</string>
+    <string name="bluetooth_pairing" msgid="1426882272690346242">"Զուգավորում..."</string>
     <string name="bluetooth_connected_no_headset" msgid="2866994875046035609">"Միացված (առանց հեռախոսի)"</string>
     <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"Միացված է (առանց մեդիա)"</string>
     <string name="bluetooth_connected_no_map" msgid="6504436917057479986">"Միացված է (հաղորդագրությանը մուտք չկա)"</string>
@@ -72,7 +72,7 @@
     <string name="bluetooth_pairing_accept" msgid="6163520056536604875">"Զուգավորել"</string>
     <string name="bluetooth_pairing_accept_all_caps" msgid="6061699265220789149">"Զուգավորել"</string>
     <string name="bluetooth_pairing_decline" msgid="4185420413578948140">"Չեղարկել"</string>
-    <string name="bluetooth_pairing_will_share_phonebook" msgid="4982239145676394429">"Զուգակցում է մուտքի թույլտվությունը դեպի ձեր կոնտակտները և զանգերի պատմությունը, երբ միացված է:"</string>
+    <string name="bluetooth_pairing_will_share_phonebook" msgid="4982239145676394429">"Զուգավորում է մուտքի թույլտվությունը դեպի ձեր կոնտակտները և զանգերի պատմությունը, երբ միացված է:"</string>
     <string name="bluetooth_pairing_error_message" msgid="3748157733635947087">"Չհաջողվեց զուգավորել <xliff:g id="DEVICE_NAME">%1$s</xliff:g>-ի հետ:"</string>
     <string name="bluetooth_pairing_pin_error_message" msgid="8337234855188925274">"Հնարավոր չեղավ զուգավորվել <xliff:g id="DEVICE_NAME">%1$s</xliff:g>-ի հետ սխալ PIN-ի կամ անցաբառի պատճառով:."</string>
     <string name="bluetooth_pairing_device_down_error_message" msgid="7870998403045801381">"Հնարավոր չէ կապ հաստատել  <xliff:g id="DEVICE_NAME">%1$s</xliff:g>-ի հետ:"</string>
@@ -341,5 +341,4 @@
     <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"Ամենամեծ"</string>
     <string name="screen_zoom_summary_custom" msgid="5611979864124160447">"Հատուկ (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
     <string name="help_feedback_label" msgid="6815040660801785649">"Օգնություն և հետադարձ կապ"</string>
-    <string name="content_description_menu_button" msgid="8182594799812351266">"Ընտրացանկ"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-in/strings.xml b/packages/SettingsLib/res/values-in/strings.xml
index 5711ea7..ffdb607 100644
--- a/packages/SettingsLib/res/values-in/strings.xml
+++ b/packages/SettingsLib/res/values-in/strings.xml
@@ -341,5 +341,4 @@
     <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"Terbesar"</string>
     <string name="screen_zoom_summary_custom" msgid="5611979864124160447">"(<xliff:g id="DENSITYDPI">%d</xliff:g>) khusus"</string>
     <string name="help_feedback_label" msgid="6815040660801785649">"Bantuan &amp; masukan"</string>
-    <string name="content_description_menu_button" msgid="8182594799812351266">"Menu"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-is-rIS/strings.xml b/packages/SettingsLib/res/values-is-rIS/strings.xml
index 44226ee..25e13a4 100644
--- a/packages/SettingsLib/res/values-is-rIS/strings.xml
+++ b/packages/SettingsLib/res/values-is-rIS/strings.xml
@@ -341,5 +341,4 @@
     <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"Stærst"</string>
     <string name="screen_zoom_summary_custom" msgid="5611979864124160447">"Sérsniðið (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
     <string name="help_feedback_label" msgid="6815040660801785649">"Hjálp og ábendingar"</string>
-    <string name="content_description_menu_button" msgid="8182594799812351266">"Valmynd"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-it/strings.xml b/packages/SettingsLib/res/values-it/strings.xml
index b90fe66..2907fab 100644
--- a/packages/SettingsLib/res/values-it/strings.xml
+++ b/packages/SettingsLib/res/values-it/strings.xml
@@ -328,7 +328,7 @@
     <string name="disabled_by_admin" msgid="3669999613095206948">"Disattivata dall\'amministratore"</string>
     <string name="home" msgid="3256884684164448244">"Home page Impostazioni"</string>
   <string-array name="battery_labels">
-    <item msgid="8494684293649631252">"0%"</item>
+    <item msgid="8494684293649631252">"0%%"</item>
     <item msgid="8934126114226089439">"50%%"</item>
     <item msgid="1286113608943010849">"100%%"</item>
   </string-array>
@@ -341,5 +341,4 @@
     <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"Massimo"</string>
     <string name="screen_zoom_summary_custom" msgid="5611979864124160447">"Personalizzato (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
     <string name="help_feedback_label" msgid="6815040660801785649">"Guida e feedback"</string>
-    <string name="content_description_menu_button" msgid="8182594799812351266">"Menu"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-iw/strings.xml b/packages/SettingsLib/res/values-iw/strings.xml
index 6f7460a..7c16e42 100644
--- a/packages/SettingsLib/res/values-iw/strings.xml
+++ b/packages/SettingsLib/res/values-iw/strings.xml
@@ -341,5 +341,4 @@
     <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"הכי גדול"</string>
     <string name="screen_zoom_summary_custom" msgid="5611979864124160447">"מותאם אישית (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
     <string name="help_feedback_label" msgid="6815040660801785649">"עזרה ומשוב"</string>
-    <string name="content_description_menu_button" msgid="8182594799812351266">"תפריט"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-ja/strings.xml b/packages/SettingsLib/res/values-ja/strings.xml
index 025b7fd..25f4152 100644
--- a/packages/SettingsLib/res/values-ja/strings.xml
+++ b/packages/SettingsLib/res/values-ja/strings.xml
@@ -343,5 +343,4 @@
     <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"最大"</string>
     <string name="screen_zoom_summary_custom" msgid="5611979864124160447">"カスタム(<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
     <string name="help_feedback_label" msgid="6815040660801785649">"ヘルプとフィードバック"</string>
-    <string name="content_description_menu_button" msgid="8182594799812351266">"メニュー"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-ka-rGE/strings.xml b/packages/SettingsLib/res/values-ka-rGE/strings.xml
index 0eda6a9..ffe194a 100644
--- a/packages/SettingsLib/res/values-ka-rGE/strings.xml
+++ b/packages/SettingsLib/res/values-ka-rGE/strings.xml
@@ -341,5 +341,4 @@
     <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"უდიდესი"</string>
     <string name="screen_zoom_summary_custom" msgid="5611979864124160447">"მორგებული (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
     <string name="help_feedback_label" msgid="6815040660801785649">"დახმარება და გამოხმაურება"</string>
-    <string name="content_description_menu_button" msgid="8182594799812351266">"მენიუ"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-kk-rKZ/strings.xml b/packages/SettingsLib/res/values-kk-rKZ/strings.xml
index 369a10f..3dcc7eb 100644
--- a/packages/SettingsLib/res/values-kk-rKZ/strings.xml
+++ b/packages/SettingsLib/res/values-kk-rKZ/strings.xml
@@ -341,5 +341,4 @@
     <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"Ең үлкен"</string>
     <string name="screen_zoom_summary_custom" msgid="5611979864124160447">"Арнаулы (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
     <string name="help_feedback_label" msgid="6815040660801785649">"Анықтама және пікір"</string>
-    <string name="content_description_menu_button" msgid="8182594799812351266">"Mәзір"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-km-rKH/strings.xml b/packages/SettingsLib/res/values-km-rKH/strings.xml
index 3e934ba..aa0ce24 100644
--- a/packages/SettingsLib/res/values-km-rKH/strings.xml
+++ b/packages/SettingsLib/res/values-km-rKH/strings.xml
@@ -341,5 +341,4 @@
     <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"ធំបំផុត"</string>
     <string name="screen_zoom_summary_custom" msgid="5611979864124160447">"ផ្ទាល់ខ្លួន (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
     <string name="help_feedback_label" msgid="6815040660801785649">"ជំនួយ និងមតិស្ថាបនា"</string>
-    <string name="content_description_menu_button" msgid="8182594799812351266">"ម៉ឺនុយ"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-kn-rIN/strings.xml b/packages/SettingsLib/res/values-kn-rIN/strings.xml
index 5a8d53c..8578810d 100644
--- a/packages/SettingsLib/res/values-kn-rIN/strings.xml
+++ b/packages/SettingsLib/res/values-kn-rIN/strings.xml
@@ -340,6 +340,5 @@
     <string name="screen_zoom_summary_very_large" msgid="7108563375663670067">"ಸ್ವಲ್ಪ ದೊಡ್ಡ"</string>
     <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"ದೊಡ್ಡ"</string>
     <string name="screen_zoom_summary_custom" msgid="5611979864124160447">"ಕಸ್ಟಮ್ (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
-    <string name="help_feedback_label" msgid="6815040660801785649">"ಸಹಾಯ ಮತ್ತು ಪ್ರತಿಕ್ರಿಯೆ"</string>
-    <string name="content_description_menu_button" msgid="8182594799812351266">"ಮೆನು"</string>
+    <string name="help_feedback_label" msgid="6815040660801785649">"ಸಹಾಯ &amp; ಪ್ರತಿಕ್ರಿಯೆ"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-ko/strings.xml b/packages/SettingsLib/res/values-ko/strings.xml
index bd96334..aaf3463 100644
--- a/packages/SettingsLib/res/values-ko/strings.xml
+++ b/packages/SettingsLib/res/values-ko/strings.xml
@@ -340,6 +340,5 @@
     <string name="screen_zoom_summary_very_large" msgid="7108563375663670067">"더 크게"</string>
     <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"가장 크게"</string>
     <string name="screen_zoom_summary_custom" msgid="5611979864124160447">"맞춤(<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
-    <string name="help_feedback_label" msgid="6815040660801785649">"고객센터"</string>
-    <string name="content_description_menu_button" msgid="8182594799812351266">"메뉴"</string>
+    <string name="help_feedback_label" msgid="6815040660801785649">"도움말 및 의견"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-ky-rKG/strings.xml b/packages/SettingsLib/res/values-ky-rKG/strings.xml
index 5ca4e7c..96c1ec0 100644
--- a/packages/SettingsLib/res/values-ky-rKG/strings.xml
+++ b/packages/SettingsLib/res/values-ky-rKG/strings.xml
@@ -341,5 +341,4 @@
     <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"Эң чоң"</string>
     <string name="screen_zoom_summary_custom" msgid="5611979864124160447">"Ыңгайлаштырылган (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
     <string name="help_feedback_label" msgid="6815040660801785649">"Жардам жана жооп пикир"</string>
-    <string name="content_description_menu_button" msgid="8182594799812351266">"Меню"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-lo-rLA/strings.xml b/packages/SettingsLib/res/values-lo-rLA/strings.xml
index b47629a..24f0c16 100644
--- a/packages/SettingsLib/res/values-lo-rLA/strings.xml
+++ b/packages/SettingsLib/res/values-lo-rLA/strings.xml
@@ -341,5 +341,4 @@
     <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"ໃຫຍ່ທີ່ສຸດ"</string>
     <string name="screen_zoom_summary_custom" msgid="5611979864124160447">"ປັບແຕ່ງເອງ (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
     <string name="help_feedback_label" msgid="6815040660801785649">"ຊ່ວຍເຫຼືອ &amp; ຄຳຕິຊົມ"</string>
-    <string name="content_description_menu_button" msgid="8182594799812351266">"ເມນູ"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-lt/strings.xml b/packages/SettingsLib/res/values-lt/strings.xml
index 7ac54a8..4b8890d 100644
--- a/packages/SettingsLib/res/values-lt/strings.xml
+++ b/packages/SettingsLib/res/values-lt/strings.xml
@@ -341,5 +341,4 @@
     <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"Didžiausias"</string>
     <string name="screen_zoom_summary_custom" msgid="5611979864124160447">"Tinkintas (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
     <string name="help_feedback_label" msgid="6815040660801785649">"Pagalba ir atsiliepimai"</string>
-    <string name="content_description_menu_button" msgid="8182594799812351266">"Meniu"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-lv/strings.xml b/packages/SettingsLib/res/values-lv/strings.xml
index 933d374..4d76adc 100644
--- a/packages/SettingsLib/res/values-lv/strings.xml
+++ b/packages/SettingsLib/res/values-lv/strings.xml
@@ -341,5 +341,4 @@
     <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"Vislielākais"</string>
     <string name="screen_zoom_summary_custom" msgid="5611979864124160447">"Pielāgots (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
     <string name="help_feedback_label" msgid="6815040660801785649">"Palīdzība un atsauksmes"</string>
-    <string name="content_description_menu_button" msgid="8182594799812351266">"Izvēlne"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-mk-rMK/strings.xml b/packages/SettingsLib/res/values-mk-rMK/strings.xml
index 1e1c857..953360a 100644
--- a/packages/SettingsLib/res/values-mk-rMK/strings.xml
+++ b/packages/SettingsLib/res/values-mk-rMK/strings.xml
@@ -341,5 +341,4 @@
     <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"Најголем"</string>
     <string name="screen_zoom_summary_custom" msgid="5611979864124160447">"Приспособен (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
     <string name="help_feedback_label" msgid="6815040660801785649">"Помош и повратни информации"</string>
-    <string name="content_description_menu_button" msgid="8182594799812351266">"Мени"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-ml-rIN/strings.xml b/packages/SettingsLib/res/values-ml-rIN/strings.xml
index 6f75886..92c0448 100644
--- a/packages/SettingsLib/res/values-ml-rIN/strings.xml
+++ b/packages/SettingsLib/res/values-ml-rIN/strings.xml
@@ -341,5 +341,4 @@
     <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"ഏറ്റവും വലുത്"</string>
     <string name="screen_zoom_summary_custom" msgid="5611979864124160447">"ഇഷ്ടാനുസൃതം ( <xliff:g id="DENSITYDPI">%d</xliff:g> )"</string>
     <string name="help_feedback_label" msgid="6815040660801785649">"സഹായവും പ്രതികരണവും"</string>
-    <string name="content_description_menu_button" msgid="8182594799812351266">"മെനു"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-mn-rMN/strings.xml b/packages/SettingsLib/res/values-mn-rMN/strings.xml
index bf7d7ce..4c98c04 100644
--- a/packages/SettingsLib/res/values-mn-rMN/strings.xml
+++ b/packages/SettingsLib/res/values-mn-rMN/strings.xml
@@ -341,5 +341,4 @@
     <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"Хамгийн том"</string>
     <string name="screen_zoom_summary_custom" msgid="5611979864124160447">"Тогтмол утга (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
     <string name="help_feedback_label" msgid="6815040660801785649">"Тусламж, санал хүсэлт"</string>
-    <string name="content_description_menu_button" msgid="8182594799812351266">"Цэс"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-mr-rIN/strings.xml b/packages/SettingsLib/res/values-mr-rIN/strings.xml
index a1123bc..e3a7cc4 100644
--- a/packages/SettingsLib/res/values-mr-rIN/strings.xml
+++ b/packages/SettingsLib/res/values-mr-rIN/strings.xml
@@ -341,5 +341,4 @@
     <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"सर्वात मोठा"</string>
     <string name="screen_zoom_summary_custom" msgid="5611979864124160447">"सानुकूल करा (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
     <string name="help_feedback_label" msgid="6815040660801785649">"मदत आणि अभिप्राय"</string>
-    <string name="content_description_menu_button" msgid="8182594799812351266">"मेनू"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-ms-rMY/strings.xml b/packages/SettingsLib/res/values-ms-rMY/strings.xml
index 8f11589..a1caa2a 100644
--- a/packages/SettingsLib/res/values-ms-rMY/strings.xml
+++ b/packages/SettingsLib/res/values-ms-rMY/strings.xml
@@ -341,5 +341,4 @@
     <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"Terbesar"</string>
     <string name="screen_zoom_summary_custom" msgid="5611979864124160447">"Tersuai (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
     <string name="help_feedback_label" msgid="6815040660801785649">"Bantuan &amp; maklum balas"</string>
-    <string name="content_description_menu_button" msgid="8182594799812351266">"Menu"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-my-rMM/strings.xml b/packages/SettingsLib/res/values-my-rMM/strings.xml
index cfba5da..6a1c331 100644
--- a/packages/SettingsLib/res/values-my-rMM/strings.xml
+++ b/packages/SettingsLib/res/values-my-rMM/strings.xml
@@ -341,5 +341,4 @@
     <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"အကြီးဆုံး"</string>
     <string name="screen_zoom_summary_custom" msgid="5611979864124160447">"စိတ်ကြိုက် (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
     <string name="help_feedback_label" msgid="6815040660801785649">"အကူအညီနှင့် အကြံပြုချက်"</string>
-    <string name="content_description_menu_button" msgid="8182594799812351266">"မီနူး"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-nb/strings.xml b/packages/SettingsLib/res/values-nb/strings.xml
index 2da378a..5d8ae55 100644
--- a/packages/SettingsLib/res/values-nb/strings.xml
+++ b/packages/SettingsLib/res/values-nb/strings.xml
@@ -341,5 +341,4 @@
     <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"Størst"</string>
     <string name="screen_zoom_summary_custom" msgid="5611979864124160447">"Egendefinert (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
     <string name="help_feedback_label" msgid="6815040660801785649">"Hjelp og tilbakemelding"</string>
-    <string name="content_description_menu_button" msgid="8182594799812351266">"Meny"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-ne-rNP/strings.xml b/packages/SettingsLib/res/values-ne-rNP/strings.xml
index a56b655..15cc8ea8 100644
--- a/packages/SettingsLib/res/values-ne-rNP/strings.xml
+++ b/packages/SettingsLib/res/values-ne-rNP/strings.xml
@@ -341,5 +341,4 @@
     <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"सबैभन्दा ठूलो"</string>
     <string name="screen_zoom_summary_custom" msgid="5611979864124160447">"अनुकूलन (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
     <string name="help_feedback_label" msgid="6815040660801785649">"मद्दत र प्रतिक्रिया"</string>
-    <string name="content_description_menu_button" msgid="8182594799812351266">"मेनु"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-nl/strings.xml b/packages/SettingsLib/res/values-nl/strings.xml
index 11d92e5..12bdb4f 100644
--- a/packages/SettingsLib/res/values-nl/strings.xml
+++ b/packages/SettingsLib/res/values-nl/strings.xml
@@ -341,5 +341,4 @@
     <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"Grootst"</string>
     <string name="screen_zoom_summary_custom" msgid="5611979864124160447">"Aangepast (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
     <string name="help_feedback_label" msgid="6815040660801785649">"Help en feedback"</string>
-    <string name="content_description_menu_button" msgid="8182594799812351266">"Menu"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-pa-rIN/strings.xml b/packages/SettingsLib/res/values-pa-rIN/strings.xml
index d526064..21d11b0 100644
--- a/packages/SettingsLib/res/values-pa-rIN/strings.xml
+++ b/packages/SettingsLib/res/values-pa-rIN/strings.xml
@@ -341,5 +341,4 @@
     <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"ਸਭ ਤੋਂ ਵੱਡਾ"</string>
     <string name="screen_zoom_summary_custom" msgid="5611979864124160447">"ਵਿਸ਼ੇਸ਼-ਵਿਉਂਤਬੱਧ (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
     <string name="help_feedback_label" msgid="6815040660801785649">"ਮਦਦ ਅਤੇ ਪ੍ਰਤੀਕਰਮ"</string>
-    <string name="content_description_menu_button" msgid="8182594799812351266">"ਮੀਨੂ"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-pl/strings.xml b/packages/SettingsLib/res/values-pl/strings.xml
index dcbb934..d5116a2 100644
--- a/packages/SettingsLib/res/values-pl/strings.xml
+++ b/packages/SettingsLib/res/values-pl/strings.xml
@@ -341,5 +341,4 @@
     <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"Największy"</string>
     <string name="screen_zoom_summary_custom" msgid="5611979864124160447">"Niestandardowe (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
     <string name="help_feedback_label" msgid="6815040660801785649">"Pomoc i opinie"</string>
-    <string name="content_description_menu_button" msgid="8182594799812351266">"Menu"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-pt-rBR/strings.xml b/packages/SettingsLib/res/values-pt-rBR/strings.xml
index fc22225..f0cfa23 100644
--- a/packages/SettingsLib/res/values-pt-rBR/strings.xml
+++ b/packages/SettingsLib/res/values-pt-rBR/strings.xml
@@ -341,5 +341,4 @@
     <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"Maior"</string>
     <string name="screen_zoom_summary_custom" msgid="5611979864124160447">"Personalizada (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
     <string name="help_feedback_label" msgid="6815040660801785649">"Ajuda e feedback"</string>
-    <string name="content_description_menu_button" msgid="8182594799812351266">"Menu"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-pt-rPT/strings.xml b/packages/SettingsLib/res/values-pt-rPT/strings.xml
index c297de5..40dfc74 100644
--- a/packages/SettingsLib/res/values-pt-rPT/strings.xml
+++ b/packages/SettingsLib/res/values-pt-rPT/strings.xml
@@ -341,5 +341,4 @@
     <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"O maior"</string>
     <string name="screen_zoom_summary_custom" msgid="5611979864124160447">"Personalizado (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
     <string name="help_feedback_label" msgid="6815040660801785649">"Ajuda e comentários"</string>
-    <string name="content_description_menu_button" msgid="8182594799812351266">"Menu"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-pt/strings.xml b/packages/SettingsLib/res/values-pt/strings.xml
index fc22225..f0cfa23 100644
--- a/packages/SettingsLib/res/values-pt/strings.xml
+++ b/packages/SettingsLib/res/values-pt/strings.xml
@@ -341,5 +341,4 @@
     <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"Maior"</string>
     <string name="screen_zoom_summary_custom" msgid="5611979864124160447">"Personalizada (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
     <string name="help_feedback_label" msgid="6815040660801785649">"Ajuda e feedback"</string>
-    <string name="content_description_menu_button" msgid="8182594799812351266">"Menu"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-ro/strings.xml b/packages/SettingsLib/res/values-ro/strings.xml
index 70912f9..6cc0f87 100644
--- a/packages/SettingsLib/res/values-ro/strings.xml
+++ b/packages/SettingsLib/res/values-ro/strings.xml
@@ -341,5 +341,4 @@
     <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"Cel mai mare"</string>
     <string name="screen_zoom_summary_custom" msgid="5611979864124160447">"Personalizat (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
     <string name="help_feedback_label" msgid="6815040660801785649">"Ajutor și feedback"</string>
-    <string name="content_description_menu_button" msgid="8182594799812351266">"Meniu"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-ru/strings.xml b/packages/SettingsLib/res/values-ru/strings.xml
index b8de0c3..ad4db89 100644
--- a/packages/SettingsLib/res/values-ru/strings.xml
+++ b/packages/SettingsLib/res/values-ru/strings.xml
@@ -341,5 +341,4 @@
     <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"Максимальный"</string>
     <string name="screen_zoom_summary_custom" msgid="5611979864124160447">"Другой (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
     <string name="help_feedback_label" msgid="6815040660801785649">"Справка/отзыв"</string>
-    <string name="content_description_menu_button" msgid="8182594799812351266">"Меню"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-si-rLK/strings.xml b/packages/SettingsLib/res/values-si-rLK/strings.xml
index d9fed96..5efb400 100644
--- a/packages/SettingsLib/res/values-si-rLK/strings.xml
+++ b/packages/SettingsLib/res/values-si-rLK/strings.xml
@@ -341,5 +341,4 @@
     <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"විශාලතම"</string>
     <string name="screen_zoom_summary_custom" msgid="5611979864124160447">"අභිරුචි (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
     <string name="help_feedback_label" msgid="6815040660801785649">"උදව් සහ ප්‍රතිපෝෂණ"</string>
-    <string name="content_description_menu_button" msgid="8182594799812351266">"මෙනුව"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-sk/strings.xml b/packages/SettingsLib/res/values-sk/strings.xml
index 951d9fb..7a7e3d4 100644
--- a/packages/SettingsLib/res/values-sk/strings.xml
+++ b/packages/SettingsLib/res/values-sk/strings.xml
@@ -341,5 +341,4 @@
     <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"Najväčšie"</string>
     <string name="screen_zoom_summary_custom" msgid="5611979864124160447">"Vlastné (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
     <string name="help_feedback_label" msgid="6815040660801785649">"Pomocník a spätná väzba"</string>
-    <string name="content_description_menu_button" msgid="8182594799812351266">"Ponuka"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-sl/strings.xml b/packages/SettingsLib/res/values-sl/strings.xml
index 2428076..10bff6e 100644
--- a/packages/SettingsLib/res/values-sl/strings.xml
+++ b/packages/SettingsLib/res/values-sl/strings.xml
@@ -341,5 +341,4 @@
     <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"Največje"</string>
     <string name="screen_zoom_summary_custom" msgid="5611979864124160447">"Po meri (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
     <string name="help_feedback_label" msgid="6815040660801785649">"Pomoč in povratne informacije"</string>
-    <string name="content_description_menu_button" msgid="8182594799812351266">"Meni"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-sq-rAL/strings.xml b/packages/SettingsLib/res/values-sq-rAL/strings.xml
index 1645f10..e4f0eaa 100644
--- a/packages/SettingsLib/res/values-sq-rAL/strings.xml
+++ b/packages/SettingsLib/res/values-sq-rAL/strings.xml
@@ -341,5 +341,4 @@
     <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"Më i madhi"</string>
     <string name="screen_zoom_summary_custom" msgid="5611979864124160447">"I personalizuar (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
     <string name="help_feedback_label" msgid="6815040660801785649">"Ndihma dhe komentet"</string>
-    <string name="content_description_menu_button" msgid="8182594799812351266">"Menyja"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-sr/strings.xml b/packages/SettingsLib/res/values-sr/strings.xml
index 04dfb24..fba58c5 100644
--- a/packages/SettingsLib/res/values-sr/strings.xml
+++ b/packages/SettingsLib/res/values-sr/strings.xml
@@ -341,5 +341,4 @@
     <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"Највећи"</string>
     <string name="screen_zoom_summary_custom" msgid="5611979864124160447">"Прилагођени (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
     <string name="help_feedback_label" msgid="6815040660801785649">"Помоћ и повратне информације"</string>
-    <string name="content_description_menu_button" msgid="8182594799812351266">"Мени"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-sv/strings.xml b/packages/SettingsLib/res/values-sv/strings.xml
index 4b42db5..ecc728a 100644
--- a/packages/SettingsLib/res/values-sv/strings.xml
+++ b/packages/SettingsLib/res/values-sv/strings.xml
@@ -341,5 +341,4 @@
     <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"Störst"</string>
     <string name="screen_zoom_summary_custom" msgid="5611979864124160447">"Anpassad (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
     <string name="help_feedback_label" msgid="6815040660801785649">"Hjälp och feedback"</string>
-    <string name="content_description_menu_button" msgid="8182594799812351266">"Meny"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-sw/strings.xml b/packages/SettingsLib/res/values-sw/strings.xml
index f70a1fa..435a1bd 100644
--- a/packages/SettingsLib/res/values-sw/strings.xml
+++ b/packages/SettingsLib/res/values-sw/strings.xml
@@ -341,5 +341,4 @@
     <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"Kubwa zaidi"</string>
     <string name="screen_zoom_summary_custom" msgid="5611979864124160447">"Kiwango maalum (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
     <string name="help_feedback_label" msgid="6815040660801785649">"Usaidizi na maoni"</string>
-    <string name="content_description_menu_button" msgid="8182594799812351266">"Menyu"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-ta-rIN/strings.xml b/packages/SettingsLib/res/values-ta-rIN/strings.xml
index 5f6b121..033955c 100644
--- a/packages/SettingsLib/res/values-ta-rIN/strings.xml
+++ b/packages/SettingsLib/res/values-ta-rIN/strings.xml
@@ -341,5 +341,4 @@
     <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"மிகப் பெரியது"</string>
     <string name="screen_zoom_summary_custom" msgid="5611979864124160447">"தனிப்பயன் (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
     <string name="help_feedback_label" msgid="6815040660801785649">"உதவி &amp; கருத்து"</string>
-    <string name="content_description_menu_button" msgid="8182594799812351266">"மெனு"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-te-rIN/strings.xml b/packages/SettingsLib/res/values-te-rIN/strings.xml
index ff8b855..5758176 100644
--- a/packages/SettingsLib/res/values-te-rIN/strings.xml
+++ b/packages/SettingsLib/res/values-te-rIN/strings.xml
@@ -341,5 +341,4 @@
     <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"అతి పెద్దగా"</string>
     <string name="screen_zoom_summary_custom" msgid="5611979864124160447">"అనుకూలం (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
     <string name="help_feedback_label" msgid="6815040660801785649">"సహాయం &amp; అభిప్రాయం"</string>
-    <string name="content_description_menu_button" msgid="8182594799812351266">"మెను"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-th/strings.xml b/packages/SettingsLib/res/values-th/strings.xml
index 4d0a2e4..4849e1955 100644
--- a/packages/SettingsLib/res/values-th/strings.xml
+++ b/packages/SettingsLib/res/values-th/strings.xml
@@ -341,5 +341,4 @@
     <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"ใหญ่ที่สุด"</string>
     <string name="screen_zoom_summary_custom" msgid="5611979864124160447">"กำหนดเอง (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
     <string name="help_feedback_label" msgid="6815040660801785649">"ความช่วยเหลือและความคิดเห็น"</string>
-    <string name="content_description_menu_button" msgid="8182594799812351266">"เมนู"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-tl/strings.xml b/packages/SettingsLib/res/values-tl/strings.xml
index 95897a3..24f5499 100644
--- a/packages/SettingsLib/res/values-tl/strings.xml
+++ b/packages/SettingsLib/res/values-tl/strings.xml
@@ -341,5 +341,4 @@
     <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"Pinakamalaki"</string>
     <string name="screen_zoom_summary_custom" msgid="5611979864124160447">"Custom (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
     <string name="help_feedback_label" msgid="6815040660801785649">"Tulong at feedback"</string>
-    <string name="content_description_menu_button" msgid="8182594799812351266">"Menu"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-tr/strings.xml b/packages/SettingsLib/res/values-tr/strings.xml
index 3c5b46d..950e322 100644
--- a/packages/SettingsLib/res/values-tr/strings.xml
+++ b/packages/SettingsLib/res/values-tr/strings.xml
@@ -341,5 +341,4 @@
     <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"En büyük"</string>
     <string name="screen_zoom_summary_custom" msgid="5611979864124160447">"Özel (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
     <string name="help_feedback_label" msgid="6815040660801785649">"Yardım ve geri bildirim"</string>
-    <string name="content_description_menu_button" msgid="8182594799812351266">"Menü"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-uk/strings.xml b/packages/SettingsLib/res/values-uk/strings.xml
index ef30a69..6b49b14 100644
--- a/packages/SettingsLib/res/values-uk/strings.xml
+++ b/packages/SettingsLib/res/values-uk/strings.xml
@@ -341,5 +341,4 @@
     <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"Найбільші елементи"</string>
     <string name="screen_zoom_summary_custom" msgid="5611979864124160447">"Спеціальний масштаб (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
     <string name="help_feedback_label" msgid="6815040660801785649">"Довідка й відгуки"</string>
-    <string name="content_description_menu_button" msgid="8182594799812351266">"Меню"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-ur-rPK/strings.xml b/packages/SettingsLib/res/values-ur-rPK/strings.xml
index 57b0b63..2ac8a61 100644
--- a/packages/SettingsLib/res/values-ur-rPK/strings.xml
+++ b/packages/SettingsLib/res/values-ur-rPK/strings.xml
@@ -341,5 +341,4 @@
     <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"سب سے بڑا"</string>
     <string name="screen_zoom_summary_custom" msgid="5611979864124160447">"حسب ضرورت (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
     <string name="help_feedback_label" msgid="6815040660801785649">"مدد اور تاثرات"</string>
-    <string name="content_description_menu_button" msgid="8182594799812351266">"مینو"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-uz-rUZ/strings.xml b/packages/SettingsLib/res/values-uz-rUZ/strings.xml
index b4e0505..9022ad3 100644
--- a/packages/SettingsLib/res/values-uz-rUZ/strings.xml
+++ b/packages/SettingsLib/res/values-uz-rUZ/strings.xml
@@ -341,5 +341,4 @@
     <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"Eng katta"</string>
     <string name="screen_zoom_summary_custom" msgid="5611979864124160447">"Moslashtirilgan (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
     <string name="help_feedback_label" msgid="6815040660801785649">"Yordam va fikr-mulohaza"</string>
-    <string name="content_description_menu_button" msgid="8182594799812351266">"Menyu"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-vi/strings.xml b/packages/SettingsLib/res/values-vi/strings.xml
index 494cb7c..c58f849 100644
--- a/packages/SettingsLib/res/values-vi/strings.xml
+++ b/packages/SettingsLib/res/values-vi/strings.xml
@@ -341,5 +341,4 @@
     <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"Lớn nhất"</string>
     <string name="screen_zoom_summary_custom" msgid="5611979864124160447">"Tùy chỉnh (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
     <string name="help_feedback_label" msgid="6815040660801785649">"Trợ giúp và phản hồi"</string>
-    <string name="content_description_menu_button" msgid="8182594799812351266">"Menu"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-zh-rCN/strings.xml b/packages/SettingsLib/res/values-zh-rCN/strings.xml
index 1c58a11..18ae80e 100644
--- a/packages/SettingsLib/res/values-zh-rCN/strings.xml
+++ b/packages/SettingsLib/res/values-zh-rCN/strings.xml
@@ -341,5 +341,4 @@
     <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"最大"</string>
     <string name="screen_zoom_summary_custom" msgid="5611979864124160447">"自定义 (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
     <string name="help_feedback_label" msgid="6815040660801785649">"帮助和反馈"</string>
-    <string name="content_description_menu_button" msgid="8182594799812351266">"菜单"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-zh-rHK/strings.xml b/packages/SettingsLib/res/values-zh-rHK/strings.xml
index 45918f0..660071d 100644
--- a/packages/SettingsLib/res/values-zh-rHK/strings.xml
+++ b/packages/SettingsLib/res/values-zh-rHK/strings.xml
@@ -341,5 +341,4 @@
     <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"最大"</string>
     <string name="screen_zoom_summary_custom" msgid="5611979864124160447">"自訂 (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
     <string name="help_feedback_label" msgid="6815040660801785649">"說明與意見反映"</string>
-    <string name="content_description_menu_button" msgid="8182594799812351266">"選單"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-zh-rTW/strings.xml b/packages/SettingsLib/res/values-zh-rTW/strings.xml
index b2e0d12..bce6f24 100644
--- a/packages/SettingsLib/res/values-zh-rTW/strings.xml
+++ b/packages/SettingsLib/res/values-zh-rTW/strings.xml
@@ -341,5 +341,4 @@
     <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"最大"</string>
     <string name="screen_zoom_summary_custom" msgid="5611979864124160447">"自訂 (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
     <string name="help_feedback_label" msgid="6815040660801785649">"說明與意見回饋"</string>
-    <string name="content_description_menu_button" msgid="8182594799812351266">"選單"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-zu/strings.xml b/packages/SettingsLib/res/values-zu/strings.xml
index d137908..07c6fce 100644
--- a/packages/SettingsLib/res/values-zu/strings.xml
+++ b/packages/SettingsLib/res/values-zu/strings.xml
@@ -341,5 +341,4 @@
     <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"Okukhulu kakhulu"</string>
     <string name="screen_zoom_summary_custom" msgid="5611979864124160447">"Ngokwezifiso (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
     <string name="help_feedback_label" msgid="6815040660801785649">"Usizo nempendulo"</string>
-    <string name="content_description_menu_button" msgid="8182594799812351266">"Imenyu"</string>
 </resources>
diff --git a/packages/SettingsProvider/res/values/defaults.xml b/packages/SettingsProvider/res/values/defaults.xml
index f7e9541..fad102f 100644
--- a/packages/SettingsProvider/res/values/defaults.xml
+++ b/packages/SettingsProvider/res/values/defaults.xml
@@ -155,6 +155,9 @@
     <!-- Default for Settings.Secure.LONG_PRESS_TIMEOUT_MILLIS -->
     <integer name="def_long_press_timeout_millis">400</integer>
 
+    <!-- Default for Settings.Secure.MULTI_PRESS_TIMEOUT -->
+    <integer name="def_multi_press_timeout_millis">300</integer>
+
     <!-- Default for Settings.Secure.SHOW_IME_WITH_HARD_KEYBOARD -->
     <bool name="def_show_ime_with_hard_keyboard">false</bool>
 
diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
index a43c398..e66e963 100644
--- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
+++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
@@ -2102,7 +2102,7 @@
         }
 
         private final class UpgradeController {
-            private static final int SETTINGS_VERSION = 130;
+            private static final int SETTINGS_VERSION = 131;
 
             private final int mUserId;
 
@@ -2416,6 +2416,22 @@
                     currentVersion = 130;
                 }
 
+                if (currentVersion == 130) {
+                    // Initialize new multi-press timeout to default value
+                    final SettingsState systemSecureSettings = getSecureSettingsLocked(userId);
+                    final String oldValue = systemSecureSettings.getSettingLocked(
+                            Settings.Secure.MULTI_PRESS_TIMEOUT).getValue();
+                    if (TextUtils.equals(null, oldValue)) {
+                        systemSecureSettings.insertSettingLocked(
+                                Settings.Secure.MULTI_PRESS_TIMEOUT,
+                                String.valueOf(getContext().getResources().getInteger(
+                                        R.integer.def_multi_press_timeout_millis)),
+                                SettingsState.SYSTEM_PACKAGE_NAME);
+                    }
+
+                    currentVersion = 131;
+                }
+
                 if (currentVersion != newVersion) {
                     Slog.wtf("SettingsProvider", "warning: upgrading settings database to version "
                             + newVersion + " left it at "
diff --git a/packages/SystemUI/res/drawable-nodpi/play.xml b/packages/SystemUI/res/drawable-nodpi/play.xml
index 747e60b..7720230 100644
--- a/packages/SystemUI/res/drawable-nodpi/play.xml
+++ b/packages/SystemUI/res/drawable-nodpi/play.xml
@@ -21,7 +21,4 @@
     <path
         android:fillColor="#FF000000"
         android:pathData="M8.0,5.0l0.0,14.0l11.0,-7.0z"/>
-    <path
-        android:pathData="M0 0h24v24H0z"
-        android:fillColor="#00000000"/>
 </vector>
diff --git a/packages/SystemUI/res/drawable/car_ic_arrow.xml b/packages/SystemUI/res/drawable/car_ic_arrow.xml
index 9d292cc..2c5ad27 100644
--- a/packages/SystemUI/res/drawable/car_ic_arrow.xml
+++ b/packages/SystemUI/res/drawable/car_ic_arrow.xml
@@ -21,7 +21,4 @@
     <path
         android:fillColor="#FFFFFFFF"
         android:pathData="M14.0,20.0l10.0,10.0 10.0,-10.0z"/>
-    <path
-        android:pathData="M0 0h48v48H0z"
-        android:fillColor="#00000000"/>
 </vector>
diff --git a/packages/SystemUI/res/drawable/ic_fullscreen_white_24dp.xml b/packages/SystemUI/res/drawable/ic_fullscreen_white_24dp.xml
index 7ddb40c..314a25a 100644
--- a/packages/SystemUI/res/drawable/ic_fullscreen_white_24dp.xml
+++ b/packages/SystemUI/res/drawable/ic_fullscreen_white_24dp.xml
@@ -18,9 +18,6 @@
     android:height="24dp"
     android:viewportWidth="24"
     android:viewportHeight="24">
-
-    <path
-        android:pathData="M0 0h24v24H0z" />
     <path
         android:fillColor="#FFFFFF"
         android:pathData="M7 14H5v5h5v-2H7v-3zm-2-4h2V7h3V5H5v5zm12 7h-3v2h5v-5h-2v3zM14 5v2h3v3h2V5h-5z" />
diff --git a/packages/SystemUI/res/drawable/ic_ksh_key_backspace.xml b/packages/SystemUI/res/drawable/ic_ksh_key_backspace.xml
index 6519673..1183203 100644
--- a/packages/SystemUI/res/drawable/ic_ksh_key_backspace.xml
+++ b/packages/SystemUI/res/drawable/ic_ksh_key_backspace.xml
@@ -19,7 +19,6 @@
         android:height="24dp"
         android:viewportWidth="24"
         android:viewportHeight="24">
-    <path android:pathData="M0 0h24v24H0z" />
     <path android:fillColor="@color/ksh_key_item_color"
             android:pathData="M22 3H7c-.69 0-1.23 .35 -1.59 .88 L0 12l5.41 8.11c.36 .53 .9 .89
 1.59 .89 h15c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-3 12.59L17.59 17 14 13.41 10.41 17 9 15.59
diff --git a/packages/SystemUI/res/drawable/ic_ksh_key_enter.xml b/packages/SystemUI/res/drawable/ic_ksh_key_enter.xml
index 599f350..66b1307 100644
--- a/packages/SystemUI/res/drawable/ic_ksh_key_enter.xml
+++ b/packages/SystemUI/res/drawable/ic_ksh_key_enter.xml
@@ -19,7 +19,6 @@
         android:height="24dp"
         android:viewportWidth="24"
         android:viewportHeight="24">
-    <path android:pathData="M0 0h24v24H0z" />
    <path android:fillColor="@color/ksh_key_item_color"
             android:pathData="M19 7v4H5.83l3.58-3.59L8 6l-6 6 6 6 1.41-1.41L5.83 13H21V7z" />
 </vector>
diff --git a/packages/SystemUI/res/drawable/ic_ksh_key_left.xml b/packages/SystemUI/res/drawable/ic_ksh_key_left.xml
index 038187e8..57d0423e9c 100644
--- a/packages/SystemUI/res/drawable/ic_ksh_key_left.xml
+++ b/packages/SystemUI/res/drawable/ic_ksh_key_left.xml
@@ -21,5 +21,4 @@
         android:viewportHeight="24">
     <path android:fillColor="@color/ksh_key_item_color"
             android:pathData="M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z" />
-    <path android:pathData="M0 0h24v24H0z" />
 </vector>
diff --git a/packages/SystemUI/res/drawable/ic_ksh_key_meta.xml b/packages/SystemUI/res/drawable/ic_ksh_key_meta.xml
index 1e2195e..be8fe8c 100644
--- a/packages/SystemUI/res/drawable/ic_ksh_key_meta.xml
+++ b/packages/SystemUI/res/drawable/ic_ksh_key_meta.xml
@@ -24,5 +24,4 @@
 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27 .28 v.79l5 4.99L20.49
 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5
 14z" />
-    <path android:pathData="M0 0h24v24H0z" />
 </vector>
diff --git a/packages/SystemUI/res/drawable/ic_ksh_key_right.xml b/packages/SystemUI/res/drawable/ic_ksh_key_right.xml
index f2d7315..720d4e4 100644
--- a/packages/SystemUI/res/drawable/ic_ksh_key_right.xml
+++ b/packages/SystemUI/res/drawable/ic_ksh_key_right.xml
@@ -21,5 +21,4 @@
         android:viewportHeight="24">
     <path android:fillColor="@color/ksh_key_item_color"
             android:pathData="M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z" />
-    <path android:pathData="M0 0h24v24H0z" />
 </vector>
diff --git a/packages/SystemUI/res/drawable/ic_ksh_key_up.xml b/packages/SystemUI/res/drawable/ic_ksh_key_up.xml
index 36a83b1..350c994 100644
--- a/packages/SystemUI/res/drawable/ic_ksh_key_up.xml
+++ b/packages/SystemUI/res/drawable/ic_ksh_key_up.xml
@@ -21,5 +21,4 @@
         android:viewportHeight="24">
     <path android:fillColor="@color/ksh_key_item_color"
             android:pathData="M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z" />
-    <path android:pathData="M0 0h24v24H0z" />
 </vector>
diff --git a/packages/SystemUI/res/drawable/ic_pause_white_24dp.xml b/packages/SystemUI/res/drawable/ic_pause_white_24dp.xml
index d9a4f7b..5b65f10 100644
--- a/packages/SystemUI/res/drawable/ic_pause_white_24dp.xml
+++ b/packages/SystemUI/res/drawable/ic_pause_white_24dp.xml
@@ -22,6 +22,4 @@
     <path
         android:fillColor="#FFFFFF"
         android:pathData="M6 19h4V5H6v14zm8-14v14h4V5h-4z" />
-    <path
-        android:pathData="M0 0h24v24H0z" />
 </vector>
diff --git a/packages/SystemUI/res/drawable/ic_play_arrow_white_24dp.xml b/packages/SystemUI/res/drawable/ic_play_arrow_white_24dp.xml
index b8fa99e..ddc9e8d 100644
--- a/packages/SystemUI/res/drawable/ic_play_arrow_white_24dp.xml
+++ b/packages/SystemUI/res/drawable/ic_play_arrow_white_24dp.xml
@@ -22,6 +22,4 @@
     <path
         android:fillColor="#FFFFFF"
         android:pathData="M8 5v14l11-7z" />
-    <path
-        android:pathData="M0 0h24v24H0z" />
 </vector>
diff --git a/packages/SystemUI/res/drawable/ic_qs_wifi_disconnected.xml b/packages/SystemUI/res/drawable/ic_qs_wifi_disconnected.xml
index 4d2a35e..2dcdb71 100644
--- a/packages/SystemUI/res/drawable/ic_qs_wifi_disconnected.xml
+++ b/packages/SystemUI/res/drawable/ic_qs_wifi_disconnected.xml
@@ -19,9 +19,6 @@
         android:viewportWidth="26.0"
         android:viewportHeight="24.0">
     <path
-        android:pathData="M0 0h26v24H0z"
-        android:fillColor="#00000000"/>
-    <path
         android:fillColor="#FFFFFFFF"
         android:pathData="M21.0,8.5
         c0.85,0.0 1.6,0.23 2.3,0.62l2.24,-2.79
diff --git a/packages/SystemUI/res/drawable/ic_send.xml b/packages/SystemUI/res/drawable/ic_send.xml
index 6ce3672..7cac2a4 100644
--- a/packages/SystemUI/res/drawable/ic_send.xml
+++ b/packages/SystemUI/res/drawable/ic_send.xml
@@ -22,7 +22,4 @@
     <path
         android:fillColor="#FF000000"
         android:pathData="M4.02,42.0L46.0,24.0 4.02,6.0 4.0,20.0l30.0,4.0 -30.0,4.0z"/>
-    <path
-        android:pathData="M0 0h48v48H0z"
-        android:fillColor="#00000000"/>
 </vector>
diff --git a/packages/SystemUI/res/layout/remote_input.xml b/packages/SystemUI/res/layout/remote_input.xml
index f0c4e59..73f26e2 100644
--- a/packages/SystemUI/res/layout/remote_input.xml
+++ b/packages/SystemUI/res/layout/remote_input.xml
@@ -42,7 +42,7 @@
             android:singleLine="true"
             android:ellipsize="start"
             android:inputType="textShortMessage|textAutoCorrect|textCapSentences"
-            android:imeOptions="actionNone|flagNoExtractUi" />
+            android:imeOptions="actionNone|flagNoExtractUi|flagNoFullscreen" />
 
     <FrameLayout
             android:layout_width="wrap_content"
diff --git a/packages/SystemUI/res/values-bs-rBA-land/strings.xml b/packages/SystemUI/res/values-bs-rBA-land/strings.xml
index 56a4ad2..bdc652a 100644
--- a/packages/SystemUI/res/values-bs-rBA-land/strings.xml
+++ b/packages/SystemUI/res/values-bs-rBA-land/strings.xml
@@ -19,5 +19,5 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="toast_rotation_locked" msgid="7609673011431556092">"Ekran je sada zaključan u vodoravnom prikazu."</string>
+    <string name="toast_rotation_locked" msgid="7609673011431556092">"Ekran je sada zaključan u pejzažnom prikazu."</string>
 </resources>
diff --git a/packages/SystemUI/res/values-it/strings_car.xml b/packages/SystemUI/res/values-it/strings_car.xml
index 19c4e2b..ae26c9e 100644
--- a/packages/SystemUI/res/values-it/strings_car.xml
+++ b/packages/SystemUI/res/values-it/strings_car.xml
@@ -20,5 +20,5 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="car_lockscreen_disclaimer_title" msgid="7997539137376896441">"Guida in modo sicuro"</string>
-    <string name="car_lockscreen_disclaimer_text" msgid="3061224684092952864">"È necessario essere sempre pienamente informati sulle condizioni della strada e rispettare la legislazione vigente. Le indicazioni stradali potrebbero essere imprecise, incomplete, pericolose, inadatte, vietate o richiedere l\'attraversamento di aree amministrative. Anche le informazioni sugli esercizi commerciali potrebbero essere imprecise o incomplete. I dati forniti non sono aggiornati in tempo reale e non è possibile garantire la precisione della geolocalizzazione. Non maneggiare dispositivi mobili e app non destinate ad Android Auto durante la guida."</string>
+    <string name="car_lockscreen_disclaimer_text" msgid="3061224684092952864">"È necessario essere sempre pienamente coscienti delle condizioni di guida e rispettare le leggi vigenti. Le indicazioni stradali potrebbero essere imprecise, incomplete, pericolose, non adatte, vietate o implicare l\'attraversamento di confini. Anche le informazioni sulle attività commerciali potrebbero essere imprecise o incomplete. I dati non vengono forniti in tempo reale e non è possibile garantire la precisione della geolocalizzazione. Non maneggiare il dispositivo mobile e non utilizzare app non progettate per Android Auto durante la guida."</string>
 </resources>
diff --git a/packages/SystemUI/src/com/android/systemui/Prefs.java b/packages/SystemUI/src/com/android/systemui/Prefs.java
index 19ae295..b9ae585 100644
--- a/packages/SystemUI/src/com/android/systemui/Prefs.java
+++ b/packages/SystemUI/src/com/android/systemui/Prefs.java
@@ -49,6 +49,7 @@
         Key.QS_WORK_ADDED,
     })
     public @interface Key {
+        @Deprecated
         String OVERVIEW_LAST_STACK_TASK_ACTIVE_TIME = "OverviewLastStackTaskActiveTime";
         String DEBUG_MODE_ENABLED = "debugModeEnabled";
         String HOTSPOT_TILE_LAST_USED = "HotspotTileLastUsed";
diff --git a/packages/SystemUI/src/com/android/systemui/recents/Recents.java b/packages/SystemUI/src/com/android/systemui/recents/Recents.java
index 7207463..a7d7df5 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/Recents.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/Recents.java
@@ -34,6 +34,7 @@
 import android.os.Handler;
 import android.os.IBinder;
 import android.os.RemoteException;
+import android.os.SystemClock;
 import android.os.SystemProperties;
 import android.os.UserHandle;
 import android.provider.Settings;
@@ -46,6 +47,7 @@
 import com.android.internal.logging.MetricsProto.MetricsEvent;
 import com.android.systemui.EventLogConstants;
 import com.android.systemui.EventLogTags;
+import com.android.systemui.Prefs;
 import com.android.systemui.R;
 import com.android.systemui.RecentsComponent;
 import com.android.systemui.SystemUI;
@@ -250,6 +252,19 @@
             registerWithSystemUser();
         }
         putComponent(Recents.class, this);
+
+        // Migrate the old stack active time if necessary, otherwise, it will already be managed
+        // when the tasks are loaded in the system. See TaskPersister.restoreTasksForUserLocked().
+        long lastVisibleTaskActiveTime = Prefs.getLong(mContext,
+                Prefs.Key.OVERVIEW_LAST_STACK_TASK_ACTIVE_TIME, -1);
+        if (lastVisibleTaskActiveTime != -1) {
+            long uptime = SystemClock.elapsedRealtime();
+            Settings.Secure.putLongForUser(mContext.getContentResolver(),
+                    Settings.Secure.OVERVIEW_LAST_VISIBLE_TASK_ACTIVE_UPTIME,
+                    uptime - Math.max(0, System.currentTimeMillis() - lastVisibleTaskActiveTime),
+                    processUser);
+            Prefs.remove(mContext, Prefs.Key.OVERVIEW_LAST_STACK_TASK_ACTIVE_TIME);
+        }
     }
 
     @Override
diff --git a/packages/SystemUI/src/com/android/systemui/recents/RecentsActivity.java b/packages/SystemUI/src/com/android/systemui/recents/RecentsActivity.java
index 7bdb1c4..1e41870 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/RecentsActivity.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/RecentsActivity.java
@@ -20,6 +20,7 @@
 import android.app.ActivityOptions;
 import android.app.TaskStackBuilder;
 import android.content.BroadcastReceiver;
+import android.content.ContentResolver;
 import android.content.Context;
 import android.content.Intent;
 import android.content.IntentFilter;
@@ -170,13 +171,6 @@
             if (action.equals(Intent.ACTION_SCREEN_OFF)) {
                 // When the screen turns off, dismiss Recents to Home
                 dismissRecentsToHomeIfVisible(false);
-            } else if (action.equals(Intent.ACTION_TIME_CHANGED)) {
-                // For the time being, if the time changes, then invalidate the
-                // last-stack-active-time, this ensures that we will just show the last N tasks
-                // the next time that Recents loads, but prevents really old tasks from showing
-                // up if the task time is set forward.
-                Prefs.putLong(RecentsActivity.this, Prefs.Key.OVERVIEW_LAST_STACK_TASK_ACTIVE_TIME,
-                        0);
             }
         }
     };
@@ -322,7 +316,6 @@
         // Register the broadcast receiver to handle messages when the screen is turned off
         IntentFilter filter = new IntentFilter();
         filter.addAction(Intent.ACTION_SCREEN_OFF);
-        filter.addAction(Intent.ACTION_TIME_CHANGED);
         registerReceiver(mSystemBroadcastReceiver, filter);
 
         getWindow().addPrivateFlags(LayoutParams.PRIVATE_FLAG_NO_MOVE_ANIMATION);
@@ -800,14 +793,19 @@
         EventBus.getDefault().dump(prefix, writer);
         Recents.getTaskLoader().dump(prefix, writer);
 
+        ContentResolver cr = getContentResolver();
+        long lastPersistUptime = Settings.Secure.getLong(cr,
+                Settings.Secure.TASK_PERSISTER_LAST_WRITE_UPTIME, 0);
+        long lastVisibleTaskActiveUptime = Settings.Secure.getLongForUser(cr,
+                Settings.Secure.OVERVIEW_LAST_VISIBLE_TASK_ACTIVE_UPTIME,
+                SystemClock.elapsedRealtime(), Recents.getSystemServices().getCurrentUser());
+
         String id = Integer.toHexString(System.identityHashCode(this));
-        long lastStackActiveTime = Prefs.getLong(this,
-                Prefs.Key.OVERVIEW_LAST_STACK_TASK_ACTIVE_TIME, -1);
 
         writer.print(prefix); writer.print(TAG);
         writer.print(" visible="); writer.print(mIsVisible ? "Y" : "N");
-        writer.print(" lastStackTaskActiveTime="); writer.print(lastStackActiveTime);
-        writer.print(" currentTime="); writer.print(System.currentTimeMillis());
+        writer.print(" lastPersistUptime="); writer.print(lastPersistUptime);
+        writer.print(" lastVisibleTaskActiveUptime="); writer.print(lastVisibleTaskActiveUptime);
         writer.print(" [0x"); writer.print(id); writer.print("]");
         writer.println();
 
diff --git a/packages/SystemUI/src/com/android/systemui/recents/misc/SystemServicesProxy.java b/packages/SystemUI/src/com/android/systemui/recents/misc/SystemServicesProxy.java
index b896f8a..0dd9e54 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/misc/SystemServicesProxy.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/misc/SystemServicesProxy.java
@@ -59,6 +59,7 @@
 import android.os.Message;
 import android.os.ParcelFileDescriptor;
 import android.os.RemoteException;
+import android.os.SystemClock;
 import android.os.SystemProperties;
 import android.os.UserHandle;
 import android.os.UserManager;
@@ -74,6 +75,7 @@
 import android.view.WindowManagerGlobal;
 import android.view.accessibility.AccessibilityManager;
 
+import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.app.AssistUtils;
 import com.android.internal.os.BackgroundThread;
 import com.android.systemui.R;
@@ -198,6 +200,9 @@
      */
     private List<TaskStackListener> mTaskStackListeners = new ArrayList<>();
 
+    /** Test constructor */
+    @VisibleForTesting public SystemServicesProxy() {}
+
     /** Private constructor */
     private SystemServicesProxy(Context context) {
         mAccm = AccessibilityManager.getInstance(context);
@@ -299,7 +304,7 @@
                 rti.baseIntent = new Intent();
                 rti.baseIntent.setComponent(cn);
                 rti.description = description;
-                rti.firstActiveTime = rti.lastActiveTime = i;
+                rti.firstActiveTime = rti.lastActiveTime = SystemClock.elapsedRealtime();
                 if (i % 2 == 0) {
                     rti.taskDescription = new ActivityManager.TaskDescription(description,
                         Bitmap.createBitmap(mDummyIcon), null,
diff --git a/packages/SystemUI/src/com/android/systemui/recents/model/RecentsTaskLoadPlan.java b/packages/SystemUI/src/com/android/systemui/recents/model/RecentsTaskLoadPlan.java
index 1278b73..ecd48e1 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/model/RecentsTaskLoadPlan.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/model/RecentsTaskLoadPlan.java
@@ -24,13 +24,15 @@
 import android.content.res.Resources;
 import android.graphics.Bitmap;
 import android.graphics.drawable.Drawable;
+import android.os.SystemClock;
 import android.os.UserHandle;
 import android.os.UserManager;
+import android.provider.Settings;
 import android.util.ArraySet;
 import android.util.SparseArray;
 import android.util.SparseIntArray;
 
-import com.android.systemui.Prefs;
+import com.android.internal.annotations.VisibleForTesting;
 import com.android.systemui.R;
 import com.android.systemui.recents.Recents;
 import com.android.systemui.recents.RecentsConfiguration;
@@ -56,6 +58,11 @@
     private static int SESSION_BEGIN_TIME = 1000 /* ms/s */ * 60 /* s/min */ * 60 /* min/hr */ *
             6 /* hrs */;
 
+    @VisibleForTesting
+    public interface SystemTimeProvider {
+        public long getTime();
+    }
+
     /** The set of conditions to load tasks. */
     public static class Options {
         public int runningTaskId = -1;
@@ -67,15 +74,46 @@
         public int numVisibleTaskThumbnails = 0;
     }
 
-    Context mContext;
+    private Context mContext;
+    @VisibleForTesting private SystemServicesProxy mSystemServicesProxy;
 
-    List<ActivityManager.RecentTaskInfo> mRawTasks;
-    TaskStack mStack;
-    ArraySet<Integer> mCurrentQuietProfiles = new ArraySet<Integer>();
+    private List<ActivityManager.RecentTaskInfo> mRawTasks;
+    private long mLastVisibileTaskActiveTime;
+    private TaskStack mStack;
+    private ArraySet<Integer> mCurrentQuietProfiles = new ArraySet<Integer>();
+    private SystemTimeProvider mTimeProvider = new SystemTimeProvider() {
+        @Override
+        public long getTime() {
+            return SystemClock.elapsedRealtime();
+        }
+    };
 
-    /** Package level ctor */
-    RecentsTaskLoadPlan(Context context) {
+    @VisibleForTesting
+    public RecentsTaskLoadPlan(Context context, SystemServicesProxy ssp) {
         mContext = context;
+        mSystemServicesProxy = ssp;
+    }
+
+    @VisibleForTesting
+    public void setInternals(List<ActivityManager.RecentTaskInfo> tasks,
+            final long currentTime, long lastVisibleTaskActiveTime) {
+        setInternals(tasks, MIN_NUM_TASKS, currentTime, lastVisibleTaskActiveTime,
+                SESSION_BEGIN_TIME);
+    }
+
+    @VisibleForTesting
+    public void setInternals(List<ActivityManager.RecentTaskInfo> tasks, int minNumTasks,
+            final long currentTime, long lastVisibleTaskActiveTime,  int sessionBeginTime) {
+        mRawTasks = tasks;
+        mLastVisibileTaskActiveTime = lastVisibleTaskActiveTime;
+        mTimeProvider = new SystemTimeProvider() {
+            @Override
+            public long getTime() {
+                return currentTime;
+            }
+        };
+        MIN_NUM_TASKS = minNumTasks;
+        SESSION_BEGIN_TIME = sessionBeginTime;
     }
 
     private void updateCurrentQuietProfilesCache(int currentUserId) {
@@ -103,9 +141,13 @@
     public synchronized void preloadRawTasks(boolean includeFrontMostExcludedTask) {
         int currentUserId = UserHandle.USER_CURRENT;
         updateCurrentQuietProfilesCache(currentUserId);
-        SystemServicesProxy ssp = Recents.getSystemServices();
-        mRawTasks = ssp.getRecentTasks(ActivityManager.getMaxRecentTasksStatic(),
+        mRawTasks = mSystemServicesProxy.getRecentTasks(ActivityManager.getMaxRecentTasksStatic(),
                 currentUserId, includeFrontMostExcludedTask, mCurrentQuietProfiles);
+        mLastVisibileTaskActiveTime = RecentsDebugFlags.Static.EnableMockTasks
+                ? SystemClock.elapsedRealtime()
+                : Settings.Secure.getLongForUser(mContext.getContentResolver(),
+                        Settings.Secure.OVERVIEW_LAST_VISIBLE_TASK_ACTIVE_UPTIME,
+                                0, currentUserId);
 
         // Since the raw tasks are given in most-recent to least-recent order, we need to reverse it
         Collections.reverse(mRawTasks);
@@ -134,12 +176,9 @@
                 R.string.accessibility_recents_item_will_be_dismissed);
         String appInfoDescFormat = mContext.getString(
                 R.string.accessibility_recents_item_open_app_info);
-        long lastStackActiveTime = Prefs.getLong(mContext,
-                Prefs.Key.OVERVIEW_LAST_STACK_TASK_ACTIVE_TIME, 0);
-        if (RecentsDebugFlags.Static.EnableMockTasks) {
-            lastStackActiveTime = 0;
-        }
-        long newLastStackActiveTime = -1;
+        boolean updatedLastVisibleTaskActiveTime = false;
+        long newLastVisibileTaskActiveTime = 0;
+        long currentTime = mTimeProvider.getTime();
         int taskCount = mRawTasks.size();
         for (int i = 0; i < taskCount; i++) {
             ActivityManager.RecentTaskInfo t = mRawTasks.get(i);
@@ -148,19 +187,20 @@
             Task.TaskKey taskKey = new Task.TaskKey(t.persistentId, t.stackId, t.baseIntent,
                     t.userId, t.firstActiveTime, t.lastActiveTime);
 
-            // This task is only shown in the stack if it statisfies the historical time or min
-            // number of tasks constraints. Freeform tasks are also always shown.
-            boolean isFreeformTask = SystemServicesProxy.isFreeformStack(t.stackId);
-            boolean isStackTask = isFreeformTask || !isHistoricalTask(t) ||
-                    (t.lastActiveTime >= lastStackActiveTime && i >= (taskCount - MIN_NUM_TASKS));
-            boolean isLaunchTarget = taskKey.id == runningTaskId;
+            // Only show the task if it is freeform, or later than the last visible task active time
+            // and either recently used, or within the last five tasks
+            boolean isFreeformTask = mSystemServicesProxy.isFreeformStack(t.stackId);
+            boolean isRecentlyUsedTask = t.lastActiveTime >= (currentTime - SESSION_BEGIN_TIME);
+            boolean isMoreRecentThanLastVisible = t.lastActiveTime >= mLastVisibileTaskActiveTime;
+            boolean isStackTask = isFreeformTask || (isMoreRecentThanLastVisible &&
+                    (isRecentlyUsedTask || i >= (taskCount - MIN_NUM_TASKS)));
+            boolean isLaunchTarget = t.persistentId == runningTaskId;
 
-            // The last stack active time is the baseline for which we show visible tasks.  Since
-            // the system will store all the tasks, we don't want to show the tasks prior to the
-            // last visible ones, otherwise, as you dismiss them, the previous tasks may satisfy
-            // the other stack-task constraints.
-            if (isStackTask && newLastStackActiveTime < 0) {
-                newLastStackActiveTime = t.lastActiveTime;
+            // If this is the first task satisfying the stack constraints, update the baseline
+            // at which we show visible tasks
+            if (isStackTask && !updatedLastVisibleTaskActiveTime) {
+                newLastVisibileTaskActiveTime = t.lastActiveTime;
+                updatedLastVisibleTaskActiveTime = true;
             }
 
             // Load the title, icon, and color
@@ -188,9 +228,12 @@
             affiliatedTaskCounts.put(taskKey.id, affiliatedTaskCounts.get(taskKey.id, 0) + 1);
             affiliatedTasks.put(taskKey.id, taskKey);
         }
-        if (newLastStackActiveTime != -1) {
-            Prefs.putLong(mContext, Prefs.Key.OVERVIEW_LAST_STACK_TASK_ACTIVE_TIME,
-                    newLastStackActiveTime);
+        if (updatedLastVisibleTaskActiveTime &&
+                newLastVisibileTaskActiveTime != mLastVisibileTaskActiveTime) {
+            Settings.Secure.putLongForUser(mContext.getContentResolver(),
+                    Settings.Secure.OVERVIEW_LAST_VISIBLE_TASK_ACTIVE_UPTIME,
+                            newLastVisibileTaskActiveTime, UserHandle.USER_CURRENT);
+            mLastVisibileTaskActiveTime = newLastVisibileTaskActiveTime;
         }
 
         // Initialize the stacks
@@ -255,11 +298,4 @@
         }
         return false;
     }
-
-    /**
-     * Returns whether this task is too old to be shown.
-     */
-    private boolean isHistoricalTask(ActivityManager.RecentTaskInfo t) {
-        return t.lastActiveTime < (System.currentTimeMillis() - SESSION_BEGIN_TIME);
-    }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/recents/model/RecentsTaskLoader.java b/packages/SystemUI/src/com/android/systemui/recents/model/RecentsTaskLoader.java
index ba31e3e..e0eda37 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/model/RecentsTaskLoader.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/model/RecentsTaskLoader.java
@@ -30,6 +30,7 @@
 import android.util.Log;
 import android.util.LruCache;
 
+import com.android.internal.annotations.VisibleForTesting;
 import com.android.systemui.R;
 import com.android.systemui.recents.Recents;
 import com.android.systemui.recents.RecentsConfiguration;
@@ -286,6 +287,20 @@
         }
     };
 
+    @VisibleForTesting
+    public RecentsTaskLoader() {
+        mActivityInfoCache = null;
+        mIconCache = null;
+        mThumbnailCache = null;
+        mActivityLabelCache = null;
+        mContentDescriptionCache = null;
+        mLoadQueue = null;
+        mLoader = null;
+
+        mMaxThumbnailCacheSize = 0;
+        mMaxIconCacheSize = 0;
+    }
+
     public RecentsTaskLoader(Context context) {
         Resources res = context.getResources();
         mDefaultTaskBarBackgroundColor =
@@ -332,7 +347,8 @@
 
     /** Creates a new plan for loading the recent tasks. */
     public RecentsTaskLoadPlan createLoadPlan(Context context) {
-        RecentsTaskLoadPlan plan = new RecentsTaskLoadPlan(context);
+        RecentsTaskLoadPlan plan = new RecentsTaskLoadPlan(context,
+                Recents.getSystemServices());
         return plan;
     }
 
@@ -455,7 +471,8 @@
     /**
      * Returns the cached task label if the task key is not expired, updating the cache if it is.
      */
-    String getAndUpdateActivityTitle(Task.TaskKey taskKey, ActivityManager.TaskDescription td) {
+    @VisibleForTesting public String getAndUpdateActivityTitle(Task.TaskKey taskKey,
+            ActivityManager.TaskDescription td) {
         SystemServicesProxy ssp = Recents.getSystemServices();
 
         // Return the task description label if it exists
@@ -483,7 +500,8 @@
      * Returns the cached task content description if the task key is not expired, updating the
      * cache if it is.
      */
-    String getAndUpdateContentDescription(Task.TaskKey taskKey, Resources res) {
+    @VisibleForTesting public String getAndUpdateContentDescription(Task.TaskKey taskKey,
+            Resources res) {
         SystemServicesProxy ssp = Recents.getSystemServices();
 
         // Return the cached content description if it exists
@@ -507,8 +525,8 @@
     /**
      * Returns the cached task icon if the task key is not expired, updating the cache if it is.
      */
-    Drawable getAndUpdateActivityIcon(Task.TaskKey taskKey, ActivityManager.TaskDescription td,
-            Resources res, boolean loadIfNotCached) {
+    @VisibleForTesting public Drawable getAndUpdateActivityIcon(Task.TaskKey taskKey,
+            ActivityManager.TaskDescription td, Resources res, boolean loadIfNotCached) {
         SystemServicesProxy ssp = Recents.getSystemServices();
 
         // Return the cached activity icon if it exists
@@ -542,7 +560,8 @@
     /**
      * Returns the cached thumbnail if the task key is not expired, updating the cache if it is.
      */
-    Bitmap getAndUpdateThumbnail(Task.TaskKey taskKey, boolean loadIfNotCached) {
+    @VisibleForTesting public Bitmap getAndUpdateThumbnail(Task.TaskKey taskKey,
+            boolean loadIfNotCached) {
         SystemServicesProxy ssp = Recents.getSystemServices();
 
         // Return the cached thumbnail if it exists
@@ -570,7 +589,7 @@
      * Returns the task's primary color if possible, defaulting to the default color if there is
      * no specified primary color.
      */
-    int getActivityPrimaryColor(ActivityManager.TaskDescription td) {
+    @VisibleForTesting public int getActivityPrimaryColor(ActivityManager.TaskDescription td) {
         if (td != null && td.getPrimaryColor() != 0) {
             return td.getPrimaryColor();
         }
@@ -580,7 +599,7 @@
     /**
      * Returns the task's background color if possible.
      */
-    int getActivityBackgroundColor(ActivityManager.TaskDescription td) {
+    @VisibleForTesting public int getActivityBackgroundColor(ActivityManager.TaskDescription td) {
         if (td != null && td.getBackgroundColor() != 0) {
             return td.getBackgroundColor();
         }
@@ -591,7 +610,7 @@
      * Returns the activity info for the given task key, retrieving one from the system if the
      * task key is expired.
      */
-    ActivityInfo getAndUpdateActivityInfo(Task.TaskKey taskKey) {
+    @VisibleForTesting public ActivityInfo getAndUpdateActivityInfo(Task.TaskKey taskKey) {
         SystemServicesProxy ssp = Recents.getSystemServices();
         ComponentName cn = taskKey.getComponent();
         ActivityInfo activityInfo = mActivityInfoCache.get(cn);
diff --git a/packages/SystemUI/src/com/android/systemui/recents/model/Task.java b/packages/SystemUI/src/com/android/systemui/recents/model/Task.java
index 86a0315..4191f52 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/model/Task.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/model/Task.java
@@ -290,7 +290,10 @@
      */
     public boolean isFreeformTask() {
         SystemServicesProxy ssp = Recents.getSystemServices();
-        return ssp.hasFreeformWorkspaceSupport() && ssp.isFreeformStack(key.stackId);
+        if (ssp != null) {
+            return ssp.hasFreeformWorkspaceSupport() && ssp.isFreeformStack(key.stackId);
+        }
+        return false;
     }
 
     /** Notifies the callback listeners that this task has been loaded */
diff --git a/packages/SystemUI/tests/src/com/android/systemui/recents/RecentsTaskLoadPlanTest.java b/packages/SystemUI/tests/src/com/android/systemui/recents/RecentsTaskLoadPlanTest.java
new file mode 100644
index 0000000..dd78595
--- /dev/null
+++ b/packages/SystemUI/tests/src/com/android/systemui/recents/RecentsTaskLoadPlanTest.java
@@ -0,0 +1,340 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.recents;
+
+import android.app.ActivityManager;
+import android.content.pm.ActivityInfo;
+import android.content.res.Resources;
+import android.graphics.Bitmap;
+import android.graphics.drawable.Drawable;
+import com.android.systemui.SysuiTestCase;
+import com.android.systemui.recents.misc.SystemServicesProxy;
+import com.android.systemui.recents.model.RecentsTaskLoadPlan;
+import com.android.systemui.recents.model.RecentsTaskLoader;
+import com.android.systemui.recents.model.Task;
+import com.android.systemui.recents.model.TaskStack;
+
+import java.util.ArrayList;
+
+/**
+ * Mock task loader that does not actually load any tasks.
+ */
+class MockRecentsTaskNonLoader extends RecentsTaskLoader {
+    @Override
+    public String getAndUpdateActivityTitle(Task.TaskKey taskKey, ActivityManager.TaskDescription td) {
+        return "";
+    }
+
+    @Override
+    public String getAndUpdateContentDescription(Task.TaskKey taskKey, Resources res) {
+        return "";
+    }
+
+    @Override
+    public Drawable getAndUpdateActivityIcon(Task.TaskKey taskKey, ActivityManager.TaskDescription td, Resources res, boolean loadIfNotCached) {
+        return null;
+    }
+
+    @Override
+    public Bitmap getAndUpdateThumbnail(Task.TaskKey taskKey, boolean loadIfNotCached) {
+        return null;
+    }
+
+    @Override
+    public int getActivityPrimaryColor(ActivityManager.TaskDescription td) {
+        return 0;
+    }
+
+    @Override
+    public int getActivityBackgroundColor(ActivityManager.TaskDescription td) {
+        return 0;
+    }
+
+    @Override
+    public ActivityInfo getAndUpdateActivityInfo(Task.TaskKey taskKey) {
+        return null;
+    }
+}
+
+/**
+ * TODO(winsonc):
+ * - add test to ensure excluded tasks are loaded at the front of the list
+ * - add test to ensure the last visible task active time is migrated from absolute to uptime
+ */
+public class RecentsTaskLoadPlanTest extends SysuiTestCase {
+    private static final String TAG = "RecentsTaskLoadPlanTest";
+
+    private MockRecentsTaskNonLoader mDummyLoader = new MockRecentsTaskNonLoader();
+    private SystemServicesProxy mDummySsp = new SystemServicesProxy();
+
+    @Override
+    protected void setUp() throws Exception {
+        super.setUp();
+    }
+
+    @Override
+    protected void tearDown() throws Exception {
+        super.tearDown();
+    }
+
+    public void testEmptyRecents() {
+        RecentsTaskLoadPlan loadPlan = new RecentsTaskLoadPlan(getTestContext(), mDummySsp);
+        ArrayList<ActivityManager.RecentTaskInfo> tasks = new ArrayList<>();
+        loadPlan.setInternals(tasks, 0 /* current */, 0 /* lastVisibleTaskActive */);
+        loadPlan.preloadPlan(mDummyLoader, 0 /* runningTaskId */,
+                false /* includeFrontMostExcludedTask */);
+        assertFalse("Expected task to be empty", loadPlan.getTaskStack().getStackTaskCount() > 0);
+    }
+
+    public void testLessThanEqualMinTasks() {
+        RecentsTaskLoadPlan loadPlan = new RecentsTaskLoadPlan(getTestContext(), mDummySsp);
+        ArrayList<ActivityManager.RecentTaskInfo> tasks = new ArrayList<>();
+        int minTasks = 3;
+
+        resetTaskInfoList(tasks,
+                createTaskInfo(0, 1),
+                createTaskInfo(1, 2),
+                createTaskInfo(2, 3));
+
+        // Ensure that all tasks are loaded if the tasks are within the session and after the last
+        // visible active time (all tasks are loaded because there are < minTasks number of tasks)
+        loadPlan.setInternals(tasks, minTasks, 0 /* current */, 0 /* lastVisibleTaskActive */,
+                50 /* sessionBegin */);
+        loadPlan.preloadPlan(mDummyLoader, 0, false);
+        assertTasksInStack(loadPlan.getTaskStack(), 0, 1, 2);
+
+        loadPlan.setInternals(tasks, minTasks, 1 /* current */, 0 /* lastVisibleTaskActive */,
+                0 /* sessionBegin */);
+        loadPlan.preloadPlan(mDummyLoader, 0, false);
+        assertTasksInStack(loadPlan.getTaskStack(), 0, 1, 2);
+
+        loadPlan.setInternals(tasks, minTasks, 1 /* current */, 0 /* lastVisibleTaskActive */,
+                50 /* sessionBegin */);
+        loadPlan.preloadPlan(mDummyLoader, 0, false);
+        assertTasksInStack(loadPlan.getTaskStack(), 0, 1, 2);
+
+        loadPlan.setInternals(tasks, minTasks, 3 /* current */, 0 /* lastVisibleTaskActive */,
+                50 /* sessionBegin */);
+        loadPlan.preloadPlan(mDummyLoader, 0, false);
+        assertTasksInStack(loadPlan.getTaskStack(), 0, 1, 2);
+
+        loadPlan.setInternals(tasks, minTasks, 3 /* current */, 1 /* lastVisibleTaskActive */,
+                50 /* sessionBegin */);
+        loadPlan.preloadPlan(mDummyLoader, 0, false);
+        assertTasksInStack(loadPlan.getTaskStack(), 0, 1, 2);
+
+        loadPlan.setInternals(tasks, minTasks, 50 /* current */, 0 /* lastVisibleTaskActive */,
+                50 /* sessionBegin */);
+        loadPlan.preloadPlan(mDummyLoader, 0, false);
+        assertTasksInStack(loadPlan.getTaskStack(), 0, 1, 2);
+
+        loadPlan.setInternals(tasks, minTasks, 150 /* current */, 0 /* lastVisibleTaskActive */,
+                50 /* sessionBegin */);
+        loadPlan.preloadPlan(mDummyLoader, 0, false);
+        assertTasksInStack(loadPlan.getTaskStack(), 0, 1, 2);
+
+        // Ensure that only tasks are not loaded if are after the last visible active time, even if
+        // they are within the session
+        loadPlan.setInternals(tasks, minTasks, 50 /* current */, 0 /* lastVisibleTaskActive */,
+                50 /* sessionBegin */);
+        loadPlan.preloadPlan(mDummyLoader, 0, false);
+        assertTasksInStack(loadPlan.getTaskStack(), 0, 1, 2);
+
+        loadPlan.setInternals(tasks, minTasks, 50 /* current */, 1 /* lastVisibleTaskActive */,
+                50 /* sessionBegin */);
+        loadPlan.preloadPlan(mDummyLoader, 0, false);
+        assertTasksInStack(loadPlan.getTaskStack(), 0, 1, 2);
+
+        loadPlan.setInternals(tasks, minTasks, 50 /* current */, 2 /* lastVisibleTaskActive */,
+                50 /* sessionBegin */);
+        loadPlan.preloadPlan(mDummyLoader, 0, false);
+        assertTasksNotInStack(loadPlan.getTaskStack(), 0);
+        assertTasksInStack(loadPlan.getTaskStack(), 1, 2);
+
+        loadPlan.setInternals(tasks, minTasks, 50 /* current */, 3 /* lastVisibleTaskActive */,
+                50 /* sessionBegin */);
+        loadPlan.preloadPlan(mDummyLoader, 0, false);
+        assertTasksNotInStack(loadPlan.getTaskStack(), 0, 1);
+        assertTasksInStack(loadPlan.getTaskStack(), 2);
+
+        loadPlan.setInternals(tasks, minTasks, 50 /* current */, 50 /* lastVisibleTaskActive */,
+                50 /* sessionBegin */);
+        loadPlan.preloadPlan(mDummyLoader, 0, false);
+        assertTasksNotInStack(loadPlan.getTaskStack(), 0, 1, 2);
+    }
+
+    public void testMoreThanMinTasks() {
+        RecentsTaskLoadPlan loadPlan = new RecentsTaskLoadPlan(getTestContext(), mDummySsp);
+        ArrayList<ActivityManager.RecentTaskInfo> tasks = new ArrayList<>();
+        int minTasks = 3;
+
+        // Create all tasks within the session
+        resetTaskInfoList(tasks,
+                createTaskInfo(0, 1),
+                createTaskInfo(1, 50),
+                createTaskInfo(2, 100),
+                createTaskInfo(3, 101),
+                createTaskInfo(4, 102),
+                createTaskInfo(5, 103));
+
+        // Ensure that only the tasks that are within the window but after the last visible active
+        // time is loaded, or the minTasks number of tasks are loaded if there are less than that
+
+        // Session window shifts
+        loadPlan.setInternals(tasks, minTasks, 0 /* current */, 0 /* lastVisibleTaskActive */,
+                50 /* sessionBegin */);
+        loadPlan.preloadPlan(mDummyLoader, 0, false);
+        assertTasksInStack(loadPlan.getTaskStack(), 0, 1, 2, 3, 4, 5);
+
+        loadPlan.setInternals(tasks, minTasks, 1 /* current */, 0 /* lastVisibleTaskActive */,
+                50 /* sessionBegin */);
+        loadPlan.preloadPlan(mDummyLoader, 0, false);
+        assertTasksInStack(loadPlan.getTaskStack(), 0, 1, 2, 3, 4, 5);
+
+        loadPlan.setInternals(tasks, minTasks, 51 /* current */, 0 /* lastVisibleTaskActive */,
+                50 /* sessionBegin */);
+        loadPlan.preloadPlan(mDummyLoader, 0, false);
+        assertTasksInStack(loadPlan.getTaskStack(), 0, 1, 2, 3, 4, 5);
+
+        loadPlan.setInternals(tasks, minTasks, 52 /* current */, 0 /* lastVisibleTaskActive */,
+                50 /* sessionBegin */);
+        loadPlan.preloadPlan(mDummyLoader, 0, false);
+        assertTasksNotInStack(loadPlan.getTaskStack(), 0);
+        assertTasksInStack(loadPlan.getTaskStack(), 1, 2, 3, 4, 5);
+
+        loadPlan.setInternals(tasks, minTasks, 100 /* current */, 0 /* lastVisibleTaskActive */,
+                50 /* sessionBegin */);
+        loadPlan.preloadPlan(mDummyLoader, 0, false);
+        assertTasksNotInStack(loadPlan.getTaskStack(), 0);
+        assertTasksInStack(loadPlan.getTaskStack(), 1, 2, 3, 4, 5);
+
+        loadPlan.setInternals(tasks, minTasks, 101 /* current */, 0 /* lastVisibleTaskActive */,
+                50 /* sessionBegin */);
+        loadPlan.preloadPlan(mDummyLoader, 0, false);
+        assertTasksNotInStack(loadPlan.getTaskStack(), 0, 1);
+        assertTasksInStack(loadPlan.getTaskStack(), 2, 3, 4, 5);
+
+        loadPlan.setInternals(tasks, minTasks, 103 /* current */, 0 /* lastVisibleTaskActive */,
+                50 /* sessionBegin */);
+        loadPlan.preloadPlan(mDummyLoader, 0, false);
+        assertTasksNotInStack(loadPlan.getTaskStack(), 0, 1);
+        assertTasksInStack(loadPlan.getTaskStack(), 2, 3, 4, 5);
+
+        loadPlan.setInternals(tasks, minTasks, 150 /* current */, 0 /* lastVisibleTaskActive */,
+                50 /* sessionBegin */);
+        loadPlan.preloadPlan(mDummyLoader, 0, false);
+        assertTasksNotInStack(loadPlan.getTaskStack(), 0, 1);
+        assertTasksInStack(loadPlan.getTaskStack(), 2, 3, 4, 5);
+
+        loadPlan.setInternals(tasks, minTasks, 151 /* current */, 0 /* lastVisibleTaskActive */,
+                50 /* sessionBegin */);
+        loadPlan.preloadPlan(mDummyLoader, 0, false);
+        assertTasksNotInStack(loadPlan.getTaskStack(), 0, 1, 2);
+        assertTasksInStack(loadPlan.getTaskStack(), 3, 4, 5);
+
+        loadPlan.setInternals(tasks, minTasks, 200 /* current */, 0 /* lastVisibleTaskActive */,
+                50 /* sessionBegin */);
+        loadPlan.preloadPlan(mDummyLoader, 0, false);
+        assertTasksNotInStack(loadPlan.getTaskStack(), 0, 1, 2);
+        assertTasksInStack(loadPlan.getTaskStack(), 3, 4, 5);
+
+        // Last visible active time shifts (everything is in window)
+        loadPlan.setInternals(tasks, minTasks, 150 /* current */, 0 /* lastVisibleTaskActive */,
+                150 /* sessionBegin */);
+        loadPlan.preloadPlan(mDummyLoader, 0, false);
+        assertTasksInStack(loadPlan.getTaskStack(), 0, 1, 2, 3, 4, 5);
+
+        loadPlan.setInternals(tasks, minTasks, 150 /* current */, 1 /* lastVisibleTaskActive */,
+                150 /* sessionBegin */);
+        loadPlan.preloadPlan(mDummyLoader, 0, false);
+        assertTasksInStack(loadPlan.getTaskStack(), 0, 1, 2, 3, 4, 5);
+
+        loadPlan.setInternals(tasks, minTasks, 150 /* current */, 2 /* lastVisibleTaskActive */,
+                150 /* sessionBegin */);
+        loadPlan.preloadPlan(mDummyLoader, 0, false);
+        assertTasksNotInStack(loadPlan.getTaskStack(), 0);
+        assertTasksInStack(loadPlan.getTaskStack(), 1, 2, 3, 4, 5);
+
+        loadPlan.setInternals(tasks, minTasks, 150 /* current */, 50 /* lastVisibleTaskActive */,
+                150 /* sessionBegin */);
+        loadPlan.preloadPlan(mDummyLoader, 0, false);
+        assertTasksNotInStack(loadPlan.getTaskStack(), 0);
+        assertTasksInStack(loadPlan.getTaskStack(), 1, 2, 3, 4, 5);
+
+        loadPlan.setInternals(tasks, minTasks, 150 /* current */, 51 /* lastVisibleTaskActive */,
+                150 /* sessionBegin */);
+        loadPlan.preloadPlan(mDummyLoader, 0, false);
+        assertTasksNotInStack(loadPlan.getTaskStack(), 0, 1);
+        assertTasksInStack(loadPlan.getTaskStack(), 2, 3, 4, 5);
+
+        loadPlan.setInternals(tasks, minTasks, 150 /* current */, 100 /* lastVisibleTaskActive */,
+                150 /* sessionBegin */);
+        loadPlan.preloadPlan(mDummyLoader, 0, false);
+        assertTasksNotInStack(loadPlan.getTaskStack(), 0, 1);
+        assertTasksInStack(loadPlan.getTaskStack(), 2, 3, 4, 5);
+
+        loadPlan.setInternals(tasks, minTasks, 150 /* current */, 101 /* lastVisibleTaskActive */,
+                150 /* sessionBegin */);
+        loadPlan.preloadPlan(mDummyLoader, 0, false);
+        assertTasksNotInStack(loadPlan.getTaskStack(), 0, 1, 2);
+        assertTasksInStack(loadPlan.getTaskStack(), 3, 4, 5);
+
+        loadPlan.setInternals(tasks, minTasks, 150 /* current */, 102 /* lastVisibleTaskActive */,
+                150 /* sessionBegin */);
+        loadPlan.preloadPlan(mDummyLoader, 0, false);
+        assertTasksNotInStack(loadPlan.getTaskStack(), 0, 1, 2, 3);
+        assertTasksInStack(loadPlan.getTaskStack(), 4, 5);
+
+        loadPlan.setInternals(tasks, minTasks, 150 /* current */, 103 /* lastVisibleTaskActive */,
+                150 /* sessionBegin */);
+        loadPlan.preloadPlan(mDummyLoader, 0, false);
+        assertTasksNotInStack(loadPlan.getTaskStack(), 0, 1, 2, 3, 4);
+        assertTasksInStack(loadPlan.getTaskStack(), 5);
+
+        loadPlan.setInternals(tasks, minTasks, 150 /* current */, 104 /* lastVisibleTaskActive */,
+                150 /* sessionBegin */);
+        loadPlan.preloadPlan(mDummyLoader, 0, false);
+        assertTasksNotInStack(loadPlan.getTaskStack(), 0, 1, 2, 3, 4, 5);
+    }
+
+    private ActivityManager.RecentTaskInfo createTaskInfo(int taskId, long lastActiveTime) {
+        ActivityManager.RecentTaskInfo info = new ActivityManager.RecentTaskInfo();
+        info.id = info.persistentId = taskId;
+        info.lastActiveTime = lastActiveTime;
+        return info;
+    }
+
+    private void resetTaskInfoList(ArrayList<ActivityManager.RecentTaskInfo> tasks,
+            ActivityManager.RecentTaskInfo ... infos) {
+        tasks.clear();
+        for (ActivityManager.RecentTaskInfo info : infos) {
+            tasks.add(info);
+        }
+    }
+
+    private void assertTasksInStack(TaskStack stack, int... taskIds) {
+        for (int taskId : taskIds) {
+            assertNotNull("Expected task " + taskId + " in stack", stack.findTaskWithId(taskId));
+        }
+    }
+
+    private void assertTasksNotInStack(TaskStack stack, int... taskIds) {
+        for (int taskId : taskIds) {
+            assertNull("Expected task " + taskId + " not in stack", stack.findTaskWithId(taskId));
+        }
+    }
+}
diff --git a/packages/VpnDialogs/res/values-ro/strings.xml b/packages/VpnDialogs/res/values-ro/strings.xml
index e2e1e44..4865e96 100644
--- a/packages/VpnDialogs/res/values-ro/strings.xml
+++ b/packages/VpnDialogs/res/values-ro/strings.xml
@@ -25,5 +25,5 @@
     <string name="duration" msgid="3584782459928719435">"Durată:"</string>
     <string name="data_transmitted" msgid="7988167672982199061">"Trimise:"</string>
     <string name="data_received" msgid="4062776929376067820">"Primite:"</string>
-    <string name="data_value_format" msgid="2192466557826897580">"<xliff:g id="NUMBER_0">%1$s</xliff:g>   octeți/<xliff:g id="NUMBER_1">%2$s</xliff:g>   pachete"</string>
+    <string name="data_value_format" msgid="2192466557826897580">"<xliff:g id="NUMBER_0">%1$s</xliff:g> (de) octeți/<xliff:g id="NUMBER_1">%2$s</xliff:g> (de) pachete"</string>
 </resources>
diff --git a/services/core/java/com/android/server/AnyMotionDetector.java b/services/core/java/com/android/server/AnyMotionDetector.java
index f93c716..d564925 100644
--- a/services/core/java/com/android/server/AnyMotionDetector.java
+++ b/services/core/java/com/android/server/AnyMotionDetector.java
@@ -97,6 +97,15 @@
     /** True if an orientation measurement is in progress. */
     private boolean mMeasurementInProgress;
 
+    /** True if sendMessageDelayed() for the mMeasurementTimeout callback has been scheduled */
+    private boolean mMeasurementTimeoutIsActive;
+
+    /** True if sendMessageDelayed() for the mWakelockTimeout callback has been scheduled */
+    private boolean mWakelockTimeoutIsActive;
+
+    /** True if sendMessageDelayed() for the mSensorRestart callback has been scheduled */
+    private boolean mSensorRestartIsActive;
+
     /** The most recent gravity vector. */
     private Vector3 mCurrentGravityVector = null;
 
@@ -118,6 +127,9 @@
             mSensorManager = sm;
             mAccelSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
             mMeasurementInProgress = false;
+            mMeasurementTimeoutIsActive = false;
+            mWakelockTimeoutIsActive = false;
+            mSensorRestartIsActive = false;
             mState = STATE_INACTIVE;
             mCallback = callback;
             mThresholdAngle = thresholdAngle;
@@ -146,6 +158,7 @@
                 mWakeLock.acquire();
                 Message wakelockTimeoutMsg = Message.obtain(mHandler, mWakelockTimeout);
                 mHandler.sendMessageDelayed(wakelockTimeoutMsg, WAKELOCK_TIMEOUT_MILLIS);
+                mWakelockTimeoutIsActive = true;
                 startOrientationMeasurementLocked();
             }
         }
@@ -157,17 +170,20 @@
                 mState = STATE_INACTIVE;
                 if (DEBUG) Slog.d(TAG, "Moved from STATE_ACTIVE to STATE_INACTIVE.");
             }
+            mHandler.removeCallbacks(mMeasurementTimeout);
+            mHandler.removeCallbacks(mSensorRestart);
+            mMeasurementTimeoutIsActive = false;
+            mSensorRestartIsActive = false;
             if (mMeasurementInProgress) {
                 mMeasurementInProgress = false;
                 mSensorManager.unregisterListener(mListener);
             }
-            mHandler.removeCallbacks(mMeasurementTimeout);
-            mHandler.removeCallbacks(mSensorRestart);
             mCurrentGravityVector = null;
             mPreviousGravityVector = null;
             if (mWakeLock.isHeld()) {
-                mWakeLock.release();
                 mHandler.removeCallbacks(mWakelockTimeout);
+                mWakelockTimeoutIsActive = false;
+                mWakeLock.release();
             }
         }
     }
@@ -183,6 +199,7 @@
             }
             Message measurementTimeoutMsg = Message.obtain(mHandler, mMeasurementTimeout);
             mHandler.sendMessageDelayed(measurementTimeoutMsg, ACCELEROMETER_DATA_TIMEOUT_MILLIS);
+            mMeasurementTimeoutIsActive = true;
         }
     }
 
@@ -191,8 +208,9 @@
                 mMeasurementInProgress);
         int status = RESULT_UNKNOWN;
         if (mMeasurementInProgress) {
-            mSensorManager.unregisterListener(mListener);
             mHandler.removeCallbacks(mMeasurementTimeout);
+            mMeasurementTimeoutIsActive = false;
+            mSensorManager.unregisterListener(mListener);
             mMeasurementInProgress = false;
             mPreviousGravityVector = mCurrentGravityVector;
             mCurrentGravityVector = mRunningStats.getRunningAverage();
@@ -213,8 +231,9 @@
             if (DEBUG) Slog.d(TAG, "getStationaryStatus() returned " + status);
             if (status != RESULT_UNKNOWN) {
                 if (mWakeLock.isHeld()) {
-                    mWakeLock.release();
                     mHandler.removeCallbacks(mWakelockTimeout);
+                    mWakelockTimeoutIsActive = false;
+                    mWakeLock.release();
                 }
                 if (DEBUG) {
                     Slog.d(TAG, "Moved from STATE_ACTIVE to STATE_INACTIVE. status = " + status);
@@ -230,6 +249,7 @@
                         " milliseconds.");
                 Message msg = Message.obtain(mHandler, mSensorRestart);
                 mHandler.sendMessageDelayed(msg, ORIENTATION_MEASUREMENT_INTERVAL_MILLIS);
+                mSensorRestartIsActive = true;
             }
         }
         return status;
@@ -283,6 +303,7 @@
             }
             if (status != RESULT_UNKNOWN) {
                 mHandler.removeCallbacks(mWakelockTimeout);
+                mWakelockTimeoutIsActive = false;
                 mCallback.onAnyMotionResult(status);
             }
         }
@@ -296,7 +317,10 @@
         @Override
         public void run() {
             synchronized (mLock) {
-                startOrientationMeasurementLocked();
+                if (mSensorRestartIsActive == true) {
+                    mSensorRestartIsActive = false;
+                    startOrientationMeasurementLocked();
+                }
             }
         }
     };
@@ -306,14 +330,18 @@
         public void run() {
             int status = RESULT_UNKNOWN;
             synchronized (mLock) {
-                if (DEBUG) Slog.i(TAG, "mMeasurementTimeout. Failed to collect sufficient accel " +
-                      "data within " + ACCELEROMETER_DATA_TIMEOUT_MILLIS + " ms. Stopping " +
-                      "orientation measurement.");
-                status = stopOrientationMeasurementLocked();
-            }
-            if (status != RESULT_UNKNOWN) {
-                mHandler.removeCallbacks(mWakelockTimeout);
-                mCallback.onAnyMotionResult(status);
+                if (mMeasurementTimeoutIsActive == true) {
+                    mMeasurementTimeoutIsActive = false;
+                    if (DEBUG) Slog.i(TAG, "mMeasurementTimeout. Failed to collect sufficient accel " +
+                          "data within " + ACCELEROMETER_DATA_TIMEOUT_MILLIS + " ms. Stopping " +
+                          "orientation measurement.");
+                    status = stopOrientationMeasurementLocked();
+                    if (status != RESULT_UNKNOWN) {
+                        mHandler.removeCallbacks(mWakelockTimeout);
+                        mWakelockTimeoutIsActive = false;
+                        mCallback.onAnyMotionResult(status);
+                    }
+                }
             }
         }
     };
@@ -322,7 +350,10 @@
         @Override
         public void run() {
             synchronized (mLock) {
-                stop();
+                if (mWakelockTimeoutIsActive == true) {
+                    mWakelockTimeoutIsActive = false;
+                    stop();
+                }
             }
         }
     };
diff --git a/services/core/java/com/android/server/am/BroadcastQueue.java b/services/core/java/com/android/server/am/BroadcastQueue.java
index f78f29c..d3826ac 100644
--- a/services/core/java/com/android/server/am/BroadcastQueue.java
+++ b/services/core/java/com/android/server/am/BroadcastQueue.java
@@ -226,11 +226,12 @@
     }
 
     public final boolean replaceParallelBroadcastLocked(BroadcastRecord r) {
+        final Intent intent = r.intent;
         for (int i = mParallelBroadcasts.size() - 1; i >= 0; i--) {
-            if (r.intent.filterEquals(mParallelBroadcasts.get(i).intent)) {
+            if (intent.filterEquals(mParallelBroadcasts.get(i).intent)) {
                 if (DEBUG_BROADCAST) Slog.v(TAG_BROADCAST,
                         "***** DROPPING PARALLEL ["
-                + mQueueName + "]: " + r.intent);
+                + mQueueName + "]: " + intent);
                 mParallelBroadcasts.set(i, r);
                 return true;
             }
@@ -239,11 +240,12 @@
     }
 
     public final boolean replaceOrderedBroadcastLocked(BroadcastRecord r) {
+        final Intent intent = r.intent;
         for (int i = mOrderedBroadcasts.size() - 1; i > 0; i--) {
-            if (r.intent.filterEquals(mOrderedBroadcasts.get(i).intent)) {
+            if (intent.filterEquals(mOrderedBroadcasts.get(i).intent)) {
                 if (DEBUG_BROADCAST) Slog.v(TAG_BROADCAST,
                         "***** DROPPING ORDERED ["
-                        + mQueueName + "]: " + r.intent);
+                        + mQueueName + "]: " + intent);
                 mOrderedBroadcasts.set(i, r);
                 return true;
             }
diff --git a/services/core/java/com/android/server/am/CoreSettingsObserver.java b/services/core/java/com/android/server/am/CoreSettingsObserver.java
index 9dd07a9..73a17c6 100644
--- a/services/core/java/com/android/server/am/CoreSettingsObserver.java
+++ b/services/core/java/com/android/server/am/CoreSettingsObserver.java
@@ -42,6 +42,7 @@
             String, Class<?>>();
     static {
         sSecureSettingToTypeMap.put(Settings.Secure.LONG_PRESS_TIMEOUT, int.class);
+        sSecureSettingToTypeMap.put(Settings.Secure.MULTI_PRESS_TIMEOUT, int.class);
         // add other secure settings here...
 
         sSystemSettingToTypeMap.put(Settings.System.TIME_12_24, String.class);
diff --git a/services/core/java/com/android/server/am/TaskPersister.java b/services/core/java/com/android/server/am/TaskPersister.java
index 43eb251..6cdabaa 100644
--- a/services/core/java/com/android/server/am/TaskPersister.java
+++ b/services/core/java/com/android/server/am/TaskPersister.java
@@ -17,6 +17,7 @@
 package com.android.server.am;
 
 import android.annotation.NonNull;
+import android.content.ContentResolver;
 import android.graphics.Bitmap;
 import android.graphics.BitmapFactory;
 import android.os.Debug;
@@ -24,6 +25,7 @@
 import android.os.FileUtils;
 import android.os.Process;
 import android.os.SystemClock;
+import android.provider.Settings;
 import android.util.ArraySet;
 import android.util.AtomicFile;
 import android.util.Slog;
@@ -80,7 +82,7 @@
     private static final String PERSISTED_TASK_IDS_FILENAME = "persisted_taskIds.txt";
     static final String IMAGE_EXTENSION = ".png";
 
-    private static final String TAG_TASK = "task";
+    @VisibleForTesting static final String TAG_TASK = "task";
 
     private final ActivityManagerService mService;
     private final ActivityStackSupervisor mStackSupervisor;
@@ -407,18 +409,43 @@
         return null;
     }
 
+    @VisibleForTesting
     List<TaskRecord> restoreTasksForUserLocked(final int userId) {
         final ArrayList<TaskRecord> tasks = new ArrayList<TaskRecord>();
         ArraySet<Integer> recoveredTaskIds = new ArraySet<Integer>();
 
         File userTasksDir = getUserTasksDir(userId);
-
         File[] recentFiles = userTasksDir.listFiles();
         if (recentFiles == null) {
             Slog.e(TAG, "restoreTasksForUserLocked: Unable to list files from " + userTasksDir);
             return tasks;
         }
 
+        // Get the last persist uptime so we know how to adjust the first/last active times for each
+        // task
+        ContentResolver cr = mService.mContext.getContentResolver();
+        long lastPersistUptime = Settings.Secure.getLong(cr,
+                Settings.Secure.TASK_PERSISTER_LAST_WRITE_UPTIME, 0);
+        if (DEBUG) {
+            Slog.d(TaskPersister.TAG, "restoreTasksForUserLocked: lastPersistUptime=" +
+                    lastPersistUptime);
+        }
+
+        // Adjust the overview last visible task active time as we adjust the task active times when
+        // loading. See TaskRecord.restoreFromXml().  If we have not migrated yet, SystemUI will
+        // migrate the old value into the system setting.
+        if (lastPersistUptime > 0) {
+            long overviewLastActiveTime = Settings.Secure.getLongForUser(cr,
+                    Settings.Secure.OVERVIEW_LAST_VISIBLE_TASK_ACTIVE_UPTIME, 0, userId);
+            if (DEBUG) {
+                Slog.d(TaskPersister.TAG, "restoreTasksForUserLocked: overviewLastActiveTime=" +
+                        overviewLastActiveTime + " lastPersistUptime=" + lastPersistUptime);
+            }
+            Settings.Secure.putLongForUser(cr,
+                    Settings.Secure.OVERVIEW_LAST_VISIBLE_TASK_ACTIVE_UPTIME,
+                    -lastPersistUptime + overviewLastActiveTime, userId);
+        }
+
         for (int taskNdx = 0; taskNdx < recentFiles.length; ++taskNdx) {
             File taskFile = recentFiles[taskNdx];
             if (DEBUG) {
@@ -439,15 +466,11 @@
                     if (event == XmlPullParser.START_TAG) {
                         if (DEBUG) Slog.d(TAG, "restoreTasksForUserLocked: START_TAG name=" + name);
                         if (TAG_TASK.equals(name)) {
-                            final TaskRecord task = TaskRecord.restoreFromXml(in, mStackSupervisor);
+                            final TaskRecord task = TaskRecord.restoreFromXml(in, mService,
+                                    mStackSupervisor, lastPersistUptime);
                             if (DEBUG) Slog.d(TAG, "restoreTasksForUserLocked: restored task="
                                     + task);
                             if (task != null) {
-                                // XXX Don't add to write queue... there is no reason to write
-                                // out the stuff we just read, if we don't write it we will
-                                // read the same thing again.
-                                // mWriteQueue.add(new TaskWriteQueueItem(task));
-
                                 final int taskId = task.taskId;
                                 if (mStackSupervisor.anyTaskForIdLocked(taskId,
                                         /* restoreFromRecents= */ false, 0) != null) {
@@ -463,6 +486,12 @@
                                     task.isPersistable = true;
                                     tasks.add(task);
                                     recoveredTaskIds.add(taskId);
+
+                                    // We've shifted the first and last active times, so we need to
+                                    // persist the new task data to disk otherwise they will not
+                                    // have the updated values.  This is only done once whenever
+                                    // the recents are first loaded for the user.
+                                    wakeup(task, false);
                                 }
                             } else {
                                 Slog.e(TAG, "restoreTasksForUserLocked: Unable to restore taskFile="
@@ -751,6 +780,15 @@
                         }
                     }
                 }
+
+                // Always update the task persister uptime when updating any tasks
+                if (DEBUG) {
+                    Slog.d(TAG, "LazyTaskWriter: Updating last write uptime=" +
+                            SystemClock.elapsedRealtime());
+                }
+                Settings.Secure.putLong(mService.mContext.getContentResolver(),
+                        Settings.Secure.TASK_PERSISTER_LAST_WRITE_UPTIME,
+                        SystemClock.elapsedRealtime());
             }
         }
     }
diff --git a/services/core/java/com/android/server/am/TaskRecord.java b/services/core/java/com/android/server/am/TaskRecord.java
index 3f6db99..b3d8027 100644
--- a/services/core/java/com/android/server/am/TaskRecord.java
+++ b/services/core/java/com/android/server/am/TaskRecord.java
@@ -39,12 +39,14 @@
 import android.os.Debug;
 import android.os.ParcelFileDescriptor;
 import android.os.RemoteException;
+import android.os.SystemClock;
 import android.os.UserHandle;
 import android.provider.Settings;
 import android.service.voice.IVoiceInteractionSession;
 import android.util.DisplayMetrics;
 import android.util.Slog;
 
+import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.app.IVoiceInteractor;
 import com.android.internal.util.XmlUtils;
 
@@ -150,8 +152,10 @@
     ComponentName realActivity; // The actual activity component that started the task.
     boolean realActivitySuspended; // True if the actual activity component that started the
                                    // task is suspended.
-    long firstActiveTime;   // First time this task was active.
-    long lastActiveTime;    // Last time this task was active, including sleep.
+    long firstActiveTime;   // First time this task was active, relative to boot time. This can be
+                            // negative if this task was last used prior to boot.
+    long lastActiveTime;    // Last time this task was active, relative to boot time. This can be
+                            // negative if this task was last used prior to boot.
     boolean inRecents;      // Actually in the recents list?
     boolean isAvailable;    // Is the activity available to be launched?
     boolean rootWasReset;   // True if the intent at the root of the task had
@@ -377,14 +381,14 @@
     }
 
     void touchActiveTime() {
-        lastActiveTime = System.currentTimeMillis();
+        lastActiveTime = SystemClock.elapsedRealtime();
         if (firstActiveTime == 0) {
             firstActiveTime = lastActiveTime;
         }
     }
 
     long getInactiveDuration() {
-        return System.currentTimeMillis() - lastActiveTime;
+        return SystemClock.elapsedRealtime() - lastActiveTime;
     }
 
     /** Sets the original intent, and the calling uid and package. */
@@ -455,8 +459,9 @@
             rootWasReset = true;
         }
         userId = UserHandle.getUserId(info.applicationInfo.uid);
-        mUserSetupComplete = Settings.Secure.getIntForUser(mService.mContext.getContentResolver(),
-                USER_SETUP_COMPLETE, 0, userId) != 0;
+        mUserSetupComplete = mService != null &&
+                Settings.Secure.getIntForUser(mService.mContext.getContentResolver(),
+                        USER_SETUP_COMPLETE, 0, userId) != 0;
         if ((info.flags & ActivityInfo.FLAG_AUTO_REMOVE_FROM_RECENTS) != 0) {
             // If the activity itself has requested auto-remove, then just always do it.
             autoRemoveRecents = true;
@@ -1168,7 +1173,9 @@
         if (lastTaskDescription != null) {
             lastTaskDescription.saveToXml(out);
         }
-        mLastThumbnailInfo.saveToXml(out);
+        if (mLastThumbnailInfo != null) {
+            mLastThumbnailInfo.saveToXml(out);
+        }
         out.attribute(null, ATTR_TASK_AFFILIATION_COLOR, String.valueOf(mAffiliatedTaskColor));
         out.attribute(null, ATTR_TASK_AFFILIATION, String.valueOf(mAffiliatedTaskId));
         out.attribute(null, ATTR_PREV_AFFILIATION, String.valueOf(mPrevAffiliateTaskId));
@@ -1190,9 +1197,11 @@
             out.endTag(null, TAG_AFFINITYINTENT);
         }
 
-        out.startTag(null, TAG_INTENT);
-        intent.saveToXml(out);
-        out.endTag(null, TAG_INTENT);
+        if (intent != null) {
+            out.startTag(null, TAG_INTENT);
+            intent.saveToXml(out);
+            out.endTag(null, TAG_INTENT);
+        }
 
         final ArrayList<ActivityRecord> activities = mActivities;
         final int numActivities = activities.size();
@@ -1211,8 +1220,9 @@
         }
     }
 
-    static TaskRecord restoreFromXml(XmlPullParser in, ActivityStackSupervisor stackSupervisor)
-            throws IOException, XmlPullParserException {
+    static TaskRecord restoreFromXml(XmlPullParser in, ActivityManagerService service,
+            ActivityStackSupervisor stackSupervisor, long lastPersistUptime)
+                    throws IOException, XmlPullParserException {
         Intent intent = null;
         Intent affinityIntent = null;
         ArrayList<ActivityRecord> activities = new ArrayList<>();
@@ -1325,6 +1335,31 @@
             }
         }
 
+        if (lastPersistUptime > 0) {
+            if (TaskPersister.DEBUG) {
+                Slog.d(TaskPersister.TAG, "TaskRecord: Adjust firstActiveTime=" + firstActiveTime +
+                        " lastPersistUptime=" + lastPersistUptime);
+                Slog.d(TaskPersister.TAG, "TaskRecord: Migrate lastActiveTime=" + lastActiveTime +
+                        " lastActiveTime=" + lastPersistUptime);
+            }
+            // The first and last task active times are relative to the last boot time, so offset
+            // them to be prior to the current boot time
+            firstActiveTime = -lastPersistUptime + firstActiveTime;
+            lastActiveTime = -lastPersistUptime + lastActiveTime;
+        } else {
+            // The first/last active times are still absolute clock times, so offset them to be
+            // relative to the current boot time
+            long currentTime = System.currentTimeMillis();
+            if (TaskPersister.DEBUG) {
+                Slog.d(TaskPersister.TAG, "TaskRecord: Migrate firstActiveTime=" + firstActiveTime +
+                                " currentTime=" + currentTime);
+                Slog.d(TaskPersister.TAG, "TaskRecord: Migrate lastActiveTime=" + lastActiveTime +
+                                " currentTime=" + currentTime);
+            }
+            firstActiveTime = -Math.max(0, currentTime - firstActiveTime);
+            lastActiveTime = -Math.max(0, currentTime - lastActiveTime);
+        }
+
         int event;
         while (((event = in.next()) != XmlPullParser.END_DOCUMENT) &&
                 (event != XmlPullParser.END_TAG || in.getDepth() >= outerDepth)) {
@@ -1374,7 +1409,7 @@
                     + ": effectiveUid=" + effectiveUid);
         }
 
-        final TaskRecord task = new TaskRecord(stackSupervisor.mService, taskId, intent,
+        final TaskRecord task = new TaskRecord(service, taskId, intent,
                 affinityIntent, affinity, rootAffinity, realActivity, origActivity, rootHasReset,
                 autoRemoveRecents, askedCompatMode, taskType, userId, effectiveUid, lastDescription,
                 activities, firstActiveTime, lastActiveTime, lastTimeOnTop, neverRelinquishIdentity,
@@ -1777,7 +1812,7 @@
         pw.print(prefix + "hasBeenVisible=" + hasBeenVisible);
                 pw.print(" mResizeMode=" + ActivityInfo.resizeModeToString(mResizeMode));
                 pw.print(" isResizeable=" + isResizeable());
-                pw.print(" firstActiveTime=" + lastActiveTime);
+                pw.print(" firstActiveTime=" + firstActiveTime);
                 pw.print(" lastActiveTime=" + lastActiveTime);
                 pw.println(" (inactive for " + (getInactiveDuration() / 1000) + "s)");
     }
diff --git a/services/core/java/com/android/server/content/SyncManager.java b/services/core/java/com/android/server/content/SyncManager.java
index f739fa8..705eae6 100644
--- a/services/core/java/com/android/server/content/SyncManager.java
+++ b/services/core/java/com/android/server/content/SyncManager.java
@@ -645,6 +645,37 @@
                 mContext.startService(startServiceIntent);
             }
         });
+
+        // Sync adapters were able to access the synced account without the accounts
+        // permission which circumvents our permission model. Therefore, we require
+        // sync adapters that don't have access to the account to get user consent.
+        // This can be noisy, therefore we will white-list sync adapters installed
+        // before we started checking for account access because they already know
+        // the account (they run before) which is the genie is out of the bottle.
+        whiteListExistingSyncAdaptersIfNeeded();
+    }
+
+    private void whiteListExistingSyncAdaptersIfNeeded() {
+        if (!mSyncStorageEngine.shouldGrantSyncAdaptersAccountAccess()) {
+            return;
+        }
+        List<UserInfo> users = mUserManager.getUsers(true);
+        final int userCount = users.size();
+        for (int i = 0; i < userCount; i++) {
+            UserHandle userHandle = users.get(i).getUserHandle();
+            final int userId = userHandle.getIdentifier();
+            for (RegisteredServicesCache.ServiceInfo<SyncAdapterType> service
+                    : mSyncAdapters.getAllServices(userId)) {
+                String packageName = service.componentName.getPackageName();
+                for (Account account : mAccountManager.getAccountsByTypeAsUser(
+                        service.type.accountType, userHandle)) {
+                    if (!canAccessAccount(account, packageName, userId)) {
+                        mAccountManager.updateAppPermission(account,
+                                AccountManager.ACCOUNT_ACCESS_TOKEN, service.uid, true);
+                    }
+                }
+            }
+        }
     }
 
     private boolean isDeviceProvisioned() {
diff --git a/services/core/java/com/android/server/content/SyncStorageEngine.java b/services/core/java/com/android/server/content/SyncStorageEngine.java
index 64849aa..8289bae 100644
--- a/services/core/java/com/android/server/content/SyncStorageEngine.java
+++ b/services/core/java/com/android/server/content/SyncStorageEngine.java
@@ -137,7 +137,7 @@
     private static final boolean SYNC_ENABLED_DEFAULT = false;
 
     // the version of the accounts xml file format
-    private static final int ACCOUNTS_VERSION = 2;
+    private static final int ACCOUNTS_VERSION = 3;
 
     private static HashMap<String, String> sAuthorityRenames;
     private static PeriodicSyncAddedListener mPeriodicSyncAddedListener;
@@ -408,6 +408,8 @@
     private OnSyncRequestListener mSyncRequestListener;
     private OnAuthorityRemovedListener mAuthorityRemovedListener;
 
+    private boolean mGrantSyncAdaptersAccountAccess;
+
     private SyncStorageEngine(Context context, File dataDir) {
         mContext = context;
         sSyncStorageEngine = this;
@@ -1410,6 +1412,10 @@
         }
     }
 
+    public boolean shouldGrantSyncAdaptersAccountAccess() {
+        return mGrantSyncAdaptersAccountAccess;
+    }
+
     /**
      * public for testing
      */
@@ -1464,6 +1470,11 @@
                 } catch (NumberFormatException e) {
                     version = 0;
                 }
+
+                if (version < 3) {
+                    mGrantSyncAdaptersAccountAccess = true;
+                }
+
                 String nextIdString = parser.getAttributeValue(null, XML_ATTR_NEXT_AUTHORITY_ID);
                 try {
                     int id = (nextIdString == null) ? 0 : Integer.parseInt(nextIdString);
diff --git a/services/core/java/com/android/server/display/AutomaticBrightnessController.java b/services/core/java/com/android/server/display/AutomaticBrightnessController.java
index 15ae846..a3febd6 100644
--- a/services/core/java/com/android/server/display/AutomaticBrightnessController.java
+++ b/services/core/java/com/android/server/display/AutomaticBrightnessController.java
@@ -50,13 +50,7 @@
     // If true, enables the use of the screen auto-brightness adjustment setting.
     private static final boolean USE_SCREEN_AUTO_BRIGHTNESS_ADJUSTMENT = true;
 
-    // Hysteresis constraints for brightening or darkening.
-    // The recent lux must have changed by at least this fraction relative to the
-    // current ambient lux before a change will be considered.
-    private static final float BRIGHTENING_LIGHT_HYSTERESIS = 0.10f;
-    private static final float DARKENING_LIGHT_HYSTERESIS = 0.20f;
-
-    // How long the current sensor reading is assumed to be valid beyond the current time.
+   // How long the current sensor reading is assumed to be valid beyond the current time.
     // This provides a bit of prediction, as well as ensures that the weight for the last sample is
     // non-zero, which in turn ensures that the total weight is non-zero.
     private static final long AMBIENT_LIGHT_PREDICTION_TIME_MILLIS = 100;
@@ -71,7 +65,7 @@
     private static final int MSG_UPDATE_AMBIENT_LUX = 1;
     private static final int MSG_BRIGHTNESS_ADJUSTMENT_SAMPLE = 2;
 
-    // Callbacks for requesting updates to the the display's power state
+    // Callbacks for requesting updates to the display's power state
     private final Callbacks mCallbacks;
 
     // The sensor manager.
@@ -115,6 +109,9 @@
     // weighting values positive.
     private final int mWeightingIntercept;
 
+    // accessor object for determining thresholds to change brightness dynamically
+    private final HysteresisLevels mDynamicHysteresis;
+
     // Amount of time to delay auto-brightness after screen on while waiting for
     // the light sensor to warm-up in milliseconds.
     // May be 0 if no warm-up is required.
@@ -190,7 +187,8 @@
             int brightnessMin, int brightnessMax, float dozeScaleFactor,
             int lightSensorRate, long brighteningLightDebounceConfig,
             long darkeningLightDebounceConfig, boolean resetAmbientLuxAfterWarmUpConfig,
-            int ambientLightHorizon, float autoBrightnessAdjustmentMaxGamma ) {
+            int ambientLightHorizon, float autoBrightnessAdjustmentMaxGamma,
+            HysteresisLevels dynamicHysteresis) {
         mCallbacks = callbacks;
         mTwilight = LocalServices.getService(TwilightManager.class);
         mSensorManager = sensorManager;
@@ -206,6 +204,7 @@
         mAmbientLightHorizon = ambientLightHorizon;
         mWeightingIntercept = ambientLightHorizon;
         mScreenAutoBrightnessAdjustmentMaxGamma = autoBrightnessAdjustmentMaxGamma;
+        mDynamicHysteresis = dynamicHysteresis;
 
         mHandler = new AutomaticBrightnessHandler(looper);
         mAmbientLightRingBuffer =
@@ -344,8 +343,8 @@
 
     private void setAmbientLux(float lux) {
         mAmbientLux = lux;
-        mBrighteningLuxThreshold = mAmbientLux * (1.0f + BRIGHTENING_LIGHT_HYSTERESIS);
-        mDarkeningLuxThreshold = mAmbientLux * (1.0f - DARKENING_LIGHT_HYSTERESIS);
+        mBrighteningLuxThreshold = mDynamicHysteresis.getBrighteningThreshold(lux);
+        mDarkeningLuxThreshold = mDynamicHysteresis.getDarkeningThreshold(lux);
     }
 
     private float calculateAmbientLux(long now) {
diff --git a/services/core/java/com/android/server/display/DisplayPowerController.java b/services/core/java/com/android/server/display/DisplayPowerController.java
index 61af8ed..df5def9 100644
--- a/services/core/java/com/android/server/display/DisplayPowerController.java
+++ b/services/core/java/com/android/server/display/DisplayPowerController.java
@@ -72,7 +72,7 @@
     private static final String TAG = "DisplayPowerController";
     private static final String SCREEN_ON_BLOCKED_TRACE_NAME = "Screen on blocked";
 
-    private static boolean DEBUG = false;
+    private static final boolean DEBUG = false;
     private static final boolean DEBUG_PRETEND_PROXIMITY_SENSOR_ABSENT = false;
 
     // If true, uses the color fade on animation.
@@ -102,9 +102,6 @@
     // Trigger proximity if distance is less than 5 cm.
     private static final float TYPICAL_PROXIMITY_THRESHOLD = 5.0f;
 
-    // Brightness animation ramp rate in brightness units per second.
-    private static final int BRIGHTNESS_RAMP_RATE_SLOW = 40;
-
     private static final int REPORTED_TO_POLICY_SCREEN_OFF = 0;
     private static final int REPORTED_TO_POLICY_SCREEN_TURNING_ON = 1;
     private static final int REPORTED_TO_POLICY_SCREEN_ON = 2;
@@ -243,8 +240,9 @@
     private boolean mAppliedDimming;
     private boolean mAppliedLowPower;
 
-    // Brightness ramp rate fast.
+    // Brightness animation ramp rates in brightness units per second
     private final int mBrightnessRampRateFast;
+    private final int mBrightnessRampRateSlow;
 
     // The controller for the automatic brightness level.
     private AutomaticBrightnessController mAutomaticBrightnessController;
@@ -307,6 +305,8 @@
 
         mBrightnessRampRateFast = resources.getInteger(
                 com.android.internal.R.integer.config_brightness_ramp_rate_fast);
+        mBrightnessRampRateSlow = resources.getInteger(
+                com.android.internal.R.integer.config_brightness_ramp_rate_slow);
 
         int lightSensorRate = resources.getInteger(
                 com.android.internal.R.integer.config_autoBrightnessLightSensorRate);
@@ -322,6 +322,15 @@
                 com.android.internal.R.fraction.config_autoBrightnessAdjustmentMaxGamma,
                 1, 1);
 
+        int[] brightLevels = resources.getIntArray(
+                com.android.internal.R.array.config_dynamicHysteresisBrightLevels);
+        int[] darkLevels = resources.getIntArray(
+                com.android.internal.R.array.config_dynamicHysteresisDarkLevels);
+        int[] luxLevels = resources.getIntArray(
+                com.android.internal.R.array.config_dynamicHysteresisLuxLevels);
+        HysteresisLevels dynamicHysteresis = new HysteresisLevels(
+                brightLevels, darkLevels, luxLevels);
+
         if (mUseSoftwareAutoBrightnessConfig) {
             int[] lux = resources.getIntArray(
                     com.android.internal.R.array.config_autoBrightnessLevels);
@@ -358,8 +367,8 @@
                         lightSensorWarmUpTimeConfig, screenBrightnessRangeMinimum,
                         mScreenBrightnessRangeMaximum, dozeScaleFactor, lightSensorRate,
                         brighteningLightDebounce, darkeningLightDebounce,
-                        autoBrightnessResetAmbientLuxAfterWarmUp,
-                        ambientLightHorizon, autoBrightnessAdjustmentMaxGamma);
+                        autoBrightnessResetAmbientLuxAfterWarmUp, ambientLightHorizon,
+                        autoBrightnessAdjustmentMaxGamma, dynamicHysteresis);
             }
         }
 
@@ -703,7 +712,7 @@
         if (!mPendingScreenOff) {
             if (state == Display.STATE_ON || state == Display.STATE_DOZE) {
                 animateScreenBrightness(brightness,
-                        slowChange ? BRIGHTNESS_RAMP_RATE_SLOW : mBrightnessRampRateFast);
+                        slowChange ? mBrightnessRampRateSlow : mBrightnessRampRateFast);
             } else {
                 animateScreenBrightness(brightness, 0);
             }
diff --git a/services/core/java/com/android/server/display/HysteresisLevels.java b/services/core/java/com/android/server/display/HysteresisLevels.java
new file mode 100644
index 0000000..b062225
--- /dev/null
+++ b/services/core/java/com/android/server/display/HysteresisLevels.java
@@ -0,0 +1,104 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.display;
+
+import android.util.Slog;
+
+/**
+ * A helper class for handling access to illuminance hysteresis level values.
+ */
+final class HysteresisLevels {
+    private static final String TAG = "HysteresisLevels";
+
+    // Default hysteresis constraints for brightening or darkening.
+    // The recent lux must have changed by at least this fraction relative to the
+    // current ambient lux before a change will be considered.
+    private static final float DEFAULT_BRIGHTENING_HYSTERESIS = 0.10f;
+    private static final float DEFAULT_DARKENING_HYSTERESIS = 0.20f;
+
+    private static final boolean DEBUG = false;
+
+    private final float[] mBrightLevels;
+    private final float[] mDarkLevels;
+    private final float[] mLuxLevels;
+
+  /**
+   * Creates a {@code HysteresisLevels} object with the given equal-length
+   * integer arrays.
+   * @param brightLevels an array of brightening hysteresis constraint constants
+   * @param darkLevels an array of darkening hysteresis constraint constants
+   * @param luxLevels a monotonically increasing array of illuminance
+   *                  thresholds in units of lux
+   */
+    public HysteresisLevels(int[] brightLevels, int[] darkLevels, int[] luxLevels) {
+        if (brightLevels.length != darkLevels.length || darkLevels.length != luxLevels.length + 1) {
+            throw new IllegalArgumentException("Mismatch between hysteresis array lengths.");
+        }
+        mBrightLevels = setArrayFormat(brightLevels, 1000.0f);
+        mDarkLevels = setArrayFormat(darkLevels, 1000.0f);
+        mLuxLevels = setArrayFormat(luxLevels, 1.0f);
+    }
+
+    /**
+     * Return the brightening hysteresis threshold for the given lux level.
+     */
+    public float getBrighteningThreshold(float lux) {
+        float brightConstant = getReferenceLevel(lux, mBrightLevels);
+        float brightThreshold = lux * (1.0f + brightConstant);
+        if (DEBUG) {
+            Slog.d(TAG, "bright hysteresis constant=: " + brightConstant + ", threshold="
+                + brightThreshold + ", lux=" + lux);
+        }
+        return brightThreshold;
+    }
+
+    /**
+     * Return the darkening hysteresis threshold for the given lux level.
+     */
+    public float getDarkeningThreshold(float lux) {
+        float darkConstant = getReferenceLevel(lux, mDarkLevels);
+        float darkThreshold = lux * (1.0f - darkConstant);
+        if (DEBUG) {
+            Slog.d(TAG, "dark hysteresis constant=: " + darkConstant + ", threshold="
+                + darkThreshold + ", lux=" + lux);
+        }
+        return darkThreshold;
+    }
+
+    /**
+     * Return the hysteresis constant for the closest lux threshold value to the
+     * current illuminance from the given array.
+     */
+    private float getReferenceLevel(float lux, float[] referenceLevels) {
+        int index = 0;
+        while (mLuxLevels.length > index && lux >= mLuxLevels[index]) {
+            ++index;
+        }
+        return referenceLevels[index];
+    }
+
+    /**
+     * Return a float array where each i-th element equals {@code configArray[i]/divideFactor}.
+     */
+    private float[] setArrayFormat(int[] configArray, float divideFactor) {
+        float[] levelArray = new float[configArray.length];
+        for (int index = 0; levelArray.length > index; ++index) {
+            levelArray[index] = (float)configArray[index] / divideFactor;
+        }
+        return levelArray;
+    }
+}
diff --git a/services/core/java/com/android/server/net/NetworkPolicyManagerService.java b/services/core/java/com/android/server/net/NetworkPolicyManagerService.java
index d5da66b..b013902 100644
--- a/services/core/java/com/android/server/net/NetworkPolicyManagerService.java
+++ b/services/core/java/com/android/server/net/NetworkPolicyManagerService.java
@@ -1011,7 +1011,7 @@
      */
     private void notifyOverLimitNL(NetworkTemplate template) {
         if (!mOverLimitNotified.contains(template)) {
-            mContext.startActivity(buildNetworkOverLimitIntent(template));
+            mContext.startActivity(buildNetworkOverLimitIntent(mContext.getResources(), template));
             mOverLimitNotified.add(template);
         }
     }
@@ -1057,7 +1057,7 @@
                 builder.setDeleteIntent(PendingIntent.getBroadcast(
                         mContext, 0, snoozeIntent, PendingIntent.FLAG_UPDATE_CURRENT));
 
-                final Intent viewIntent = buildViewDataUsageIntent(policy.template);
+                final Intent viewIntent = buildViewDataUsageIntent(res, policy.template);
                 builder.setContentIntent(PendingIntent.getActivity(
                         mContext, 0, viewIntent, PendingIntent.FLAG_UPDATE_CURRENT));
 
@@ -1093,7 +1093,7 @@
                 builder.setContentTitle(title);
                 builder.setContentText(body);
 
-                final Intent intent = buildNetworkOverLimitIntent(policy.template);
+                final Intent intent = buildNetworkOverLimitIntent(res, policy.template);
                 builder.setContentIntent(PendingIntent.getActivity(
                         mContext, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT));
                 break;
@@ -1128,7 +1128,7 @@
                 builder.setContentTitle(title);
                 builder.setContentText(body);
 
-                final Intent intent = buildViewDataUsageIntent(policy.template);
+                final Intent intent = buildViewDataUsageIntent(res, policy.template);
                 builder.setContentIntent(PendingIntent.getActivity(
                         mContext, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT));
                 break;
@@ -3462,19 +3462,19 @@
         return intent;
     }
 
-    private static Intent buildNetworkOverLimitIntent(NetworkTemplate template) {
+    private static Intent buildNetworkOverLimitIntent(Resources res, NetworkTemplate template) {
         final Intent intent = new Intent();
-        intent.setComponent(new ComponentName(
-                "com.android.systemui", "com.android.systemui.net.NetworkOverLimitActivity"));
+        intent.setComponent(ComponentName.unflattenFromString(
+                res.getString(R.string.config_networkOverLimitComponent)));
         intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
         intent.putExtra(EXTRA_NETWORK_TEMPLATE, template);
         return intent;
     }
 
-    private static Intent buildViewDataUsageIntent(NetworkTemplate template) {
+    private static Intent buildViewDataUsageIntent(Resources res, NetworkTemplate template) {
         final Intent intent = new Intent();
-        intent.setComponent(new ComponentName(
-                "com.android.settings", "com.android.settings.Settings$DataUsageSummaryActivity"));
+        intent.setComponent(ComponentName.unflattenFromString(
+                res.getString(R.string.config_dataUsageSummaryComponent)));
         intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
         intent.putExtra(EXTRA_NETWORK_TEMPLATE, template);
         return intent;
diff --git a/services/core/java/com/android/server/notification/NotificationManagerService.java b/services/core/java/com/android/server/notification/NotificationManagerService.java
index bb55240..eb85f19 100644
--- a/services/core/java/com/android/server/notification/NotificationManagerService.java
+++ b/services/core/java/com/android/server/notification/NotificationManagerService.java
@@ -58,7 +58,6 @@
 import android.app.NotificationManager;
 import android.app.NotificationManager.Policy;
 import android.app.PendingIntent;
-import android.app.RemoteInput;
 import android.app.StatusBarManager;
 import android.app.backup.BackupManager;
 import android.app.usage.UsageEvents;
@@ -93,7 +92,6 @@
 import android.os.IInterface;
 import android.os.Looper;
 import android.os.Message;
-import android.os.Parcelable;
 import android.os.Process;
 import android.os.RemoteException;
 import android.os.SystemClock;
@@ -122,6 +120,8 @@
 import android.util.Slog;
 import android.util.SparseArray;
 import android.util.Xml;
+import android.view.WindowManager;
+import android.view.WindowManagerInternal;
 import android.view.accessibility.AccessibilityEvent;
 import android.view.accessibility.AccessibilityManager;
 import android.widget.Toast;
@@ -138,6 +138,7 @@
 import com.android.server.lights.Light;
 import com.android.server.lights.LightsManager;
 import com.android.server.notification.ManagedServices.ManagedServiceInfo;
+import com.android.server.policy.PhoneWindowManager;
 import com.android.server.statusbar.StatusBarManagerInternal;
 import com.android.server.vr.VrManagerInternal;
 import com.android.server.notification.ManagedServices.UserProfiles;
@@ -193,7 +194,7 @@
     private static final int MESSAGE_RECONSIDER_RANKING = 1000;
     private static final int MESSAGE_RANKING_SORT = 1001;
 
-    static final int LONG_DELAY = 3500; // 3.5 seconds
+    static final int LONG_DELAY = PhoneWindowManager.TOAST_WINDOW_TIMEOUT;
     static final int SHORT_DELAY = 2000; // 2 seconds
 
     static final long[] DEFAULT_VIBRATE_PATTERN = {0, 250, 250, 250};
@@ -232,6 +233,7 @@
     @Nullable StatusBarManagerInternal mStatusBar;
     Vibrator mVibrator;
     private VrManagerInternal mVrManagerInternal;
+    private WindowManagerInternal mWindowManagerInternal;
 
     final IBinder mForegroundToken = new Binder();
     private Handler mHandler;
@@ -452,13 +454,15 @@
         final String pkg;
         final ITransientNotification callback;
         int duration;
+        Binder token;
 
-        ToastRecord(int pid, String pkg, ITransientNotification callback, int duration)
-        {
+        ToastRecord(int pid, String pkg, ITransientNotification callback, int duration,
+                    Binder token) {
             this.pid = pid;
             this.pkg = pkg;
             this.callback = callback;
             this.duration = duration;
+            this.token = token;
         }
 
         void update(int duration) {
@@ -1125,6 +1129,7 @@
             mAudioManager = (AudioManager) getContext().getSystemService(Context.AUDIO_SERVICE);
             mAudioManagerInternal = getLocalService(AudioManagerInternal.class);
             mVrManagerInternal = getLocalService(VrManagerInternal.class);
+            mWindowManagerInternal = LocalServices.getService(WindowManagerInternal.class);
             mZenModeHelper.onSystemReady();
         } else if (phase == SystemService.PHASE_THIRD_PARTY_APPS_CAN_START) {
             // This observer will force an update when observe is called, causing us to
@@ -1325,10 +1330,13 @@
                             }
                         }
 
-                        record = new ToastRecord(callingPid, pkg, callback, duration);
+                        Binder token = new Binder();
+                        mWindowManagerInternal.addWindowToken(token,
+                                WindowManager.LayoutParams.TYPE_TOAST);
+                        record = new ToastRecord(callingPid, pkg, callback, duration, token);
                         mToastQueue.add(record);
                         index = mToastQueue.size() - 1;
-                        keepProcessAliveLocked(callingPid);
+                        keepProcessAliveIfNeededLocked(callingPid);
                     }
                     // If it's at index 0, it's the current toast.  It doesn't matter if it's
                     // new or just been updated.  Call back and tell it to show itself.
@@ -2991,7 +2999,7 @@
         while (record != null) {
             if (DBG) Slog.d(TAG, "Show pkg=" + record.pkg + " callback=" + record.callback);
             try {
-                record.callback.show();
+                record.callback.show(record.token);
                 scheduleTimeoutLocked(record);
                 return;
             } catch (RemoteException e) {
@@ -3002,7 +3010,7 @@
                 if (index >= 0) {
                     mToastQueue.remove(index);
                 }
-                keepProcessAliveLocked(record.pid);
+                keepProcessAliveIfNeededLocked(record.pid);
                 if (mToastQueue.size() > 0) {
                     record = mToastQueue.get(0);
                 } else {
@@ -3022,8 +3030,11 @@
             // don't worry about this, we're about to remove it from
             // the list anyway
         }
-        mToastQueue.remove(index);
-        keepProcessAliveLocked(record.pid);
+
+        ToastRecord lastToast = mToastQueue.remove(index);
+        mWindowManagerInternal.removeWindowToken(lastToast.token, true);
+
+        keepProcessAliveIfNeededLocked(record.pid);
         if (mToastQueue.size() > 0) {
             // Show the next one. If the callback fails, this will remove
             // it from the list, so don't assume that the list hasn't changed
@@ -3067,7 +3078,7 @@
     }
 
     // lock on mToastQueue
-    void keepProcessAliveLocked(int pid)
+    void keepProcessAliveIfNeededLocked(int pid)
     {
         int toastCount = 0; // toasts from this pid
         ArrayList<ToastRecord> list = mToastQueue;
diff --git a/services/core/java/com/android/server/policy/PhoneWindowManager.java b/services/core/java/com/android/server/policy/PhoneWindowManager.java
index 1132ff9..a50c890 100644
--- a/services/core/java/com/android/server/policy/PhoneWindowManager.java
+++ b/services/core/java/com/android/server/policy/PhoneWindowManager.java
@@ -200,6 +200,11 @@
     static final int MULTI_PRESS_POWER_THEATER_MODE = 1;
     static final int MULTI_PRESS_POWER_BRIGHTNESS_BOOST = 2;
 
+    // Number of presses needed before we induce panic press behavior on the back button
+    static final int PANIC_PRESS_BACK_COUNT = 4;
+    static final int PANIC_PRESS_BACK_NOTHING = 0;
+    static final int PANIC_PRESS_BACK_HOME = 1;
+
     // These need to match the documentation/constant in
     // core/res/res/values/config.xml
     static final int LONG_PRESS_HOME_NOTHING = 0;
@@ -301,6 +306,9 @@
     /** Amount of time (in milliseconds) to wait for windows drawn before powering on. */
     static final int WAITING_FOR_DRAWN_TIMEOUT = 1000;
 
+    /** Amount of time (in milliseconds) a toast window can be shown. */
+    public static final int TOAST_WINDOW_TIMEOUT = 3500; // 3.5 seconds
+
     /**
      * Lock protecting internal state.  Must not call out into window
      * manager with lock held.  (This lock will be acquired in places
@@ -406,6 +414,7 @@
     volatile boolean mBackKeyHandled;
     volatile boolean mBeganFromNonInteractive;
     volatile int mPowerKeyPressCounter;
+    volatile int mBackKeyPressCounter;
     volatile boolean mEndCallKeyHandled;
     volatile boolean mCameraGestureTriggeredDuringGoingToSleep;
     volatile boolean mGoingToSleep;
@@ -464,6 +473,7 @@
     int mDoublePressOnPowerBehavior;
     int mTriplePressOnPowerBehavior;
     int mLongPressOnBackBehavior;
+    int mPanicPressOnBackBehavior;
     int mShortPressOnSleepBehavior;
     int mShortPressWindowBehavior;
     boolean mAwake;
@@ -726,6 +736,7 @@
     private static final int MSG_SHOW_TV_PICTURE_IN_PICTURE_MENU = 17;
     private static final int MSG_BACK_LONG_PRESS = 18;
     private static final int MSG_DISPOSE_INPUT_CONSUMER = 19;
+    private static final int MSG_BACK_DELAYED_PRESS = 20;
 
     private static final int MSG_REQUEST_TRANSIENT_BARS_ARG_STATUS = 0;
     private static final int MSG_REQUEST_TRANSIENT_BARS_ARG_NAVIGATION = 1;
@@ -792,10 +803,15 @@
                     break;
                 case MSG_BACK_LONG_PRESS:
                     backLongPress();
+                    finishBackKeyPress();
                     break;
                 case MSG_DISPOSE_INPUT_CONSUMER:
                     disposeInputConsumer((InputConsumer) msg.obj);
                     break;
+                case MSG_BACK_DELAYED_PRESS:
+                    backMultiPressAction((Long) msg.obj, msg.arg1);
+                    finishBackKeyPress();
+                    break;
             }
         }
     }
@@ -1010,6 +1026,52 @@
         }
     }
 
+    private void interceptBackKeyDown() {
+        // Reset back key state for long press
+        mBackKeyHandled = false;
+
+        // Cancel multi-press detection timeout.
+        if (hasPanicPressOnBackBehavior()) {
+            if (mBackKeyPressCounter != 0
+                    && mBackKeyPressCounter < PANIC_PRESS_BACK_COUNT) {
+                mHandler.removeMessages(MSG_BACK_DELAYED_PRESS);
+            }
+        }
+
+        if (hasLongPressOnBackBehavior()) {
+            Message msg = mHandler.obtainMessage(MSG_BACK_LONG_PRESS);
+            msg.setAsynchronous(true);
+            mHandler.sendMessageDelayed(msg,
+                    ViewConfiguration.get(mContext).getDeviceGlobalActionKeyTimeout());
+        }
+    }
+
+    // returns true if the key was handled and should not be passed to the user
+    private boolean interceptBackKeyUp(KeyEvent event) {
+        // Cache handled state
+        boolean handled = mBackKeyHandled;
+
+        if (hasPanicPressOnBackBehavior()) {
+            // Check for back key panic press
+            ++mBackKeyPressCounter;
+
+            final long eventTime = event.getDownTime();
+
+            if (mBackKeyPressCounter <= PANIC_PRESS_BACK_COUNT) {
+                // This could be a multi-press.  Wait a little bit longer to confirm.
+                Message msg = mHandler.obtainMessage(MSG_BACK_DELAYED_PRESS,
+                        mBackKeyPressCounter, 0, eventTime);
+                msg.setAsynchronous(true);
+                mHandler.sendMessageDelayed(msg, ViewConfiguration.getMultiPressTimeout());
+            }
+        }
+
+        // Reset back long press state
+        cancelPendingBackKeyAction();
+
+        return handled;
+    }
+
     private void interceptPowerKeyDown(KeyEvent event, boolean interactive) {
         // Hold a wake lock until the power key is released.
         if (!mPowerKeyWakeLock.isHeld()) {
@@ -1140,6 +1202,10 @@
         }
     }
 
+    private void finishBackKeyPress() {
+        mBackKeyPressCounter = 0;
+    }
+
     private void cancelPendingPowerKeyAction() {
         if (!mPowerKeyHandled) {
             mPowerKeyHandled = true;
@@ -1154,6 +1220,18 @@
         }
     }
 
+    private void backMultiPressAction(long eventTime, int count) {
+        if (count >= PANIC_PRESS_BACK_COUNT) {
+            switch (mPanicPressOnBackBehavior) {
+                case PANIC_PRESS_BACK_NOTHING:
+                    break;
+                case PANIC_PRESS_BACK_HOME:
+                    launchHomeFromHotKey();
+                    break;
+            }
+        }
+    }
+
     private void powerPress(long eventTime, boolean interactive, int count) {
         if (mScreenOnEarly && !mScreenOnFully) {
             Slog.i(TAG, "Suppressed redundant power key press while "
@@ -1312,6 +1390,10 @@
         return mLongPressOnBackBehavior != LONG_PRESS_BACK_NOTHING;
     }
 
+    private boolean hasPanicPressOnBackBehavior() {
+        return mPanicPressOnBackBehavior != PANIC_PRESS_BACK_NOTHING;
+    }
+
     private void interceptScreenshotChord() {
         if (mScreenshotChordEnabled
                 && mScreenshotChordVolumeDownKeyTriggered && mScreenshotChordPowerKeyTriggered
@@ -1639,6 +1721,8 @@
 
         mLongPressOnBackBehavior = mContext.getResources().getInteger(
                 com.android.internal.R.integer.config_longPressOnBackBehavior);
+        mPanicPressOnBackBehavior = mContext.getResources().getInteger(
+                com.android.internal.R.integer.config_backPanicBehavior);
 
         mShortPressOnPowerBehavior = mContext.getResources().getInteger(
                 com.android.internal.R.integer.config_shortPressOnPowerBehavior);
@@ -2229,9 +2313,22 @@
                     attrs.privateFlags &= ~WindowManager.LayoutParams.PRIVATE_FLAG_KEYGUARD;
                 }
                 break;
+
             case TYPE_SCREENSHOT:
                 attrs.flags |= WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;
                 break;
+
+            case TYPE_TOAST:
+                // While apps should use the dedicated toast APIs to add such windows
+                // it possible legacy apps to add the window directly. Therefore, we
+                // make windows added directly by the app behave as a toast as much
+                // as possible in terms of timeout and animation.
+                if (attrs.hideTimeoutMilliseconds < 0
+                        || attrs.hideTimeoutMilliseconds > TOAST_WINDOW_TIMEOUT) {
+                    attrs.hideTimeoutMilliseconds = TOAST_WINDOW_TIMEOUT;
+                }
+                attrs.windowAnimations = com.android.internal.R.style.Animation_Toast;
+                break;
         }
 
         if (attrs.type != TYPE_STATUS_BAR) {
@@ -5628,20 +5725,11 @@
         switch (keyCode) {
             case KeyEvent.KEYCODE_BACK: {
                 if (down) {
-                    mBackKeyHandled = false;
-                    if (hasLongPressOnBackBehavior()) {
-                        Message msg = mHandler.obtainMessage(MSG_BACK_LONG_PRESS);
-                        msg.setAsynchronous(true);
-                        mHandler.sendMessageDelayed(msg,
-                                ViewConfiguration.get(mContext).getDeviceGlobalActionKeyTimeout());
-                    }
+                    interceptBackKeyDown();
                 } else {
-                    boolean handled = mBackKeyHandled;
+                    boolean handled = interceptBackKeyUp(event);
 
-                    // Reset back key state
-                    cancelPendingBackKeyAction();
-
-                    // Don't pass back press to app if we've already handled it
+                    // Don't pass back press to app if we've already handled it via long press
                     if (handled) {
                         result &= ~ACTION_PASS_TO_USER;
                     }
diff --git a/services/core/java/com/android/server/wm/DisplayContent.java b/services/core/java/com/android/server/wm/DisplayContent.java
index 9b5b101..b90b8643 100644
--- a/services/core/java/com/android/server/wm/DisplayContent.java
+++ b/services/core/java/com/android/server/wm/DisplayContent.java
@@ -22,14 +22,19 @@
 import static android.view.WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;
 import static android.view.WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE;
 import static android.view.WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL;
+import static android.view.WindowManager.LayoutParams.TYPE_TOAST;
 import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_VISIBILITY;
 import static com.android.server.wm.WindowManagerDebugConfig.TAG_WM;
 import static com.android.server.wm.WindowState.RESIZE_HANDLE_WIDTH_IN_DP;
 
 import android.app.ActivityManager.StackId;
+import android.content.pm.ApplicationInfo;
+import android.content.pm.PackageManager;
 import android.graphics.Rect;
 import android.graphics.Region;
 import android.graphics.Region.Op;
+import android.os.Build;
+import android.os.UserHandle;
 import android.util.DisplayMetrics;
 import android.util.Slog;
 import android.view.Display;
@@ -684,4 +689,39 @@
             mStacks.get(i).overridePlayingAppAnimations(a);
         }
     }
+
+    boolean canAddToastWindowForUid(int uid) {
+        // We allow one toast window per UID being shown at a time.
+        WindowList windows = getWindowList();
+        final int windowCount = windows.size();
+        for (int i = 0; i < windowCount; i++) {
+            WindowState window = windows.get(i);
+            if (window.mAttrs.type == TYPE_TOAST && window.mOwnerUid == uid
+                    && !window.mPermanentlyHidden && !window.mAnimatingExit) {
+                return false;
+            }
+        }
+        return true;
+    }
+
+    void scheduleToastWindowsTimeoutIfNeededLocked(WindowState oldFocus,
+                                                   WindowState newFocus) {
+        if (oldFocus == null || (newFocus != null && newFocus.mOwnerUid == oldFocus.mOwnerUid)) {
+            return;
+        }
+        final int lostFocusUid = oldFocus.mOwnerUid;
+        WindowList windows = getWindowList();
+        final int windowCount = windows.size();
+        for (int i = 0; i < windowCount; i++) {
+            WindowState window = windows.get(i);
+            if (window.mAttrs.type == TYPE_TOAST && window.mOwnerUid == lostFocusUid) {
+                if (!mService.mH.hasMessages(WindowManagerService.H.WINDOW_HIDE_TIMEOUT, window)) {
+                    mService.mH.sendMessageDelayed(
+                            mService.mH.obtainMessage(
+                                    WindowManagerService.H.WINDOW_HIDE_TIMEOUT, window),
+                            window.mAttrs.hideTimeoutMilliseconds);
+                }
+            }
+        }
+    }
 }
diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java
index 47a4114..4372dea 100644
--- a/services/core/java/com/android/server/wm/WindowManagerService.java
+++ b/services/core/java/com/android/server/wm/WindowManagerService.java
@@ -35,6 +35,7 @@
 import android.content.Intent;
 import android.content.IntentFilter;
 import android.content.pm.ActivityInfo;
+import android.content.pm.ApplicationInfo;
 import android.content.pm.PackageManager;
 import android.content.res.CompatibilityInfo;
 import android.content.res.Configuration;
@@ -201,6 +202,7 @@
 import static android.view.WindowManager.LayoutParams.TYPE_PRIVATE_PRESENTATION;
 import static android.view.WindowManager.LayoutParams.TYPE_QS_DIALOG;
 import static android.view.WindowManager.LayoutParams.TYPE_STATUS_BAR;
+import static android.view.WindowManager.LayoutParams.TYPE_TOAST;
 import static android.view.WindowManager.LayoutParams.TYPE_VOICE_INTERACTION;
 import static android.view.WindowManager.LayoutParams.TYPE_WALLPAPER;
 import static android.view.WindowManagerGlobal.RELAYOUT_DEFER_SURFACE_DESTROY;
@@ -1869,6 +1871,7 @@
         boolean reportNewConfig = false;
         WindowState attachedWindow = null;
         long origId;
+        final int callingUid = Binder.getCallingUid();
         final int type = attrs.type;
 
         synchronized(mWindowMap) {
@@ -1916,6 +1919,8 @@
             boolean addToken = false;
             WindowToken token = mTokenMap.get(attrs.token);
             AppWindowToken atoken = null;
+            boolean addToastWindowRequiresToken = false;
+
             if (token == null) {
                 if (type >= FIRST_APPLICATION_WINDOW && type <= LAST_APPLICATION_WINDOW) {
                     Slog.w(TAG_WM, "Attempted to add application window with unknown token "
@@ -1952,6 +1957,15 @@
                             + attrs.token + ".  Aborting.");
                     return WindowManagerGlobal.ADD_BAD_APP_TOKEN;
                 }
+                if (type == TYPE_TOAST) {
+                    // Apps targeting SDK above N MR1 cannot arbitrary add toast windows.
+                    if (doesAddToastWindowRequireToken(attrs.packageName, callingUid,
+                            attachedWindow)) {
+                        Slog.w(TAG_WM, "Attempted to add a toast window with unknown token "
+                                + attrs.token + ".  Aborting.");
+                        return WindowManagerGlobal.ADD_BAD_APP_TOKEN;
+                    }
+                }
                 token = new WindowToken(this, attrs.token, -1, false);
                 addToken = true;
             } else if (type >= FIRST_APPLICATION_WINDOW && type <= LAST_APPLICATION_WINDOW) {
@@ -2001,6 +2015,15 @@
                             + attrs.token + ".  Aborting.");
                     return WindowManagerGlobal.ADD_BAD_APP_TOKEN;
                 }
+            } else if (type == TYPE_TOAST) {
+                // Apps targeting SDK above N MR1 cannot arbitrary add toast windows.
+                addToastWindowRequiresToken = doesAddToastWindowRequireToken(attrs.packageName,
+                        callingUid, attachedWindow);
+                if (addToastWindowRequiresToken && token.windowType != TYPE_TOAST) {
+                    Slog.w(TAG_WM, "Attempted to add a toast window with bad token "
+                            + attrs.token + ".  Aborting.");
+                    return WindowManagerGlobal.ADD_BAD_APP_TOKEN;
+                }
             } else if (type == TYPE_QS_DIALOG) {
                 if (token.windowType != TYPE_QS_DIALOG) {
                     Slog.w(TAG_WM, "Attempted to add QS dialog window with bad token "
@@ -2045,6 +2068,36 @@
                 win.openInputChannel(outInputChannel);
             }
 
+            // If adding a toast requires a token for this app we always schedule hiding
+            // toast windows to make sure they don't stick around longer then necessary.
+            // We hide instead of remove such windows as apps aren't prepared to handle
+            // windows being removed under them.
+            //
+            // If the app is older it can add toasts without a token and hence overlay
+            // other apps. To be maximally compatible with these apps we will hide the
+            // window after the toast timeout only if the focused window is from another
+            // UID, otherwise we allow unlimited duration. When a UID looses focus we
+            // schedule hiding all of its toast windows.
+            if (type == TYPE_TOAST) {
+                if (!getDefaultDisplayContentLocked().canAddToastWindowForUid(callingUid)) {
+                    Slog.w(TAG_WM, "Adding more than one toast window for UID at a time.");
+                    return WindowManagerGlobal.ADD_DUPLICATE_ADD;
+                }
+                // Make sure this happens before we moved focus as one can make the
+                // toast focusable to force it not being hidden after the timeout.
+                // Focusable toasts are always timed out to prevent a focused app to
+                // show a focusable toasts while it has focus which will be kept on
+                // the screen after the activity goes away.
+                if (addToastWindowRequiresToken
+                        || (attrs.flags & LayoutParams.FLAG_NOT_FOCUSABLE) == 0
+                        || mCurrentFocus == null
+                        || mCurrentFocus.mOwnerUid != callingUid) {
+                    mH.sendMessageDelayed(
+                            mH.obtainMessage(H.WINDOW_HIDE_TIMEOUT, win),
+                            win.mAttrs.hideTimeoutMilliseconds);
+                }
+            }
+
             // From now on, no exceptions or errors allowed!
 
             res = WindowManagerGlobal.ADD_OKAY;
@@ -2183,11 +2236,6 @@
             if (win.isVisibleOrAdding() && updateOrientationFromAppTokensLocked(false)) {
                 reportNewConfig = true;
             }
-            if (attrs.removeTimeoutMilliseconds > 0) {
-                mH.sendMessageDelayed(
-                        mH.obtainMessage(H.WINDOW_REMOVE_TIMEOUT, win),
-                        attrs.removeTimeoutMilliseconds);
-            }
         }
 
         if (reportNewConfig) {
@@ -2199,6 +2247,32 @@
         return res;
     }
 
+    private boolean doesAddToastWindowRequireToken(String packageName, int callingUid,
+            WindowState attachedWindow) {
+        // Try using the target SDK of the root window
+        if (attachedWindow != null) {
+            return attachedWindow.mAppToken != null
+                    && attachedWindow.mAppToken.targetSdk > Build.VERSION_CODES.N_MR1;
+        } else {
+            // Otherwise, look at the package
+            try {
+                ApplicationInfo appInfo = mContext.getPackageManager()
+                        .getApplicationInfoAsUser(packageName, 0,
+                                UserHandle.getUserId(callingUid));
+                if (appInfo.uid != callingUid) {
+                    throw new SecurityException("Package " + packageName + " not in UID "
+                            + callingUid);
+                }
+                if (appInfo.targetSdkVersion > Build.VERSION_CODES.N_MR1) {
+                    return true;
+                }
+            } catch (PackageManager.NameNotFoundException e) {
+                /* ignore */
+            }
+        }
+        return false;
+    }
+
     /**
      * Returns true if we're done setting up any transitions.
      */
@@ -8165,7 +8239,7 @@
         public static final int NOTIFY_APP_TRANSITION_FINISHED = 49;
         public static final int NOTIFY_STARTING_WINDOW_DRAWN = 50;
         public static final int UPDATE_ANIMATION_SCALE = 51;
-        public static final int WINDOW_REMOVE_TIMEOUT = 52;
+        public static final int WINDOW_HIDE_TIMEOUT = 52;
         public static final int NOTIFY_DOCKED_STACK_MINIMIZED_CHANGED = 53;
         public static final int SEAMLESS_ROTATION_TIMEOUT = 54;
 
@@ -8785,7 +8859,7 @@
                     mAmInternal.notifyStartingWindowDrawn();
                 }
                 break;
-                case WINDOW_REMOVE_TIMEOUT: {
+                case WINDOW_HIDE_TIMEOUT: {
                     final WindowState window = (WindowState) msg.obj;
                     synchronized(mWindowMap) {
                         // TODO: This is all about fixing b/21693547
@@ -8796,8 +8870,11 @@
                         // running under debugger) to crash (b/29105388). The windows will
                         // eventually be removed when the client process finishes.
                         // The best we can do for now is remove the FLAG_KEEP_SCREEN_ON
-                        // and prevent the symptoms of b/21693547.
+                        // and prevent the symptoms of b/21693547. Since apps don't
+                        // support windows being removed under them we hide the window
+                        // and it will be removed when the app dies.
                         window.mAttrs.flags &= ~FLAG_KEEP_SCREEN_ON;
+                        window.hidePermanentlyLw();
                         window.setDisplayLayoutNeeded();
                         mWindowPlacerLocked.performSurfacePlacement();
                     }
@@ -9833,6 +9910,12 @@
 
             adjustForImeIfNeeded(displayContent);
 
+            // We may need to schedule some toast windows to be removed. The
+            // toasts for an app that does not have input focus are removed
+            // within a timeout to prevent apps to redress other apps' UI.
+            getDefaultDisplayContentLocked().scheduleToastWindowsTimeoutIfNeededLocked(
+                        oldFocus, newFocus);
+
             Trace.traceEnd(Trace.TRACE_TAG_WINDOW_MANAGER);
             return true;
         }
diff --git a/services/core/java/com/android/server/wm/WindowState.java b/services/core/java/com/android/server/wm/WindowState.java
index 54f60ef..1fa0783 100644
--- a/services/core/java/com/android/server/wm/WindowState.java
+++ b/services/core/java/com/android/server/wm/WindowState.java
@@ -166,6 +166,7 @@
     boolean mPolicyVisibility = true;
     boolean mPolicyVisibilityAfterAnim = true;
     boolean mAppOpVisibility = true;
+    boolean mPermanentlyHidden; // the window should never be shown again
     boolean mAppFreezing;
     boolean mAttachedHidden;    // is our parent window hidden?
     boolean mWallpaperVisible;  // for wallpaper, what was last vis report?
@@ -1876,6 +1877,11 @@
             // Being hidden due to app op request.
             return false;
         }
+        if (mPermanentlyHidden) {
+            // Permanently hidden until the app exists as apps aren't prepared
+            // to handle their windows being removed from under them.
+            return false;
+        }
         if (mPolicyVisibility && mPolicyVisibilityAfterAnim) {
             // Already showing.
             return false;
@@ -1966,6 +1972,13 @@
         }
     }
 
+    public void hidePermanentlyLw() {
+        if (!mPermanentlyHidden) {
+            mPermanentlyHidden = true;
+            hideLw(true, true);
+        }
+    }
+
     public void pokeDrawLockLw(long timeout) {
         if (isVisibleOrAdding()) {
             if (mDrawLock == null) {
@@ -2615,7 +2628,7 @@
             pw.println(Integer.toHexString(mSystemUiVisibility));
         }
         if (!mPolicyVisibility || !mPolicyVisibilityAfterAnim || !mAppOpVisibility
-                || mAttachedHidden) {
+                || mAttachedHidden || mPermanentlyHidden) {
             pw.print(prefix); pw.print("mPolicyVisibility=");
                     pw.print(mPolicyVisibility);
                     pw.print(" mPolicyVisibilityAfterAnim=");
@@ -2623,6 +2636,7 @@
                     pw.print(" mAppOpVisibility=");
                     pw.print(mAppOpVisibility);
                     pw.print(" mAttachedHidden="); pw.println(mAttachedHidden);
+                    pw.print(" mPermanentlyHidden="); pw.println(mPermanentlyHidden);
         }
         if (!mRelayoutCalled || mLayoutNeeded) {
             pw.print(prefix); pw.print("mRelayoutCalled="); pw.print(mRelayoutCalled);
diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
index a96cef0..3d15036 100644
--- a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
+++ b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
@@ -5880,8 +5880,10 @@
         updateDeviceOwnerLocked();
         disableSecurityLoggingIfNotCompliant();
         try {
-            // Reactivate backup service.
-            mInjector.getIBackupManager().setBackupServiceActive(UserHandle.USER_SYSTEM, true);
+            if (mInjector.getIBackupManager() != null) {
+                // Reactivate backup service.
+                mInjector.getIBackupManager().setBackupServiceActive(UserHandle.USER_SYSTEM, true);
+            }
         } catch (RemoteException e) {
             throw new IllegalStateException("Failed reactivating backup service.", e);
         }
diff --git a/services/tests/servicestests/src/com/android/server/am/TaskPersisterTest.java b/services/tests/servicestests/src/com/android/server/am/TaskPersisterTest.java
index 984a484..7571f79 100644
--- a/services/tests/servicestests/src/com/android/server/am/TaskPersisterTest.java
+++ b/services/tests/servicestests/src/com/android/server/am/TaskPersisterTest.java
@@ -16,19 +16,36 @@
 
 package com.android.server.am;
 
+import android.app.ActivityManager;
+import android.content.ContentResolver;
+import android.content.pm.ActivityInfo;
 import android.content.pm.UserInfo;
 import android.os.Environment;
+import android.os.SystemClock;
 import android.os.UserHandle;
 import android.os.UserManager;
+import android.provider.Settings;
 import android.test.AndroidTestCase;
 import android.util.Log;
 import android.util.SparseBooleanArray;
+import android.util.Xml;
 
+import com.android.internal.util.FastXmlSerializer;
+import com.android.internal.util.XmlUtils;
 import com.android.server.am.TaskPersister;
 
 import java.io.File;
+import java.io.IOException;
+import java.io.StringReader;
+import java.io.StringWriter;
 import java.util.Random;
 
+import libcore.io.IoUtils;
+
+import org.xmlpull.v1.XmlPullParser;
+import org.xmlpull.v1.XmlPullParserException;
+import org.xmlpull.v1.XmlSerializer;
+
 public class TaskPersisterTest extends AndroidTestCase {
     private static final String TEST_USER_NAME = "AM-Test-User";
 
@@ -69,6 +86,140 @@
                 taskIdsOnFile.equals(newTaskIdsOnFile));
     }
 
+    public void testActiveTimeMigration() {
+        // Simulate a migration scenario by setting the last write uptime to zero
+        ContentResolver cr = getContext().getContentResolver();
+        Settings.Secure.putLong(cr,
+                Settings.Secure.TASK_PERSISTER_LAST_WRITE_UPTIME, 0);
+
+        // Create a dummy task record with an absolute time 1s before now
+        long pastOffset = 1000;
+        long activeTime = System.currentTimeMillis() - pastOffset;
+        TaskRecord tr0 = createDummyTaskRecordWithActiveTime(activeTime, activeTime);
+
+        // Save and load the tasks with no last persist uptime (0)
+        String tr0XmlStr = serializeTaskRecordToXmlString(tr0);
+        TaskRecord xtr0 = unserializeTaskRecordFromXmlString(tr0XmlStr, 0);
+
+        // Ensure that the absolute time has been migrated to be relative to the current elapsed
+        // time
+        assertTrue("Expected firstActiveTime to be migrated from: " + tr0.firstActiveTime +
+                " instead found: " + xtr0.firstActiveTime,
+                        xtr0.firstActiveTime <= -pastOffset);
+        assertTrue("Expected lastActiveTime to be migrated from: " + tr0.lastActiveTime +
+                " instead found: " + xtr0.lastActiveTime,
+                        xtr0.lastActiveTime <= -pastOffset);
+
+        // Ensure that the last active uptime is not set so that SystemUI can migrate it itself
+        // assuming that the last persist time is zero
+        Settings.Secure.putLongForUser(cr,
+                Settings.Secure.OVERVIEW_LAST_VISIBLE_TASK_ACTIVE_UPTIME, 0, testUserId);
+        mTaskPersister.restoreTasksForUserLocked(testUserId);
+        long lastVisTaskActiveTime = Settings.Secure.getLongForUser(cr,
+                Settings.Secure.OVERVIEW_LAST_VISIBLE_TASK_ACTIVE_UPTIME, -1, testUserId);
+        assertTrue("Expected last visible task active time is zero", lastVisTaskActiveTime == 0);
+    }
+
+    public void testActiveTimeOffsets() {
+        // Simulate a normal boot scenario by setting the last write uptime
+        long lastWritePastOffset = 1000;
+        long lastVisActivePastOffset = 500;
+        ContentResolver cr = getContext().getContentResolver();
+        Settings.Secure.putLong(cr,
+                Settings.Secure.TASK_PERSISTER_LAST_WRITE_UPTIME, lastWritePastOffset);
+
+        // Create a dummy task record with an absolute time 1s before now
+        long activeTime = 250;
+        TaskRecord tr0 = createDummyTaskRecordWithActiveTime(activeTime, activeTime);
+
+        // Save and load the tasks with the last persist time
+        String tr0XmlStr = serializeTaskRecordToXmlString(tr0);
+        TaskRecord xtr0 = unserializeTaskRecordFromXmlString(tr0XmlStr, lastWritePastOffset);
+
+        // Ensure that the prior elapsed time has been offset to be relative to the current boot
+        // time
+        assertTrue("Expected firstActiveTime to be offset from: " + tr0.firstActiveTime +
+                " instead found: " + xtr0.firstActiveTime,
+                        xtr0.firstActiveTime <= (-lastWritePastOffset + activeTime));
+        assertTrue("Expected lastActiveTime to be offset from: " + tr0.lastActiveTime +
+                " instead found: " + xtr0.lastActiveTime,
+                        xtr0.lastActiveTime <= (-lastWritePastOffset + activeTime));
+
+        // Ensure that we update the last active uptime as well by simulating a restoreTasks call
+        Settings.Secure.putLongForUser(cr,
+                Settings.Secure.OVERVIEW_LAST_VISIBLE_TASK_ACTIVE_UPTIME, lastVisActivePastOffset,
+                        testUserId);
+        mTaskPersister.restoreTasksForUserLocked(testUserId);
+        long lastVisTaskActiveTime = Settings.Secure.getLongForUser(cr,
+                Settings.Secure.OVERVIEW_LAST_VISIBLE_TASK_ACTIVE_UPTIME, Long.MAX_VALUE,
+                        testUserId);
+        assertTrue("Expected last visible task active time to be offset", lastVisTaskActiveTime <=
+                (-lastWritePastOffset + lastVisActivePastOffset));
+    }
+
+    private TaskRecord createDummyTaskRecordWithActiveTime(long firstActiveTime,
+            long lastActiveTime) {
+        ActivityInfo info = createDummyActivityInfo();
+        ActivityManager.TaskDescription td = new ActivityManager.TaskDescription();
+        TaskRecord t = new TaskRecord(null, 0, info, null, td, null);
+        t.firstActiveTime = firstActiveTime;
+        t.lastActiveTime = lastActiveTime;
+        return t;
+    }
+
+    private ActivityInfo createDummyActivityInfo() {
+        ActivityInfo info = new ActivityInfo();
+        info.applicationInfo = getContext().getApplicationInfo();
+        return info;
+    }
+
+    private String serializeTaskRecordToXmlString(TaskRecord tr) {
+        StringWriter stringWriter = new StringWriter();
+
+        try {
+            final XmlSerializer xmlSerializer = new FastXmlSerializer();
+            xmlSerializer.setOutput(stringWriter);
+
+            xmlSerializer.startDocument(null, true);
+            xmlSerializer.startTag(null, TaskPersister.TAG_TASK);
+            tr.saveToXml(xmlSerializer);
+            xmlSerializer.endTag(null, TaskPersister.TAG_TASK);
+            xmlSerializer.endDocument();
+            xmlSerializer.flush();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+
+        return stringWriter.toString();
+    }
+
+    private TaskRecord unserializeTaskRecordFromXmlString(String xmlStr, long lastPersistUptime) {
+        StringReader reader = null;
+        TaskRecord task = null;
+        try {
+            reader = new StringReader(xmlStr);
+            final XmlPullParser in = Xml.newPullParser();
+            in.setInput(reader);
+
+            int event;
+            while (((event = in.next()) != XmlPullParser.END_DOCUMENT) &&
+                    event != XmlPullParser.END_TAG) {
+                final String name = in.getName();
+                if (event == XmlPullParser.START_TAG) {
+                    if (TaskPersister.TAG_TASK.equals(name)) {
+                        task = TaskRecord.restoreFromXml(in, null, null, lastPersistUptime);
+                    }
+                }
+                XmlUtils.skipCurrentTag(in);
+            }
+        } catch (Exception e) {
+            return null;
+        } finally {
+            IoUtils.closeQuietly(reader);
+        }
+        return task;
+    }
+
     private int createUser(String name, int flags) {
         UserInfo user = mUserManager.createUser(name, flags);
         if (user == null) {
diff --git a/tests/Assist/res/drawable/assistant.xml b/tests/Assist/res/drawable/assistant.xml
index 2a89dda..56fe2de 100644
--- a/tests/Assist/res/drawable/assistant.xml
+++ b/tests/Assist/res/drawable/assistant.xml
@@ -19,9 +19,6 @@
         android:viewportWidth="48.0"
         android:viewportHeight="48.0">
     <path
-        android:pathData="M0 0h48v48H0z"
-        android:fillColor="#00000000"/>
-    <path
         android:fillColor="#FF000000"
         android:pathData="M38.0,4.0L10.0,4.0C7.79,4.0 6.0,5.79 6.0,8.0l0.0,28.0c0.0,2.21 1.79,4.0 4.0,4.0l8.0,0.0l6.0,6.0 6.0,-6.0l8.0,0.0c2.21,0.0 4.0,-1.79 4.0,-4.0L36.0,8.0c0.0,-2.21 -1.79,-4.0 -4.0,-4.0zM27.75,25.75L24.0,34.0l-3.75,-8.25L12.0,22.0l8.25,-3.75L24.0,10.0l3.75,8.25L36.0,22.0l-8.25,3.75z"/>
 </vector>